summaryrefslogtreecommitdiffhomepage
path: root/Types
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2016-09-13 22:15:18 -0400
committerJoey Hess <joeyh@joeyh.name>2016-09-13 22:32:13 -0400
commit68eb14fdf6debf1e26921a1b2dddf34dbd031471 (patch)
treeb179ae7f113fd89c674862d5c9619282d545a17d /Types
parent27aef01ba665a14924ece95d5ef4674e3945ef7e (diff)
downloadkeysafe-68eb14fdf6debf1e26921a1b2dddf34dbd031471.tar.gz
use less expensive hash for proof of work
The server has to run the hash once to verify a request, so a hash that took 4 seconds could make the server do too much work if it's being flooded with requests. So, made the hash much less expensive. This required keeping track of fractional seconds. Actually, I used Rational for them, to avoid most rounding problems. That turned out nice. I've only tuned the proofOfWorkHashTunable on my fanless overheating laptop so far. It seems to be fairly reasonablly tuned though.
Diffstat (limited to 'Types')
-rw-r--r--Types/Cost.hs2
1 files changed, 1 insertions, 1 deletions
diff --git a/Types/Cost.hs b/Types/Cost.hs
index 372c43d..4b71116 100644
--- a/Types/Cost.hs
+++ b/Types/Cost.hs
@@ -13,7 +13,7 @@ data Cost op
-- ^ cost in Seconds, using 1 physical CPU core
deriving (Show, Eq, Ord)
-newtype Seconds = Seconds Integer
+newtype Seconds = Seconds Rational
deriving (Num, Eq, Ord, Show)
-- | How many CPU cores a single run of an operation can be divided amoung.