Rebase statediffing geth onto v1.10.18 #231

Closed
opened 2022-05-25 17:35:09 +00:00 by i-norden · 4 comments
Member

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. https://github.com/ethereum/go-ethereum/pull/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: https://github.com/ethereum/go-ethereum/pull/24684
[1.10.18](https://github.com/ethereum/go-ethereum/releases/tag/v1.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 - [x] v3 on top of https://github.com/vulcanize/go-ethereum/tree/v1.10.17-statediff-v3 (from that branch, `git checkout -b v1.10.18-statediff-3.2.1`) - [x] v4 on top of https://github.com/vulcanize/go-ethereum/tree/v1.10.17-statediff-v4 (from that branch, `git checkout -b v1.10.18-statediff-4.0.1-alpha`) After cutting a release, we will to update the following repos to use these releases: - [x] https://github.com/vulcanize/eth-statediff-service/issues/87 - [x] https://github.com/vulcanize/ipld-eth-server/issues/158 - [x] https://github.com/vulcanize/migration-tools/issues/16 - [x] https://github.com/vulcanize/ipld-eth-db-validator/issues/6 - [x] https://github.com/vulcanize/ipld-eth-state-snapshot/issues/37 - [x] https://github.com/vulcanize/eth-statediff-fill-service/issues/3 We will also need to update and release versions of the following repos that use the root v1.10.18 release: - [x] https://github.com/vulcanize/ipfs-ethdb/issues/34 - [x] https://github.com/vulcanize/leveldb-ethdb-rpc/issues/10 - [x] https://github.com/vulcanize/go-eth-state-node-iterator/issues/12 - [x] https://github.com/vulcanize/eth-ipfs-state-validator/issues/23 Some changes that necessitate changes in our stack, aside from rebasing our release of this repo and propagating those: * Tracing API was broken (https://github.com/ethereum/go-ethereum/pull/24867, https://github.com/ethereum/go-ethereum/pull/24567, https://github.com/ethereum/go-ethereum/pull/24547) this likely results in changes that need to be reflected in https://github.com/vulcanize/tracing-api * Ancient interface was broken (renaming of constituent interfaces) and extended in: https://github.com/ethereum/go-ethereum/pull/24684. When rebasing ipfs-ethdb and leveldb-ethdb-rpc to v1.10.18 this will necessitate making some minor changes/additions to the interface implementations there 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. https://github.com/ethereum/go-ethereum/pull/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: https://github.com/ethereum/go-ethereum/pull/24684
Author
Member

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.

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 commented 2022-05-25 18:59:36 +00:00 (Migrated from github.com)

@i-norden - We might want to tackle this ticket as well: https://github.com/vulcanize/go-ethereum/issues/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

@i-norden - We might want to tackle this ticket as well: https://github.com/vulcanize/go-ethereum/issues/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 commented 2022-05-25 22:27:52 +00:00 (Migrated from github.com)

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.
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 commented 2022-06-03 15:11:23 +00:00 (Migrated from github.com)

@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: https://github.com/vulcanize/eth-statediff-fill-service/issues/3

@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: https://github.com/vulcanize/eth-statediff-fill-service/issues/3
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: cerc-io/go-ethereum#231
No description provided.