feat: add v0 go batch submitter and gh actions integration#1802
feat: add v0 go batch submitter and gh actions integration#1802smartcontracts merged 7 commits intoethereum-optimism:developfrom
Conversation
|
Codecov Report
@@ Coverage Diff @@
## develop #1802 +/- ##
========================================
Coverage 71.99% 71.99%
========================================
Files 70 70
Lines 2321 2321
Branches 346 346
========================================
Hits 1671 1671
Misses 650 650
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report at Codecov.
|
b123d9f to
2f6b799
Compare
There was a problem hiding this comment.
You are probably aware of this, but when you move to posting more than a single batch element per batch this could end up in an infinite crash loop
086d487 to
8ef4797
Compare
l2geth/cmd/devp2p/dns_cloudflare.go
Outdated
There was a problem hiding this comment.
Was this causing build issues?
There was a problem hiding this comment.
yes, pulling in secp256k1 from geth into l2geth caused this dependency to update. unfortunately the newer version had an incompatible API, but the changes were pretty minimal
ops/scripts/batch-submitter.sh
Outdated
There was a problem hiding this comment.
Something that we could do that would be a nice to have to eliminate one extra config option would be to only pass in the address manager address and have the batch submitter resolve both the ctc and scc. It could also resolve OVM_Sequencer and OVM_Proposer to make sure that its own keys match these values, proposer is the entity that has the scc key and sequencer is the entity with the ctc key
There was a problem hiding this comment.
previously we discussed removing the address resolution and passing in the addresses manually. i'm open do doing this if it's what we want, we should get some input @karlfloersch
8feaae7 to
1c220aa
Compare
Attempting to compile L1 and L2 get in the same binary produces a symbole collision since the CGO names for the library methods are identical. To avoid this, we simply reexport the L1 secp256k1 members that rely on CGO.
For some reason the log level environment variables aren't being picked up, and neither is the default value for the flag being applied to the final binary when run in docker. Remove this commit once a fix is established.
## Overview Fixes the lint job by using the stable toolchain for the `fmt + lint` job. `cargo fmt` still uses nightly, but clippy uses stable.
Description
This PR contains the v0 go batch submitter, which integrates the prior PRs and passes the integration test suite. Currently this version only submits one tx per L2 block, so no batching is implemented yet. Now that a baseline has been established, further optimizations, e.g. batching, EIP-1559 support, etc, will be added once more of the operational concerns are fleshed out
Since there will be some time while both the Typescript and Go batch submitters exist within the codebase, the docker-compose set up has been modified to support selecting either. This allows us to set up a build matrix on Github Actions that concurrently runs two versions of the integration tests, with one testing the Typescript version and one testing the Go version.
Pushing this up now to test out the new changes to the build system and integration tests. The following items are in progress:
Depends On
Metadata