From 5b849dce595f74657730700b8ce7bcd889361697 Mon Sep 17 00:00:00 2001 From: Matt Date: Wed, 26 Mar 2014 20:13:25 -0600 Subject: [PATCH] Updated some git naming info --- README.md | 4 +++- algo_dev.txt | 25 ++++++++++++++++++++++++ lib/pool.js | 54 +++++++++++++++++++++++++++------------------------- package.json | 1 + 4 files changed, 57 insertions(+), 27 deletions(-) create mode 100644 algo_dev.txt diff --git a/README.md b/README.md index af1fbf1..b715ce5 100644 --- a/README.md +++ b/README.md @@ -41,14 +41,16 @@ Features * ✓ __Scrypt-Jane__ (YaCoin, CopperBars, Pennies, Tickets, etc..) * ✓ __Quark__ (Quarkcoin [QRK]) * ✓ __X11__ (Darkcoin [DRK]) -* ✓ __Keccak__ (Maxcoin [MAX], HelixCoin [HXC]) Under development: +* ✗ *Keccak* (CopperLark [CLR]) +* ✗ *Max* (Maxcoin [MAX], HelixCoin [HXC]) * ✗ *Scrypt-n* (Vertcoin [VTC]) * ✗ *Skein* (Skeincoin [SKC]) * ✗ *Bcrypt* (Taojingcoin [TJC]) * ✗ *Hefty1* (Heavycoin [HVC]) +* ✗ *Blake* (Blakecoin [BLC]) #### Under development diff --git a/algo_dev.txt b/algo_dev.txt new file mode 100644 index 0000000..888703b --- /dev/null +++ b/algo_dev.txt @@ -0,0 +1,25 @@ +hefty1 +00000000ffff0000000000000000000000000000000000000000000000000000 +https://github.com/heavycoin/heavycoin-hash-python + + +keccak +https://github.com/phusion/node-sha3 + +blake +https://github.com/BlueDragon747/Blakecoin_Python_POW_Module + + +bcrypt +https://github.com/TaojingCoin-pd/Taojingcoin/blob/master/src/bcrypt.cpp +https://github.com/TaojingCoin-pd/Taojingcoin/blob/master/src/bcrypt.h + + +scrypt-n +https://github.com/scr34m/vertcoin_scrypt +https://github.com/ahmedbodi/stratum-mining/tree/NScrypt + + +max +https://github.com/Prydie/maxcoin-hash-python +https://github.com/ahmedbodi/stratum-mining-maxcoin \ No newline at end of file diff --git a/lib/pool.js b/lib/pool.js index 8e4db34..4dd0a83 100644 --- a/lib/pool.js +++ b/lib/pool.js @@ -1,6 +1,6 @@ var events = require('events'); var async = require('async'); -var bignum = require('bignum'); + var varDiff = require('./varDiff.js'); @@ -14,7 +14,10 @@ var scrypt = require('scrypt256-hash'); var quark = require('quark-hash'); var scryptJane = require('scrypt-jane-hash'); var x11 = require('x11-hash'); -var keccak = require('keccak-hash'); +//var keccak = require('keccak-hash'); +var SHA3 = require('sha3'); + +var bignum = require('bignum'); /** * Main pool object. It emits the following events: @@ -44,10 +47,12 @@ var pool = module.exports = function pool(options, authorizeFn){ //Which number to use as dividend when converting difficulty to target - var maxDifficulty = bignum((function(){ + + var diffHex = (function(){ switch(options.coin.algorithm){ case 'sha256': case 'skein': + case 'hefty1': return '00000000ffff0000000000000000000000000000000000000000000000000000'; case 'scrypt': case 'scrypt-jane': @@ -55,8 +60,12 @@ var pool = module.exports = function pool(options, authorizeFn){ case 'quark': case 'keccak': return '0000ffff00000000000000000000000000000000000000000000000000000000'; + default: + emitErrorLog('The ' + options.coin.algorithm + ' hashing algorithm is not supported.'); + throw new Error(); } - })(), 16); + })(); + var maxDifficulty = bignum(diffHex, 16); @@ -66,46 +75,37 @@ var pool = module.exports = function pool(options, authorizeFn){ case 'sha256': return function(){ return util.doublesha.apply(this, arguments); - } + }; case 'scrypt': return function(){ return scrypt.digest.apply(this, arguments); - } + }; case 'scrypt-jane': return function(){ return scryptJane.digest.apply(this, arguments); - } + }; case 'quark': return function(){ return quark.digest.apply(this, arguments); - } + }; case 'x11': return function(){ return x11.digest.apply(this, arguments); - } + }; case 'keccak': - return function(){ - return keccak.digest.apply(this, arguments); - } + return function(headerBuff, nTimeInt){ + var d = new SHA3.SHA3Hash(256); + d.update(headerBuff.toString('utf8') + nTimeInt.toString(), 'utf8'); + return new Buffer(d.digest('hex'), 'hex'); + }; case 'skein': - return function(data){ + return function(){ - /*var dataString = data.slice(0, 80).toString('ascii'); - var skeinHashed = skein(dataString); - - var hash1 = crypto.createHash('sha256'); - hash1.update(new Buffer(skeinHashed, 'hex')); - hash1 = hash1.digest(); - - return hash1;*/ - - //https://github.com/cruzrr/insanehash - //https://github.com/Crypto-Expert/stratum-mining/blob/master/lib/skein.py - } + }; default: return function(){ console.log('Hashing algorithm ' + options.coin.algorithm + ' not supported'); - } + }; } })(); @@ -422,6 +422,8 @@ var pool = module.exports = function pool(options, authorizeFn){ _this.daemon.init(); } + + function WaitForSync(currentBlocks){ var generateProgress = function(currentBlocks){ diff --git a/package.json b/package.json index fa4754b..8d68165 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "quark-hash": "https://github.com/zone117x/node-quark-hash/archive/master.tar.gz", "x11-hash": "https://github.com/zone117x/node-x11-hash/archive/master.tar.gz", "keccak-hash": "https://github.com/zone117x/node-keccak-hash/archive/master.tar.gz", + "sha3": "*", "bignum": "*", "base58-native": "*", "async": "*"