ethereumjs / node-ethash

Node bindings for the C++ Ethash implementation.
MIT License
7 stars 14 forks source link

Merge with ethereumjs/ethash #1

Open axic opened 8 years ago

axic commented 8 years ago

Potentially this could be merged with https://github.com/ethereumjs/ethashjs once mature.

For a template on how two merge the two, see https://github.com/cryptocoinjs/secp256k1-node

bolaum commented 8 years ago

You mean https://github.com/ethereum/ethash or https://github.com/ethereumjs/ethashjs? :smiley:

https://github.com/cryptocoinjs/secp256k1-node was the basis for this project! Thanks for reminding me of stating this somewhere :+1:

axic commented 8 years ago

Of course ethashjs :smiley:

axic commented 7 years ago

@fanatid are you interested in picking this up? 😉

fanatid commented 7 years ago

@axic not sure, but maybe in next or next-next year 😆

bolaum commented 7 years ago

@axic I wasn't sure that there was still an interest to merge this. Since there is, I could try to pick this up.

bolaum commented 7 years ago

How would this work? const Ethash = require('ethashjs') for js implementation and const Ethash = require('ethashjs/cpp') for bindings?

axic commented 7 years ago

@fanatid can show you some code how to do autodetection nicely.

fanatid commented 7 years ago

keccak yet one project which was made like secp256k1-node

https://github.com/cryptocoinjs/keccak/blob/master/index.js https://github.com/cryptocoinjs/keccak/blob/0d842a50ddd5ef39d40b0277186c6345740bc629/package.json#L62-L64

axic commented 6 years ago

@fanatid next year is here! 😉

axic commented 6 years ago

There is a new C++ from scratch implementation of ethash which is going to be way better: https://github.com/chfast/ethash by @chfast

axic commented 6 years ago

Also a further option would be to take a more phased approach, adding features in this order: 1) compile the new C++ code to wasm and asm.js and distribute that 2) if speed is not good enough, create the node.js binding 3) if educational value is preferred, create a pure JS implementation