Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebase statediffing geth onto v1.10.18 #231

Closed
12 tasks done
i-norden opened this issue May 25, 2022 · 4 comments
Closed
12 tasks done

Rebase statediffing geth onto v1.10.18 #231

i-norden opened this issue May 25, 2022 · 4 comments
Assignees
Labels

Comments

@i-norden
Copy link
Collaborator

i-norden commented May 25, 2022

1.10.18 has been released, we need to update our custom geth client to work on top of this release.

We need to perform the rebase for both the v3 and v4 versions

After cutting a release, we will to update the following repos to use these releases:

We will also need to update and release versions of the following repos that use the root v1.10.18 release:

Some changes that necessitate changes in our stack, aside from rebasing our release of this repo and propagating those:

Somethings that potentially warrant further discussion:

  • This release uses go 1.18, and uses some features only present in 1.16+, further supporting our desire to move everything up to 1.18
  • The new trie tracing/state diffing supports intermediate nodes and delete nodes, it only tracks the path of the nodes but this could potentially be extended to replace our auxiliary statediffing service. What they've implemented is very similar to the cache wrap listener we have implemented for the SMT. trie, les, tests, core: implement trie tracer ethereum/go-ethereum#24403
  • Ropsten total difficulty for the Merge has been coded in
  • Rinkeby testnet has been deprecated
  • Apparently eth_getProof wasn't actually working for storage nodes until this release: core/rawdb: untie freezer and ancient chain data ethereum/go-ethereum#24684
@i-norden
Copy link
Collaborator Author

i-norden commented May 25, 2022

So the first step is creating the new releases here, the next step will be to work through all the linked issues/repos, find the ones that are next in the dependency tree (aka there is no note in the issue that you will/may also need to update dependency on another repo as well; e.g. ipfs-ethdb, go-eth-state-node-validator, leveldb-ethdb-rpc) and perform those updates and releases, and then move up the dependency tree to repos which depend on the new release of vdb geth + other repos that were updated in the previous step.

@abdulrabbani00 abdulrabbani00 self-assigned this May 25, 2022
@abdulrabbani00
Copy link

@i-norden - We might want to tackle this ticket as well: #181

I would create a pipeline using the stack orchestrator, similar to: https://github.com/vulcanize/ipld-ethcl-indexer/blob/main/.github/workflows/on-pr.yml#L32

@abdulrabbani00
Copy link

I have created two releases:

  1. https://github.com/vulcanize/go-ethereum/releases/tag/v1.10.18-statediff-3.2.1
  2. https://github.com/vulcanize/go-ethereum/releases/tag/v1.10.18-statediff-4.0.1-alpha

I tested both by utilizing the stack orchestrator. It was straightforward for v3 but I had to hack together a solution using the new migration process in v4.

To validate I did the following:

  1. Ensure geth started up.
  2. Mined a new block.
  3. Checked to see if the block was populated in the eth.header_cids table.

@abdulrabbani00
Copy link

@i-norden + @ashwinphatak - I have completed all the rebases. Please let me know if you find any errors, issues, or have any thoughts for future releases.

@ashwinphatak and his team will do the V3 release for the following repo as there are some complexities between v3 and v4: cerc-io/eth-statediff-fill-service#3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants