Setup Your Own Mining Pool

This is a step by step guide on how to setup your own mining pool for things like bitcoin, litecoin, and other crypto-currencies.

This guide is meant to replace Novice’s Guide to Setting up a Crypto-Currency Mining Pool

Why the update? MPOS (Mining Portal Open Source) is very old now and NOMP (Node Open Mining Portal) has branched off into another project called uNOMP (Unified, Node Open Mining Portal). uNOMP has a very active development team and is updated on a regular basis. This not only ensures adequate support of new currencies, but also better security. uNOMP also has many things in one, and is easier to setup then the old MPOS/NOMP hybrid as described in the legacy guide.

I have ran several large mining pool operations, and helped out at several more. The purpose of this guide is to enable more people the opportunity to run their own pool, whether it be for their own miners or just out of curiosity to understand how it all works. This is by no means meant to be a guide so you can setup your own professional mining pool operation. Running your own mining pool that other miners other then yourself will use is not an easy undertaking, and requires extensive systems administration experience as well as a large budget, patience, troubleshooting skills, and a solid knowledge of how crypto-currencies work. This guide will not be going over any security features.

This guide is going over how to setup a uNOMP (Unified, Node Open Mining Portal) pool. This is meant to setup a mining pool for a single crypto-currency. This is not a guide for a multipool.

If you want to see what it looks like before you set it all up, head to the Example Pool that was built completely off of this guide.

Guide Requirements

  • VPS with at least 1GB Ram, 20GB Disk Space and Ubuntu Server 14.04 x64
  • Putty
  • WinSCP
  • Very basic knowledge of Linux

If you are setting up a bitcoin pool, you will need more then 20GB of disk space because the blockchain is very large.

I am using a Windows 10 based PC, and communicate with the VPS using Putty and WinSCP.

This guide will probably take you a long time, especially if you are new to Linux. I highly suggest you be patient, and take it one step at a time.

This guide is meant for novices. If you are already an experienced systems administrator then head on over to the uNomp Github and follow their directions.

A lot of these commands will seem very redundant, especially all the blank “cd” commands. Since everything is split up into different sections, sometimes readers can loose track easily. Blank “cd” commands can put them on track and get them into the right directory.

I will be using Litecoin (scrypt), I will not be going into specific of how to host something like dash (x11) or other algorithms. After you understand the basic concept of how uNOMP works, you will later realize it is not hard to change algorithms.

If you have the ability to snapshot your VPS, then I suggest you do that every time you complete a step. It will save you a lot of time if you make a mistake.

All shell commands will be surrounded with a code box like this:

shell command

Information I want you to insert into a file, or somewhere else will be surrounded with a block quote box like this:

info for a file


VPS Setup

At this point you should have your VPS started, putty up and running and your logged in as root.

Let’s go ahead and setup the VPS before we get into the meat and potatoes.


Update Ubuntu

apt-get update
apt-get dist-upgrade


Setup Swap

By default there is no swap setup on my VPS, it is required especially on a system with limited memory. I am setting up a 4GB swap, which is the most common swap size used for a VPS.

dd if=/dev/zero of=/mnt/myswap.swap bs=1M count=4000
mkswap /mnt/myswap.swap
swapon /mnt/myswap.swap

Now let’s add it into fstab so it will activate at boot.

nano /etc/fstab

Add the following line at the end of the file.

/mnt/myswap.swap none swap sw 0 0

Should look something like this:


Ctrl+O to save, and Ctrl+X to exit the nano editor.

Now your swap is setup, you can modify the size in the future if you need more or less.


Install Required Packages

apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev
apt-get install libboost-all-dev git npm nodejs nodejs-legacy libminiupnpc-dev redis-server
add-apt-repository ppa:bitcoin/bitcoin
apt-get update
apt-get install libdb4.8-dev libdb4.8++-dev
curl | sh
source ~/.profile
nvm install 0.10.25
nvm use 0.10.25

All required packages are installed, we may have to hit a few more later but for right now you are good.


User Setup

You never run things like your coin daemon (wallet), or other things as root!

Let’s create a user for your mining pool.

As root type:

adduser usernameyourwant

Use whatever username you want, I will be using “poolguide” for this guide just because it is simple.
Do not use the sample username I use, think of your own for security purposes.
You will be prompted for a password, please use a password that is different from your root password.
The other info it asks for you can either fill out or just leave blank and hit enter.

Now let us give that new user sudo access:

adduser usernameyousetup sudo



A lot has been done to the VPS. Let us go ahead and reboot it as a good, safe practice.


That is it for the VPS setup, let’s move on.


Litecoin Daemon Setup (Wallet)

Now let’s setup the coin daemon, I will be using Litecoin.

Boot up putty and login to that new user we setup earlier.

git clone

Now let’s compile litecoin.

cd litecoin
sudo ./
sudo ./configure
sudo make
sudo make install

The compile process will take a long time, especially if you have a small VPS with only 1 or 2 vCores. Once you do the command “sudo make” I highly suggest you take a break or whatever it is you need to do, because it will be a moment until you are ready to do the next command.

Now let’s go ahead and run litecoind (the daemon) so it will create the .litecoin directory in your users home dir.

cd src

You will get a message stating there is no configuration file, and they suggest such and such rpc user/pass. We are getting to that.

Now we need to setup the config file for the litecoind.

I am going to start using WinSCP to edit/add files, yes you can use nano, gedit, vim, or whatever shell based text editor you want instead. However, when a novice starts editing as many files as we are about to edit it will be easier for them if they use graphic interface for all of it. It will also help a novice understand the file structure better.

You can get WinSCP here:

I will walk you through WinSCP with this litecoind config file, but after that you should be able to use it easily if I just list out what directory you need to go to. You will see here shortly.

Once you install WinSCP, you should be prompted with a login screen.

  • Select “New Site”
  • “File Protocol” will be SFTP
  • “Hostname:” is your VPS IP
  • “Port number” is your ssh port that you have been using with putty
  • “User name:” will be root
  • “Password:” is your root password

Fill all that out and it should look like this (with your server info in there):

Click login, make sure to accept the host key.

Now that you have logged in, you are in the /root folder. Double click the “..” to back out of it.

The file path is /home/username/.litecoin

  • Click on the “home” folder.
  • Click on the folder that is named after your username.
  • Click on “.litecoin” it will be grayed out like such:


  • Right click on the white area in WinSCP and Go to “New” and “File”. Should look like this:


  • Name the file “litecoin.conf”

A white text editor window should pop up, this is WinSCP’s internal editor and what we will be using to edit files. Now we’ll want to put some basic stuff into the configuration file. You should definitely use a different username and password then that I use in the guide. I am just using the ones that litecoind generated for me already.

rpcpassword= wdYMsDT4E61jCv8xx6zZd6PYF3iZkjD7t3NpuiGpn6X

I understand that some of these .conf settings are redundant for litecoin, however in the past I have ran into certain crypto-currencies that did not allow localhost to connect, etc… Just thought this was the best overall config for a multitude of scrypt coins since the users following this guide are probably not setting up a litecoin pool. I also changed the rpcport, which is just a simple security measure I like to take.

If you are setting this up for a PoS (Proof of Stake) currency ensure that you put “staking=0” into the config otherwise your miners may not be able to withdraw their matured coins if they start staking.

The default listen port for litecoin is 9333.

Now that you have updated the litecoin.conf file, go ahead and click on the floppy disk icon in the top left of the WinSCP Editor.


Now that we have setup and saved the config file, let’s get back into ssh (putty) on your user that you created earlier.

cd litecoin/src

You should get a message that states “Litecoin server starting” if for some reason you can’t get out of that command simply press Ctrl+C in putty and it’ll fix it.

Now let’s make sure it’s updating.

./litecoin-cli getinfo

You should see a bunch of info that looks like this:

Run that getinfo command several times, and you should see the “blocks” number updating everytime you run that getinfo command.

The wallet should be fully updated by the time this guide is over, however if you are quick or unsure simply run the getinfo command again and compare the block number to if the block number matches what’s on that site then you are good to go.

Now let us set the crontab so that the litecoin daemon (litecoind) will always start on boot.

  • crontab -e
  • Select “2. /bin/nano <—- easiest”
  • Use your arrow keys to scroll down to the bottom of the crontab.
  • Add this line below the # symbols.

@reboot ./litecoin/src/litecoind

  • Should look something like this:


  • Press Ctrl + O to save and Ctrl + X to exit

The Litecoin daemon will now start on boot.

Last thing we need to do is get a new address for our litecoin wallet.

./litecoin-cli getnewaddress

An address will show up, please keep record of this address. We will be using it later in the guide.


Mining Pool Setup

Now we are at the part you have been waiting for, actually setting up the mining pool. As mentioned earlier we will be using uNOMP for this. uNOMP already has the stratum server, webpage, payout system, and much more built into it.

You should have Putty and WinSCP up and running, you are logged in as your new username on Putty and root on WinSCP.

Download and Update uNOMP

git clone unomp
cd unomp
sudo npm update

Main Configuration

cd unomp
cp config.json.example config.json

Now let’s open up WinSCP.

  • Navigate to /home/username/unomp
  • Right click on config.json and select edit
  • Find “website”:
  • Underneath website, find “host”: and change the “”, to your VPS IP
  • Save It!

Here is a picture example, what I had you change is highlighted in yellow. I used a fake IP but please use your actual IP.


The rest of the default settings in the config.json will work, however it is recommended you open it up on WinSCP after this guide is over and change things like your site title, admin password, stratum host, etc… For right now we will be using the default config settings to make the guide easier to follow.

Pool Configuration

Your asking, what do you mean by pool configuration? I thought we were doing that! Well yes, you are. However, the way the uNOMP works you can have multiple pools running on one instance. For this pool configuration portion of the guide you will be setting up the Litecoin pool. So if you want another pool for your currency of choice in the future, you can add another pool config into the pool_configs folder and you will have another pool running for a different currency (as long as you setup the coin daemon, make sure the coin.json is in unomp/coins/ and the settings are correct in the pool config).

cd unomp/pool_configs
cp litecoin.json.example litecoin.json

Now let’s open up WinSCP.

  • Navigate to /home/username/unomp/pool_configs
  • Right click on litecoin.json and select edit
  • Find “enabled” and change it to true,
  • Find “auxes”: and delete everything inbetween the [  ], if you do not understand there will be pictures below.
  • Find “address”: and place that address we saved earlier from the litecoin daemon setup.
  • Find “paymentInterval”: and change it to 30,
  • Find “minimumPayment”: and change it to 0.01,
  • Find “daemon”: and underneath it find “port”: and change it to the user from your litecoin.conf (see litecoin daemon setup)
  • Find “user”: and change it to the password from your litecoin.conf (see litecoin daemon setup)
  • Find “password”: and change it to the password from your litecoin.conf (see litecoin daemon setup)
  • Scroll down to “daemons”: after ports and configure your litecoin daemon (same info as the past 3 steps)
  • Save It!

Here are picture examples, everything I had you change is highlighted in yellow.




Start your Mining Pool

Now it’s time to start everything up, fingers crossed!

cd unomp
sudo node init.js

You should see something like this:


If you see something like the picture above, congratulations you configured everything correctly. If you got an error somewhere, the first thing I suggest is while in the unomp directory, do a quick “sudo npm update” then try again. If it does not work, then read through the guide again and try to spot any mistakes. If that does not work, then use a search engine to lookup your error. Odds are there is a solution for it on github or somewhere else.

Now let’s see if your webpage is working, use your web browser and go to http://yourvpsip

You should see something like this:


Now fire up your miner, I am not going to go into specifics about setting up cgminer or what have you. If you don’t know how to setup a miner, you probably should of researched that long before you attempted to setup your own pool.

Details for your miner:

-u ltcpayoutaddress
-p anything

Open up SSH Terminal (Putty) that you used the command “sudo node init.js” in. You should see that your LTC address was authorized, should look something like this:


Overtime you will see accepted shares. You can also look at the statistics on your uNOMP webpage.

Now that you verified everything is working, go ahead and open up the Putty window again and “Ctrl + C” to stop the pool for the time being.


Install Forever

Forever will make it so you can start a nodejs application (unomp for instance) and close your SSH client (Putty) and it will still remain running.

cd unomp
sudo npm install forever -g

Forever is now installed, now let’s run your pool.

sudo forever start init.js

You can now close out of Putty and your pool will keep on running.

You may want to read up on forever on their github page, You can use forever to log all outputs of uNOMP, which will make life much easier if you run into an issue later on. You can simply read the logs and find the error.

If you want to stop uNOMP, simply go to the unomp directory again as your user and type:

sudo forever stop init.js




Congratulations if you completed this guide successfully, it is not an easy task especially if you are a novice with mining pools and linux. Remember that the best way to learn something is just to mess with it, and see what you can do. Push your mining pool to it’s limits, edit the software, mess with the database, etc… These things will make you more knowledgeable. I did not get to where I am at from simply following guides.

You can edit the actual uNOMP website by going to /unomp/website/. If you have a basic knowledge of HTML you should have no issues, the website is still in early development. Please remember that this guide has not gone over the security aspect whatsoever. You need to secure your VPS! There is plenty of guides about this on the internet.

If you have any issues, please review the guide again and make sure you have not missed anything before you start asking questions. It is a huge guide and you can easily miss a step. Also, search engines are your friend.

I get asked a lot about what sort of server power is required to run a mining pool. Based off of the scrypt algorithm, you want about at least 1 CPU Core and 1GB of Memory per 1 GH/s to be on the safe side. This is not including at least 1 CPU Core and 1GB minimum to run your frontend (website), which will also fluctuate depending on the amount of traffic. Internet connection wise, you want at least a 10Mbps port. Most VPS or Servers that you can rent usually have at least a 100Mbps port now-a-days. I would highly recommend SSD drives, especially if you plan on going over 1 GH/s on your pool. Mining pools love to use a lot of IOPS.

I would like to thank the developers that made  uNOMP. I had to cross-reference their guides multiple times to make this one. Please check them out on Github, and donate to them if you are using their software.
uNOMP Github

You are free to use my guide whichever way you want, just please give credit to my site BlockGen.

Zach A.

Mining Pool Operator & Mining Enthusiast. Jack of All Trades, Master of None.


  1. Imran   •  

    great article! But I still have the question others how can I add a complete nee coin that is not listed under coins config folder? Or is it not possible? I understand it can’t come with all the coins of the world, but someone with some programming and shell scripting skills can configure it support a coin and algorithm ?

  2. Cédric Dufour   •  

    when running “./” I get the followin error “configure: error: libevent not found.” what can I do about this?

    • Cédric Dufour   •  

      that’s after ./configure not ./

    • Cédric Dufour   •  

      sudo apt-get install libevent-dev

      this command fixed the problem for me. Just adding the solution just in case someone else would encounter the same problem

  3. soundsticks   •  

    The uNOMP development stopped and is now unsupported. What other script can recommend?

    • Sam Derek   •  

      What does that mean? Does the unomp files on the above guide not work anymore?

  4. Gregory   •  

    Hi Zach,

    Need some help. Trying tp setup multipool, litecoin, BTC. Run into this error:

    [2017-10-10 14:27:52.547] [ERROR] [default] – Payments bitcoin Error with payment processing daemon {“type”:”offline”,”message”:”connect ECONNREFUSED”}
    [2017-10-10 14:27:52.547] [INFO] [default] – POSIX Not Installed
    [2017-10-10 14:27:52.548] [INFO] [default] – Run Workers
    [2017-10-10 14:27:52.594] [DEBUG] [default] – Website Server Website started on
    [2017-10-10 14:27:52.637] [ERROR] [default] – Website bitcoin Could not dumpprivkey for bitcoin {“type”:”offline”,”message”:”connect ECONNREFUSED”}
    [2017-10-10 14:27:52.800] [ERROR] [default] – Payments litecoin Unauthorized RPC access – invalid RPC username or password
    [2017-10-10 14:27:52.800] [ERROR] [default] – Payments litecoin Unauthorized RPC access – invalid RPC username or password

    Any help much appreciated. TIA

    • Zach A.   •     Author

      Error is “Payments litecoin Unauthorized RPC access – invalid RPC username or password”, meaning that the RPC credentials are wrong. Check your config files on both the coin daemon and pool (pool_configs directory).

      • Gregory   •  

        Thanks Zach A. The setup ran fine again, but stumble into another roadblock, port 3008, 3032 and 3256 is not opened anywhere on the server. There’s no iptables or ipchains blocking any port. Other ports are opened 80, 8081, 2300, 9333 etc. Can you point as to where is the config files that I need to troubleshoot.

        Thanks again Zach A.

        • Zach A.   •     Author

          Ubuntu has UFW installed by default, which can overwrite any iptables rule you implement by hand. You can either disable UFW and set your own iptables rules or just use UFW as intended (which I recommend). Port 2300 should not be open to the public. If the firewall supports Stateful Packet Inspection then you shouldn’t need to have port 9333 open either.

          You’d check those stratum ports in the configs located in pool_configs directory.

          Your issue sounds like a firewall or operating system based issue, and there is a plethora of resources online that can address this. Out of scope of this article, so really can’t do much else for you until you troubleshoot it.

          • Gregory   •  

            Thanks again Zach. Found out ufw is disabled, so it’s not firewall issue:

            [email protected]:~# sudo ufw status verbose
            Status: inactive

            The pool is having problem when I looked into the log:

            [39mPool bitcoin Thread 4 Could not start pool, error with init batch RPC call: {“type”:”offline”,”message”:”connect ECONNREFUSED”}
            [36m[2017-10-12 11:41:30.751] [DEBUG] [default] – [39mPool bitcoin Thread 4 Share processing setup with redis (
            [36m[2017-10-12 11:41:39.054] [DEBUG] [default] -[39mMaster CLI CLI listening on port 17117
            [32m[2017-10-12 11:41:39.986] [INFO] [default] -[39mNew Relic
            [32m[2017-10-12 11:41:39.989] [INFO] [default] -[39mPOSIX Not Installed[32m[2017-10-12 11:41:39.989] [INFO] [default] -[39mRun Workers
            [31m[2017-10-12 11:41:39.998] [ERROR] [default] -[39mPayments bitcoin Error with payment processing daemon {“type”:”offline”,”message”:”connect ECONNREFUSED”}
            [32m[2017-10-12 11:41:40.225] [INFO] [default] -[39mNew Relic
            [32m[2017-10-12 11:41:40.233] [INFO] [default] -[39mPOSIX Not Installed
            [32m[2017-10-12 11:41:40.234] [INFO] [default] -[39mRun Workers
            [36m[2017-10-12 11:41:40.344] [DEBUG] [default] -[39mWebsite Server Website started on
            [31m[2017-10-12 11:41:40.448] [ERROR] [default] -[39mWebsite bitcoin Could not dumpprivkey for bitcoin {“type”:”offline”,”message”:”connect ECONNREFUSED”}
            maybe a problem with the bitcoin daemon config. Will update if I find the solution.. If you have any hints, much appreciated.

  5. Buckey   •  

    Which version of Ubuntu do you recommend?

    • Zach A.   •     Author

      The guide calls for Ubuntu 14.04 LTS, but I have ran uNOMP on 16.04 LTS with no issues. It could work on another version, but I have no clue. Generally speaking, it’s good to use an LTS release.

  6. Sam Derek   •  

    Great article Zach. I’m relatively new to this, and yet I’ve used your guide from the beginning and I can say its effective so far. I’m in the last process of setting up a mining pool. When I run

    sudo node init.js

    It gives me the following error:

    throw er; // Unhandled ‘error’ event
    Error: bind EADDRNOTAVAIL
    at errnoException (net.js:901:11)
    at net.js:1069:30
    at Object.3:1 (cluster.js:592:5)
    at handleResponse (cluster.js:171:41)
    at respond (cluster.js:192:5)
    at handleMessage (cluster.js:202:5)
    at process.EventEmitter.emit (events.js:117:20)
    at handleMessage (child_process.js:318:10)
    at (child_process.js:345:11)
    [2017-10-08 08:17:23.904] [ERROR] [default] – Master Website Website process died, spawning replacement…

    It says master website died, spawning replacement and keeps on loading again and again. What did I do wrong?

    • Zach A.   •     Author

      This is your issue “bind EADDRNOTAVAIL”

      Check the config.json in the main unomp directory and go to website and check what the IP is for “host”. By default it should be meaning it would bind to every interface available. Also change the port setting to “8081” as Ubuntu is restrictive when it comes to binding to port 80.

      If you have another instance of uNOMP running already it would cause this issue as well.

      If you are trying to set it to a specific IP, then you would have to make sure that it’s actually available to your operating system by typing “ifconfig” and seeing what is available.

      Could also be a firewall issue, but that is above and beyond the scope of this article and I can’t really assist you with that as there are too many variables.

      • Sam Derek   •  

        I change the host to and the port. It gave me this:

        [email protected]-31-42-237:~/unomp$ sudo node init.js
        [sudo] password for minerxx01:
        [2017-10-08 16:24:40.197] [INFO] [default] – New Relic
        [2017-10-08 16:24:40.199] [DEBUG] [default] – NewRelic Monitor New Relic initiated
        [2017-10-08 16:2jh4:40.201] [INFO] [default] – POSIX Not Installed
        [2017-10-08 16:24:40.201] [DEBUG] [default] – POSIX Connection Limit (Safe to ignore) POSIX module not installed and resource (connection) limit was not raised
        [2017-10-08 16:24:40.201] [INFO] [default] – [39mRun Workers
        [2017-10-08 16:24:40.458] [DEBUG] [default] – Master PoolSpawner Spawned 1 pool(s) on 1 thread(s)
        [2017-10-08 16:24:40.852] [INFO] [default] – New Relic
        [2017-10-08 16:24:40.856] [INFO] [default] – POSIX Not Installed
        [2017-10-08 16:24:40.856] [INFO] [default] – Run Workers
        [2017-10-08 16:24:40.865] [INFO] [default] – Switching Setup Thread 1 Loading last proxy state from redis
        [2017-10-08 16:24:40.873] [DEBUG] [default] – Pool litecoin Thread 1 Could not start pool, error with init batch RPC call: {“type”:”offline”,”message”:”connect ECONNREFUSED”}
        [2017-10-08 16:24:40.d875] [DEBUG] [default] – Pool litecoin Thread 1 Share processing setup with redis ([2017-10-08 16:24:50.212] [DEBUG] [default] – Master CLI CLI listening on port 17117
        [2017-10-08 16:24:51.031] [INFO] [default] – New Relic
        [2017-10-08 16:24:51.032] [INFO] [default] – New Relic
        [2017-10-08 16:24:51.038] [INFO] [default] – POSIX Not Installed
        [2017-10-08 16:24:51.039] [INFO] [default] – Run Workers
        [2017-10-08 16:24:51.038] [INFO] [default] – POSIX Not Installed
        [2017-10-08 16:24:51.039] [INFO] [default] – Run Workers
        [2017-10-08 16:24:51.060] [ERROR] [default] – Payments litecoin Error with payment processing daemon {“type”:”offline”,”message”:”connect ECONNREFUSED”}
        [2017-10-08 16:24:51.100] [DEBUG] [default] – Website Server Website started on
        [2017-10-08 16:24:51.142] [ERROR] [default] – Website litecoin Could not dumpprivkey for litecoin {“type”:”offline”,”message”:”connect ECONNREFUSED”}

        • Zach A.   •     Author

          All that is stating is that uNOMP cannot connect to the litecoin daemon. Check all your configs (litecoin.json in uNOMP and litecoin.conf in .litecoin).

          I noticed your using AWS judging by that hostname. If you happen to be locating the daemon on another EC2 instance, you need to make sure your in the same VPC. If your doing everything on the same machine then disregard.

  7. Sam Derek   •  

    Hi zack,

    I tried to create .litecoin directory by revoking the command ./litecoind

    However, nothing happens: just blank. I’ve to press CTRL C, neither does it create the .litecoin directory

    • Sam Derek   •  


      I got the problem. ./litecoin directory was formed, but didn’t show up in winscp. So, I typed the folder address (in winscp):

      It was there the whole time. It took me 2 days to figure out!

      • Zach A.   •     Author

        There is also a setting in WinSCP to show hidden files/folders, for future reference.

        • Sam Derek   •  

          Dully noted

  8. Vu   •  

    Do you have installation service? I want to set up my own pool. But knowledge is a limitation. Thank you

  9. Sero   •  

    Hello if i make ( node init.js or sudo node init.js) i get this

    return process.dlopen(module, path._makeLong(filename));

    Error: Module did not self-register.
    at Error (native)
    at Object.Module._extensions..node (module.js:435:18)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at new require (internal/module.js:12:17)
    at Object. (/root/unomp/node_modules/bignum/index.js:4:14)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)

    could some one Help pleas?

    • Zach A.   •     Author

      Ensure that you are on the correct version of node.js (0.10.25), to do so type “node -v”. If not then type “nvm install 0.10.25”. Clone a new uNOMP directory and try running the npm update/install commands and starting it. While I can’t say this will work for everyone, a majority of the time I have witnessed people attempting to use a later version of node.js which is not compatible with several of uNOMP’s modules listed in the package.json.

    • Waesk   •  

      Hi Sero,

      Did you manage to fix this error?

      I am at the exact same point as you and am getting the same error.

      I have 0.10.25 running.


  10. Gà Rừng   •  

    next: sudo ./configure
    –> configure: error: libdb_cxx headers missing, Litecoin Core requires this library for wallet functionality (–disable-wallet to disable wallet functionality)
    next: sudo make
    –> make: *** No targets specified and no makefile found. Stop.

  11. Juan   •  

    hi, who i can use m7m algo?

    • Zach A.   •     Author

      The node-multihashing module that uNOMP interfaces with does not support m7m.

  12. sachin verma   •  

    hi Zach

    I have created my mining pool from this article and all is good but the problem is my payout is not showing in wallet balance. since 5 days i am just running my miner in a hope that my balance will update . but it is not updating on my admin panel but on the other hand i have created one user account too . on user account balance is updating.

    i am mining with a scrypt miner .

    i dont know weather the block is found or not.

    is this pool works on solo mining pool or something else?

    my wallet is synced ok.
    cron job is ok
    stratum is working fine.

    now can you please tel me who i can see balance and when the balance will update?

    Best Regards


    • Zach A.   •     Author

      Check litecoind’s default wallet for any transactions. If you found a block it would be in there. “./litecoin-cli listtransactions”. Your balance will not update until you have actually found a block and it has matured (120 confirmations).

      • Sachin verma   •  

        Hi Zack,
        Thanks for your reply,

        Finding a block is based on luck or on some practical calculation?


        • Zach A.   •     Author

          The correct term is variance, although there is no official “pool mining dictionary” so it’s more of a term that I like to use. Some pools like to publish this figure as luck to simplify things for their miners.

          I suggest checking your hashrate against network difficulty. Make sure that it is viable for you to mine on your own pool, assuming that you are solo-mining.

          • Sachin verma   •  


            I have seen lots of pool made on UNOMP .they don’t even have hashpower to find a block but still they are finding . Those pool are made up by people like us . And I have seen them finding blocks even on 1450000 of accepted shares of litecoin. And this pool person had 4 blocks of litecoin on his pool with the Hashrate of 1.25 MH/s.

            I made same pool and my pool has accepted more that 2500000 of litecoin valid shares . But I was not awarded by single Satoshi. And I have 550 mh/s

            What’s is this monopoly?

            Should I say this luck or something else like technique in codings …


      • sachin verma   •  

        [2017-09-27 17:30:32.908] [INFO] [default] – Payments litecoin addressAccount:
        [2017-09-27 17:30:32.908] [INFO] [default] – Payments litecoin
        [2017-09-27 17:30:32.908] [INFO] [default] – Payments litecoin addressAmounts:
        [2017-09-27 17:30:32.908] [INFO] [default] – Payments litecoin {}
        [2017-09-27 17:30:32.908] [DEBUG] [default] – Payments litecoin Finished interval – time spent: 60030ms total, 2ms redis, 8ms daemon RPC
        [2017-09-27 17:30:52.930] [INFO] [default] – Payments litecoin addressAccount:
        [2017-09-27 17:30:52.931] [INFO] [default] – Payments litecoin
        [2017-09-27 17:30:52.931] [INFO] [default] – Payments litecoin addressAmounts:
        [2017-09-27 17:30:52.931] [INFO] [default] – Payments litecoin {}
        [2017-09-27 17:30:52.941] [DEBUG] [default] – Payments litecoin Finished interval – time spent: 60039ms total, 3ms redis, 9ms daemon RPC
        [2017-09-27 17:31:12.938] [INFO] [default] – Payments litecoin addressAccount:
        [2017-09-27 17:31:12.939] [INFO] [default] – Payments litecoin
        [2017-09-27 17:31:12.941] [INFO] [default] – Payments litecoin addressAmounts:
        [2017-09-27 17:31:12.945] [INFO] [default] – Payments litecoin {}
        [2017-09-27 17:31:12.947] [DEBUG] [default] – Payments litecoin Finished interval – time spent: 60037ms total, 2ms redis, 8ms daemon RPC
        [2017-09-27 17:31:13.001] [DEBUG] [default] – Pool litecoin Thread 1 No new blocks for 55 seconds – updating transactions & rebroadcasting work
        [2017-09-27 17:31:32.939] [INFO] [default] – Payments litecoin addressAccount:
        [2017-09-27 17:31:32.943] [INFO] [default] – Payments litecoin
        [2017-09-27 17:31:32.946] [INFO] [default] – Payments litecoin addressAmounts:
        [2017-09-27 17:31:32.947] [INFO] [default] – Payments litecoin {}
        [2017-09-27 17:31:32.947] [DEBUG] [default] – Payments litecoin Finished interval – time spent: 60037ms total, 3ms redis, 3ms daemon RPC
        [2017-09-27 17:31:40.941] [DEBUG] [default] – Pool litecoin Thread 1 Share accepted at diff 32/115.14525427 by Lfsb2QHcHeeVroQVY9Kg7V9oFhRhEx4pwR []
        [2017-09-27 17:31:52.947] [INFO] [default] – Payments litecoin addressAccount:
        [2017-09-27 17:31:52.949] [INFO] [default] – Payments litecoin
        [2017-09-27 17:31:52.949] [INFO] [default] – Payments litecoin addressAmounts:
        [2017-09-27 17:31:52.949] [INFO] [default] – Payments litecoin {}
        [2017-09-27 17:31:52.950] [DEBUG] [default] – Payments litecoin Finished interval – time spent: 60021ms total, 11ms redis, 13ms daemon RPC
        [2017-09-27 17:32:08.023] [DEBUG] [default] – Pool litecoin Thread 1 No new blocks for 55 seconds – updating transactions & rebroadcasting work
        [2017-09-27 17:32:12.979] [INFO] [default] – Payments litecoin addressAccount:
        [2017-09-27 17:32:12.980] [INFO] [default] – Payments litecoin

        this is the issue i am facing with . my pool is accepting shares but ADDRESS ACCOUNT & ADDRESS AMOUNT is updating .

        is this any network connectivity issue?

        • Zach A.   •     Author

          uNOMP will not have any coins to process for payment if the pool has not found any blocks recently. It’s not a magic money printing machine.

          Valid Shares ≠ Guaranteed Payment. At least with uNOMP, because it’s a proportional based reward system.

  13. Pingback: Step by step guide on how to setup your own mining pool – Daily Bitcoin News

  14. Ben Miller   •  

    You need to add this as the 3rd required package, or the bitcoin repository will not install:

    apt-get install software-properties-common python-software-properties

  15. Eugene   •  

    For those who have an error sudo make

    Install first: apt-get install libevent-dev
    next: sudo ./configure
    than: sudo make

    • Gà Rừng   •  

      next: sudo ./configure
      –> configure: error: libdb_cxx headers missing, Litecoin Core requires this library for wallet functionality (–disable-wallet to disable wallet functionality)
      next: sudo make
      –> make: *** No targets specified and no makefile found. Stop.

  16. Huynh Nhan   •  

    How about information of worker to connect this pool ? I can’t see it in your instruction.

  17. Huynh Nhan   •  

    How about the information of worker to connect this mining pool ? I can’t find it in your instruction.

  18. Andrew Henson   •  

    Hello, Great document, could you also consider doinh a document on securing the pool server to prevent unauthorised access. Also what measures we can put in place to avoid ddos attacks.
    Finally, trouble shooting issues with the pool. Things are great when they are working, but when the front end states an error the downtime is expensive.



  19. oynak21   •  

    Bropls make me a ethereum mining pool and i will give your my first money that i make

  20. Ian Duncan   •  

    Hello When get to this point,

    Now let’s compile litecoin.

    cd litecoin
    sudo ./
    sudo ./configure
    sudo make <————————-
    sudo make install

    i get the following:

    make: *** No targets specified and no makefile found. Stop.

    why is that?

    • leon   •  

      Type this first :

      Install first: apt-get install libevent-dev

      Than “sudo make”

      • leon   •  

        apt-get install libevent-dev <– so this command first

  21. Jesus   •  

    Hello Zach.
    I followed the guide and it seems that everything works fine, (I have not tried the miner), in Kubuntu 14.04 in VirtualBox machine.
    The currency and pool settings seem to be clear, but how do I install the keccak core (for example)?

    I’m very interested in Yiimp, I tried to install it but it never worked for me … do you know any tutorial or do you plan to make one?

    Thank you very much for sharing your knowledge.

  22. Max   •  

    Hello Zach.

    I’ve been able to get most of the tutorial in. I’m having trouble with the wallet. 9333 you say is a requirement but I’m having issues with my wallet getting updated from work I do (300,000,000 shares). Where do we set this? Telnet shows this port is open; I assume it’s set in the litecoin daemon possibly hardcoded.

    With the MPOS up are you sure we want to set paymentProcessing to false? Was unsure on it. Ok.


    Max Rupplin

  23. doraemon   •  

    Hello Zach,
    Thanks for good useful articles.
    I have a plan to build a pool server which could be connected at least more than 30 ASIC machines.
    So I have a few questions.
    How many ASIC machines could be connected this UNOMP pool server ?
    Q2. How spec is needed for pool server machine ?
    I prepared for a machine for this purpose.
    This spec is
    CPU:2*SixCore Xeon X5650 @2.66GHz
    Is this machine spec enough for this purpose?
    Please answer this questions.

  24. Dave   •  

    Hello Zach,

    Thanks for this great tutorial. I haven’t been able to get it runing successfully unfortunately. Do you offer consultation to setup a pool? I have a vultr account, and would like to mine an x-11 coin. thanks,Dave

  25. Bobby   •  

    Hey Zach, I need help with the getnewaddress

    Im making a pool for a coin called electro.
    When I do the command getnewaddress
    ./electro-cli getnewaddress
    It says there is no such folder.
    Can you please Help?

    • Zach A.   •     Author

      Make sure you are in the correct directory. I also have no experience with that specific coin your trying to setup, so make sure to follow up with their documentation as well.

  26. john smith   •  

    when i run:
    sudo ./

    then eror:
    Can’t exec “aclocal”: No such file or directory at /usr/share/autoconf/Autom4te/ line 326.
    autoreconf: failed to run aclocal: No such file or directory

    • Xenu   •  

      sudo apt-get install automake
      sudo apt-get install autoconf

    • Zach A.   •     Author

      You can also download pre-built litecoind from if you don’t want to go through the hassle of building it yourself from the source.

  27. Shobi   •  

    Is there a scryp multi pool guide?

  28. liu   •  

    First of all very grateful, I use your guide to build a successful pool, but the operation I found a lot of coins are the following problems:
    “Payments obamacare Not enough funds to cover the tx fees for sending out payments, decreasing rewards by 10.999999999999998% and retrying”

    The effect is that coins are not enough to pay. I think it is not the reason for the fee, because the gap is ten times huge, to several times, and will be dug before but has stopped mining address continue to pay coins.
    There are a lot of coins that have the same problem. Do I have a problem with the setting of a place?

    • Zach A.   •     Author

      The pool wallet needs some extra funds in it for transaction fees. I suggest sending some coins directly to your pool wallet to cover these transaction fees. You shouldn’t need to send a lot, as most altcoin transaction fees are rather low.

  29. makkotech   •  

    Woooww this guide is awesome, I believe this is the best compilation on the internet about how to create your own pool. Congrats

    Ok, I have a couple questions, I have my own bitcoin full node working properly, I follow all your instructions using bitcoin.

    My first question:
    1- I have the same user and pssw configuration inside of my bitcoin.conf and bitconf.json files but every time that I run the init.js i receive this message:

    :~/unomp# node init.js
    [2017-05-25 19:44:12.952] [INFO] [default] – New Relic
    [2017-05-25 19:44:12.955] [DEBUG] [default] – NewRelic Monitor New Relic initiated
    [2017-05-25 19:44:12.957] [INFO] [default] – POSIX Not Installed
    [2017-05-25 19:44:12.957] [DEBUG] [default] – POSIX Connection Limit (Safe to ignore) POSIX module not installed and resource (connection) limit was not raised
    [2017-05-25 19:44:12.958] [INFO] [default] – Run Workers
    [2017-05-25 19:44:13.219] [DEBUG] [default] – Master PoolSpawner Spawned 1 pool(s) on 1 thread(s)
    [2017-05-25 19:44:13.902] [INFO] [default] – New Relic
    [2017-05-25 19:44:13.907] [INFO] [default] – POSIX Not Installed
    [2017-05-25 19:44:13.908] [INFO] [default] – Run Workers
    [2017-05-25 19:44:13.921] [INFO] [default] – Switching Setup Thread 1 Loading last proxy state from redis
    [2017-05-25 19:44:13.933] [DEBUG] [default] – Pool bitcoin Thread 1 Share processing setup with redis (
    [2017-05-25 19:44:14.179] [DEBUG] [default] – Pool bitcoin Thread 1 Unauthorized RPC access – invalid RPC username or password
    [2017-05-25 19:44:22.973] [DEBUG] [default] – Master CLI CLI listening on port 17117
    [2017-05-25 19:44:24.396] [INFO] [default] – New Relic
    [2017-05-25 19:44:24.404] [INFO] [default] – POSIX Not Installed
    [2017-05-25 19:44:24.405] [INFO] [default] – Run Workers
    [2017-05-25 19:44:24.411] [INFO] [default] – New Relic
    [2017-05-25 19:44:24.420] [INFO] [default] – POSIX Not Installed
    [2017-05-25 19:44:24.421] [INFO] [default] – Run Workers
    [2017-05-25 19:44:24.489] [DEBUG] [default] – Website Server Website started on
    [2017-05-25 19:44:24.700] [ERROR] [default] – Payments bitcoin Unauthorized RPC access – invalid RPC username or password
    [2017-05-25 19:44:24.702] [ERROR] [default] – Payments bitcoin Unauthorized RPC access – invalid RPC username or password
    [2017-05-25 19:44:24.785] [ERROR] [default] – Website bitcoin Unauthorized RPC access – invalid RPC username or password

    My second question:
    2- Should I change inside the bitcoin.conf file the “rewardRecipients” address by default and use mine ???

    I am running all this on VPS ubuntu 16.04 it’s Awesome, almost there almost there, my miners are starving for work, can you help me with this last step. thank you in advance.

    • Sam Derek   •  

      good question on number 2: shall we change the “rewardRecipients” address to our own address (in the litecoin.conf file or bitcoin.conf file, if your mining bitcoins? because it seems like if we get a block of reward, it’s going to a different address.

      • Zach A.   •     Author

        The rewardRecipients is the address and where the pool fee goes and percentage. Yes, you would want to change it to your own.

        The block reward itself goes to the pool’s wallet. Which is located in the same .litecoin directory listed in this guide.

  30. Niels   •  

    Help me! I don’t get the “Litecoin server started” piece of text when starting litecoin and when I use litecoin getinfo i a “Server not found” kind of error.

    • Niels   •  

      * I get a “Server not found” kind of error.

  31. bjarne   •  

    I am trying to use the updated blockgen-multi-hashing module on Ubuntu 17.04 with node.js version 6.9.4 installed using nvm. The module seems to crash right after hashing.
    I am using this script for testing:

    var multiHashing = require(‘blockgen-multi-hashing’);
    console.log(multiHashing.c11(new Buffer(20)));

    Here is the log of the error:

    (I also get the error when using UNOMP).

    • Max   •  

      I believe you would post your versions of:


      There is a big pitfall in the nvm –> node and many will find this error or something similar. I’m led to believe this will be a version compatibility issue.

  32. ola   •  

    [2017-04-19 11:38:35.935] [DEBUG] [default] – Pool litecoin Thread 1 could not update auxillary chains: [object Object]

    Hi , find your tutorial very nice and thanks for writing and posting it , I have followed the post to the letter
    until it worked , let it running over night and I start getting this errors the site is working (not really updating)
    I tiried sudo update in the unomp directory and ran sudo node init.js and this keep happening and help please

    var pos = util.getAuxMerklePosition(auxData[i].chainid, size);
    TypeError: Cannot read property ‘chainid’ of undefined
    at buildMerkleTree (/home/coinboner/unomp/node_modules/merged-pooler/lib/jobManager.js:122:63)
    at JobManager.processTemplate (/home/coinboner/unomp/node_modules/merged-pooler/lib/jobManager.js:186:29)
    at /home/coinboner/unomp/node_modules/merged-pooler/lib/pool.js:722:69
    at itemFinished (/home/coinboner/unomp/node_modules/merged-pooler/lib/daemon.js:156:36)
    at /home/coinboner/unomp/node_modules/merged-pooler/lib/daemon.js:169:17
    at parseJson (/home/coinboner/unomp/node_modules/merged-pooler/lib/daemon.js:85:17)
    at IncomingMessage. (/home/coinboner/unomp/node_modules/merged-pooler/lib/daemon.js:95:17)
    at IncomingMessage.EventEmitter.emit (events.js:117:20)
    at _stream_readable.js:920:16
    at process._tickCallback (node.js:415:13)

  33. yogg   •  

    Hello Zach,
    Many thanks for the great guide ! I got my first pool running thanks to you. 🙂

    Can you tell me if NIST5 is supported by uNOMP ?
    I tried to setup a pool for some NIST5 coin, but seems like the miner can’t mine..

    Also, I have found this :

    This says it supports merged-mining, and a lot of coin algorithms, but I don’t see it mentioned in your guide. What would be the steps to replace the current stratum server with this one in a pool build exactly by your guide ?

    Many thanks for your time !

      • Jahanzaib Khan   •  

        Hello @Zach A, I will give you a small donation please can you give me all commands for Ubuntu 16-04. I am getting many errors on npm update. Please donation will be for your hardwork done already.

  34. Dan   •  

    Can you make any profit from running your own pool? What are the benefits?

  35. dave   •  

    thank working on the first shoot amazing

  36. Mars YWH   •  

    Have any one encount this error message, Pool litecoin Thread 4 Could not parse rpc data from daemon instance 0, after executing “node init.js”

    • Zach A.   •     Author

      uNOMP is not able to communicate with your Litecoin daemon. Check the connection details in the json file for Litecoin under pool_configs.

  37. Andrew Henson   •  

    Security – Can you give some tips / guidance on locking down the pool server to prevent it from being accessed by a third party.

  38. Andrew Henson   •  

    Hello, the example pool link is not working. Can you check and update it please.

    • Bryan   •  

      Theres a hundred and one sites using this script. Just look for UNOMP Pools.

  39. Karizma   •  

    Upon starting NOMp i have 100 % CPU usage. Is there any way to mange the number of the threads for use?
    Thank you

  40. Bryan   •  

    Awesome Awesome Write up! I got through everything using an AWS instance. I am however stuck at one spot and its the very last step.

    sudo node init.js

    I am able to connect to the coin and gives me all the network information. It continues right through the payment addresses.

    Then it throws an error:

    throw er; // Unhandled ‘error’ event
    Error: bind EADDRNOTAVAIL
    at errnoException (net.js:901:11)
    at net.js:1069:30
    at Object.3:1 (cluster.js:592:5)
    at handleResponse (cluster.js:171:41)
    at respond (cluster.js:192:5)
    at handleMessage (cluster.js:202:5)
    at process.EventEmitter.emit (events.js:117:20)
    at handleMessage (child_process.js:318:10)
    at (child_process.js:345:11)

    Any thoughts on this?

    Thank you very much in advance!

    • Bryan   •  

      Oh and I should also mention that from what I’ve looked up, EADDRNOTAVAIL means the port is being used somewhere, However, this is a fresh aws instance. I only have one coin set up and I have tried a couple different ports for this coin. Nothing else is running.


      • Bryan   •  

        Ok – Further investigation.

        I did the following command:
        fuser 9090/tcp

        That gave me the processID:
        9090/tcp: 1048

        After using the command ps -e, I see that the coin is using the process.

        So, Now I am questioning some of the setup for obvious reasons. Above the port is the same in all config files. Is it supposed to be different?

        I’ll continue trying. Just wanted to post my findings incase anyone has any thoughts.

        • Joseph Johnson   •  

          Anyone want to reply about this? i am having this same issue.

          • Sam Derek   •  

            have you guys found the issue? I’m having the same issue

        • Sam Derek   •  

          Have you guys found the solution? because I’m having the same problem.

  41. DoublePlusGood   •  

    Very good guide .. the best I have read

  42. DoublePlusGood   •  

    Best guide I have seen. I had to adapt things, but I spawned a pool. Thanks.

  43. teo   •  

    Hi, zach, I would like to ask you how to use merged mining in unomp, as I believe:

    1. the demons of each scrypt coin must be created with a different port
    2. you must choose a main and a secondary
    3. the configuration must be done in the configuration file of the pool in the directory: cd unomp / pool_configs
    for example:


    As described in the following example ?:

        “Enabled”: false,
        “Coin”: “litecoin.json”,

        “Auxes”: [// Defines auxillery coins
                “Coin”: “lottoshares.json”,
                “Daemons”: [// It is reccomended to supply multiple daemons here for redundancy
                        “Host”: “”,
                        “Port”: 23327,
                        “User”: “lottosharesrpc”,
                        “Password”: “By66dCmyX44uUbA7P3qqXJQeT3Ywd8dZ4dJdfgxCAxbg”
        “Address”: “n4jSe18kZMCdGcZqaYprShXW6EH1wivUK1”,

        “RewardRecipients”: {
            “N37vuNFkXfk15uFnGoVyHZ6PYQxppD3QqK”: 1.5,
            “22851477d63a085dbc2398c8430af1c09e7343f6”: 0.1

        “PaymentProcessing”: {
            “Enabled”: true,
            “PaymentInterval”: 600,
            “MinimumPayment”: 9999999999,
            “Daemon”: {
                “Host”: “”,
                “Port”: 19332,
                “User”: “testuser”,
                “Password”: “testpass”

        “Ports”: {
            “3008”: {
                “Diff”: 8
            “3032”: {
                “Diff”: 32,
                “VarDiff”: {
                    “MinDiff”: 8,
                    “MaxDiff”: 512,
                    “TargetTime”: 15,
                    “RetargetTime”: 90,
                    “VariancePercent”: 30
            “3256”: {
                “Diff”: 256

        “Daemon”: [
                “Host”: “”,
                “Port”: 19332,
                “User”: “testuser”,
                “Password”: “testpass”

        “P2p”: {
            “Enabled”: false,
            “Host”: “”,
            “Port”: 19333,
            “DisableTransactions”: false

        “MposMode”: {
            “Enabled”: false,
            “Host”: “”,
            “Port”: 3306,
            “User”: “me”,
            “Password”: “mypass”,
            “Database”: “ltc”,
            “CheckPassword”: false,
            “AutoCreateWorker”: false


    4. the demon of the second coin must go in auxes? The port should be: 23327? Or can I choose another? I have done the configuration here but I get an error
    When the swimming pool starts

    Cd unomp
    Sudo node init.js

    I get the following:

    [2017-02-13 22: 57: 20.286] [INFO] [default] – POSIX Not Installed
    [2017-02-13 22: 57: 20,287] [INFO] [default] – Run Workers
    [2017-02-13 22: 57: 20.289] [ERROR] [default] – Master PoolSpawner Fork 4 died, spawning replacement worker …
    [2017-02-13 22: 57: 20,304] [INFO] [default] – Switching Setup Thread 4 Loading last proxy state from redis
    [2017-02-13 22: 57: 20.321] [DEBUG] [default] – Pool gamecredits Thread 4 Share processing setup with redis (
    [2017-02-13 22: 57: 20.332] [DEBUG] [default] – Pool gamecredits Thread 4 getauxblock call failed for daemon instance 0 with error {“code”: 32601, “message”: “Method not found”}
    [2017-02-13 22: 57: 20.333] [DEBUG] [default] – Pool gamecredits Thread 4 could not update auxillary chains: [object Object]
    [2017-02-13 22: 57: 20.334] [DEBUG] [default] – Pool gamecredits Thread 4 getauxblock call failed for daemon instance 0 with error {“code”: 32601, “message”: “Method not found”}

                    Var pos = util.getAuxMerklePosition (auxData [i] .chainid, size);
    TypeError: Can not read property ‘chainid’ of undefined
        At buildMerkleTree (/root/unomp/node_modules/merged-pooler/lib/jobManager.js:122:63)
        At JobManager.processTemplate (/root/unomp/node_modules/merged-pooler/lib/jobManager.js:186:29)
        At /root/unomp/node_modules/merged-pooler/lib/pool.js:722:69
        At itemFinished (/root/unomp/node_modules/merged-pooler/lib/daemon.js:156:36)
        At /root/unomp/node_modules/merged-pooler/lib/daemon.js:169:17
        At parseJson (/root/unomp/node_modules/merged-pooler/lib/daemon.js:85:17)
        At IncomingMessage. (/root/unomp/node_modules/merged-pooler/lib/daemon.js:95:17)
        At IncomingMessage.EventEmitter.emit (events.js: 117: 20)
        At _stream_readable.js: 920: 16
        At process._tickCallback (node.js: 415: 13)

    I do not know if I need to configure something else, if I should configure it in:
    / Root / unomp / node_modules / merged-pooler
    the file

    And if you have to configure it as?

    I appreciate your response

  44. Yuki   •  

    On github page of uNOMP project it says: Development stopped and is now unsupported.
    Should I still using this pool software to build my own pool?

  45. Alex Cho   •  

    I got the thing working. Thank you. However, I have a problem with my website. So after putting in my public ip, and starting, it said
    Master Website Website process died, spawning replacement…
    So, I thought that it might be because my isp(Rogers) blocks the port 80. So, I tried with many other ports, and forwarded them to my machine. However, it keeps getting that error, and the only way to fix it is to use a local IP. However, then only the devices connected to my network will be able to see it, and there will be no point of hosting a website that nobody can see. What’s the problem and how can I fix it?

    • Zach Smith   •     Author


      You probably have an issue with the firewall on your home network. There is a plethora of information out there on the topic of router firewalls, and I will not cover it here as it’s way out of scope for this guide. You could also rent a VPS with a reputable provider if you want more reliable access to your pool outside of your home network, I actually wrote a guide on this:

  46. Denys   •  

    Hello, thank you a lot for a nice man
    I have strange issue, maybe you could able to help me?
    I have tun pool, have connect worker to it. but all the time i have
    [2017-02-01 19:37:16.092] [DEBUG] [default] – Pool * Thread 2 Connected timed out for S8XnEF8PxwJ4FjKa35Fa9sEAaxGwFR53iP []: last submitted a share was 610 seconds ago
    [2017-02-01 19:37:16.092] [DEBUG] [default] – Pool * Thread 2 Connected timed out for S8XnEF8PxwJ4FjKa35Fa9sEAaxGwFR53iP []: last submitted a share was 606 seconds ago
    [2017-02-01 19:37:16.096] [DEBUG] [default] – Pool * Thread 1 Authorized S8XnEF8PxwJ4FjKa35Fa9sEAaxGwFR53iP:password []
    [2017-02-01 19:37:16.096] [DEBUG] [default] – Pool * Thread 2 Authorized S8XnEF8PxwJ4FjKa35Fa9sEAaxGwFR53iP:q []

    And on website, i don’t see any workers – just 0
    it is x13 algorithm

    • Zach Smith   •     Author

      You need to increase the connection timeout setting in the config.json

      Your difficulty may also be too high for your hashrate. You may want to use a lower number on the port you are mining on. With X13 I am fairly certain you may need to change the difficulty to something very low like 0.05

  47. akbar   •  

    what is the comman to fix it. thanks my broo

    Fixing libtool for -rpath problems.

    error running sudo ./configure

  48. hp247   •  

    Excellent guide. I do have once confusion though – as a pool operator do I need to run my miner on the VPS or elsewhere? should I need to run any miner at all, assuming I have other users who are mining?

    • Zach Smith   •     Author

      You do not need to have a miner if you are running just a pool, the pool works independently. That being said, it’s sort of useless to have a pool if you are not mining on it. It will not mine any coins sitting idle. Your miner does not have to be in the same location as the pool unless you are keeping everything on your local network.

  49. sumit   •  

    can you you tell me which system it use and how to change it in this guide its not mention

    PPS or PPLNS

    • Zach Smith   •     Author

      uNOMP is proportional. You cannot change the payout method.

  50. Alex Cho   •  

    When I type sudo node init.js I got this:
    throw err;

    Error: Cannot find module ‘merged-pooler’
    at Function.Module._resolveFilename (module.js:326:15)
    at Function.Module._load (module.js:277:25)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object. (/home/alex/unomp/libs/poolWorker.js:1:77)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)

    Which is the same error someone else got. So I check if I was using nvm 0.10.25. I was. But it still showed me the error. What do I do?

    • Zach Smith   •     Author

      Your problem is this “Error: Cannot find module ‘merged-pooler’”

      Seems like when you issued the command “npm update” it did not download that module. You should try running “npm update” once again. Sometimes the public npm registry has intermittent issues and is not able to download all the required modules.

      • Alex Cho   •  

        When I typed sudo npm update, I get this error.

        /usr/include/nodejs/deps/v8/include/v8.h:4349:34: note: no known conversion for argument 1 from ‘v8::Handle(const int&) {aka v8::Local(const int&)}’ to ‘v8::Isolate*’ recipe for target ‘Release/’ failed
        make: *** [Release/] Error 1
        make: Leaving directory ‘/home/alex/unomp/node_modules/unomp-multi-hashing/build’
        gyp ERR! build error
        gyp ERR! stack Error: make failed with exit code: 2
        gyp ERR! stack at ChildProcess.onExit (/usr/share/node-gyp/lib/build.js:269:23)
        gyp ERR! stack at emitTwo (events.js:87:13)
        gyp ERR! stack at ChildProcess.emit (events.js:172:7)
        gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
        gyp ERR! System Linux 4.4.0-31-generic
        gyp ERR! command “/usr/bin/nodejs” “/usr/bin/node-gyp” “rebuild”
        gyp ERR! cwd /home/alex/unomp/node_modules/unomp-multi-hashing
        gyp ERR! node -v v4.2.6
        gyp ERR! node-gyp -v v3.0.3
        gyp ERR! not ok
        [email protected] /home/alex/unomp
        ├── [email protected] extraneous (git://
        └── [email protected] extraneous (git://

        npm ERR! Linux 4.4.0-31-generic
        npm ERR! argv “/usr/bin/nodejs” “/usr/bin/npm” “update”
        npm ERR! node v4.2.6
        npm ERR! npm v3.5.2
        npm ERR! code ELIFECYCLE

        npm ERR! [email protected] install: node-gyp rebuild
        npm ERR! Exit status 1
        npm ERR!
        npm ERR! Failed at the [email protected] install script ‘node-gyp rebuild’.
        npm ERR! Make sure you have the latest version of node.js and npm installed.
        npm ERR! If you do, this is most likely a problem with the unomp-multi-hashing package,
        npm ERR! not with npm itself.
        npm ERR! Tell the author that this fails on your system:
        npm ERR! node-gyp rebuild
        npm ERR! You can get information on how to open an issue for this project with:
        npm ERR! npm bugs unomp-multi-hashing
        npm ERR! Or if that isn’t available, you can get their info via:
        npm ERR! npm owner ls unomp-multi-hashing
        npm ERR! There is likely additional logging output above.

        npm ERR! Please include the following file with any support request:
        npm ERR! /home/alex/unomp/npm-debug.log

        Sorry for the very long error message but that isn’t even the whole error message.

        • Zach Smith   •     Author

          Looks like you are trying to use Node v4.2.6. uNOMP is only compatible with Node.js 0.10.25 unfortunately. You need to delete the node_modules directory, and use NVM (mentioned in the guide) to set the node version to 0.10.25. Then issue npm update and you should get the right modules.

          • kane   •  

            Hey Zach,

            I am having the exact same error as above. I have version 0.10.25 installed and selected. I have done what you have suggested above but still getting same error.

            Do you have any other suggestions.



  51. Alex Cho   •  

    Is it okay to use a virtual machine instead of a VPS?

    • Zach Smith   •     Author

      Yes, it is fine to use your own Virtual Machine instead of a hosted VPS.

  52. Alex Cho   •  

    When I type sudo make or sudo make install, I get this error. “make: *** No target is specified and no makefile found. Stop.”. I made sure I did everything previous to that right. Also, I am not doing this on a VPS, but rather a virtual machine. Does that have to do with anything?

    • Zach Smith   •     Author

      You can download a prebuilt version Litecoin here:




      tar -xzf litecoin*

      cd litecoin*

      cd bin


      After issuing “ls” you will see that litecoind and litecoin-cli are in the bin directory. You can either run the daemon from there, create a symlink somewhere of your choosing or even copy them over to another directory.

      I do need to update the guide regarding this, however some other altcoins still need to be built and do not come in a handy tar.gz file like Bitcoin or Litecoin.

      • seneca   •  

        I’m getting
        @ubuntu-1gb-nyc1-01:~$ tar -xzf litecoin*
        tar (child): litecoin: Cannot read: Is a directory
        tar (child): At beginning of tape, quitting now
        tar (child): Error is not recoverable: exiting now

        gzip: stdin: unexpected end of file
        tar: Child returned status 2
        tar: Error is not recoverable: exiting now

        I’ve tried to use the makefile way as well and I’ve tried to do it with other coins with no success. Advice would be appreciated.

  53. sumit   •  

    Si i get this erorr when i try to pass this command ” sudo node init.js ” do you know what is iisue

    Error: bind EACCES
    at errnoException (net.js:901:11)
    at net.js:1069:30
    at Object.30:1 (cluster.js:592:5)
    at handleResponse (cluster.js:171:41)
    at respond (cluster.js:192:5)
    at handleMessage (cluster.js:202:5)
    at process.EventEmitter.emit (events.js:117:20)
    at processEmit [as emit] (/home/pooladmin/unomp/node_modules/merged-pooler/node_modules/bignum/node_modules/node-pre-gyp/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/index.js:155:32)
    at handleMessage (child_process.js:318:10)
    at (child_process.js:345:11)
    [2017-01-13 15:27:36.461] [ERROR] [default] – Master Website Website process died, spawning replacement…

  54. Jeff Shuffleton   •  

    During the lite coin installation, at the Sudo Make I get the following error “No targets specified and no makefile found” Any thoughts how to get past this?

    • ijduncan   •  

      i have the same issue. Did you find a solution?

      • coinpicker   •  

        you should run make under root directory..

  55. Jeff Shuffleton   •  

    New to this whole thing and loving it! When I get to sudo make I get “no targets specified and no make file found. Stop. ls shows and Thoughts what might cause this?

    • lee   •  

      Stoneboy, near the very beginning of the comments, at the bottom, resolved this and it worked perfectly for me don’t forget to go down to his post and give him a thumbsup :):


      Install first: apt-get install libevent-dev

      Than “sudo make”

      if you on bitcoin source….


  56. ahmad   •  

    i want to instal monero pool can i get the steps to install it

  57. Lee   •  

    “cd src
    You will get a message stating there is no configuration file, and they suggest such and such rpc user/pass.”

    I do not get anything after ./litecoind I don’t even get a cursor. it just hangs up until I hit ctrl-c

    Tried rebooting and starting completely over and still same result.

    Thank you for such an incredibly detailed tutorial. Any suggestions on what I might be doing wrong?

    • Zach Smith   •     Author


      After running litecoind, a directy called .litecoin should of been created in your user’s home directory irregardless if you got that message or not. To see the .litecoin directory, simply input the command “ls -f” while in your user’s home directory.

      • lee   •  

        Thank you for responding Zach, and for devoting your time to teaching others to do something like this.

        I did as you said and it is not there. I am going to start completely from scratch and create a new VM. I will update you if I get the same result. I have no doubt this operator error on my part.

        • Sam Derek   •  

          I had the same problem lee. Do this: after you’ve run ./litecoind (I’m guessing it’s just going to keep running without an output)

          press ctrl c to opt out of the process (Now, when I ran the ./litecoind command, it didn’t create the folder .litecoin. However, it hid it. )
          open winscp
          login to your user
          click the toolbar on top that show your current folder path
          type /yourusername/./litecoin

          The files should appear

          • Sam Derek   •  

            correction /yourusername/.litecoin

      • Lee   •  

        I started over creating a new vm, Ubuntu 14.04 both the desktop and again the server versions. exact same result, after entering ./litecoind nothing happens.
        No directory is created.

        I took 2 pictures, one of the terminal after an ls command showing the litecoind file and the litecoind command. the second pic is of the winscp showing there is no .litecoind directory in my home directory.

        I am using virtual box and Ubuntu 14 on a dell R510 server with 32gb of ram. Is there anything I can try or follow? I really want to learn how to do this. I have 11 antminers from s5’s and up, and 22 computers I would like to get running on my personal pool.

        I can email the pics or upload or anything that would help you help me 🙂

        thanks Zack

        • leon   •  

          i have the same problem .. nothing happens and nothing gets created anywhere

  58. teo   •  

    Hello, again zack, I want to know if one is compatible with the algorithm X13? It would be great to explain how to add other currencies and algorithms that are not supported

    • Zach Smith   •     Author

      X13 is supported by uNOMP. You just need to find a coin in the coins directory that also uses X13 and mimic it, obviously changing the appropriate details.

      Adding new Algorithms requires programming knowledge unfortunately.

  59. teo   •  

    Hi, how about zack will work unomp with Boolberry, is algorithm Actually this is a hybrid keccak (that we called wild keccak)

  60. samar   •  

    how to use this for 3 or 4 coin? can you help me?

    • Zach Smith   •     Author

      Every enabled json file in pool_configs directory will create another pool instance.

  61. teo   •  

    Zack thanks for the guide, I managed to start a pool, but I have a drawback and is that the website, I do not get it to appear with my IP in the browser, how can I do?

    • Zach Smith   •     Author

      There is many reasons for this. If you are using Ubuntu 16.04 for example, it will not let you assign port 80 from a NodeJS app. It is best if you use a nginx reverse proxy to point at uNOMP that is on a different port from 80.

  62. CJ Calhoun   •  

    Zach, could you assist us with Zcash support for UNOMP (not NOMP)? I have UNOMP installed and it works. Tested by using a few coins. We were trying to implement this with Zcash only and experiencing issues such as “Payments zcash Daemon does not own pool address – payment processing can not be done with this daemon, {“isvalid”:false}” and “Website zcash Could not dumpprivkey for zcash {“code”:-3,”message”:”Address does not refer to a key”}”. Not for sure how to continue with this. Please let me know if you are available in some way. Thank you very much.

    • Zach Smith   •     Author

      You need to modify the code of uNOMP to support Zcash unfortunately. The Equihash Algorithm is currently unsupported.

  63. teo   •  

    Hi, you could tell me if I can add an altcoin that has a new algorithm called: 1GB AES Pattern Search, I installed the erc daemon on my dedicated server, when I start the pool it tells me that I have no poxi installed, besides that I think that the altcoin is solved by adding the file: erc.js to the folder that says coins, but I have those two difficulties, I do not know where the currency is configured if it is there where I said, and the installation of poxi.

    • Zach Smith   •     Author

      1GB AES Pattern Search is currently unsupported by uNOMP.

  64. teo   •  

    hello Zach Smith, I have performed all the steps, I installed the daemon for europecoin (erc) which is a coin based on hold has that algorithm, and tried to start the pool and I get the following error:

    [2016-12-20 16:10:42.700] [ERROR] [default] – Master Website Website process died, spawning replacement…
    [2016-12-20 16:10:45.237] [INFO] [default] – New Relic
    [2016-12-20 16:10:45.241] [INFO] [default] – POSIX Not Installed
    [2016-12-20 16:10:45.242] [INFO] [default] – Run Workers

    My question is which files do I have to edit so that the pool is compatible with europecoin that has some hint: “hodl”, I also want to know where I set up my domain? Because I am in a dedicated server, and I have a domain assigning to the public IP of the server, but I do not have the administration panel, for this, only in the site where I register the domain

    I appreciate your help for this, I am new to linux, and late two days to get install the demon of europecoin and also walked the pool but with the above mentioned error.

    Also I hope you can indicate where I have to put the currency setting to mine, in this case: europecoin, algorithm: hodl, symbol: erc.

    I also want to know in which port stratum would be for the pool, how to configure it?
    And with that link see from my internet pool?

    Thank you. Sorry

    • Zach Smith   •     Author

      uNOMP will not work with Europecoin’s Algorithm.

  65. Mohamed Ashraf   •  

    hi zach 🙂

    thanks for this great tutorial

    when i type ” sudo node init.js ” i get this

    throw err;
    Error: Cannot find module ‘merged-pooler’
    at Function.Module._resolveFilename (module.js:326:15)
    at Function.Module._load (module.js:277:25)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object. (/home/sha256/unomp/libs/poolWorker.js:1:77)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    [email protected]:~/unomp$ Error: Cannot find module ‘merged-pooler’module.js:328

    then i type ” apt-get install node ” trying to solve the error above.
    but now when i type ” sudo node init.js ” i got no thing o.O
    i did type ” npm update ”
    i did edit package.json just like what they said in github
    mmm.. i dont know what should i do now
    any tips ?

    • Zach Smith   •     Author

      Make sure you are using Node 0.10.25

      “nvm use 0.10.25”

      If you don’t have nvm (it was in this guide!), you can get the latest version here:

  66. Keith Robnett   •  

    Zach are you still around?

    • Zach Smith   •     Author

      Yes, I am still around.

      • Alex Villalta   •  

        Hey Zach, Does this work in a 32 bit server ???

  67. chris   •  

    [email protected]:~/unomp$ sudo node init.js
    throw err;

    Error: Cannot find module ‘merged-pooler’
    at Function.Module._resolveFilename (module.js:326:15)
    at Function.Module._load (module.js:277:25)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object. (/home/sha256/unomp/libs/poolWorker.js:1:77)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    [email protected]:~/unomp$ Error: Cannot find module ‘merged-pooler’module.js:328

    • Zach Smith   •     Author

      Try again without using sudo, just “node init.js”

  68. chris   •  

    hello. i have the daemon setup on ubuntu, conf file configured. How can i solo mine against this without setting up UNOMP with 10 S7 rigs over my network?


    • Zach Smith   •     Author

      There are a plethora of well written solo mining guides available elsewhere. I suggest that you find one related to your currency of choice.

  69. Raphael   •  

    Hi Zach, i already have a mining pool but now i want to make it accessible through a css/ html website. Can you help?

  70. Andrew Henson   •  

    Thanks for a great tutorial, could you do another tutorial on how to secure your site from hackers please.

    • Zach Smith   •     Author

      Andrew, after a long hiatus I am going to continue writing some more guides and tutorials. I will definitely keep your suggestion in mind.

  71. jamie durdin   •  

    Hi Zack,
    I have a pool for btc and ltc with merged mining nmc and dge in the background.
    I had my programming guy service it and update everything but since doing that somehow something has eiteher been updated or downloaded onto my unbuntu system which is now slowing the server down which is stopping the miners from running and they disconnect. Would you have any idea on how to find out whats gone wrong? If i can find out I could message back with more informatoin?

    The trouble is I’m getting charged everytime with my programmer and its only been a week since he last “fixed it”

    If you could help that would be great

  72. Urs   •  

    Hey Zack, like many said: great guide. Nothing compares. I did get caught trying to login through winSCP as root. Trying to do that I get an “access denied”.
    I looked around and found that you probably need to open up the server to accept root login, but I could not figure out how. Thanks for your assistance.

  73. Dusares   •  

    HI Mark,

    By Dash you mean the DASH with X11 algo? if so, then the error ECONNREFUSED indicates that the pool node is trying to connect to the DASH daemon, and the connection is refused, I think you better check the rpcport & the rpcusername and rpcpassword. (match the pool config with the dashcoin dash.conf)

  74. Mark   •  

    Hi Zach,

    Hi guys,

    Can you help me please? I’m having a problem when I starting the mining pool for dashcoin. Here’s the error I’m getting:

    [2016-09-20 11:27:48.124] [DEBUG] [default] – Pool dash Thread 2 Share processing setup with redis (
    [2016-09-20 11:27:57.046] [DEBUG] [default] – Master CLI CLI listening on port 17117
    [2016-09-20 11:27:57.645] [INFO] [default] – New Relic
    [2016-09-20 11:27:57.649] [INFO] [default] – POSIX Not Installed
    [2016-09-20 11:27:57.649] [INFO] [default] – Run Workers
    [2016-09-20 11:27:57.659] [INFO] [default] – New Relic
    [2016-09-20 11:27:57.662] [INFO] [default] – POSIX Not Installed
    [2016-09-20 11:27:57.662] [INFO] [default] – Run Workers

    **[2016-09-20 11:27:57.677] [ERROR] [default]** – Payments dash Error with payment processing daemon {“type”:”offline”,”message”:”connect ECONNREFUSED”}
    [2016-09-20 11:27:57.713] [DEBUG] [default] – Website Server Website started on
    **[2016-09-20 11:27:57.780] [ERROR] [default]** – Website dash Could not dumpprivkey for dash {“type”:”offline”,”message”:”connect ECONNREFUSED”}

    Any help will be appreciated! Thank you!

    Best Regards,
    Sigway Higgs

  75. Mark   •  

    Hi Zach,

    First of all, what a great tutorial for creating a mining pool. Superb work!! You’ve earned another subscriber here. Thank you. I have a question, can I able to add another currency to the UNOMP mining pool that I created from this tutorial? Right now, the currency available on the mining pool is just litecoin. I want to add ‘dashcoin’ to the pool as well if that’s possible. Here’s the mining pool

    Thank you very much, Zach. You’re a lifesaver!

    Best Regards,
    Mark G

  76. Mark   •  

    Hi Zach,

    First of all, what a great tutorial for creating a mining pool. Superb work!! You’ve earned another subscriber here. Thank you. I got problem though. I have a question, can I able to add another currency to the UNOMP mining pool that I created from this tutorial? Right now, the currency available on my mining pool is just litecoin. I want to add dashcoin to the pool as well if that’s possible. Here’s the mining pool

    Thank you very much, Zach. You’re a lifesaver!

    Best Regards,
    Mark G

  77. Eugene   •  

    Hi Zach I trying set up mining pool for peercoin. Compiled the wallet and I am stuck here:

    cd unomp/pool_configs
    cp litecoin.json.example litecoin.json

    Please could you help me ?

    • Eugene   •  


      cd unomp/pool_configs
      cp peercoin.json.example peercoin.json

      • Zach Smith   •     Author

        That is because peercoin.json.example does not exist, you need to make a peercoin.json yourself. You can use the litecoin.json.example for reference and build off of that, keep in mind that peercoin uses SHA-256 for it’s hashing algorithm.

        • jamie   •  

          Hi Zack,

          I’m following your guide and im stuck on the ./litecoind

          the system is saying not such directory, both sudo make & sudo make install reported errors i didn’t understand.

          is there anything you would suggest?

  78. azekriel   •  

    Litecoin server starting
    [email protected]:~/litecoin/src$ Error: Unable to bind to on this computer. Litecoin Core is probably already running.
    Error: Failed to listen on any port. Use -listen=0 if you want this.

    I get this error when doing ./litecoind. Killall litecoind won’t help at all as there’s no such process running so it’s not “already running” how to fix this?

    • Zach Smith   •     Author

      Looks like port 9333 is already being utilized by something else. Whether it is another litecoin daemon or not does not matter.

      Did you follow the example litecoin.conf in this guide?

      • Aze   •  

        Yes I did follow it

        • Zach Smith   •     Author

          Reboot ubuntu completely and try starting the litecoin daemon again.

          • Aze   •  

            No change.. same error.

          • Aze   •  

            Managed to fix it.. That port just wasn’t open in firewall.

          • Aze   •  

            But ran into another problem with command:
            “sudo npm update”

            error is:

            npm ERR! Error: ENOENT, lstat ‘/home/aze/.npm/node.bittrex.api/0.2.2/package/cry ptopia.js’
            npm ERR! If you need help, you may report this log at:
            npm ERR!
            npm ERR! or email it to:
            npm ERR!

            npm ERR! System Linux 3.13.0-71-generic
            npm ERR! command “/usr/bin/nodejs” “/usr/bin/npm” “update”
            npm ERR! cwd /home/aze/unomp
            npm ERR! node -v v0.10.25
            npm ERR! npm -v 1.3.10
            npm ERR! path /home/aze/.npm/node.bittrex.api/0.2.2/package/cryptopia.js
            npm ERR! fstream_path /home/aze/.npm/node.bittrex.api/0.2.2/package/cryptopia.js
            npm ERR! fstream_type File
            npm ERR! fstream_class FileWriter
            npm ERR! code ENOENT
            npm ERR! errno 34
            npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26
            npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
            npm ERR!
            npm ERR! Additional logging details can be found in:
            npm ERR! /home/aze/unomp/npm-debug.log
            npm ERR! not ok code 0

          • Zach Smith   •     Author

            Did you run the “sudo npm update” command in the unomp directory? If that does not work, then you may need to clear your npm cache.

  79. Alaadin   •  

    Hi, Happy new year to All,

    Dear friend, when do you think that Auxes for merged mining would be ready to be used, as I understood it’s not ready yet.

    and if it’s, then would reward/payment/ system work for the merged coins defined under Auxes? I mean, after defining the rpcuser, rpcpass, and rpcport for the required auxe coin, then payment should occur automatically to that coins defined wallet!. correct?

    also, can I add more than one coin under Auxes, if so, then how would be the formula?

    and is there an option to set the difficulty to be determined by the coin daemon it self (just like in Mpos)


    • Zach Smith   •     Author

      I have no clue when the auxes for uNOMP are going to be ready as I am not a developer of uNOMP.

      Your questions are better answered by the uNOMP developers themselves. They have a slack channel you can publicly talk to them in, you can find out more at

  80. Mason   •  

    @Zach Smith,
    Hey Sir, I appreciated the guide, it is great! Could you possibly provide an example of what the bitcoin.json config would look like for the pool as UNOMP only provides the LTC example in pool_config? I changed all the settings / ports and such (it works), but I think the only thing I really need to fix (adjust) is the vardiff for BTC due to the higher hash rate. If you could provide some insight on the vardiff, that would be greatly appreciated! Also, maybe if you could point me to an article on solo mining with ASIC machine on BTC network that would be great as well. Sorry brand new to all of this and really just digging into it all, like to have a better understanding of it all!

    Thank you for your time and help in this matter!


    • Zach Smith   •     Author

      The bitcoin.json would not be that much different from the Litecoin one. With the variable difficulty, if you do some research you can find out what the big Bitcoin pools are running and use those numbers. However, if you have the time I would suggest you actually understand what variable difficulty really is as it is important to know. Just start up your favorite search engine and start reading up on variable difficulty.

      Also, you do not need a pool if you are going to solo mine.

  81. stoneboy   •  

    How to get install ‘Unomp with Mpos integration’ like the Suchpool website?

    • Zach Smith   •     Author

      uNOMP is not compatible with MPOS.

  82. mirny   •  

    Hello, thank you for great guide, but I’m getting this error:

    SyntaxError: Unexpected number
    at Object.parse (native)
    at /root/unomp/init.js:104:32
    at Array.forEach (native)
    at buildPoolConfigs (/root/unomp/init.js:102:31)
    at init (/root/unomp/init.js:526:19)
    at Object. (/root/unomp/init.js:542:3)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)

    Can you help me with that, please?

    • mirny   •  

      Im using Mint 17.2

      • mirny   •  

        Now I tried Ubuntu 14.04 64bit, and I’m getting exactly the same error message.

        • Zach Smith   •     Author

          sudo npm update

          In the unomp directory.

  83. Alaadin   •  

    Hi again,
    I’ve a couple of questions:

    1- what is the payout method used, and how it could be changed?

    2- should I open the port 8333 and 17117 from the out-side world to my node/pc/server which is running the bitcoin daemon, or let me rephrase, what ports should be opened or redirected to my server running your software and (lets say the for example) the bitcoin daemon?

    Thats all, and Thank you for great efforts.


    • Zach Smith   •     Author

      1. The payout system is PROP (proportional), no you cannot change it at this time.

      2. Open the ports for your stratum and web server obviously. Then the ports your coin daemon uses to communicate with the outside world. Your coin daemon needs to update in real time with the rest of the block chain, otherwise your pool will not work properly.

  84. Alaadin   •  

    This guide is much easier than the one with mpos, I’ve done both on Zentyal-Ubuntu 14.0.4, and tried this one with bitcoin, all is working 100%.

    I’ve this old useless miner which currently mining (using your great software) on my server:
    the only stratum port which is exposed to the internet is: 4444.

    Thank you for this great effort, consider my site a live demo 🙂


  85. chris   •  

    I spoke too soon. After changing the litecoin.json file in Pool_Configs to my bitcoin settings,
    i get the follwoing when trying to start stratum


    • chris   •  

      I can pay for some help solo btc setup. i am so close, yet so far away…
      i am not a coder

      • chris   •  

        I AM AN IDIOT!!! READ!!! I got this. Thanks again for the guide. now send some luck

      • Zach Smith   •     Author

        You do not need a pool for solo mining.

    • Jade Pearson   •  

      Did you get this after deleting the code inbetween these two thingys [ ]? as you can probably tell im not too flashy at coding either but i think i ran into this problem when i was setting up my pool.

  86. Jade Pearson   •  

    I have been looking for a guide for a long time and i have to admit that this is the best detailed and easy to follow guide i have found on the whole internet. Thank you so much! my next step is now to add more coins to my pool to mine.

  87. chris   •  

    found the answer.. AWESOME!!!

  88. chris   •  

    fairly new to this, but how can I build for bitcoin? for bitcoiin, fails after sudo ./configure and the following steps?

    • erm3nda   •  

      There’s no way to tell you what to do if you don’t tell the error code or at least it’s output.

  89. stoneboy   •  

    Install first: apt-get install libevent-dev

    Than “sudo make”

    if you on bitcoin source….

  90. Khryptor   •  

    I did this guide. This one combined with the last are the best guides on the internet.

    • Zach Smith   •     Author

      Thank you for the complement!

      • Andrei   •  

        Can u please tell me how to add other coins too ?! I tried expanse but i cant find the wallet for linux,one that works,icobid same .. where can i find the stuff i need to do in order to install any cryptocoin into my pool to mine them.
        Thanks in advance!

        • Andrei   •  

          I need help to setup expanse mining pool,i cant install the wallet

  91. stoneboy   •  

    Thanks alot for this new amazing guide! I will try this new guide and report when finished

    • Karizma   •  

      I have 100% usage of CPU when nomp is started. Is there any way to reduce CPU usage

Leave a Reply