NethermindEth/nethermind

Constantinople progress

tkstanczak opened this issue · 3 comments

EIPs included in Constantinople:

  • EIP 145: Bitwise shifting instructions in EVM, #13
  • EIP 1014: Skinny CREATE2, #15
  • EIP 1052: EXTCODEHASH opcode, #16
  • EIP 1283: Net gas metering for SSTORE without dirty maps, #17
  • EIP 1234: Constantinople Difficulty Bomb Delay and Block Reward Adjustment, #92

implemented with tests wherever provided in spec, need to review the new blockchain tests in ethereum/test (assuming that the new opcodes are covered there extensively)

1283 - implementation uses some additional memory now to store original values, which can be improved by exposing first elements from change stacks in StorageProvider (either by using different data structure or by writing own stack implementation as the .NET stack only exposes peek and pop/push

CREATE2 spec gives some options so need to confirm which one was implemented in other clients (should be enough to run etheruem/tests)

difficulty bomb delay not tested so will only be tested with ethereum/tests

  • add basic difficulty tests directly in Nethermind tests