bitcoin-abc icon indicating copy to clipboard operation
bitcoin-abc copied to clipboard

Feature Request: Share pre-fork blockchain with Bitcoin Core or other Core-like clients in read-only fashion

Open freerainboxbox opened this issue 4 years ago • 1 comments

Rationale: Full nodes are very expensive to run. Some have already bootstrapped their clients for Bitcoin (BTC), and would like to support hard forks of it as well. Forked clients use the same database format as Bitcoin Core. Since blocks before height 478559 are identical on every fork, clients should be able to share these blocks instead of storing duplicates for each client. This will save both disk space and bandwidth, and encourage current Bitcoin full nodes to join Bitcoin Cash with a shortened IBD time.

Methodology: Bitcoin ABC should be able to read another blockchain database (blocks/ and chainstate/). After verifying the history, it will then request blocks past 478559 from peers, stored in its own directory. To run Bitcoin ABC in this mode, an extra command line option must be provided to specify the directory of the Bitcoin Core blockchain database.

freerainboxbox avatar Jun 15 '20 17:06 freerainboxbox

Patches are welcome at https://reviews.bitcoinabc.org

However, I think it's likely that the underlying database for Bitcoin ABC could change in the future, so the payoff for this feature may not be as high as expected.

It's also possible to sync Bitcoin ABC against your local Bitcoin Core node, speeding up IBD and reducing bandwidth usage. This doesn't fix your disk usage issue, but disk space is relatively cheap (~$0.10 per GB using consumer-grade hardware).

jasonbcox avatar Jun 15 '20 18:06 jasonbcox