Skip to content
This repository has been archived by the owner on Jul 18, 2023. It is now read-only.

Change startBlockNumber to canonicalBlock #85

Open
jo-tud opened this issue May 28, 2017 · 3 comments
Open

Change startBlockNumber to canonicalBlock #85

jo-tud opened this issue May 28, 2017 · 3 comments

Comments

@jo-tud
Copy link
Contributor

jo-tud commented May 28, 2017

Canonical Block is a better term for the first Block that is part of a Blockchain (especially useful for forked chains). Also it should not be a data property but an object property pointing to the actual Block.

@sunnya97
Copy link
Contributor

A blockchain's beginning should be defined by its genesis block, not the block at which it forked. I don't see there being an issue with a block being in multiple Blockchains. What's more useful for defining a specific blockchain rather is the most recent block, because once that is defined, getting the rest of the blocks is trivial as you can just work backwards through the chain of parents.

@webthethird
Copy link
Contributor

I would agree with @sunnya97 's comment, despite the multiple forks, I would still consider the genesis block to be the beginning of the Ethereum blockchain (as well as ETC...)

@jo-tud
Copy link
Contributor Author

jo-tud commented Jul 31, 2017

This really is a tricky issue.
Of course there is a Genesis Block for all blockchains, which is the first block of the common past. But with each protocol change a new segment in the blockchain is started and a new canonical block is created.

The various forks of a blockchain form a tree. And each segment has a canonical block at its root.
This graphic illustrates that fact:

fork modeling

In the above image - what is the blockchain? It's more a block tree! And the segments are identified by canonical blocks (those where a fork happens). For the non forking segment, the canonical block has no meaning. Only for the fork.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants