Constantinople Progress Tracker
Souptacular opened this issue Β· 68 comments
This issue is meant to track the progress of client implementation and tests of the EIPs for the upcoming Constantinople hard fork.
Migrated to https://github.com/ethereum/pm/wiki/Constantinople-Progress-Tracker
Test Cases Spreadsheet
Trinity Constantinople Milestone: https://github.com/ethereum/py-evm/milestone/2
Parity Ethereum:
- EIP-1052 β Yes openethereum/parity-ethereum#9234
- EIP-1087 β needs discussion openethereum/parity-ethereum#8427 (comment)
Did we decide to drop EIP-210? openethereum/parity-ethereum#5505
Is EIP-1108 and EIP-1109 going to be included in Constantinople ?
Progress tracker for ethereumjs: ethereumjs/ethereumjs-monorepo#322
Mana progress: mana-ethereum/mana#307
Trinity
- EIP145 In progress
- ethereum/py-evm#1112 (merged)
- ethereum/py-evm#1134 (under review)
Trinity: Here is the issue link for EIP1052
EthereumJ: ethereum/ethereumj#1149
@Souptacular you can check EIP 145 for Trinity. It's implemented in ethereum/py-evm#1134 and ethereum/py-evm#1112 which are both merged in latest master
@Souptacular and EIP1052 landed in Trinity as well ethereum/py-evm#1147
Updated!
Can we eventually add progress on the test cases written in https://github.com/ethereum/tests to the progress tracker, maybe with the number of implemented/merged test cases on the column for an EIP? @winsvega?
Have absolutely no overview on the current state there.
In this context I just rediscovered this test cases collection spreadsheet for Metropolis, is this still updated/cared for or is there an alternative collection like this existing?
yes. that google list is tracking new tests since before Metropolis. It is being updated.
@winsvega Ah great, would be really good if you guys can keep the doc as up-to-date as possible and also make it clear which tests are implemented and where to find the implementation (like being done in the RETURN CODES
sheet e.g.). This really helps us a lot on the implementation side!
cpp-ethereum / EXTCODEHASH implemented.
We implemented CREATE2
in Trinity. I will add that in contrast to the other new opcodes though, this one hasn't received much testing yet
EthereumJ/Harmony:
EIP 145: Bitwise shifting instructions in EVM implemented
EIP 1052: EXTCODEHASH Opcode implemented
everything else in progress
Aleth / EIP 1283 done: ethereum/aleth#5231
Parity Ethereum / EIP-1234 in progress openethereum/parity-ethereum#9187
Added EIP-1234 to the tracker
Aleth / EIP-1234 done ethereum/aleth#5247
Can the links to 145/1014 be updated to point to their respective eips.ethereum.org page? 1014 points to the pull request, which makes it difficult for people unfamiliar with git to read it.
Parity Ethereum merged EIP-1283 openethereum/parity-ethereum#9319
Parity Ethereum PR for EIP-1234 is openethereum/parity-ethereum#9480 now (merged)
Parity Ethereum is feature-complete. openethereum/parity-ethereum#9505
Mana implemented EIP-145 mana-ethereum/mana#417
geth EIP-1234 in progress ethereum/go-ethereum#17657
Mana EIP-1052 done mana-ethereum/mana#420
@flygoing Done!
Chart updated.
@Souptacular : what about α΄Ιͺα΄86 which was planned for Metropolisβ―?
@Souptacular I think the link is broken for geth - EIP 1283
It should be ethereum/go-ethereum#17383
EthereumJ EIP-1283 PR merged, ethereum/ethereumj#1173
Ice age delay merged on Geth ethereum/go-ethereum#17675
EIP 145: Bitwise shifting instructions in EVM is done and tested in Nethermind, planning to work on all the remaining ones this week
EIP-1052 is done and tested in Nethermind
Nethermind meta here: NethermindEth/nethermind#93
Mana / EIP-1014 done mana-ethereum/mana#426
Nethermind EIP-1014 done
Nethermind EIP-1234 done
Nethermind EIP-1283 done
Nethermind all done, I will run available blockchain tests from ethereum/tests tomorrow to see if everything is fine.
Do we expect an ethereum/test branch for Constantinople? Noticed that develop branch has incorrect mix hashes, block rewards and stExtCodeHash tests missing. Does anyone have an info on the golden source of tests for Constantinople?
incorrect mixhashes are due to this change:
ethereum/tests#480
stExtCodeHash are not ready.
The Constantinople tests are marked by Constantinople section in tests itself. no need to create separate branch.
EthereumJ/Harmony
Implemented:
EIP-1014
EIP-1283
EIP-1234
So everything is done for us, but as Github tests are not final, we are following it and testing how do we pass all new tests. It's continuous task and some bugs in our EIP implementations could appear.
Our tracker: ethereum/ethereumj#1149
Mana / EIP-1283 done mana-ethereum/mana#433
Net sstore also merged on Geth ethereum/go-ethereum#17383 . We were waiting with this for a release, but postponed v1.8.16 for next Monday, so figured we can push it out now.
@Souptacular EIP 1234 just landed in Trinity ethereum/py-evm#1303
EIP 1234 is merged in Mana mana-ethereum/mana#447
EthereumJ. CREATE2 gas price update merged ethereum/ethereumj#1204
Parity Ethereum is ready to hardfork Ropsten w/ updated CREATE2 spec.
- openethereum/parity-ethereum#9562
- openethereum/parity-ethereum#9688
- openethereum/parity-ethereum#9694
- openethereum/parity-ethereum#9704
Preparing a compatible release now.
I'm happy to add that Pantheon has added support for all the Constantinople EIPs, including the updated CREATE2 spec.
EthereumJS:
CREATE2 (EIP-1014):
Unknown -> WIP (ethereumjs/ethereumjs-monorepo#329)
SSTORE (EIP-1283):
Unknown -> now merged, ready (ethereumjs/ethereumjs-monorepo#367)
Difficulty Bomb (EIP-1234):
Unknown -> WIP (ethereumjs/ethereumjs-block#54)
@Souptacular trinity just landed support for EIP-1283 ethereum/py-evm#1410
Only thing left for us is to ensure we run all state tests for constantinople (which should land within the next days)
KEVM now supports constantinople: runtimeverification/evm-semantics#267
We will continue to test with more up-to-date versions of the test suite up until launch.
@Souptacular can you add KEVM to the client matrix in the first comment?
@dwightguth I think the first 4 columns we are a "Yes" on, but the last column we are an N/A
on because we don't do any fork-choice/block-validation, only execution.
Pantheon's github repo is now open and can be linked: https://github.com/PegaSysEng/pantheon
Since joined forces have been announced to work on Mana, exthereum should be removed.
EthereumJS: CREATE2 (EIP-1014), Difficulty bomb (EIP-1234): WIP -> Complete
Associated PRs:
CREATE2: ethereumjs/ethereumjs-monorepo#329
Difficulty bomb: ethereumjs/ethereumjs-block#54
Could we extend the head post with following links to the test cases lists?
this links also contain links to the actual tests in the repo.
-
extcodehash cases: https://docs.google.com/spreadsheets/d/1xat7UI8GtB4ZGVdlK5_XQSHJZaMThi4SrlcL8XMZb5Q/edit?pli=1#gid=1811198384
-
bitshift cases:
https://docs.google.com/spreadsheets/d/1xat7UI8GtB4ZGVdlK5_XQSHJZaMThi4SrlcL8XMZb5Q/edit?pli=1#gid=2010405893 -
sstore cases:
https://docs.google.com/spreadsheets/d/1xat7UI8GtB4ZGVdlK5_XQSHJZaMThi4SrlcL8XMZb5Q/edit?pli=1#gid=878289780 -
create2 cases;
https://docs.google.com/spreadsheets/d/1xat7UI8GtB4ZGVdlK5_XQSHJZaMThi4SrlcL8XMZb5Q/edit?pli=1#gid=1872446916 -
difficulty change and reward change related:
https://docs.google.com/spreadsheets/d/1xat7UI8GtB4ZGVdlK5_XQSHJZaMThi4SrlcL8XMZb5Q/edit?pli=1#gid=1197466216
Might make sense to put this in the wiki, so everyone can edit it. Maybe directly here in the repository? Need a hand @lrettig @Souptacular ?
Yeah, I'm just talking about "extending the head" post, it would be easier to have the ability to just edit a wiki somewhere instead of waiting for one person to do it. I'm not talking about adding the content of the links to the wiki.
I migrated the progress tracker to a wiki page at https://github.com/ethereum/pm/wiki/Constantinople-Progress-Tracker but it looks like it may still not have global edit access. @Souptacular will have to fix that.
@lrettig I set up the proper permissions now.
Amazing. Updated!
Our EthereumJS VM release v2.5.0 with full Constantinople
support (and other goodies like consensus conformity and a revamped state manager) is finally out.
Moving the meta-EIP 1013 to final ethereum/EIPs#1642
I think this tracker can be closed now.
Closing