Install NOMP mining pool on Ubuntu Server 18.04Info: A scalable all-in-one easy to setup cryptocurrency mining pool and portal written entirely in Node.js.
This portal is an extremely efficient, highly scalable, all-in-one, easy to setup cryptocurrency mining pool written entirely in Node.js.
It contains a stratum poolserver; reward/payment/share processor; and a (not yet completed) responsive user-friendly front-end website featuring mining instructions,
in-depth live statistics, and an admin center.
Features: For the pool server it uses the highly efficient node-stratum-pool module which supports vardiff,
POW & POS, transaction messages, anti-DDoS, IP banning, several hashing algorithms.
The portal has an MPOS compatibility mode so that the it can function as a drop-in-replacement for python-stratum-mining.
This mode can be enabled in the configuration and will insert shares into a MySQL database in the format which MPOS expects.
For a direct tutorial see the wiki page Setting up NOMP for MPOS usage.
Multi-pool ability - this software was built from the ground up to run with multiple coins simultaneously (which can have different properties and hashing algorithms).
It can be used to create a pool for a single coin or for multiple coins at once. The pools use clustering to load balance across multiple CPU cores.
For reward/payment processing, shares are inserted into Redis (a fast NoSQL key/value store).
The PROP (proportional) reward system is used with Redis Transactions for secure and super speedy payouts.
There is zero risk to the pool operator. Shares from rounds resulting in orphaned blocks will be merged into share in the current round so that each and every share will be rewarded.
This portal does not have user accounts/logins/registrations. Instead, miners simply use their coin address for stratum authentication.
A minimalistic HTML5 front-end connects to the portals statistics API to display stats from from each pool such as connected miners, network/pool difficulty/hash rate, etc.
Coin-switching ports using coin-networks and crypto-exchange APIs to detect profitability.
Miner's connect to these ports with their public key which NOMP uses to derive an address for any coin needed to be paid out.
Sourcecode: GitHubInstall: Update your Ubuntu server with the following command:
sudo apt-get update && sudo apt-get upgrade -y
Install the required dependencies with the following command:
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils python3 libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libboost-all-dev libboost-program-options-dev -y
Install the additional dependencies with the following command:
sudo apt-get install libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler unzip software-properties-common redis-server npm git nano cmake screen -y
Install the repository ppa:bitcoin/bitcoin with the following command:
sudo add-apt-repository ppa:bitcoin/bitcoin
Confirm the installation of the repository by pressing on the enter key. enter
Install Berkeley DB with the following command:
sudo apt-get update && sudo apt-get install libdb4.8-dev libdb4.8++-dev -y
Type the following commands to install NOMP:
git clone https://github.com/zone117x/node-open-mining-portal.git nomp
cd nomp
npm update
Type the following command to create the file settings.json:
cp config_example.json config.json
Open nano.
Modify the following values in the file config.json.
host - Change the value “
0.0.0.0” with the IPv4 address of your server.
stratumHost - Change the value “
cryppit.com” with the IPv4 address of your server.
Save the file with the keyboard shortcut
ctrl + xto create the config file for your coin e.g bitcoin:
cd coins
nano bitcoin.json -t
to create the config file for your pool:
cd ../pool_configs
nano bitcoin_pool.json -t
Modify the following values in the file bitcoin.json.
enabled - “false” -> “
true”.
coin - “
yourdata ” ->
address - “
yourdata ” -> Enter the receiving address from the RPC command “getaccountaddress ""”.
rewardRecipients -
minimumPayment - “
yourdata” ->
"paymentProcessing" -> port - “
yourdata” ->
"paymentProcessing" -> user - “
yourdata” ->
"paymentProcessing" -> password - “
yourdata” ->
"daemons" -> port - “
yourdata” ->
"daemons" -> user - “
yourdata” ->
"daemons" -> password - “
yourdata” ->
p2p - “true” -> .?
Save the file with the keyboard shortcut
ctrl + x.Type the following command to open a screen session:
Type the following commands to start your mining pool:
cd $HOME/nomp
sudo node init.js
Press the keyboard shortcut
ctrl + a + d to disconnect from your screen session.
Instructions to mine with your mining pool.
Open your wallet.
Go to Window -> Console.
This is the console where you execute RPC commands.
Type the following command, to create a legacy receiving address for your miner:
getnewaddress "" "legacy"
Modify the following values in the following text for your miner software e.g cpuminer
minerd -a sha256d -o stratum+tcp://yourserverip:3008 -u walletadress -p anything