• Jason Yellick's avatar
    op-e2e: add test option to utilize external eth clients for L2 (#6280) · 4becaa56
    Jason Yellick authored
    * op-e2e: add test option to use external eth client
    
    This change is an attempt to allow other Optimism clients like op-erigon
    to utilize the op-e2e tests in a minimally invasive way.  Almost all of
    the tests are unchanged, with some small structural changes to the setup
    to allow for utilization of an in process Geth, or extra-process generic
    Ethereum client.
    
    This change establishes a convention for external clients (or shims) to
    follow for interoperability with these tests.  The external process shim
    must accept a '--config <path>' flag.  This flag specifies a path to a
    JSON file which contains necessary execution parameters. These
    parameters include the data dir to use for the client, the JWT path, the
    genesis JSON path, and the chain ID.
    
    Utilizing the external binary is is generally more resource intensive
    than the in process Geth path, but, utilizing parallelism the test suite
    there is no noticable difference in execution time between the in
    process and an extra-process op-geth.
    
    This commit simply performs the wiring, while the next commit will add
    an op-geth consumer and wire into CI.
    
    * op-e2e: add basic external geth runner
    
    This commit adds an example external shim which utilizes the code in the
    previous commit.  It also integrates it into the Makefile and into CI
    (which unfortunately does not use the Makefile).
    
    To utilize this geth runner locally you can execute:
    
      make test-external-geth
    
    from the op-e2e directory.  See the README.md included in external_geth
    for more details.
    
    ---------
    Co-authored-by: default avatarJason Yellick <jason@enya.ai>
    4becaa56
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-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-signer 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...
.abigenrc Loading commit data...
.dockerignore Loading commit data...
.editorconfig Loading commit data...
.eslintrc.js Loading commit data...
.foundryrc Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitmodules 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...
.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...
go.mod Loading commit data...
go.sum Loading commit data...
lerna.json 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...