ethereum/pm

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

5chdn commented

Parity Ethereum:

Did we decide to drop EIP-210? openethereum/parity-ethereum#5505

Is EIP-1108 and EIP-1109 going to be included in Constantinople ?

axic commented

Progress tracker for ethereumjs: ethereumjs/ethereumjs-monorepo#322

Mana progress: mana-ethereum/mana#307

Trinity

Trinity: Here is the issue link for EIP1052

ethereum/py-evm#719

@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

ethereum/py-evm#1186

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

5chdn commented

Parity Ethereum / EIP-1234 in progress openethereum/parity-ethereum#9187

Added EIP-1234 to the tracker

gumb0 commented

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.

5chdn commented

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

5chdn commented

Parity Ethereum is ready to hardfork Ropsten w/ updated CREATE2 spec.

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

5chdn commented

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 ?

@5chdn This is the main working sheet for @winsvega to organize test creation, I think the wiki here wouldn't be the right place for this, let's please just stick to linking this as originally suggested.

5chdn commented

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.

5chdn commented

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.

5chdn commented

Moving the meta-EIP 1013 to final ethereum/EIPs#1642

I think this tracker can be closed now.

Closing