Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Fix xDAI submission #32
Technically I've never really formalized what each parameter means and I kinda came up with a system that worked for my api aggregator: https://github.com/pedrouid/ethereum-api
However I hit an issue with how POA network describes xDAI chain as a POA chain named as DAI network, so I've included this in this PR. Let me know what you guys think
The current state of EVM blockchains usually constitute multiple networks. The clients have the same implementation but different networks for different use-cases, most commonly a mainnet and a few testnets.
The relationship between these networks can be very subjective but the developer communities usually identify them as part of an aggregate or cluster. Therefore I think that this is aggregate would define what we call the chain field.
For Ethereum (ETH) we have multiple networks including mainnet, ropsten, rinkeby, kovan and goerli. These are all part of the ETH cluster, therefore they share the chain field
Same thing can be said about the POA network which are all part of a cluster of POA networks used as sidechains for Ethereum. These include core, sokol and xdai, therefore they share the chain field
Hence the same reasoning can be followed for other chains. I know this is not a very technical unambiguous definition but it feels both accurate and practical for the current state of EVM blockchains.
The other fields are in my opinion self explanatory but here are my definitions:
Additionally, I would like to propose an extra field for the chain's native currency denomination, some examples that could be useful in the current list:
Ethereum Mainnet= ETH
You could define a cluster by how the client dev teams coordinate with each other. ETH core devs coordinate releases with all clients for their own cluster (mainnet, ropsten, rinkeby, kovan, goerli) the POA network devs coordinate releases with all clients for their own cluster (core, sokol, xdai), the ETC core devs coordinate releases with all clients for their own cluster (mainnet, testnet).
Theoretically these are all EVM blockchains but they are separate dev communities with different roadmaps.
I find Blockscout's API endpoints make this clearer and IMO a good pattern to follow:
I would signal not to merge it
does not really make sense to me.
IMHO we should drop chain and network completely and replace by something "consensusType" and perhaps the proposed "ecosystem" (there I am not yet 100% convinced how it would be used but as @bmann thinks it is useful perhaps we add it)