consensus-specs icon indicating copy to clipboard operation
consensus-specs copied to clipboard

Merge discussion and todos from #2257

Open djrtwo opened this issue 4 years ago • 6 comments
trafficstars

#2257 got the basic merge spec to a solid footing. The following are the list of discussion points and todos that were not completed within the context of that PR. These are left for future work and discussion.

Note: This is not an exhaustive merge todo list but is instead only open points from #2257

  • [x] Debates around application_state_transition (should the spec know about the ApplicationState or just about its root hash)
  • [ ] Consider eliminating uint256 requirement on beacon-chain side in PoWBlock and TD comparison
  • [ ] Consider max block size in relation to ApplicationPayload and where should such validation happen. At gossip, inside beacon chain, or just in application gas limit. Max TX size times max txs is 16GB!
  • [X] Consider Union type for transaction list with a single OPAQUE_SELECTOR for first merge fork. More specific, structured selectors for each TX type to follow
  • [x] Post-London add base_fee to ApplicationPayload
  • [x] Add Hash32 type to provide more specificity than Bytes32 and to further disambiguate from Root
  • [ ] Modularize components of fork choice in phase 0 to better facilitate code reuse https://github.com/ethereum/eth2.0-specs/pull/2257#discussion_r599015500
  • [ ] Potentially rename Eth1Data -- DepostContractData
  • [x] Consider adding fields to block to ensure there is a clean one-way map from ApplicationPayload to RLP block

djrtwo avatar Mar 26 '21 20:03 djrtwo

I would also say consider adding some fields back in despite the redundancy. Particularly, adding the block prevhash back in to the ApplicationPayload seems like it could easily do more good than harm around the transition and generally.

It feels like there's important simplifications that can come from making sure that there is a clean pure one-way map from ApplicationPayload to an RLP block.

vbuterin avatar Mar 26 '21 20:03 vbuterin

PR addressing additional fields in ApplicationPayload, https://github.com/ethereum/eth2.0-specs/pull/2295

mkalinin avatar Mar 31 '21 10:03 mkalinin

Can we pipe becon chain block roots to eth1x as well? Would be very useful for applications that depend on beacon chain, like staking pools, which are forced to use oracle these days.

vshvsh avatar Jun 17 '21 08:06 vshvsh

Can we pipe becon chain block roots to eth1x as well? Would be very useful for applications that depend on beacon chain, like staking pools, which are forced to use oracle these days.

The beacon state root would be a useful addition, not sure that individual block roots would gain anything.

mcdee avatar Jun 17 '21 08:06 mcdee

There is a plan to introduce BEACONBLOCKROOT opcode after the Merge. Exposing block roots allows for reading data from either a block or a state.

mkalinin avatar Jun 17 '21 09:06 mkalinin

(4) Addressed in https://github.com/ethereum/eth2.0-specs/pull/2472

mkalinin avatar Jul 01 '21 10:07 mkalinin