High performance Stratum poolserver in Node.js
Go to file
Matthew Little d7bac30c18 Updated
2014-01-10 18:23:03 -05:00
node_modules updated 2014-01-08 15:25:38 -05:00
.gitignore Updated 2014-01-10 17:39:08 -05:00
blockNotify.js inital commit 2014-01-06 15:17:35 -05:00
blockTemplate.js Fixed generation transaction building, block header serialization, and difficulty comparing :D 2014-01-10 16:56:22 -05:00
daemon.js updated 2014-01-08 19:57:32 -05:00
init.js Updated 2014-01-10 18:18:23 -05:00
jobManager.js Fixed generation transaction building, block header serialization, and difficulty comparing :D 2014-01-10 16:56:22 -05:00
LICENSE Initial commit 2014-01-06 11:56:31 -08:00
merkleTree.js updated 2014-01-09 13:09:57 -05:00
pool.js Updated 2014-01-10 18:18:23 -05:00
README.md Updated 2014-01-10 18:23:03 -05:00
shareManager.js updated 2014-01-09 13:09:57 -05:00
stratum.js Updated 2014-01-10 18:18:23 -05:00
test.js Fixed generation transaction building, block header serialization, and difficulty comparing :D 2014-01-10 16:56:22 -05:00
transactions.js Fixed generation transaction building, block header serialization, and difficulty comparing :D 2014-01-10 16:56:22 -05:00
util.js Fixed generation transaction building, block header serialization, and difficulty comparing :D 2014-01-10 16:56:22 -05:00

node-stratum

Under development

High performance Stratum poolserver in Node.js. One instance of this software can startup and manage multiple coin pools, each with their own daemon and stratum port :)

Why

This server was built to be more efficient and easier to setup, maintain and scale than existing stratum poolservers which are written in python. Compared to the spaghetti state of the latest stratum-mining python server, this software should also have a lower barrier to entry for other developers to fork and add feature or fix bugs.

Features (mostly untested)

  • Daemon interface
  • Stratum TCP socket server
  • Block template / job manager
  • Optimized generation transaction building
  • Process share submissions
  • Supports algos: scrypt, scrypt-jane, quark

To do

  • Proof-of-stake support
  • Payment processing module
  • Vardiff
  • Statistics module
  • Integrate with PostgreSQL database
  • Web frontend

Requirements

Installation

  • For each coin you would like to start a pool server for, create a file in the "coins" directory titled "(name of coin).json" Example configuration for dogecoin.json:

{ "name": "Dogecoin", "symbol": "doge", "algorithm": "scrypt", "reward": "POW", "address": "DDt79i6P3Wro3SD3HSnkRLpMgUGUGdiNhS", "stratumPort": 3334, "difficulty": 8, "daemon": { "bin": "dogecoind", "port": 8332, "user": "test", "password": "test", "blocknotify": "blockNotify.js doge %s", "startIfOffline": true } } ```

  • To start the poolserver run init.js node init.js

Credits

  • Slush0 - stratum protocol, documentation and original python code
  • viperaus - scrypt adaptions to python code
  • ahmedbodi - more algo adaptions to python code
  • TheSeven - being super knowledgeable & helpful
  • vekexasia - lots of help with research and development

Donations

BTC: 1KRotMnQpxu3sePQnsVLRy3EraRFYfJQFR

License

Released under the GNU General Public License v2

http://www.gnu.org/licenses/gpl-2.0.html