You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
jahway603 bbfdba7fbc starting to clean 3 years ago
.vscode Add coin configs and debugging mode 6 years ago
Old READEM update 6 years ago
coins starting to clean 3 years ago
libs Dockerize 3 years ago
pool_configs add solo wsb pool_config example 3 years ago
scripts init 6 years ago
website hardcode pirate total supply for now 3 years ago
.dockerignore Dockerize 3 years ago
.gitignore added hush coin config 3 years ago
Dockerfile Dockerize 3 years ago
LICENSE Create LICENSE 6 years ago
README.md starting to clean 3 years ago
coins.template Disablecb (#19) 5 years ago
config_example.json Update config_example.json 5 years ago
docker-compose.yml comment out port mapping for network_mode: host 3 years ago
gencfg.sh Disablecb (#19) 5 years ago
init.js try to add redis auth 3 years ago
package.json Dockerize 3 years ago
pm2.json add pm2 config 3 years ago
poolconfigs.template Add trackShares template example 6 years ago

README.md

Mining stratum for Hush and Hush assetchains.

Table of Contents

Differences between this and Z-NOMP

  • This is meant for Hush mining
  • Founders, Treasury, and other ZEC/ZEN specific stuff is removed

Using Docker (easy)

This method sets up 2 docker containers, one with knomp and one with redis.

It will directly use your host system's network so you can connect to the coin daemon without opening up RPC beyond 127.0.0.1.

The ports it listens on must not be in use, this includes 8080 for the website, 6379 for redis and any ports you open for stratums (default is 3333).

Requirements

Install Docker and docker-compose

Docker Install

git clone https://git.hush.is/jahway603/knomp.git
cd ./knomp
cp config_example.json config.json

Setup your config.json, ./coins/ and ./pool_configs/ in here, then:

docker-compose up &

Docker stop

docker-compose down

Docker rebuild and update

docker-compose down
docker rmi knomp_knomp
git pull
docker-compose up &

Bare metal installation

Requirements

Upgrade

Please be sure to backup your ./coins and ./pool_configs directory before upgrading

Kill your running pool (CTRL-C)

cd knomp
git pull
npm install
npm start

Install Daemon

Some initial setup

# The following packages are needed to build both Hush and this stratum:
sudo apt-get update
sudo apt-get install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python python-zmq zlib1g-dev wget libcurl4-openssl-dev bsdmainutils automake curl libboost-dev libboost-system-dev libsodium-dev jq redis-server nano -y

Now, let's build Hush

git clone https://git.hush.is/hush/hush3
cd hush3 
./build.sh -j$(nproc)

Now, let's run the assets. This will start ALL of the assets might take a day or so to sync, depending on system speed/network connection.

If you are setting up a single chain to mine and/or don't know what pubkey is, skip this step and use the startup params for the hushd daemon as provided by the individual coin's team.

cd ~/hush3/src
./assetchains

Install Pool

Once all the chains you want on your pool have synced up we can configure the stratum.

We need node and npm installed

cd ~
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

Now, let's build our stratum and run it. This will install the pool and configure it for all the assetchains on your system automatically. It must be run from the same user as the coin deamons were launched, as it pulls the rpcuser/pass from the conf file in the home directory.

git clone https://git.hush.is/jahway603/knomp.git
cd ./knomp
npm install
cp config_example.json config.json (and configure it)
nano gencfg.sh

Edit line 3 in so that it has your own HUSH based address, CTRL-X then Y to save and exit

We need to generate the coins files (coin daemon must be running!): gencfg.sh <coin name>

You can run just gencfg.sh with no coin name to use the assetchains.json in hush3/src directory for all coins. Make sure you edit the template with the correct values you want before running the config generator.

Finally we are ready to start the pool software

npm start

If all went well the program should start without error and you should be able to browse to your pool website on your server via port 8080.

More Config Information

Disable Coinbase Mode

This mode uses -pubkey to tell the daemon where the coinbase should be sent, and uses the daemons coinbase transaction rather then having the pool create the coinabse transaction. This enables special coinbase transactions, such as ac_founders and ac_script or new modes with CC vouts in the coinbase not yet created, it will work with all coins, except Full Z support described below.

To enable it, change the value in the ./coins/*.json to "disablecb" : true

The pool fee is taken in the payment processor using this mode, and might not be 100% accurate down to the single satoshi, so the pool address may end up with some small amount of coins over time.

Payment Processing

Please note that the default configs generated are for solo mining. If you wish to create a public pool please modify the configs like in this example config

There is now a config option you can add to your pool_configs/coin.json to toggle making an attempt at a payment upon pool startup.

"paymentProcessing": {
    "payOnStart": true,
    ...
}

Invalid Worker Addresses

You can add an option to your pool_config to have any miners that mine with an invalid address (if they somehow get through) to pay out to an address of your choosing

"invalidAddress":"zsValidAddressOfYourChoosingThatsNotThePoolZAddress"

Full Z Transaction Support (Sprout)

This is an option to force miners to use a Z address as their username for payouts

In your coins file add:

"privateChain": true,
"burnFees": true

Sapling and Sapling Payment Support

In coins/hush.json file:

"privateChain": true,
"burnFees": true,
"sapling": true

In pool_config:

"zAddress": "zsPoolsSaplingAddress",
"walletInterval": 2,
"validateWorkerUsername": true,
"paymentProcessing": {
    "minConf": 5,
    "paymentInterval": 180,
    "maxBlocksPerPayment": 20,

More Resources

Further info on config and some sample configs

License

Forked from ComputerGenie repo (deleted)

Released under the GNU General Public License v2 http://www.gnu.org/licenses/gpl-2.0.html

Forked from z-classic/z-nomp which is incorrectly licensed under MIT License - see zone117x/node-open-mining-portal