2

I was reviewing the blockchain technology the other day, Maybe this is not the right place or maybe I should rephrase my question but..

  • Blockchain is peer to peer, every peer stores the data
  • Data is only added... no updates/deletes

    so my questions are:

    1. As we create more and more blocks, isnt it become slower and slower to get the data?
    2. Extra overhead on network?

Suppose there are organizations A, B, C, D. they decide to use blockchain, join the network.

A creates few blocks
B creates few blocks
C and D do not create any blocks

still all the blocks get copied to all organizations
I mean in multiple enterprise scenario why organization A should care about data from B?
also there may be thousands of GBs of data, and it is copied all over the places
doesnt this gives extra overhead to the network?

update

suppose the network becomes super slow because some random reason

organization A creates chain1 and creates few blocks within it say block1, block2
after a small interval
organization B creates few blocks withing chain1 say block3

obviously it takes some time to sync the blocks within the peers A & B
now as a user of blockchain what is the guarantee that I will always get latest data?
I mean the user may get block2 as latest or maybe block3 as latest one

0

Basically the answer to all of your questions is "yes".

As the amount of data grows the amount if takes to synchronize a new node increases. The new node has to download all of the blockchain's data and validate it. A full node is currently around 200GB of data in Ethereum.

Different clients have a bit different ways to mitigate this problem but one of the main ideas is to use prevalidated checkpoints - a point in time from which a new node can start its sync process while skipping everything before it. There are other approaches as well.

But once a node is fully synchronized (has all the data up to the current block) the amount of data processed stays quite constant - each new block adds new data but the amount of data in each block doesn't fluctuate much.

In your scenario if organization A doesn't care about data from organization B they maybe shouldn't be in the same blockchain. From one point of view blockchains are best suited for tasks when everyone wants (asynchronous) access to the same data and many participants are writing data.

Update after update to original question

Each node has its own view of the state of the blockchain. Especially in bigger blockchains different nodes may not share the same view. That's where the network's consensus mechanism comes in and basically (eventually) decides which blocks are part of the main blockchain.

A single node has no way of knowing whether it has the latest block or not. Furthermore it has no way of knowing whether the latest blocks it has will even stay in the canonical ('main') chain. But after some time the consensus mechanism makes sure all nodes agree that block X is part of the canonical chain. Therefore the problem is reduced to a problem of how sure a node wants to be of whether block X is part of the canonical chain: the more time (the amount of blocks on top of block X) the node waits the more sure it is that block X will stay in the canonical chain.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.