• Evan Richard's avatar
    op-service, op-batcher, op-proposer: Active sequencer follow mode (#8585) · c04cefe0
    Evan Richard authored
    * op-service: Add ActiveL2EndpointProvider.
    
    * Fix bug in initialization, and handle case where no ethUrls are provided.
    
    * Split active L2 provider into active rollup and active L2 provider.
    
    * Re-duplicate some code until tests are passing.
    
    * op-proposer: Add ability to enable active provider.
    
    * op-batcher: Add ability to enable active provider.
    
    * Add an empty test skeleton.
    
    * Add an empty test skeleton.
    
    * op-service: add, but do not yet use, RollupClientInterface and EthClientInterface.
    
    * op-service: update mocks and interfaces for endpoint provider testing.
    
    * op-service - WIP on Active L2 Providers: unit tests pass, design and impl contains TODOs.
    
    * op-service: restore design in Active Endpoint Providers that only keeps one client open at a time.
    
    * op-service: when dialing a new sequencer, close() the old connection.
    
    * op-service: obey coderabbit suggestion around safer handling of p.currentIndex in Active L2 Providers.
    
    * op-service, op-batcher, op-proposer: address review comments in PR#8585.
    
    * op-service: Active L2 Provider - add test case for a sequencer returning an error.
    
    * op-service: Active L2/Rollup Providers: improve unit testing and logging.
    
    * op-service, op-batcher: address review comments in 8585 regarding first-startup behavior and testing.
    
    * op-service: address review comments through adding more tests, and moving "nil client" behavior from client getter to constructor.
    
    * op-service: minor error message change in active endpoint providers.
    
    * Update op-service/dial/active_l2_provider.go
    Co-authored-by: default avatarcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
    
    * op-service: obey linter in rabbit-provided error message change.
    
    * Update op-service/dial/active_l2_provider.go
    Co-authored-by: default avatarSebastian Stammler <seb@oplabs.co>
    
    * op-service active L2 provider tests: assertAllExpectations after most tests.
    
    * op-service: more elegantly handle startup in active l2 providers, and improve testing.
    
    * Change remaining longDurationTests to be able to use ept.assertAllExpectations.
    
    * use new error errSeqUnset.
    
    * Add test for scenario where many sequencers are inactive, and only the last is active.
    
    * Readability change: move the on-creation initialization to its own function.
    
    * Move extra one-time dial to constructor.
    
    * Update op-service/dial/active_rollup_provider.go
    Co-authored-by: default avatarcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
    
    * Add nil check to active l2 provider.
    
    * Update op-service/dial/active_rollup_provider.go
    Co-authored-by: default avatarSebastian Stammler <seb@oplabs.co>
    
    * Address review comment: change many-inactive tests to many-undialable tests.
    
    * Add test that reproduces internal state corruption.
    
    * op-service: Improve active seq provider
    
    - Preserve the invariant that the index and current rollup/eth
      client match.
    - Dial at the start of the loop instead of at the end.
    
    * Fix some tests.
    
    * Move usage of ExpectClose to MaybeClose, we don't want to enforce a particular close behavior in these tests.
    
    * add a missing call to assertAllExpectations.
    
    * Test even the case where the active providers are managing a list of 1 element.
    
    * Revert experimental hunk in active_l2_provider.
    
    ---------
    Co-authored-by: default avatarcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
    Co-authored-by: default avatarSebastian Stammler <seb@oplabs.co>
    c04cefe0
Name
Last commit
Last update
.changeset Loading commit data...
.circleci Loading commit data...
.github Loading commit data...
.husky Loading commit data...
.vscode Loading commit data...
bedrock-devnet Loading commit data...
cannon Loading commit data...
docs Loading commit data...
endpoint-monitor Loading commit data...
indexer Loading commit data...
op-batcher Loading commit data...
op-bindings Loading commit data...
op-bootnode Loading commit data...
op-chain-ops Loading commit data...
op-challenger Loading commit data...
op-conductor Loading commit data...
op-e2e Loading commit data...
op-exporter Loading commit data...
op-heartbeat Loading commit data...
op-node Loading commit data...
op-preimage Loading commit data...
op-program Loading commit data...
op-proposer Loading commit data...
op-service Loading commit data...
op-ufm Loading commit data...
op-wheel Loading commit data...
ops Loading commit data...
ops-bedrock Loading commit data...
packages Loading commit data...
patches Loading commit data...
proxyd Loading commit data...
specs Loading commit data...
ufm-test-services Loading commit data...
.abigenrc Loading commit data...
.coderabbit.yml Loading commit data...
.dockerignore Loading commit data...
.editorconfig Loading commit data...
.envrc.example Loading commit data...
.eslintrc.js Loading commit data...
.foundryrc Loading commit data...
.gethrc Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.kontrolrc Loading commit data...
.markdownlint.json Loading commit data...
.npmrc Loading commit data...
.nvmrc Loading commit data...
.pnpmfile.cjs Loading commit data...
.prettierrc.js Loading commit data...
.semgrepignore Loading commit data...
.shellcheckrc Loading commit data...
.slitherrc Loading commit data...
.snyk Loading commit data...
CITATION.cff Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
SECURITY.md Loading commit data...
cloudbuild.yaml Loading commit data...
codecov.yml Loading commit data...
docker-bake.hcl Loading commit data...
go.mod Loading commit data...
go.sum Loading commit data...
nx.json Loading commit data...
package.json Loading commit data...
pnpm-lock.yaml Loading commit data...
pnpm-workspace.yaml Loading commit data...
tsconfig.json Loading commit data...