- 07 Dec, 2024 9 commits
-
-
zhiqiangxu authored
* single source of truth for DerivationVersion * op-node/rollup: fix imports --------- Co-authored-by:
protolambda <proto@protolambda.com>
-
Maurelian authored
* feat: remove unused systemConfigs mapping from OPCM * fix semver lock
-
Dmitry authored
-
Matthew Slipper authored
-
dependabot[bot] authored
Bumps [github.com/holiman/uint256](https://github.com/holiman/uint256) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/holiman/uint256/releases) - [Commits](https://github.com/holiman/uint256/compare/v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: github.com/holiman/uint256 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Matthew Slipper authored
* op-deployer: Bootstrap superchain command Fixes https://github.com/ethereum-optimism/optimism/issues/13265. * fix test
-
blaine authored
-
protolambda authored
* op-supervisor: readme draft * op-supervisor: fix review suggestions * op-supervisor: readme extension * op-supervisor: fix mermaid diagram syntax
-
Michael Amadi authored
* test utils * test utils * rm unncesessary vm.assume * rm unncesessary vm.assume * rm unncesessary vm.assume * fixes... * rm testutils
-
- 06 Dec, 2024 20 commits
-
-
smartcontracts authored
semver-lock justfile task didn't build by default which was confusing. Now it does.
-
Sebastian Stammler authored
With Holocene, batcher transaction ordering has to be strictly preserved, so trying to send a transaction candidate should just never timeout. Note that the txmgr will still bump fees to get a transaction for the same nonce submitted.
-
zhiqiangxu authored
* Don't repeat yourself * add a log for loadBlocksIntoState * op-batcher: fix log in batcher/driver.go * modify log --------- Co-authored-by:
protolambda <proto@protolambda.com> Co-authored-by:
Matthew Slipper <me@matthewslipper.com>
-
Dmitry authored
Fix formatting issue in "Production Releases" section
-
Matthew Slipper authored
-
George Knee authored
-
Matthew Slipper authored
-
Matthew Slipper authored
-
zhiqiangxu authored
-
George Knee authored
op-batcher: extract state pruning, block fetching and progress checking into a single pure function (#13060) * remove lastStoredBlock and lastL1Tip from BatchSubmitter state We can use the channelManager's state to infer lastStoredBlock. And lastL1Tip is actually unused. * change log line wording * fix typo * remove unecessary method * WIP first pass at computeSyncActions * computeSyncAction takes a ChannelStatuser interface also report fully inclusive range of blocks to load * add happy path test case * clearState is a pointer we can use nil value to signal no state clearing should be performed * add more test cases * add another test case * computeSyncActions only takes prevCurrentL1, not prevSyncStatus * add batcher restart case * safe chain reorg case * failed to make progress case * simplify log messages, print entire struct * add godoc * wire up computeSyncActions * cache prevCurrentL1 on BatchSubmitter * document stages * fix loadBlocksIntoState range interpretation * pass syncStatus, not pointer to syncStatus and add test case for no progress * check unsafe status before trying to get more blocks * do not panic on invalid block ranges return an error instead. This error is ultimated swallowed, matching existing behaviour. * test: add assetions and mock data about blockID passed to clearState * add readme section on max channel duration * add back unit tests for pruning methods * fix pruneBlocks behaviour when blockCursor pointed at block which is now pruned * rename waitForNodeSync to sequencerOutOfSync * Introduce SeqOutOfSyncError * move SyncActions code to a separate file * ChannelStatuser -> channelStatuser * SeqOutOfSyncError -> ErrSeqOutOfSync * move ctx to first position in fn signature * do not update cached prevCurrentL1 value if there is an ErrSeqOutOfSync * Always warn log when computeSyncActions returns an error * move sync actions test to separate file * computeSyncActions returns a bool, not an error There is only ever one kind of error returned * SyncActions -> syncActions * define local variables to aid readability * organise computeSyncActions and introduce startAfresh syncAction Add comments explaining logical flow: the checks get increasingly deep and we return early where possible. * undo changes to submodule * move test utils to sync_actions_test.go file * ensure pruneChannels clears currentChannel when appropriate * fix submodule" * don't try to get number of block if none exists * improve log * Update op-batcher/batcher/driver.go Co-authored-by:
Sebastian Stammler <seb@oplabs.co> * use struct for block range, not array * use startAfresh in one more place * add test case for multiple channels also set HeadL1 to more realistic values (generally ahead of currentL1 due to nonzero confirmation depth) * print value of *struct in Stringer * add test case when there are no blocks in state * Update op-batcher/batcher/sync_actions.go Co-authored-by:
Sebastian Stammler <seb@oplabs.co> * tighten up log messages and test descriptions --------- Co-authored-by:
Sebastian Stammler <seb@oplabs.co>
-
Matthew Slipper authored
`ProcessFilesGlob` calls the callback concurrently, so this test needs to lock the `processedFiles` map to prevent panics. See [here](https://app.circleci.com/pipelines/github/ethereum-optimism/optimism/73932/workflows/951eb7de-0611-4bea-b4de-5d3a56c9bf37/jobs/3021176) for an example of this happening.
-
clabby authored
* feat(op-deployer): `Proxy` bootstrap command * code review updates * linter --------- Co-authored-by:
Matthew Slipper <me@matthewslipper.com>
-
Roberto Bayardo authored
Co-authored-by:
Matthew Slipper <me@matthewslipper.com>
-
Dmitry authored
-
clabby authored
-
Matthew Slipper authored
-
smartcontracts authored
We can do this with a justfile recipe. Co-authored-by:
Matthew Slipper <me@matthewslipper.com>
-
Adrian Sutton authored
-
Matthew Slipper authored
I've found a [deadlock](https://app.circleci.com/pipelines/github/ethereum-optimism/optimism/73846/workflows/19369ca9-9eaa-4021-9eb8-589a06e7bd34/jobs/3018041) in the op-conductor tests. The inner conductor loop is stuck waiting on a queue signal that never arrives, which in turn causes the test to hang since the coordinating waitgroup is never decremented. I believe this happens because the conductor's `queueAction` method is non-blocking, so nothing ever triggers conductor's inner loop when conductor start up. I've updated the code to use a blocking channel write when conductor starts to avoid this issue. The traces of the deadlock look like this, for reference: ``` goroutine 227 [semacquire, 9 minutes]: sync.runtime_Semacquire(0xc0004df577?) /usr/local/go/src/runtime/sema.go:62 +0x25 sync.(*WaitGroup).Wait(0x0?) /usr/local/go/src/sync/waitgroup.go:116 +0x48 github.com/ethereum-optimism/optimism/op-conductor/conductor.(*OpConductorTestSuite).execute(0xc0003e4008, 0x0) /var/opt/circleci/data/workdir/op-conductor/conductor/service_test.go:177 +0x65 github.com/ethereum-optimism/optimism/op-conductor/conductor.(*OpConductorTestSuite).executeAction(...) /var/opt/circleci/data/workdir/op-conductor/conductor/service_test.go:197 github.com/ethereum-optimism/optimism/op-conductor/conductor.(*OpConductorTestSuite).enableSynchronization(0xc0003e4008) /var/opt/circleci/data/workdir/op-conductor/conductor/service_test.go:163 +0x93 github.com/ethereum-optimism/optimism/op-conductor/conductor.(*OpConductorTestSuite).TestScenario4(0xc0003e4008) /var/opt/circleci/data/workdir/op-conductor/conductor/service_test.go:420 +0x27 reflect.Value.call({0xc000131900?, 0xc0001b3740?, 0x1fed5b8?}, {0x191d63c, 0x4}, {0xc0004dff28, 0x1, 0x16f12e0?}) /usr/local/go/src/reflect/value.go:596 +0xca6 reflect.Value.Call({0xc000131900?, 0xc0001b3740?, 0x28307b8?}, {0xc0004dff28?, 0xf?, 0x0?}) /usr/local/go/src/reflect/value.go:380 +0xb9 github.com/stretchr/testify/suite.Run.func1(0xc0001f9ba0) /home/circleci/go/pkg/mod/github.com/stretchr/testify@v1.10.0/suite/suite.go:202 +0x4a5 testing.tRunner(0xc0001f9ba0, 0xc0001f4e10) /usr/local/go/src/testing/testing.go:1689 +0xfb created by testing.(*T).Run in goroutine 166 /usr/local/go/src/testing/testing.go:1742 +0x390 goroutine 229 [select, 9 minutes]: github.com/ethereum-optimism/optimism/op-conductor/conductor.(*OpConductor).loopAction(0xc00056ab40) /var/opt/circleci/data/workdir/op-conductor/conductor/service.go:577 +0x14f github.com/ethereum-optimism/optimism/op-conductor/conductor.(*OpConductorTestSuite).enableSynchronization.func1() /var/opt/circleci/data/workdir/op-conductor/conductor/service_test.go:159 +0x33 github.com/ethereum-optimism/optimism/op-conductor/conductor.(*OpConductor).loop(0xc00056ab40) /var/opt/circleci/data/workdir/op-conductor/conductor/service.go:570 +0x99 created by github.com/ethereum-optimism/optimism/op-conductor/conductor.(*OpConductor).Start in goroutine 227 /var/opt/circleci/data/workdir/op-conductor/conductor/service.go:376 +0x1f6 FAIL github.com/ethereum-optimism/optimism/op-conductor/conductor 600.103s ```
-
Axel Kingsley authored
* interop: parallelized receipt fetching * fix test * remove elastic thread count * Add Debug Message for Range Fetching * rename end to last * Remove Println --------- Co-authored-by:
Matthew Slipper <me@matthewslipper.com>
-
- 05 Dec, 2024 11 commits
-
-
Matthew Slipper authored
-
smartcontracts authored
-
zhiqiangxu authored
-
mountcount authored
Signed-off-by:
mountcount <cuimoman@outlook.com>
-
Adrian Sutton authored
op-challenger, op-program: Require specific opt-in to use the custom config chain ID indicator (#13217) * op-challenger: Support --cannon-l2-chain-id to pass chain ID through to op-program. * op-program: Default to assuming configs are available in client. Provide a --l2.custom flag to set the chain ID to the custom chain indicator so the client will load configs via the preimage oracle. Since loading configs via the preimage oracle doesn't work on-chain, this is a safer and simpler default now that op-program can be built with custom configs embedded. * op-challenger: Switch to custom L2 flag instead of specifying chain ID * op-challenger: Fix boolean option in op-program execution. * op-e2e: Set custom L2 flag in precompiles test
-
clabby authored
* chore(op-deployer): Accept existing impl in `DelayedWETH` bootstrap task * remove check
-
Adrian Sutton authored
-
Matthew Slipper authored
* ci: Remove Kurtosis-specific go job Kurtosis landed [my fix](https://github.com/kurtosis-tech/kurtosis/pull/2567) for the race condition that prevented us from running a shared Kurtosis instance between jobs. This PR brings that back. * remove dep
-
Matthew Slipper authored
* op-deployer: Update OPCM bootstrap command Updates the OPCM bootstrap command to allow bootstrapping Holocene. * fix merge artifact
-
smartcontracts authored
Fixes the name for scheduled-forge-coverage to develop-forge-coverage in line with the existing pattern.
-
smartcontracts authored
Updates the spacers check to use the new framework for contracts checks written in Go. Adds tests for the functions that this check uses.
-