-
Notifications
You must be signed in to change notification settings - Fork 2
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
Merge upstream #62
base: op-es
Are you sure you want to change the base?
Merge upstream #62
Conversation
* implement CheckMessage * Add CheckBlock API * Cleanup and Unit Tests * Add Invalid Safety Type * Use *ChainsDB instead of ChainsDB for SafetyCheckers --------- Co-authored-by: protolambda <[email protected]>
* Implement CheckMessages API * Make AtLeastAsSafeAs a function of SafetyLevel * op-supervisor: checkMessages bundle message identifier and payload-hash --------- Co-authored-by: protolambda <[email protected]>
* cannon: Fix stack patching And add `memprofilerate=0` to envp * Update cannon/mipsevm/program/patch.go Co-authored-by: protolambda <[email protected]> * cleanup argv/envp string ptrs * nit * fix envar name * Update cannon/mipsevm/program/patch.go Co-authored-by: mbaxter <[email protected]> * align op-program arg0 --------- Co-authored-by: protolambda <[email protected]> Co-authored-by: mbaxter <[email protected]>
To demonstrate how we can make our deployments more modular, this PR proposes archiving smart contract artifacts as tarballs that get uploaded to GCS. This allows deployment tools to use precompiled artifacts rather than generating them on-the fly. The archives are named after the hash of all Solidity files in the contracts-bedrock folder, including those in `lib/`, plus some additional metadata files like `foundry.toml` and `semver-lock.json`. See `calculate-checksum.sh` for details on how the algorithm works. I'm open to feedback around what should make up the checksum. Since the atifacts are content-addressable, this PR also updates the CI pipeline to download the artifacts from GCS prior to running `pnpm monorepo`. When the Solidity codebase doesn't change, this allows the `pnpm monorepo` job to skip compiling Solidity altogether. While this won't work as well when we're actively modifying the Solidity codebase, since the hash will change, it does provide a modest speedup in CI.
…1605) * cannon: Implement multithreaded clone fuzz test * cannon: Add more clone evm tests * cannon: Add evm test for GetTID syscall * cannon: Add evm test for SysExit * cannon: Add evm test for popping exited threads from the stack * cannon: Fix futex wait handling, add evm test * cannon: Add evm test for handling waiting thread * cannon: Add test utils for defining / validating MTState expectations * cannon: Add tests for futex wake, wake traversal * cannon: Add test for SysYield * cannon: Add SysOpen test, todos * cannon: Add test for SchedQuantum preemption, fix inconsistency * cannon: Add tests for noop, unsupported syscalls * cannon: Remove duplicate constants * cannon: Add tests for unsupported futex ops * cannon: Group traversal tests, fix TestEVM_WakeupTraversalStep * cannon: Add tests for nanosleep * cannon: Add additional testcase for wakeup traversal * cannon: Tweak futex wake tests * cannon: Update mt fuzz test to use new test utils * cannon: Rename contructor method for consistency * cannon: Add some simple tests for ExpectedMTState util * cannon: Add another validation test * cannon: Move syscall lists to tests where they're used * cannon: Add comment * cannon: Extract some evm test helpers * cannon: Cleanup - use require.Equalf for formatting * cannon: Rename test util to AssertEVMReverts * cannon: Add GetThreadStacks helper * cannon: Add a few more traversal tests
* Shutdown sequencer before stopping p2p * Check p2p isn't also disabled Co-authored-by: Sebastian Stammler <[email protected]> * Remove missed time.Sleep * Fix up use of SetupP2P.Disabled * Revert error check after RPC boundary * Add comment about context for StopSequencer * Add Config.p2pEnabled * op-node: Make Config.P2PEnabled public --------- Co-authored-by: Sebastian Stammler <[email protected]>
* test: fix L2 standard bridge interop tests * test: mock factory implementation instead of proxy
…thereum-optimism#11633) - protect txpool state vars with a mutex so they can be automically updated to avoid potential race condition
…ethereum-optimism#11670) Bumps [github.com/hashicorp/raft](https://github.com/hashicorp/raft) from 1.7.0 to 1.7.1. - [Release notes](https://github.com/hashicorp/raft/releases) - [Changelog](https://github.com/hashicorp/raft/blob/main/CHANGELOG.md) - [Commits](hashicorp/raft@v1.7.0...v1.7.1) --- updated-dependencies: - dependency-name: github.com/hashicorp/raft dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#11511) * Use context interrupts consistently in more places * Fix CI lint errors (cherry picked from commit 0410b7e) * op-service/ctxinterrupt: address review comments --------- Co-authored-by: protolambda <[email protected]>
--------- Co-authored-by: 0xDiscotech <[email protected]>
* feat: add createX preinstall * feat: change name from CreateXDeployer to CreateX
…hereum-optimism#11687) Contexts are scoped to a specific GitHub user group, which doesn't work with the GitHub merge queue or OSS contributors. This PR updates the packaging job to use raw project-level env vars instead (which are not user-scoped), and to only run on commits to `develop`.
…#11530) * op-program: Retry pruning L1 blocks when advancing origin to include the parent L1 origin Add e2e test to reproduce corner case when deploying a chain at L1 genesis. * Trim once, after any new origin is added. * Add unit test. * Add action test * Review feedback. * Improve test assertion
There is no longer any JS in the monorepo, we can remove the `.npmrc` as its no longer used
* feat(op-program): Use `PebbleDB` for `DiskKV` * close db * fix `testFaultProofProgramScenario` tests * switch to snappy compression cockroachdb/pebble#3434 * fix tempdir * update compat release * defer k/v until preimage server and hinter have both exited
…ism#11705)" (ethereum-optimism#11707) This reverts commit 8ab4d3d.
) * - make immediate nonce-too-low error abort send (since it could never succeed otherwise) - make txmgr resubmit a transaction when fee bumping fails in case it has been dropped from the mempool - only bump fees when they really should be bumped - set txmgr overall default send timeout of 10 minutes. It was infinite, which led to permanently stuck transaction in combination with the other bugs fixed in this PR. * Update op-service/txmgr/txmgr_test.go --------- Co-authored-by: Sebastian Stammler <[email protected]>
golangci-lint v1.60.2 seems to report a new error when performing a nil check and length != 0 on maps. We're not using this version in CI yet but fix the error to simplify the code and provide for a future upgrade.
…ereum-optimism#12051) Previously op-program host and cannon both logged an error message that the pre-image server couldn't be stopped after it stopped successfully.
…annon traces. (ethereum-optimism#12052) Previously it was also running it in parallel with kona-asterisc traces, resulting in errors because there were two mt-cannon traces sharing a preimages directory.
…sm#12054) * delete outdated structure * small fix
* feat: Add ASR proxy to OPStackManager * feat: Add AnchorStateRegistry blueprint * feat: Add AnchorStateRegistry Implementation * feat: Return startingAnchorInputs as bytes The op-deployer tooling does not support structs, therefore we need to return a more generic type for compatibility. * rebuild snapshots * fix: ASR initializer encoding * handoff commit with op-deployer debugging debugging op-deployer test wip: literal anchor roots * test and golang fixes * hardcode permissioned state * hardcode 0xdead as the starting anchor root * chore: fix semver lock * fix: no permissionless root, remove hash from 0xdead * fix: use 0xdead root properly * fix: set the override in the input contract * Fix tests and accidental mutation of `Implementation` struct * lint * semver * Update op-chain-ops/deployer/opsm/opchain.go Co-authored-by: Maurelian <[email protected]> * Update packages/contracts-bedrock/scripts/DeployOPChain.s.sol --------- Co-authored-by: Matthew Slipper <[email protected]> Co-authored-by: Matt Solomon <[email protected]>
…-optimism#12055) Includes fix to stop running mt-cannon in parallel.
Updates DeployUtils to include new utils for using create and create2.
…once to IL2ToL2CrossDomainMessenger (ethereum-optimism#12068) * feat(L2ToL2CrossDomainMessenger): add successfulMessages and messageNonce to interface * lint
Conflicts: go.mod go.sum op-batcher/batcher/driver.go op-chain-ops/genesis/config.go op-chain-ops/genesis/genesis.go op-e2e/actions/l2_verifier.go op-e2e/opgeth/op_geth.go op-e2e/system/e2esys/setup.go op-node/node/config.go op-node/node/node.go op-node/p2p/gossip.go op-node/p2p/node.go op-node/rollup/derive/blob_data_source.go op-node/rollup/derive/blob_data_source_test.go op-node/rollup/derive/calldata_source.go op-node/rollup/derive/engine_queue_test.go op-node/rollup/derive/engine_update.go op-node/rollup/driver/driver.go op-node/rollup/engine/engine_controller.go op-node/rollup/types.go op-node/service.go op-program/client/driver/driver.go op-service/predeploys/addresses.go op-service/txmgr/txmgr.go packages/contracts-bedrock/scripts/L2Genesis.s.sol packages/contracts-bedrock/src/libraries/Predeploys.sol packages/contracts-bedrock/test/Predeploys.t.sol
Should we pick a specific release version to merge? I noticed that op-geth follows this method in practice here |
We'll merge with Holocene version when it's released. Before that, we'll just merge the latest code. |
The OP team releases minor versions quite frequently, as shown in the link, where both OP Stack v1.9.3 and v1.9.2 were released in September. I would suggest merging a specific release version for better code stability. |
We can merge a release version in a separate PR, which will be small. But based on previous experience, the code quality of develop branch is also quite good. |
The tests (e.g., CI) sometimes fail at develop branch (as I experienced these days) so I think the recent release may be good merge point. |
When we're ready to deploy the next testnet, I'll ensure to merge with latest release version(hopefully when Holocene version is released). As this PR is already very big, the most important thing for this PR is to ensure our own logic remains in the correct places. |
This PR merges monorepo commit 718b9b0.