GenesisZ - Mine the Genesis Block for your Zcashy altcoin

GenesisZ

Hi Zcashers,

I’ve developed a python tool for mining Zcash based altcoin genesis blocks, that is, altcoins using the Equihash PoW algorithm and block layouts as used by zcash. I release the tool under the GPLv3 license and welcome any feedback. See README.md for further information.

You can find it on Github.

Features

  • Modify every parameter that influences the block header hash (see Usage)
  • Support for silentarmy
  • Sensible defaults
  • Placeholders of the form {BTC}, {ETH} or {ZEC} in the TIMESTAMP input string get translated to the currency’s latest block number and hash.
  • Uses the python-zcashlib, which is a (still very much unfinished) extension of the well-known python-bitcoinlib.

Examples

Zcash mainnet

Mine the zcash mainnet gensis block with the silentarmy solver by calling

./genesis.py -s "/path/to/sa-solver" -r 5000 -t 1477641360

or cheat, because you already know the right nonce:

./genesis.py -s "/path/to/sa-solver" -n 1257 -t 1477641360

Zcash testnet

This time using Tromp’s solver with 4 threads, checking up to 10 nonces.

./genesis.py -c testnet -t 1477648033 -b 0x2007ffff -E 0x1f07ffff -s '/path/to/equihash/equi' -T 4 -r 10

It will find the right solution for nonce 6.

Zcash regtest

Using Tromp’s 48,5 solver with

./genesis.py -c regtest -t 1296688602 -b 0x200f0f0f -E 0x1f07ffff -s '/path/to/equihash/eq485' -T 4 -r 10

will find the correct regtest solution for nonce 9.

Zclassic mainnet

Zclassic decided to use a custom extra nonce of 0x1d00ffff. Let’s mine their
mainnet solution (already setting the right nonce to 0x00...021d) with

./genesis.py -c mainnet -t 1478403829 -E 0x1d00ffff -C Zclassic -z "No taxation without representation. BTC #437541 - 00000000000000000397f175a94dd3f530b957182eb2a9f7b79a44a94a5e0450" -s '/path/to/equihash/equi' -T 4 -n 21d