Author

Topic: How create your own altcoin pool - Ubuntu 16.04 and baikal solo (Read 3418 times)

newbie
Activity: 1
Merit: 0
I am very happy to have found this post. I am trying to start an LTC based merged mining pool like Litecoinpool.org, my motive is in the name of decentralization. I figure the less hashrate each pool has the more secure the network is, and I don't think anyone can disagree with that, been mining and building my portfolio since beginning of 17 and only recently decided to invest real time and money into the crypto space. I am hoping that this guide can help me create a pool like litecoinpool.org, I am good with the ubuntu server, the site, the node. I come from an AutoCAD background(trading at work since may 2017!) and grew up on the technical side of some vb forums back in the halo 2 days.

just to be clear, I am not looking to replace anybody and cause a stressful competition with any other pool. I simply believe smaller pools(than we currently have) are important for the networks and I understand the importance of geographical distribution of nodes.

Thank you again for your help, I am a generous tipper Wink
copper member
Activity: 133
Merit: 1
cd /coins /

nano
 config your coin.



How to fix this? Thank you!

[2018-03-04 19:07:32.570] [INFO] [default] - New Relic
[2018-03-04 19:07:32.572] [DEBUG] [default] - NewRelic Monitor New Relic initiated
[2018-03-04 19:07:32.575] [INFO] [default] - Setting POSIX
[2018-03-04 19:07:32.575] [INFO] [default] - POSIX Set
[2018-03-04 19:07:32.575] [INFO] [default] - Run Workers

undefined:1
{"enabled":enabled,"coin":"coinm.json","auxes":[{"coin":"coinm.json","daemons"
           ^
SyntaxError: Unexpected token e
    at Object.parse (native)
    at /root/pool/unomp/init.js:104:32
    at Array.forEach (native)
    at buildPoolConfigs (/root/pool/unomp/init.js:102:31)
    at init (/root/pool/unomp/init.js:526:19)
    at Object. (/root/pool/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)

newbie
Activity: 3
Merit: 0
Can anyone please help me figure out how to resolve this? Many thanks in advance Smiley

No worries, it is all sorted now. I figured out that the UNOMP server did not have permission to serve the website at port 80 since it was being launched by a regular non-root user. Increasing the port in the config.jason file to any above 1024 should resolve the issue for others facing the same problem.
newbie
Activity: 3
Merit: 0
Error in node version,  or restart server and retry.. 

I had the same issue and in my case reinstalling node solved it. You need to make sure you have the following versions, as Ubuntu 16.04 comes with newest ones by default, causing the same problems mentioned by jcreyesb above:

Code:
precious@BaCKuPS:~/pool/unomp$ npm -v
1.3.24
precious@BaCKuPS:~/pool/unomp$ node -v
v0.10.25

After resolving that issue I encountered another, also when running "npm update" related to certificate untrusted.

Code:
npm ERR! Error: CERT_UNTRUSTED
npm ERR! at SecurePair. (tls.js:1430:32)
npm ERR! at SecurePair.emit (events.js:92:17)
npm ERR! at SecurePair.maybeInitFinished (tls.js:1029:10)
npm ERR! at CleartextStream.read [as _read] (tls.js:521:13)
npm ERR! at CleartextStream.Readable.read (_stream_readable.js:341:10)
npm ERR! at EncryptedStream.write [as _write] (tls.js:418:25)
npm ERR! at doWrite (_stream_writable.js:226:10)
npm ERR! at writeOrBuffer (_stream_writable.js:216:5)
npm ERR! at EncryptedStream.Writable.write (_stream_writable.js:183:11)
npm ERR! at write (_stream_readable.js:602:24)

Google helped me find how to resolve this with a quick dirty workaround ...

Code:
npm config set strict-ssl false

... before running "npm update" once more. This allowed the command to finish completely and then I could move onto the next step, however i am now stuck at "node init.js" as I encountet the following error loop:


Code:
[2018-04-07 18:34:23.538] [INFO] [default] - Switching Setup Thread 3 Loading last proxy state from redis
[2018-04-07 18:34:23.544] [DEBUG] [default] - Pool litecoin Thread 3 Share processing setup with redis (127.0.0.1:6379)
[2018-04-07 18:34:23.589] [DEBUG] [default] - Pool litecoin Thread 3 started for litecoin [LTC] {scrypt}
[2018-04-07 18:34:23.590] [DEBUG] [default] - Switching Setup scrypt Setting proxy difficulties after pool start
[2018-04-07 18:34:23.635] [INFO] [default] - New Relic
[2018-04-07 18:34:23.639] [INFO] [default] - Setting POSIX
[2018-04-07 18:34:23.639] [INFO] [default] - POSIX Set
[2018-04-07 18:34:23.640] [INFO] [default] - Run Workers
[2018-04-07 18:34:23.648] [INFO] [default] - Switching Setup Thread 4 Loading last proxy state from redis
[2018-04-07 18:34:23.653] [DEBUG] [default] - Pool litecoin Thread 4 Share processing setup with redis (127.0.0.1:6379)
[2018-04-07 18:34:23.689] [DEBUG] [default] - Pool litecoin Thread 4 started for litecoin [LTC] {scrypt}
[2018-04-07 18:34:23.689] [DEBUG] [default] - Switching Setup scrypt Setting proxy difficulties after pool start
[2018-04-07 18:34:32.136] [DEBUG] [default] - Master CLI CLI listening on port 17117
[2018-04-07 18:34:32.578] [INFO] [default] - New Relic
[2018-04-07 18:34:32.581] [INFO] [default] - Setting POSIX
[2018-04-07 18:34:32.582] [INFO] [default] - POSIX Set
[2018-04-07 18:34:32.582] [INFO] [default] - Run Workers

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: bind EACCES
    at errnoException (net.js:901:11)
    at net.js:1069:30
    at Object.6: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 Pipe.channel.onread (child_process.js:345:11)
[2018-04-07 18:34:32.644] [ERROR] [default] - Master Website Website process died, spawning replacement...
[2018-04-07 18:34:32.687] [INFO] [default] - New Relic
[2018-04-07 18:34:32.691] [INFO] [default] - Setting POSIX
[2018-04-07 18:34:32.692] [INFO] [default] - POSIX Set
[2018-04-07 18:34:32.692] [INFO] [default] - Run Workers
[2018-04-07 18:34:32.710] [FATAL] [default] - Payments litecoin Daemon does not own pool address - payment processing can not be done with this daemon, {"isvalid":true,"address":"LbBiw62DzVFNeHddwroiJxX6SVjtHJXdwfp","scriptPubKey":"76a914af160db22eec30d46a2a4bcbc98f46f1eddba63188ac","ismine":false,"iswatchonly":false,"isscript":fals
[2018-04-07 18:35:30.731] [INFO] [default] - New Relic
[2018-04-07 18:35:30.740] [INFO] [default] - Setting POSIX
[2018-04-07 18:35:30.740] [INFO] [default] - POSIX Set
[2018-04-07 18:35:30.740] [INFO] [default] - Run Workers

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: bind EACCES
    at errnoException (net.js:901:11)
    at net.js:1069:30
    at Object.6: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 Pipe.channel.onread (child_process.js:345:11)
[2018-04-07 18:35:30.803] [ERROR] [default] - Master Website Website process died, spawning replacement...
[2018-04-07 18:35:33.243] [INFO] [default] - New Relic
[2018-04-07 18:35:33.247] [INFO] [default] - Setting POSIX
[2018-04-07 18:35:33.248] [INFO] [default] - POSIX Set
[2018-04-07 18:35:33.248] [INFO] [default] - Run Workers

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: bind EACCES
    at errnoException (net.js:901:11)
    at net.js:1069:30
    at Object.7: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 Pipe.channel.onread (child_process.js:345:11)
[2018-04-07 18:35:33.305] [ERROR] [default] - Master Website Website process died, spawning replacement...

[CONTINUOUS ERROR LOOP]

Can anyone please help me figure out how to resolve this? Many thanks in advance Smiley
member
Activity: 266
Merit: 50
Nice share, will bookmark it for now. I have few experience with MPOS a few year ago and may I need to try something new, I rest for a year on crypto-mining and now decided to mine again.
newbie
Activity: 1
Merit: 0
How to fix this? Thank you!

[2018-03-04 19:07:32.570] [INFO] [default] - New Relic
[2018-03-04 19:07:32.572] [DEBUG] [default] - NewRelic Monitor New Relic initiated
[2018-03-04 19:07:32.575] [INFO] [default] - Setting POSIX
[2018-03-04 19:07:32.575] [INFO] [default] - POSIX Set
[2018-03-04 19:07:32.575] [INFO] [default] - Run Workers

undefined:1
{"enabled":enabled,"coin":"coinm.json","auxes":[{"coin":"coinm.json","daemons"
           ^
SyntaxError: Unexpected token e
    at Object.parse (native)
    at /root/pool/unomp/init.js:104:32
    at Array.forEach (native)
    at buildPoolConfigs (/root/pool/unomp/init.js:102:31)
    at init (/root/pool/unomp/init.js:526:19)
    at Object. (/root/pool/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)
newbie
Activity: 44
Merit: 0
Install Required Packages
some commands do not put sudo!
Code:
$cd ~
$mdkir pool
sudo apt-get update
$sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev
$sudo apt-get install libboost-all-dev git npm nodejs nodejs-legacy libminiupnpc-dev redis-server

$sudo apt-get install libdb-dev libqrencode-dev qt4-qmake libqtgui4 libqt4-dev
$sudo apt-get install libminiupnpc-dev libminiupnpc8 libboost1.48-all-dev


$sudo apt-get install curl ntp unzip libdb++-dev libboost-all-dev libqrencode-dev aptitude && aptitude install miniupnpc

$sudo add-apt-repository ppa:bitcoin/bitcoin
$sudo apt-get update
$sudo apt-get install libdb4.8-dev libdb4.8++-dev

$sudo curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh
$source ~/.profile
$nvm install 0.10.25
$nvm use 0.10.25

$git clone https://github.com/inflationcoin/inflationcoin.git

Compile wallet daemon

Code:
$cd inflationcoin/
$cd inflationcoin/src/leveldb
$chmod 775 build_detect_platform
$sudo make libleveldb.a libmemenv.a
$cd ..
$make -f makefile.unix USE_UPNP=1 USE_QRCODE=1 USE_UPNP=1
$sudo ./InflationCoind
You will get a message stating there is no configuration file.
$sudo gedit ~/.InflationCoin/InflationCoin.conf

rpcuser=youruser
rpcpassword=yourpassword
rpcallowip=*
rpcport=11371
daemon=1
server=1
gen=0
addnode= 91.134.120.210
addnode= 185.122.58.10
addnode= 136.243.40.220


$sudo ./InflationCoind

Quote
you can compile qt wallet if you want
$cd ..
$qmake USE_UPNP=-
$make

Code:
$cd ~/pool
$git clone https://github.com/UNOMP/unified-node-open-mining-portal.git unomp
$cd unomp
$cp config.json.example config.json
$ifconfig
192.168.1.105 -- Its my wi-fi lan ip(you must copy your inet addr from your Wi-Fi or ethernet if you use ethernet).
Code:
$sudo gedit config.json
modify website ip
"siteTitle": "Pool name"
"stratumHost": "if you set no-ip<< or external IP"
"port": 8080 > must be above from port 6000
we have to make new wallet address

$cd ~/pool/inflationcoin/src/
$./InflationCoind getnewaddress

iD9Jnr5PqLkvGY2BN2fVHMPN8yEv2W18EZ < I received this address
Code:
$cd ~/pool/unomp/pool_configs/

$cp litecoin.json.example Inflationcoin.json

$sudo gedit inflationcoin.json

"enabled": true,
"coin": "inflationcoin.json",
"auxes": [],
"address": "iD9Jnr5PqLkvGY2BN2fVHMPN8yEv2W18EZ", << your wallet
payment interval ... 600 = 10 minutes
minimumpayment...
change all daemons and put your ip and port from ~/.Inflationcoin/Inflationcoin.conf in my case was "11371"

$cp ~/pool/unomp/coins/dash.json ~/pool/unomp/coins/inflationcoin.json
$sudo gedit ~/pool/unomp/coins/inflationcoin.json

inflationcoin.json edit


{
    "name": "inflationcoin",
    "symbol": "IFLC",
    "algorithm": "x11",
    "mposDiffMultiplier": 256
}

$sudo gedit ~/pool/unomp/init.js
"search for setrlimit then set from soft:100000 hard:100000 to soft:1000 hard:1000 sand and close"


we need install REDIS

Code:
$cd ~/pool
$sudo apt-get install build-essential tcl
$curl -O http://download.redis.io/redis-stable.tar.gz
$tar xzvf redis-stable.tar.gz
$cd redis-stable
$make
$make test
$sudo make install
$cd utils/
$sudo ./install_server.sh
enter
enter
enter
enter
enter
enter :)
$sudo service redis_6379 start

Test

Code:
$redis-cli
>save
ctrl+c

If you want to stop redis

Code:
$sudo service redis_6379 stop

To set Redis to automatically start at boot, run:
Code:
$sudo update-rc.d redis_6379 defaults
$cd ~/pool/unomp/
now we need to wait the wallet sync!
open a new terminal to check if wallet is sync


Code:
$cd ~/pool/inflationcoin/src/
$sudo ./InflationCoind getinfo

or

$sudo ~/pool/inflationcoin/src/InflationCoind getinfo

When the wallet finishes syncing:

Code:
$cd ~/pool/unomp/
$npm install posix
$npm update
$node init.js

all without sudo!  "npm and node init.js"

Video of this tutorial: https://www.youtube.com/watch?v=xsgZjgLcwH4

Good luck!

it is done!
WOW!! hard Cheesy

Thanks!
Donations: 1MoTYQvyW9zQWFxNc2gi4GSLHrjWK1AWCM

references:
http://blockgen.net/setup-your-own-mining-pool/
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-redis


I have tried messaging you but says u don't accept messages from newbie members.
any chance i can get in touch with you about unomp pool and payments page?
can't seem to get one on unomp like znomp pools have
anyway would be good to get some feedback, been looking everywhere
copper member
Activity: 133
Merit: 1
Error in node version,  or restart server and retry.. 



i can't installed  multi-hashing
 
Code:
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 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 multi-hashing
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls 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/ubuntu/unomp/node_modules/stratum-pool/npm-debug.log




what i can do? i erase and reinstall npm but always the same message
full member
Activity: 224
Merit: 100
i can't installed  multi-hashing
 
Code:
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 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 multi-hashing
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls 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/ubuntu/unomp/node_modules/stratum-pool/npm-debug.log




what i can do? i erase and reinstall npm but always the same message
member
Activity: 116
Merit: 12
Install Required Packages
some commands do not put sudo!
Code:
$cd ~
$mdkir pool
sudo apt-get update
$sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev
$sudo apt-get install libboost-all-dev git npm nodejs nodejs-legacy libminiupnpc-dev redis-server

$sudo apt-get install libdb-dev libqrencode-dev qt4-qmake libqtgui4 libqt4-dev
$sudo apt-get install libminiupnpc-dev libminiupnpc8 libboost1.48-all-dev


$sudo apt-get install curl ntp unzip libdb++-dev libboost-all-dev libqrencode-dev aptitude && aptitude install miniupnpc

$sudo add-apt-repository ppa:bitcoin/bitcoin
$sudo apt-get update
$sudo apt-get install libdb4.8-dev libdb4.8++-dev

$sudo curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh
$source ~/.profile
$nvm install 0.10.25
$nvm use 0.10.25

$git clone https://github.com/inflationcoin/inflationcoin.git

Compile wallet daemon

Code:
$cd inflationcoin/
$cd inflationcoin/src/leveldb
$chmod 775 build_detect_platform
$sudo make libleveldb.a libmemenv.a
$cd ..
$make -f makefile.unix USE_UPNP=1 USE_QRCODE=1 USE_UPNP=1
$sudo ./InflationCoind
You will get a message stating there is no configuration file.
$sudo gedit ~/.InflationCoin/InflationCoin.conf

rpcuser=youruser
rpcpassword=yourpassword
rpcallowip=*
rpcport=11371
daemon=1
server=1
gen=0
addnode= 91.134.120.210
addnode= 185.122.58.10
addnode= 136.243.40.220


$sudo ./InflationCoind

Quote
you can compile qt wallet if you want
$cd ..
$qmake USE_UPNP=-
$make

Code:
$cd ~/pool
$git clone https://github.com/UNOMP/unified-node-open-mining-portal.git unomp
$cd unomp
$cp config.json.example config.json
$ifconfig
192.168.1.105 -- Its my wi-fi lan ip(you must copy your inet addr from your Wi-Fi or ethernet if you use ethernet).
Code:
$sudo gedit config.json
modify website ip
"siteTitle": "Pool name"
"stratumHost": "if you set no-ip<< or external IP"
"port": 8080 > must be above from port 6000
we have to make new wallet address

$cd ~/pool/inflationcoin/src/
$./InflationCoind getnewaddress

iD9Jnr5PqLkvGY2BN2fVHMPN8yEv2W18EZ < I received this address
Code:
$cd ~/pool/unomp/pool_configs/

$cp litecoin.json.example Inflationcoin.json

$sudo gedit inflationcoin.json

"enabled": true,
"coin": "inflationcoin.json",
"auxes": [],
"address": "iD9Jnr5PqLkvGY2BN2fVHMPN8yEv2W18EZ", << your wallet
payment interval ... 600 = 10 minutes
minimumpayment...
change all daemons and put your ip and port from ~/.Inflationcoin/Inflationcoin.conf in my case was "11371"

$cp ~/pool/unomp/coins/dash.json ~/pool/unomp/coins/inflationcoin.json
$sudo gedit ~/pool/unomp/coins/inflationcoin.json

inflationcoin.json edit


{
    "name": "inflationcoin",
    "symbol": "IFLC",
    "algorithm": "x11",
    "mposDiffMultiplier": 256
}

$sudo gedit ~/pool/unomp/init.js
"search for setrlimit then set from soft:100000 hard:100000 to soft:1000 hard:1000 sand and close"


we need install REDIS

Code:
$cd ~/pool
$sudo apt-get install build-essential tcl
$curl -O http://download.redis.io/redis-stable.tar.gz
$tar xzvf redis-stable.tar.gz
$cd redis-stable
$make
$make test
$sudo make install
$cd utils/
$sudo ./install_server.sh
enter
enter
enter
enter
enter
enter :)
$sudo service redis_6379 start

Test

Code:
$redis-cli
>save
ctrl+c

If you want to stop redis

Code:
$sudo service redis_6379 stop

To set Redis to automatically start at boot, run:
Code:
$sudo update-rc.d redis_6379 defaults
$cd ~/pool/unomp/
now we need to wait the wallet sync!
open a new terminal to check if wallet is sync


Code:
$cd ~/pool/inflationcoin/src/
$sudo ./InflationCoind getinfo

or

$sudo ~/pool/inflationcoin/src/InflationCoind getinfo

When the wallet finishes syncing:

Code:
$cd ~/pool/unomp/
$npm install posix
$npm update
$node init.js

all without sudo!  "npm and node init.js"

Video of this tutorial: https://www.youtube.com/watch?v=xsgZjgLcwH4

Good luck!

it is done!
WOW!! hard Cheesy

Thanks!
Donations: 1MoTYQvyW9zQWFxNc2gi4GSLHrjWK1AWCM

references:
http://blockgen.net/setup-your-own-mining-pool/
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-redis

Jump to: