Skip to content
Browse files


  • Loading branch information...
1 parent 39b1585 commit 2f77c579bbccd2a261222e513e4b3d376c33b218 Justin Thomas committed Feb 1, 2012
Showing with 28 additions and 0 deletions.
  1. +28 −0
@@ -0,0 +1,28 @@
+# Hashcash for Node
+Hashcash is a simple proof of work algorithm to prevent or slow down spam. It works by giving the requester a challenge in the form of a sha1 hash. After the hash is received the requesting client has four seconds to find a hash of the challenge + number that has three leading zeros. The client can find the challenge in the header: hashcash-challenge and add the answer to hashcash-answer.
+Using the middleware on an end-point in express will prevent the client from accessing the resource until an answer is found. A new challenge is created every four seconds.
+## How to Install
+ npm install hashcash
+## How to use
+First, require `hashcash`:
+var hashcash = require('hashcash');
+var express = require('express');
+var app = express.createServer();
+app.get('/protected',hashcash.middleware(),function(req,res) {
+ /* this will never get hit if the hashcash-answer is not present */
+ res.send('Success!');
+var port = 8080;
+console.log('Listening on port: '+port);

0 comments on commit 2f77c57

Please sign in to comment.
Something went wrong with that request. Please try again.