See title.
Details
- Reviewers
deadalnix Mengerian Fabien - Group Reviewers
Restricted Project - Commits
- rSTAGINGf17b81e0786b: Update chainparams
rABCf17b81e0786b: Update chainparams
make check
Check against your own nodes.
Diff Detail
- Repository
- rABC Bitcoin ABC
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Seems strange that chainwork does not correspond to the block hashes used for assumevalid.
src/chainparams.cpp | ||
---|---|---|
108 ↗ | (On Diff #10682) | Chain work does not seem to correspond to the block that's used for "assume valid". { "hash": "00000000000000000351a488f34e8d5f4e215836fc6022ef271eb57024968eaa", "confirmations": 2048, "height": 592876, "version": 1073676288, "versionHex": "3fff0000", "merkleroot": "0e553351446894a9620269c5841b5aebc218f48f8e141c947baefd38839cbe47", "time": 1564064669, "mediantime": 1564059698, "nonce": 1902565215, "bits": "1803ffa7", "difficulty": 274967066174.277, "chainwork": "000000000000000000000000000000000000000000f61da43242c003a3d8df2b", "previousblockhash": "0000000000000000035f97312a126effa84809d56a9f58c76b0a7f5c96daa5d8", "nextblockhash": "000000000000000002a9ea9dc4e47c43546508de86d3f2aa1f388e4e7428483c" } |
271 ↗ | (On Diff #10682) | The chainwork does not seem to match the "assume valid" block. I get: { "hash": "000000000000074e1e01f86773c740a6ad576f253b26d3f337b4f07c4c5209d4", "confirmations": 5040, "height": 1315177, "version": 536870912, "versionHex": "20000000", "merkleroot": "db57ed3d01bdddac3cbd3d498018ec4cb340c2c425e142693d99f5957eba6c9e", "time": 1563269702, "mediantime": 1563267750, "nonce": 2197439365, "bits": "1a089431", "difficulty": 1955613.58986171, "chainwork": "000000000000000000000000000000000000000000000050e6a15628d3775625", "previousblockhash": "0000000000000101c2ad15ec95c785e9f8da71ff88a17a20d518c560fb1ade4f", "nextblockhash": "000000000000055501ec08df2b1411a1a9d3a64753fb77f0318789da27a211ac" } |
The chainwork should be as high as the highest seen PoW and does not need to match the assume valid block. However, it should always be greater than the assume valid block, which is obvious. See D3732
In that case, it seems to be fine according to my local nodes.
I do find that this makes it difficult and confusing to verify manually though.
For example, the Upgrade testnet forks off the main testnet, and I am concerned that changing this parameter may mess with it. (Current value is fine, but it should be checked every time it is changed).
You can always change the minimum chainwork via command line if you want to switch chains.
Just to follow up, this did indeed break my testnet node's ability to sync to the fork testnet. I had to put minimumchainwork=0 in the bitcoin.conf so it would stop disconnecting imaginary_username's node with reason "Disconnecting outbound peer 51 -- headers chain has insufficient work"