Post
Topic
Board Development & Technical Discussion
Merits 1 from 1 user
Re: Maintaining the growing blockchain ledger size in local full nodes
by
ranochigo
on 18/11/2017, 16:18:12 UTC
⭐ Merited by ETFbitcoin (1)
Maybe it could be configurable, like pruned mode. Those who want to fully download and verify all blocks since the beginning can do so, others can rely on just the block headers.
So a SPV client? If we're talking about full nodes, you would be expected to download and verify all the blocks.

But if you trust them to be a linked list of the REAL chain, you also trust their hashes. And since you would fully validate some statistical percentage of the blocks, it would be hard to fake just some blocks in the middle which you didn't validate. Also, you could potentially validate some of these blocks later. For example, maybe the client could download each hour 1 random block it didn't validate as part of its 10% download.
You can validate the blocks per the block headers but you won't be able to verify if the block follows the protocol rules. If you don't do it, there's no sense in running a full node at all. I get that you're solving the storage problem but the redundancy would be affected quite severely. If 1/2 of the nodes goes down, the network would have only 500 nodes(or even lesser) with the specific portion of the blockchain.

Why one peer? If it's 10%, 10% of the nodes can provide it. That's still hundreds or thousands.
I don't think currently you're connecting to 100% of the nodes to download the whole chain.
You don't expect to connect to hundreds of nodes and for hundreds of nodes to connect to you right? You are getting the blocks from several peers at the same time. The current implementation works by the peers sending the blocks simultaneously. If your implementation were to be a reality, your client will download fragments of it and there would be a bottleneck.

Sure, but you can connect to a large enough portion of it to find what you need, like it already does. There are other examples of decentralized networks which work with far fewer nodes holding data, sometimes just a single one, like Kad and BitTorrent's DHT.
So the nodes would be relying on a central server to be providing them with the info? What about the peer to peer in Bitcoin?

That's one option, but: it just solves storage, it can't help serving blocks as a "split full node", and in the long term also the initial download can be a problem. In a way, bootstrapping a client from scratch already takes too long.
There's little to no point if you're downloading just parts of the blockchain. Either you download and verify everything or use a SPV client.