Hi, thank you for the great guide.
I'm learning a lot, although I'm getting stuck on genesis block creation. I changed the PoW to Keccak and added DGWv3 for retargeting, and it seems fine when I leave out the new PoW.
As I understand it (or not?) the genesis block can start with any type of hash, then a new algo can kick in and build on that to generate new blocks. So I could I think generate a nice easy genesis block with good tools, then fire up the keccak miner and keep going. I could be mistaken here.
I'm using nasa8x's Node genesis creation tool.
https://github.com/nasa8x/genesis-block
I have -z "A new keccak coin for 2020 16/Jan/2020"
-t 1579064710
-b 0x1d00ffff
-p "04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f" (as for Bitcoin)
I run it:
james@instance-1:~/node-genesis-block$ node genesis.js -a keccak -t 1579064710 -z "A new keccak coin for 2020 16/Jan/2020" -b 0x1d00ffff -p "04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f"
Outputs:
james@instance-1:~/node-genesis-block$ node genesis.js -a keccak -t 1579064710 -z "A new keccak coin for 2020 16/Jan/2020" -b 0x1d00ffff -p "04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f"
---------------
algorithm: keccak
pzTimestamp: A new keccak coin for 2020 16/Jan/2020
pubkey: 04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f
bits: 486604799
time: 1579064710
merkle root hash: fa86c79aebc5f75f44c2d7d9c5e0c14ce68157025ac7416f94931e38c1bf09c9
Searching for genesis hash...
nonce: 791176
genesis hash: 00000975f631f9dc89623c62e197175a1c722237dc0e0ff582824fca0c4b29be
james@instance-1:~/node-genesis-block$
But no luck, whatever I do assertions fail:
james@instance-1:~/bitcoin$ bitcoind -daemon
bitcoind: chainparams.cpp:161: CMainParams::CMainParams(): Assertion `consensus.hashGenesisBlock == uint256S("0x00000975f631f9dc89623c62e197175a1c722237dc0e0ff582824fca0c4b29be")' failed.
Aborted (core dumped)
james@instance-1:~/bitcoin$
A little puzzling at the moment, I thought these genesis block creations tools worked quite well. Or at least, they used to; I used the same author's Genesis H0 tool before using the Node script.
Does anyone have any suggestions on what the problem might be?
Thank you good sirs!