Code Monkey home page Code Monkey logo

s-nomp's Introduction

s-nomp: Some New Open Mining Portal

NOTE: We're working on putting together an "official" s-nomp which can be supported by many coins and pools instead of so many running their own flavors. More to come!

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

Production Usage Notice

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

Paid Solution

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

Community / Support

Please join our Discord to follow development. Any support questions can be answered here quickly as well.

https://discord.gg/4mVaTsH

Usage

Requirements

Seriously

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

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

0) Setting up coin daemon

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

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

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

1) Downloading & Installing

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

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

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

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

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

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

Example: inside zclassic.conf add the line

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

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

3) Start the portal

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

Upgrading s-nomp

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

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

Credits

s-nomp

z-nomp

NOMP

License

Released under the MIT License. See LICENSE file.

s-nomp's People

Contributors

bluecircle avatar btcdrak avatar cronicc avatar damianblack avatar egyptianbman avatar elbandi avatar faneaatiku avatar hellcatz avatar interbiznw avatar jmprcx avatar katxi avatar lead-anoy74 avatar lludlow avatar markltz avatar mculp avatar mkrufky avatar nettts avatar nomp avatar ob1100 avatar ondalf avatar pcperfect avatar sennevb avatar sysmanalex avatar tentofficial avatar vekexasia avatar waveringana avatar whyyk7 avatar xiaolin1579 avatar zone117x avatar zzzpotato avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

s-nomp's Issues

Insufficient funds (12.46885) to process payments (12.469049); possibly waiting for txs.

  • Pool config
{
    "enabled": true,
    "coin": "zcl.json",

    "address": "t1...Qe",
    "_comment_address": "a transparent address to send coinbase rewards to and to transfer to zAddress.",

    "zAddress": "zc...3f",
    "_comment_zAddress": "a private address used to send coins to tAddress.",

    "tAddress": "t1...5C",
    "_comment_tAddress": "transparent address used to send payments, make this a different address, otherwise payments will not send",

    "invalidAddress":"t1...5C",
    "_comment_invalidAddress": "Invalid addresses will be converted to the above",

    "walletInterval": 10,
    "_comment_walletInterval": "Used to cache coin stats",

    "rewardRecipients": {
        "t1..Ux": 0.25
    },

    "tlsOptions": {
        "enabled": false,
        "serverKey": "",
        "serverCert": "",
        "ca": ""
    },

    "paymentProcessing": {
        "enabled": true,
        "minConf": 10,
        "paymentMode": "pplnt",
        "_comment_paymentMode": "prop, pplnt",
        "paymentInterval": 600,
        "minimumPayment": 0.1,
        "maxBlocksPerPayment": 1,
        "daemon": {
            "host": "...",
            "port": ...,
            "user": "...",
            "password": "..."
        }
    },

    "ports": {
        "5032": {
            "tls": false,
            "diff": 2,
            "varDiff": {
                "minDiff": 2,
                "maxDiff": 2,
                "targetTime": 15,
                "retargetTime": 60,
                "variancePercent": 30
            }
        }
    },

    "poolId": "main",
    "_comment_poolId": "use it for region identification: eu, us, asia or keep default if you have one stratum instance for one coin",

    "daemons": [
        {
            "host": "...",
            "port": ...,
            "user": "...",
            "password": "..."
        }
        ],
    "p2p": {
        "enabled": true,
        "host": "...",
        "port": ...,
        "disableTransactions": true
    },

    "mposMode": {
        "enabled": false,
        "host": "127.0.0.1",
        "port": 3306,
        "user": "me",
        "password": "mypass",
        "database": "zcl",
        "checkPassword": true,
        "autoCreateWorker": false
    }

}
  • Coin config
{
    "name": "zclassic",
    "symbol": "zcl",
    "algorithm": "equihash",
    "requireShielding": true,
    "peerMagic": "24e92764",
    "txfee": 0.000001,
    "explorer": {
        "txURL": "http://explorer.zclmine.pro/tx/",
        "blockURL": "http://explorer.zclmine.pro/block/",
        "_comment_explorer": "This is the coin's explorer full base url for transaction and blocks i.e. (https://explorer.coin.com/tx/). The pool will automatically add the transaction id or block id at the end."
    }
}
$ zcash-cli listunspent
[
  {
    "txid": "db...84",
    "vout": 0,
    "generated": false,
    "address": "t1...5C",
    "account": "",
    "scriptPubKey": "76...ac",
    "amount": 12.46885000,
    "confirmations": 485,
    "spendable": true
  }
]

The error is on the first block. Had the same problem, while mining Hush and BTCPrivate, with the first block. The difference this time is that the pool reward address is in an exchange. Is this a bad idea, since it's amount is not shielded? The amount in the error (12.469049) is with the reward subtracted, so it shouldn't be an issue?

I've read the code and am wondering - shouldn't the trx fee be subtracted here too?

On a side note - why are the shielding transactions not using the fee, which is setup in the coin config?

Thank you in advance.

Incorrect calculation of worker.balanceChange in paymentProcessor.js?

worker.balanceChange is not set properly when withholdPercent is not zero thereby losing any extra rewards that would have been added to the balance of the worker.

On this line

var toSendSatoshis = Math.round((worker.balance + worker.reward) * (1 - withholdPercent));

Lets say we have the scenario below

withholdPercent is 50%
worker.balance = 2
worker.reward = 4

the pool should only send 3 because of the 50% withholdPercent the pool should then update the balance to 3 since we have 2 on our existing balance and additional 4 on new block reward and the pool only sent 3.

Here is the line that sets how much we need to update the current balance

worker.balanceChange = Math.min(worker.balance, toSendSatoshis) * -1;

So that would be

Math.min(2, 3) * -1 = -2

which is then updated here

balanceUpdateCommands.push([

So the balance is set to 0 instead of 3

It works just right if withholdPercent is zero but once it is non zero then the extra rewards are discarded.

npm start ERR

root@pool:~/s-nomp# npm start

[email protected] start /root/s-nomp
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/node_modules/stratum-pool/node_modules/equihashverify/build/Release/:$PWD/node_modules/equihashverify/build/Release/ node init.js

/root/s-nomp/node_modules/bindings/bindings.js:91
throw e
^

Error: The module '/root/s-nomp/node_modules/equihashverify/build/Release/equihashverify.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 67. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using npm rebuild or npm install).
at Object.Module._extensions..node (module.js:681:18)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at bindings (/root/s-nomp/node_modules/bindings/bindings.js:84:48)
at Object. (/root/s-nomp/node_modules/equihashverify/index.js:1:99)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/node_modules/stratum-pool/node_modules/equihashverify/build/Release/:$PWD/node_modules/equihashverify/build/Release/ node init.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-12-24T14_56_33_205Z-debug.log

root@pool:~/s-nomp# node -v
v8.11.4

Orphaned blocks containing pool payouts

After the pool sends payouts, it does not verify if the payout was successfully sent and not contained within an orphaned block. When this happens, miners do not receive their payout yet it is recorded by the pool as sent.

S-nomp /api/payments

{
"time": 1543711226326,
"txid": "32f15f26a6056652e0b66a4b46f696a6269856314035c9c38b6d9799cb6c4595",
"shares": 281.62438554,
"paid": 356.8126093,
"miners": 3,
"blocks": [
412500
],
"amounts": {
"RZt7KmxmBZTqGV6UFNhuG8XBG7dg5afa7d": 350.05107276,
"Rk98sXCKeAnBEjP97yf2pMrPRi2zPTc7U1": 5.62171873,
"RhvHeso4AxaE1KLo1CNhiRV1RgTUEFK4Tm": 1.13981781
},
"balances": {
"Rn31SBJyN3X5e1tC5JvfUYL8Md2r3no9hU": 2.39008017
},
"work": {
"Rn31SBJyN3X5e1tC5JvfUYL8Md2r3no9hU": 56.375829949999996,
"RZt7KmxmBZTqGV6UFNhuG8XBG7dg5afa7d": 65.7613386,
"Rk98sXCKeAnBEjP97yf2pMrPRi2zPTc7U1": 132.60185315,
"RhvHeso4AxaE1KLo1CNhiRV1RgTUEFK4Tm": 26.88536384
}
},

Payment Daemon

safecoin-cli gettransaction "32f15f26a6056652e0b66a4b46f696a6269856314035c9c38b6d9799cb6c4595"
{
  "amount": -356.81260930,
  "fee": -0.00005000,
  "confirmations": -1,
  "txid": "32f15f26a6056652e0b66a4b46f696a6269856314035c9c38b6d9799cb6c4595",

TypeError: Expected String

/home/pool/snomp/node_modules/bitcoinjs-lib-zcash/node_modules/base-x/index.js:52
if (typeof string !== 'string') throw new TypeError('Expected String')
^

TypeError: Expected String
at decodeUnsafe (/home/pool/snomp/node_modules/bitcoinjs-lib-zcash/node_modules/base-x/index.js:52:43)
at Object.decode (/home/pool/snomp/node_modules/bitcoinjs-lib-zcash/node_modules/base-x/index.js:81:18)
at Object.decode (/home/pool/snomp/node_modules/bitcoinjs-lib-zcash/node_modules/bs58check/base.js:39:25)
at Object.fromBase58Check (/home/pool/snomp/node_modules/bitcoinjs-lib-zcash/src/address.js:11:27)
at Object.exports.createGeneration (/home/pool/snomp/node_modules/stratum-pool/lib/transactions.js:133:56)
at new BlockTemplate (/home/pool/snomp/node_modules/stratum-pool/lib/blockTemplate.js:59:35)
at JobManager.processTemplate (/home/pool/snomp/node_modules/stratum-pool/lib/jobManager.js:155:32)
at /home/pool/snomp/node_modules/stratum-pool/lib/pool.js:601:66
at itemFinished (/home/pool/snomp/node_modules/stratum-pool/lib/daemon.js:166:36)
at /home/pool/snomp/node_modules/stratum-pool/lib/daemon.js:180:17

Komodo and Piratechain mining

Hello I try to setup pool for piratechain mining but when I try to mine i get block fail with that error in coin debug.log file:

CheckBlockHeader komodo_check_deposit error
ERROR: ProcessNewBlock: CheckBlock FAILED

There's something wrong in my coin/pool setup or s-nomp is simply not compatible with piratechain and komodo coin ?

votecoin submit block error.

Z-NOMP

�[32m2018-08-01 02:19:18 [Pool] �[39m�[3m[votecoin] �[23m�[90m�[1m(Thread 2) �[22m�[39m�[90mSubmitted Block using submitblock successfully to daemon instance(s)�[39m
�[32m2018-08-01 02:19:18 [Pool] �[39m�[3m[votecoin] �[23m�[90m�[1m(Thread 2) �[22m�[39m�[90mWe thought a block was found but it was rejected by the daemon, share data: {"job":"cd2f","ip":"::ffff:188.166.161.62","port":3039,"worker":"t1Lj2s6XSMhi4dcyLrD1sA8iizSus1FvU7r.lm2","height":194372,"difficulty":2.79352661,"shareDiff":"4411.71734849","blockDiff":3912.254875098,"blockDiffActual":3912.254875098,"blockHash":"00000076d702f731b749352c1d0892a839952ad0a056564425d00662cce5eb6e","error":{"unknown":"check coin daemon logs"}}�[39m
�[32m2018-08-01 02:19:27 [Payments] �[39m�[3m[zen] �[23m�[90mFinished interval - time spent: 13ms total, 5ms redis, 6ms daemon RPC�[39m

coin daemon

2018-08-01 02:19:18 ERROR: CheckBlock(): hashMerkleRoot mismatch
2018-08-01 02:19:18 ERROR: ProcessNewBlock: CheckBlock FAILED

ZEN is not mined after hardfork

We thought a block was found but it was rejected by the daemon, share data: {"job":"ccee","ip":"::ffff:159.8.13.230","port":4004,"worker":"znUA2dRUmJJEehdeW4C7FyxEakUe3rcwM6v.noname","height":345238,"difficulty":32,"shareDiff":"3153402.56727047","blockDiff":1552038.25889263,"blockDiffActual":1552038.25889263,"blockHash":"000000002a90156e82cd3da578b82afa5fb2e5d8aebcbe2fb2a5d51301430284","error":{"unknown":"check coin daemon logs"}}

And so 10 blocks in a row. I lost a lot of coins

configurable payout.

I have had some big miners on my pool messaging me wanting to configure payouts. I understand what would go into that and do not really want to start messing with that. I believe i looked into this a year or so ago on z-nomp but did not go to far. Changing the payout timer in the pool config stops it from updating the confirmations also.

What I am looking for is a way to set the wallet to actually run the payouts once every 24 hours instead of the .2 i have payout set. I just want like a midnight payout for everyone that had reached the .2 threshold. Any ideas would be greatly appreciated... If i am wrong about any of the above please let me know.

Please Help Snowgem rejects blocks

We thought a block was found but it was rejected by the daemon, share data: {"job":"ccef","ip":"::ffff:169.239.45.72","port":1234,"worker":"s1aKn13it5hsXHdUhFUXmp8f2Wj2tqo1CAi.1060X4","height":339100,"difficulty":0.50459162,"shareDiff":"564.48000227","blockDiff":448.408819992,"blockDiffActual":448.408819992,"blockHash":"000003a0cc55ab2cb6e58a8b14d1943e0bd3211fddae5302b9acc2a7dcc135a3","error":{"confirmations":-1}}

Everything runs smooth for a while and then all of a sudden starts rejecting blocks - any idea why

nginx conf file example

I am having hard time figuring out how to host the pool using nginx. requesting an example of the conf file when pool config has the following settings: (and whether it could be hosted when enabled set to false and only rely on nginx)

["website": {
        "enabled": true,
        "host": "xx.xx.xx.xx",
        "port": 8080,
        "stratumHost": "127.0.0.1",

I am trying to setup basic username and password authentication for solo pool

Regards,
ma7555

website died

undefined:3
var out='<style>\n #topCharts{\n padding: 18px;\n }\n #topCharts > div > div > svg{\n display: block;\n height: 280px;\n }\n .chartWrapper{\n border: solid 1px #c7c7c7;\n border-radius: 5px;\n padding: 5px;\n margin-bottom: 18px;\n }\n .chartLabel{\n font-size: 1.2em;\n text-align: center;\n padding: 4px;\n }\n .chartHolder{\n\n }\n\n #boxesLower {\n margin: 0 9px;\n }\n #boxesLower > div {\n display: flex;\n }\n #boxesLower > div > div {\n flex: 1 1 auto;\n margin: 0 9px 18px 9px;\n padding: 10px;\n display: flex;\n flex-direction: column;\n }\n .boxLowerHeader{\n font-size: 1.3em;\n margin: 0 0 5px 10px;\n }\n #boxStatsLeft{\n color: black;\n background-color: #cccccc;\n }\n #boxStatsRight{\n color: black;\n background-color: #cccccc;\n }\n .boxStats{\n color:

TypeError: Cannot read property 'split' of undefined
at Object.eval [as stats] (eval at doT.template (/work/s-nomp/node_modules/dot/doT.js:133:11), :3:7102)
at processTemplates (/work/s-nomp/libs/website.js:61:62)
at /work/s-nomp/libs/website.js:93:13
at /work/s-nomp/node_modules/async/dist/async.js:473:16
at iteratorCallback (/work/s-nomp/node_modules/async/dist/async.js:1064:13)
at /work/s-nomp/node_modules/async/dist/async.js:969:16
at /work/s-nomp/libs/website.js:86:17
at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3)

Switching call by CLI broken

Hi,

I enabled a switch port on my pool, individual coins works perfectly. But when I can the cli command to switch, I get this :
/root/s-nomp/node_modules/stratum-pool/lib/pool.js:731
clientsToRelinquish.forEach(function(cObj) {
^

TypeError: Cannot read property 'forEach' of null
at /root/s-nomp/node_modules/stratum-pool/lib/pool.js:731:37
at /root/s-nomp/node_modules/async/dist/async.js:3377:9
at /root/s-nomp/node_modules/async/dist/async.js:473:16
at eachOfArrayLike (/root/s-nomp/node_modules/async/dist/async.js:1057:9)
at eachOf (/root/s-nomp/node_modules/async/dist/async.js:1117:5)
at filterArray (/root/s-nomp/node_modules/async/dist/async.js:3366:5)
at _filter (/root/s-nomp/node_modules/async/dist/async.js:3407:5)
at Object. (/root/s-nomp/node_modules/async/dist/async.js:1122:16)
at pool.relinquishMiners (/root/s-nomp/node_modules/stratum-pool/lib/pool.js:727:15)
at process. (/root/s-nomp/libs/poolWorker.js:73:29)

Cli command is :
node /root/s-nomp/scripts/cli.js coinswitch horizen Equihash


My config related to switching is:
"switching": {
"Equihash": {
"enabled": true,
"algorithm": "equihash",
"ports": {
"3333": {
"diff": 32768
}
}
}
}

Thank you!

Failed at the [email protected] install script

../crypto/common.h:11:20: fatal error: sodium.h: No such file or directory
#include "sodium.h"
^
compilation terminated.
make: *** [Release/obj.target/equihashverify/arith_uint256.o] Error 1
make: Leaving directory /data/s-nomp/node_modules/equihashverify/build' gyp ERR! build error gyp ERR! stack Error: makefailed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/root/.nvm/v10.8.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23) gyp ERR! stack at ChildProcess.emit (events.js:182:13) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:238:12) gyp ERR! System Linux 3.10.0-693.2.2.el7.x86_64 gyp ERR! command "/root/.nvm/v10.8.0/bin/node" "/root/.nvm/v10.8.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /data/s-nomp/node_modules/equihashverify gyp ERR! node -v v10.8.0 gyp ERR! node-gyp -v v3.7.0 gyp ERR! not ok npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] install:env V=1 node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-09-10T11_34_31_142Z-debug.log

Does BitcoinZ is still supported?

As I have heard, Bitcoinz has moved to the Zhash algorithm, instead of Equihash. Does it mean that the s-nomp pool can't be used with Bitcoinz?

Add pool fee to /api/stats

Various sites query our pools for information. It would be useful for them to be able to get the fees for every coin.

One problem with fetching this automatically from the pool configs is some pool operators donate to the coin community so summing up all the reward recipients wouldn't be an accurate fee.

Maybe we should add another item below it named poolFee with a comment that this is only used for the stats api.

TypeError: tx.setOverwinter is not a function

2018-09-07 10:59:56 [Master]    [PoolSpawner] Fork 2 died, spawning replacement worker...
2018-09-07 10:59:56 [Switching] [Setup] (Thread 4) Loading last proxy state from redis
2018-09-07 10:59:56 [Pool]      [zcash] (Thread 4) Share processing setup with redis (127.0.0.1:6379)
2018-09-07 10:59:56 [Switching] [Setup] (Thread 4) Switching "switch1" listening for equihash on port 3333 into zcash
/home/pool/s-nomp/node_modules/stratum-pool/lib/transactions.js:27
        tx.setOverwinter()
           ^

TypeError: tx.setOverwinter is not a function
    at Object.exports.createGeneration (/home/pool/s-nomp/node_modules/stratum-pool/lib/transactions.js:27:12)
    at new BlockTemplate (/home/pool/s-nomp/node_modules/stratum-pool/lib/blockTemplate.js:59:35)
    at JobManager.processTemplate (/home/pool/s-nomp/node_modules/stratum-pool/lib/jobManager.js:155:32)
    at /home/pool/s-nomp/node_modules/stratum-pool/lib/pool.js:601:66
    at itemFinished (/home/pool/s-nomp/node_modules/stratum-pool/lib/daemon.js:166:36)
    at /home/pool/s-nomp/node_modules/stratum-pool/lib/daemon.js:180:17
    at parseJson (/home/pool/s-nomp/node_modules/stratum-pool/lib/daemon.js:92:17)
    at IncomingMessage.<anonymous> (/home/pool/s-nomp/node_modules/stratum-pool/lib/daemon.js:103:17)
    at emitNone (events.js:91:20)
    at IncomingMessage.emit (events.js:188:7)
2018-09-07 10:59:56 [Master]    [PoolSpawner] Fork 3 died, spawning replacement worker...

Unauthorized messages when trying to connect to Pirate

I am trying to set up Pirate with S-Nomp, but I am getting the following error message:

2019-03-26 14:23:40 [Pool] [pirate] (Thread 1) Unauthorized zs1xxx

As Pirate has to have privateChain set to true in pirate.json in /s-nomp/coins is S-Nomp compatible with this particular coin ? I have sapling set to true in the coin json file.

Manual setting payments for miners

Hello! Please tell me how to add this function to the pool code, because I’ve already stumped and can’t even imagine how to implement it correctly, my decisions lead either to a complete stop of payments or to a change in payments for the entire pool

Domain Name Binding Help

I have configured the pool and can run normally, but the only problem I encounter will not bind the domain name. What files need to be modified, can you elaborate?

We thought a block was found but it was rejected by the daemon

018-09-07 14:09:17 [Pool] [zcash_testnet] (Thread 1) Submitted Block using submitblock successfully to daemon instance(s)
2018-09-07 14:09:17 [Pool] [zcash_testnet] (Thread 1) We thought a block was found but it was rejected by the daemon, share data: {"job":"cccd","ip":"::ffff:113.224.184.59","port":3036,"worker":"tmBwYF8DTzKzKoqmiUjTAgkKJiejATZZzo1.3667","height":286860,"difficulty":0.05,"shareDiff":"0.39151923","blockDiff":0.229991933,"blockDiffActual":0.229991933,"blockHash":"00146ee7bba6d803ac8a4acdf71e77590cead3b31c3f51373e36eb7bacbdfc6d","error":{"unknown":"check coin daemon logs"}

All new blocks get rejected

I am running snowgem on my pool and new blocks get rejected. Not only one but all of them. Please help here is the log from the daemon. Please help or advise urgently.

2018-08-14 07:57:56 ERROR: ContextualCheckBlock: founders reward missing
2018-08-14 07:57:56 ERROR: ProcessNewBlock: AcceptBlock FAILED
2018-08-14 07:57:56 ERROR: ReadBlockFromDisk: OpenBlockFile failed for CBlockDiskPos(nFile=-1, nPos=0)

And here is the pool error

2018-08-14 09:57:56 [Pool] [snowgem] (Thread 7) We thought a block was found but it was rejected by the daemon, share data: {"job":"d20f","ip":"::ffff:197.184.41.156","port":1234,"worker":"s1aKn13it5hsXHdUhFUXmp8f2Wj2tqo1CAi.ATR1080Rig","height":333304,"difficulty":0.65186611,"shareDiff":"1072.29723719","blockDiff":404.449343535,"blockDiffActual":404.449343535,"blockHash":"000001e8f0660a8a2a21879143f3775006233fba2b682afcf2525b3bb2dab566","error":{"unknown":"check coin daemon logs"}}

Invalid solution: invalid collision length between StepRows

Hi,

I just configured ZelCash, and for every share I get that type of error:
Invalid solution: invalid collision length between StepRows
X[i] = fa43261ac3243d31986370533c7c2c2084c9
X[i+1] = bc9bfe18ccab3d0b8a568f1fd9c098f147bd

My coins config is the latest one. And the pool config is the following:
"ports": {
"1234": {
"tls": false,
"diff": 0.2,
"varDiff": {
"minDiff": 0.001,
"maxDiff": 4096,
"targetTime": 5,
"retargetTime": 5,
"variancePercent": 30
}

I get this running a simple GPU mining rig.

Thank you!

Installed with errors, pool will not run

Installed the pool with dependencies but still get errors staring up. I've also install zclassic znomp without the same errors. My main goal is to mine a overwinter block in the test net but it absolutely does not work with all implementations of znomp Ive tried.

For reference I have zcash 1.1.0, 1.1.1, 1.1.2 installed. I am using 1.1.0 to test overwinter transaction.

Keep up the good work, I've been keeping an eye on this repository as it seems to be promising. Hope my observations help.

Error: Invalid checksum
    at Object.decode (/home/miningcore/Downloads/z-nomp/node_modules/bs58check/base.js:41:25)
    at Object.fromBase58Check (/home/miningcore/Downloads/z-nomp/node_modules/bitcoinjs-lib-zcash/src/address.js:11:27)
    at recipients.forEach.recipient (/home/miningcore/Downloads/z-nomp/node_modules/stratum-pool/lib/transactions.js:234:39)
    at Array.forEach (<anonymous>)
    at Object.exports.createGeneration (/home/miningcore/Downloads/z-nomp/node_modules/stratum-pool/lib/transactions.js:233:16)
    at new BlockTemplate (/home/miningcore/Downloads/z-nomp/node_modules/stratum-pool/lib/blockTemplate.js:58:35)
    at JobManager.processTemplate (/home/miningcore/Downloads/z-nomp/node_modules/stratum-pool/lib/jobManager.js:155:32)
    at /home/miningcore/Downloads/z-nomp/node_modules/stratum-pool/lib/pool.js:601:66
    at itemFinished (/home/miningcore/Downloads/z-nomp/node_modules/stratum-pool/lib/daemon.js:166:36)
    at /home/miningcore/Downloads/z-nomp/node_modules/stratum-pool/lib/daemon.js:180:17
2018-08-06 19:55:12 [Master]	[PoolSpawner] Fork 14 died, spawning replacement worker...
2018-08-06 19:55:13 [Switching]	[Setup] (Thread 7) Loading last proxy state from redis
2018-08-06 19:55:13 [Pool]	[zcash_testnet] (Thread 7) Share processing setup with redis (127.0.0.1:6379)
/home/miningcore/Downloads/z-nomp/node_modules/bs58check/base.js:41
    if (!payload) throw new Error('Invalid checksum')
                  ^

Known vulnerability found in hapijs/hoek

Known vulnerability found

CVE-2018-3728

Moderate severity
hoek node module before 5.0.3 or 4.2.1 suffers from a Modification of Assumed-Immutable Data (MAID) vulnerability via merge and applyToDefaults functions, which allows a malicious user to modify the prototype of "Object" via __proto__, causing the addition or modification of an existing property that will exist on all objects.

package-lock.json update suggested:
hoek ~> 4.2.1

We need to:

  • Figure out what pulls this package in and what it's used for
  • Identify an upgrade path and execute it.

Share Rejected

How to solve this problem? How to solve this problem? ZeroClassic Coin

Share rejected: {"job":"ccce","ip":"::ffff:90.188.239.249","worker":"t1Nwh2urX25fWNujs6zuwsqYe9PcqBTrJHp.1","difficulty":0.05,"error":"Error: Incorrect size of solution (806), expected 2694"}

who's Bill Kendrick

this message popped up on screen while mining. Any ideas?

2018-08-07 21:36:10 [Pool] [zcash] (Thread 2) No new blocks for 55 seconds - updating transactions & rebroadcasting work
Bill Kendrick2018-08-07 21:36:38 [Payments] [zcash] Finished interval - time spent: 2ms total, 1ms redis, 2ms daemon RPC
2018-08-07 21:37:06 [Pool] [zcash] (Thread 4) No new blocks for 55 seconds - updating transactions & rebroadcasting work

Pool Name in config.json

Looking to make this easier is to add the pool name as a configurable option. Will need to be converted to hex by znomp. This is so the explorers can show the mined by "" for every pool. Default name should be z-nomp.

equihash n=150, k=5 beam

hey Devs,

I want to mine Beam coin but they are using equihash parameters n=150, k=5. Can s-nomp work with it? I couldn't find coin name in the coins folder?

Error trying to shield balance NaN

2018-09-13 02:40:36 [Payments] [zclassic] Error trying to shield balance NaN {"code":-3,"message":"Amount is not a number or string"}

Restarting the pool allows you to solve this problem

Invalid solution: duplicate indices

Every miner that connects to my pool has this error,
2018-07-31 20:38:10 [Pool] [zclassic] (Thread 1) Share rejected: {"job":"cccf","ip":"::ffff:37.187.129.166","worker":"t1cPdya6ksXqPwco3gLSSZ4hmNeofwBZAt4.noname","difficulty":0.08928571,"error":"invalid solution"}
Invalid solution: duplicate indices

This is your latest repo.

Website launch problem

What should config.json fill in here, if left blank, affect the operation of the website?
"poolHex": ",

In addition, I prompted for an error when I started the site:

2019-05-22 10:27:44 [Pool] [zcash] (Thread 1) Error with getblocktemplate on creating first job, server cannot start.

How should we solve it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.