use SCRYPT - fixing # 2685, needs LATEST libgcrypt (Git from today)
authorChristian Grothoff <christian@grothoff.org>
Fri, 5 Apr 2013 11:38:02 +0000 (11:38 +0000)
committerChristian Grothoff <christian@grothoff.org>
Fri, 5 Apr 2013 11:38:02 +0000 (11:38 +0000)
src/nse/gnunet-service-nse.c
src/nse/nse.conf.in
src/nse/perf_kdf.c

index 2b7b3f8ee1b8992d339b1899f9aa13ea4f4015bd..d427602d1c1b0e986ad595a6879ba71a9ccd7633 100644 (file)
@@ -492,7 +492,7 @@ pow_hash (const void *buf,
 {
   GNUNET_break (0 == 
                gcry_kdf_derive (buf, buf_len,
-                                GCRY_KDF_PBKDF2 /* FIX: use SCRYPT! */,
+                                GCRY_KDF_SCRYPT,
                                 1 /* subalgo */,
                                 "gnunet-proof-of-work", strlen ("gnunet-proof-of-work"),
                                 2 /* iterations; keep cost of individual op small */,
index 84bbef5c58d6a94d07996ff3674e89a46a60f898..64e07945e41989ce5ae366b78a8ce932bbe78bb3 100644 (file)
@@ -11,18 +11,29 @@ UNIX_MATCH_UID = NO
 UNIX_MATCH_GID = YES
 PROOFFILE = $SERVICEHOME/.nse-proof
 
-# The directory where the NSE services logs timestamps everytime a size estime
-# flooding message is received
+# The directory where the NSE services logs timestamps everytime 
+# a size estime flooding message is received
+# This option is only used for benchmarking, not in production.
 HISTOGRAM_DIR = $SERVICEHOME
 
 # How 'slowly' should the proof-of-work be constructed (delay
 # between rounds); sane values between 0 and ~1000.
+# It should rarely make sense to change this value.
+# Only systems with slow CPUs where 5ms is a long time might
+# want it to be reduced.
 WORKDELAY = 5 ms
 
 # Note: changing any of the values below will make this peer
-# completely incompatible with other peers! 
+# completely incompatible with other peers!
+
+# How often do peers exchange network size messages?
+# Note that all peers MUST use the same interval.
+# DO NOT CHANGE THIS VALUE, doing so will break the protocol!
 INTERVAL = 1 h
-# 26 is about 100 minutes on a modern i7 (single-core) for PBKDF2;
-# need to re-calibrate once we have SCRYPT!
-WORKBITS = 26
+
+# 2^22 hash operations take about 2-3h on a modern i7 (single-core)
+# for SCRYPT; with 2ms/op and 5ms workdelay, we can expect
+# the POW calculation to be done by a high-end peer in about 6h
+# DO NOT CHANGE THIS VALUE, doing so will break the protocol!
+WORKBITS = 22
 
index e462c129f1a908842aee08e500591fc56bd20786..fbc846ac2c537204b136354bdb361482284ebc06 100644 (file)
@@ -45,7 +45,7 @@ pow_hash (const void *buf,
 {
   GNUNET_break (0 == 
                gcry_kdf_derive (buf, buf_len,
-                                GCRY_KDF_PBKDF2 /* FIX: use SCRYPT! */,
+                                GCRY_KDF_SCRYPT,
                                 1 /* subalgo */,
                                 "gnunet-proof-of-work", strlen ("gnunet-proof-of-work"),
                                 2 /* iterations; keep cost of individual op small */,