zack-bitcoin/amoveo

Sync mode that downloads blocks without merkel proofs, and generates the merkel proofs locally.

Closed this issue · 2 comments

If your internet connection is slow, the bottleneck is not on reading the hard drive or processing blocks. It is on bandwidth.
One potential way to improve this is by not including the merkel proofs when we download blocks.

Would we need to generate the merkel proofs for each block locally? If so, then we wouldn't be able to process blocks in parallel.

If we didn't have to store merkel with blocks, that would save a lot of hard drive space.

This could be a 10x improvement in hard drive space and in bandwidth costs.

The downside of this strategy is that you would need to read a lot of information from your hard drive to verify a block, and this step of reading your hard drive is not parallelizable, so it could become the bottleneck, especially if you don't have solid state.
It would be about the same as updating all the info to the hard drive that we are already doing for each block. And updating to the hard drive is not a bottleneck on solid state currently.
So I think this version of syncing would be faster for anyone using a solid state hard drive and had poor network connection in comparison to your processing power.

Now that we store blocks in compressed batches, this update is not so possible.
Also, if your bandwidth is low, it seems like it would be better to use a light node instead of a modified full node.