- 09 Dec, 2024 4 commits
-
-
zhiqiangxu authored
* add RegSP constant * address comments * fix natspec * update semver-lock
-
Axel Kingsley authored
* supervisor: L1 Processor * comments ; test fixes * Make L1 source separate from RPC Addr * fix test * Add atomic bool for singleton processor routine
-
George Knee authored
* add additional test case for computeSyncActions * fixup test * check for unsafe = safe edge case & replace oldestUnsafeBlock with nextSafeBlock * add test case for no progress and safe=unsafe * refine log * rename variable * harmonize log ordering and labels * tighten up test behaviour for expectedLogs * add test case: no progress + unsafe=safe + blocks in state and fix behaviour so we don't try to fetch unsafe blocks if there aren't any, even when there are blocks in state * typo
-
Francis Li authored
* Fix conductor test race condition * update * Address shell ci check * rerun CI for non-related issue
-
- 07 Dec, 2024 15 commits
-
-
I love OP authored
Co-authored-by:
Matthew Slipper <me@matthewslipper.com>
-
Inphi authored
-
Matthew Slipper authored
This reverts commit a2e7d852.
-
Matthew Slipper authored
* op-deployer: Support output files in bootstrap * lint
-
smartcontracts authored
Bumps versions being used for forge, cast, and anvil.
-
Matthew Slipper authored
* ci: Specify number of jobs in contract tests * reduce runs * decrease runs * don't rebuild on semver lock * remove -j
-
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 1 commit
-
-
Matthew Slipper authored
-