z-nomp is mining pool software for Bitcoin Interest so you can create internet money in your home!
Clone or download
Pull request Compare This branch is 8 commits ahead of poolgold:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
coins BCI'd May 9, 2018
examples BCI'd May 9, 2018
libs Revert "minor fix" Sep 9, 2018
pool_configs
scripts BCI'd May 9, 2018
website Sol/s to H/s Sep 6, 2018
.gitignore BCI'd May 9, 2018
CHANGELOG.md Create CHANGELOG.md Nov 28, 2016
LICENSE Updated to MIT license Dec 27, 2016
README.md Update README.md Sep 7, 2018
config_example.json Created function for writing console logs to text file Nov 5, 2017
init.js Revert "add process management for ProgPoW Ethash JSON wrapper, part … Sep 6, 2018
package.json BCI'd May 9, 2018

README.md

Bitcoin Interest - Node Open Mining Portal

Click here for the official - Zcash® Zclassic, Bitcoin Interest Stratum Mining Pool Installation Guide

This is a ProgPow mining pool based off of Node Open Mining Portal.

Donations for development are greatly appreciated!

  • BTC: 3A9s85pR8KGESorKV46C6WjM3kXTzQTfGo
  • BCI: iSUHXuxQgm88xnsj8pg8qyBN4G22NSNNar

Production Usage Notice

This is beta software. All of the following are things that can change and break an existing Z-NOMP setup: functionality of any feature, structure of configuration files and structure of redis data. If you use this software in production then DO NOT pull new code straight into production usage because it can and often will break your setup and require you to tweak things like config files or redis data. Only tagged releases are considered stable.

Paid Solution

Usage of this software requires abilities with sysadmin, database admin, coin daemons, and sometimes a bit of programming. Running a production pool can literally be more work than a full-time job.

Community / Support

IRC

If your pool uses Z-NOMP let us know and we will list your website here.

Some pools using Z-NOMP or node-stratum-module:

https://pool.bci-server.com/ Official BCI Pool

http://bci.altpool.pro/

Usage

Requirements

Seriously

Those are legitimate requirements. If you use old versions of Node.js or Redis that may come with your system package manager then you will have problems. Follow the linked instructions to get the last stable versions.

Redis security warning: be sure firewall access to redis - an easy way is to include bind 127.0.0.1 in your redis.conf file. Also it's a good idea to learn about and understand software that you are using - a good place to start with redis is data persistence.

0) Setting up coin daemon

Follow the build/install instructions for your coin daemon. Your coin.conf file should end up looking something like this:

daemon=1
rpcuser=bcirpc
rpcpassword=securepassword
rpcport=8232

For redundancy, its recommended to have at least two daemon instances running in case one drops out-of-sync or offline, all instances will be polled for block/transaction updates and be used for submitting blocks. Creating a backup daemon involves spawning a daemon using the -datadir=/backup command-line argument which creates a new daemon instance with it's own config directory and coin.conf file. Learn about the daemon, how to use it and how it works if you want to be a good pool operator. For starters be sure to read:

1) Downloading & Installing

Clone the repository and run npm update for all the dependencies to be installed:

sudo apt-get install build-essential libsodium-dev npm
sudo npm install n -g
sudo n stable
git clone https://github.com/BitcoinInterestOfficial/z-nomp-bci
cd z-nomp-bci
npm update
npm install
Pool config

Take a look at the example json file inside the pool_configs directory. Rename it to bci.json and change the example fields to fit your setup.

Please Note that: 1 Difficulty is actually 8192, 0.125 Difficulty is actually 1024.

Whenever a miner submits a share, the pool counts the difficulty and keeps adding them as the shares. 

ie: Miner 1 mines at 0.1 difficulty and finds 10 shares, the pool sees it as 1 share. Miner 2 mines at 0.5 difficulty and finds 5 shares, the pool sees it as 2.5 shares. 
[Optional, recommended] Setting up blocknotify
  1. In config.json set the port and password for blockNotifyListener
  2. In your daemon conf file set the blocknotify command to use:
node [path to cli.js] [coin name in config] [block hash symbol]

Example: inside bitcoin.conf add the line

blocknotify=node /home/user/z-nomp-bci/scripts/cli.js blocknotify zclassic %s

Alternatively, you can use a more efficient block notify script written in pure C. Build and usage instructions are commented in scripts/blocknotify.c.

3) Start the portal

npm start
Optional enhancements for your awesome new mining pool server setup:
  • Use something like forever to keep the node script running in case the master process crashes.
  • Use something like redis-commander to have a nice GUI for exploring your redis database.
  • Use something like logrotator to rotate log output from Z-NOMP.
  • Use New Relic to monitor your Z-NOMP instance and server performance.

Upgrading Z-NOMP

When updating Z-NOMP to the latest code its important to not only git pull the latest from this repo, but to also update the node-stratum-pool and node-multi-hashing modules, and any config files that may have been changed.

  • Inside your Z-NOMP directory (where the init.js script is) do git pull to get the latest Z-NOMP code.
  • Remove the dependenices by deleting the node_modules directory with rm -r node_modules.
  • Run npm update to force updating/reinstalling of the dependencies.
  • Compare your config.json and pool_configs/coin.json configurations to the latest example ones in this repo or the ones in the setup instructions where each config field is explained. You may need to modify or add any new changes.

Credits

Z-NOMP

NOMP

License

Released under the MIT License. See LICENSE file.