Forked to provide Windows compatibility. Works on Node 8+
Branch: master
Clone or download
Pull request Compare This branch is 4 commits ahead, 1 commit behind turtlecoin:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
crypto
scryptjane
sha3
tests
.gitignore
.travis.yml
LICENSE
README.md
appveyor.yml
bcrypt.c
bcrypt.h
binding.gyp
blake.c
blake.h
boolberry.cc
boolberry.h
c11.c
c11.h
cryptonight.c
cryptonight.h
cryptonight_dark.c
cryptonight_dark.h
cryptonight_dark_lite.c
cryptonight_dark_lite.h
cryptonight_fast.c
cryptonight_fast.h
cryptonight_lite.c
cryptonight_lite.h
cryptonight_soft_shell.c
cryptonight_soft_shell.h
cryptonight_turtle.c
cryptonight_turtle.h
cryptonight_turtle_lite.c
cryptonight_turtle_lite.h
fresh.c
fresh.h
fugue.c
fugue.h
groestl.c
groestl.h
hefty1.c
hefty1.h
index.js
keccak.c
keccak.h
multihashing.cc
nist5.c
nist5.h
package-lock.json
package.json
quark.c
quark.h
qubit.c
qubit.h
scryptjane.c
scryptjane.h
scryptn.c
scryptn.h
sha1.c
sha1.h
sha256.h
shavite3.c
shavite3.h
skein.c
skein.h
stdint.h
x11.c
x11.h
x13.c
x13.h
x15.c
x15.h

README.md

image

Node8-multi-hashing

Cryptocurrency hashing functions for NodeJS

Now with Windows support

Algorithms

  • quark
  • x11
  • x13
  • nist5
  • scrypt
  • scryptn
  • scryptjane
  • keccak
  • bcrypt
  • skein
  • groestl
  • blake
  • fugue
  • qubit
  • hefty1
  • shavite3
  • cryptonight
  • cryptonight-fast
  • cryptonight-lite
  • boolberry

Usage

Install

sudo apt-get nodejs nodejs-dev node-gyp npm
sudo ln -s /usr/bin/nodejs /usr/bin/node
npm install turtlecoin-multi-hashing

So far this native NodeJS addon can do the following hashing algorithms.

var multiHashing = require('turtlecoin-multi-hashing')
var Buffer = require('safe-buffer').Buffer

var algorithms = ['quark', 'x11', 'scrypt', 'scryptn', 'scryptjane', 'keccak', 'bcrypt', 'skein', 'blake']

var data = new Buffer('7000000001e980924e4e1109230383e66d62945ff8e749903bea4336755c00000000000051928aff1b4d72416173a8c3948159a09a73ac3bb556aa6bfbcad1a85da7f4c1d13350531e24031b939b9e2b', 'hex')

var hashedData = algorithms.map(function (algo) {
  if (algo === 'scryptjane') {
        // scryptjane needs block.nTime and nChainStartTime (found in coin source)
    var yaCoinChainStartTime = 1367991200
    var nTime = Math.round(Date.now() / 1000)
    return multiHashing[algo](data, nTime, yaCoinChainStartTime)
  } else {
    return multiHashing[algo](data)
  }
})

console.log(hashedData)
//<SlowBuffer 0b de 16 ef 2d 92 e4 35 65 c6 6c d8 92 d9 66 b4 3d 65 ..... >

Credits

  • NSA and NIST for creation or sponsoring creation of SHA2 and SHA3 algos
  • Keccak - Guido Bertoni, Joan Daemen, Michaël Peeters, and Gilles Van Assche
  • Skein - Bruce Schneier, Stefan Lucks, Niels Ferguson, Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon Callas and Jesse Walker.
  • BLAKE - Jean-Philippe Aumasson, Luca Henzen, Willi Meier, and Raphael C.-W. Phan
  • Grøstl - Praveen Gauravaram, Lars Knudsen, Krystian Matusiewicz, Florian Mendel, Christian Rechberger, Martin Schläffer, and Søren S. Thomsen
  • JH - Hongjun Wu
  • Fugue - Shai Halevi, William E. Hall, and Charanjit S. Jutla
  • scrypt - Colin Percival
  • bcrypt - Niels Provos and David Mazières
  • X11, Hefty1, Quark creators (they just mixed together a bunch of the above algos)
  • PhearZero Michael J Feher
  • codebling CodeBling
  • Monero The Monero Project
  • TurtleCoin TurtleCoin Developers