Skip to content

clients: add ethereumjs#510

Merged
fjl merged 8 commits into
ethereum:masterfrom
cbrzn:add-merge-ethereumjs
Apr 9, 2022
Merged

clients: add ethereumjs#510
fjl merged 8 commits into
ethereum:masterfrom
cbrzn:add-merge-ethereumjs

Conversation

@cbrzn
Copy link
Copy Markdown
Contributor

@cbrzn cbrzn commented Mar 16, 2022

This PR aims to add EthereumJS as a client so it can be tested against the hive. Currently, the objective is to make sure that we are good to go with the Engine API. Here is a track of what we have green so far https://hackmd.io/lKw1UArUSWu1_lOdbt3heQ?view

TODO:

  • Remove readme in merge-ethereumjs folder
  • Generate version.txt file on script

@cbrzn cbrzn marked this pull request as draft March 16, 2022 16:21
@fjl
Copy link
Copy Markdown
Collaborator

fjl commented Mar 17, 2022

Can ethereumjs also run other tests or is this only about the engine API?

@cbrzn
Copy link
Copy Markdown
Contributor Author

cbrzn commented Mar 18, 2022

@fjl this is only about engine API - but once we are ready with it we plan to also run other tests!

@cbrzn cbrzn marked this pull request as ready for review March 28, 2022 07:30
@cbrzn
Copy link
Copy Markdown
Contributor Author

cbrzn commented Mar 28, 2022

Hey @fjl this is ready for review, currently, we are passing 29 of 43 tests (You can check the hackmd link in the description of the PR) and will focus on fixing the red ones. Since I don't think the initialization script will change, I would say this is good to merge

Note: Basically I forked the original hackmd (https://notes.ethereum.org/xnKiAcNlT2aZ66DdH8LM6g?view) not sure if I should modify this one once this is merged? Lmk what do you think it's the best path, and thanks for your time 🙏

@holgerd77
Copy link
Copy Markdown
Contributor

Anyone able to give this a review/merge? 🙂 (we are excitedly waiting to see this in action! 😋)

@fjl
Copy link
Copy Markdown
Collaborator

fjl commented Apr 7, 2022

I'm OK with merging this PR optimistically (it can't break anything), but let's call rename the client to simply ethereumjs.

@holgerd77
Copy link
Copy Markdown
Contributor

holgerd77 commented Apr 8, 2022

I'm OK with merging this PR optimistically (it can't break anything), but let's call rename the client to simply ethereumjs.

Cool! 😄 👍

Not sure if @cbrzn knows what to do, but for me it is not directly obvious: so what kind of renaming are you referring to? So the clients in the clients directly have the merge related tests also placed in merge-* folders - e.g. merge-nethermind - so I guess you do not refer to renaming that (or do you)?

Is there another client naming reference in the code base (couldn't find any)?

@cbrzn
Copy link
Copy Markdown
Contributor Author

cbrzn commented Apr 8, 2022

I'm OK with merging this PR optimistically (it can't break anything), but let's call rename the client to simply ethereumjs.

Cool! smile +1

Not sure if @cbrzn knows what to do, but for me it is not directly obvious: so what kind of renaming are you referring to? So the clients in the clients directly have the merge related tests also placed in merge-* folders - e.g. merge-nethermind - so I guess you do not refer to renaming that (or do you)?

Is there another client naming reference in the code base (couldn't find any)?

Hey @holgerd77 I missed previous comment from flj, I think what he means is to the merge-ethereumjs folder. Geth and Nethermind has the merge-* prefix because (this is just my guess) they probably use different parameters in the initialization to work with the Engine API, but currently for geth there's a PR to just have the go-ethereum folder.

I will do this later today :)

@holgerd77
Copy link
Copy Markdown
Contributor

@cbrzn ah ok, thanks, then let's do this pre-actively. 😋 Thanks for tackling directly.

@fjl
Copy link
Copy Markdown
Collaborator

fjl commented Apr 8, 2022

@holgerd77 In hive, there is a strict separation between clients and tests. The client definitions should ideally only exist once, and clients can implement various interfaces (e.g. eth1 client, beacon client, validator...).

The merge-* client definitions were added temporarily in order to prototype the merge tests. We will back-port the merge features into the main client definitions very soon.

@cbrzn cbrzn force-pushed the add-merge-ethereumjs branch from 8b63521 to 11322e7 Compare April 8, 2022 15:28
@cbrzn cbrzn force-pushed the add-merge-ethereumjs branch from 11322e7 to e3396ec Compare April 8, 2022 15:31
@cbrzn cbrzn force-pushed the add-merge-ethereumjs branch from e3396ec to 74fde56 Compare April 8, 2022 15:43
@cbrzn
Copy link
Copy Markdown
Contributor Author

cbrzn commented Apr 8, 2022

We should be good to go now! Let me know if something else is needed 🙏 @fjl

@fjl fjl changed the title clients: add merge-ethereumjs clients: ethereumjs Apr 9, 2022
@fjl fjl changed the title clients: ethereumjs clients: add ethereumjs Apr 9, 2022
@fjl fjl merged commit 1bc0339 into ethereum:master Apr 9, 2022
@holgerd77
Copy link
Copy Markdown
Contributor

holgerd77 commented Apr 11, 2022

🎉

Very cool! 👍 😄

Am I correct that there should now be some results showing up on https://hivetests.ethdevops.io/ from our client, or is there some (any) additional in-between steps yet to be taken?

@fjl
Copy link
Copy Markdown
Collaborator

fjl commented Apr 11, 2022

There are additional steps required to run it. We will include it in future runs when we will deploy the test runner next time.

@holgerd77
Copy link
Copy Markdown
Contributor

There are additional steps required to run it. We will include it in future runs when we will deploy the test runner next time.

Ah ok, thanks, good to know! 👍

(sorry, guess I am close to having all basic questions answered 😋 😬): once you deploy will this then directly run the whole test suite (so also the non-merge tests) already?

@fjl
Copy link
Copy Markdown
Collaborator

fjl commented Apr 11, 2022

So, the way the public test instance works is, it just runs a shell script like

while true;
do

./hive --sim 'ethereum/engine' --client go-ethereum
./hive --sim 'ethereum/engine' --client merge-nethermind
./hive --sim 'devp2p' --client go-ethereum
./hive --sim 'devp2p' --client besu
./hive --sim 'devp2p' --client nethermind
...

done

We can add a test run with ethereumjs for the engine simulator.

@holgerd77
Copy link
Copy Markdown
Contributor

There are additional steps required to run it. We will include it in future runs when we will deploy the test runner next time.

Any update on this?

@holiman
Copy link
Copy Markdown
Contributor

holiman commented May 5, 2022

@holgerd77 which tests should we execute? I'm fine with executing all, but if the consensus tests aren't supported, we can shave off ~24 hours of execution by omitting specifically that test.

@fjl
Copy link
Copy Markdown
Collaborator

fjl commented May 5, 2022

ethereumjs does not support most tests because it is not a full eth1 client. AFAIK the client definition is only capable of running the ethereum/engine tests.

@holiman
Copy link
Copy Markdown
Contributor

holiman commented May 5, 2022

I added it on several tests for now, can always disable it later

@holgerd77
Copy link
Copy Markdown
Contributor

ethereumjs does not support most tests because it is not a full eth1 client

Ah no, we are relatively close on being a "full" eth1 client - if the definition is to expose most of the JSON RPC API and being able to sync and execute blocks. We do not have some more fancy sync mechanisms yet (snap sync), but I guess that is not tested here anyhow?

So you can activate for the whole (most of the) test suite I guess.

@holgerd77
Copy link
Copy Markdown
Contributor

I added it on several tests for now, can always disable it later

Thanks! 👍 🙂 🙏

@holiman
Copy link
Copy Markdown
Contributor

holiman commented Oct 11, 2022 via email

@holgerd77
Copy link
Copy Markdown
Contributor

Sgtm!

? 🙂

This PR was merged months ago, was this a reaction to any new events or similar or does this trigger anything new?

Anyhow: all the best 👋, just a bit puzzled. 😋

@holiman
Copy link
Copy Markdown
Contributor

holiman commented Oct 13, 2022

just a bit puzzled. yum

So am I. I've seen this happen several times -- emails written weeks/months ago are popping in on github these last couple of days. Must have gotten stuck internally at google.

Another example: ethereum/go-ethereum#25822 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants