Closed iquidus closed 3 years ago
Unfortunately it seems like conformity is a much more realistic solution here than convincing every dApp that they're not following spec...
So while frustrating, this does seem like the better solution.
Unfortunately it seems like conformity is a much more realistic solution here than convincing every dApp that they're not following spec...
So while frustrating, this does seem like the better solution.
Agreed. Sucks but what else can you do.
Code is complete for UIP 9 integration: https://github.com/ubiq/go-ubiq/pull/22
Simple Summary
Currently Ubiq Mainnets
networkId
is 88, whilechainId
is 8. This should not be problematic, however much of ethereums ecosystem was built with the assumption these values would match (instead of actually following the specification). To make it easier for these dapps and wallets to properly support Ubiq (without us having to patch/fork each one separately), the networkId should be changed to 8 to match the current chainId.Implementation
This should be implemented in a manner that allows for a window of time in which clients accept connections from peers reporting both the old and the new networkId (88 and 8 respectively).
This does NOT require a hardfork due to not touching consensus, however the window of time in which both networkIds need to be supported would be smaller if executed around a hard fork (as users are more likely to update to the newer releases).
Why not change chainId to match networkId?
Unlike networkId which is only used during peer discovery, chainId is used in signing transactions as a means of replay protection. A number of contracts deployed pre-taurus(aka istanbul), had chainId hardcoded for when sending their own internal transactions/deployments (as a work-around to not yet having the chainId opcode introduced in taurus). Contracts still in popular use today (e.g the shinobi protocol) would need redeployment. Changing networkId instead avoids this.
References
ChainId vs NetworkId? How do they differ on Ethereum? Network ID and chain ID- Hyperledger Besu EIP-155 - Simple replay attack protection EIP-695 - Create
eth_chainId
method for JSON-RPC chainlist