Skip to content
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

[WIP]: conflicts review #476

Draft
wants to merge 1,005 commits into
base: celestia-develop
Choose a base branch
from

Conversation

Bidon15
Copy link
Member

@Bidon15 Bidon15 commented Nov 12, 2024

Overview

dependabot bot and others added 30 commits January 30, 2025 01:12
Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.81 to 7.0.84.
- [Release notes](https://github.com/minio/minio-go/releases)
- [Commits](minio/minio-go@v7.0.81...v7.0.84)

---
updated-dependencies:
- dependency-name: github.com/minio/minio-go/v7
  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>
* ci: Raise parallelism of cannon-e2e tests

* ci: Build op-program-host and cannon before running go tests.

* op-geth: Update op-geth to avoid loading and parsing all genesis files.

Specifically includes ethereum-optimism/op-geth#482

* Consistently build 64-bit multithreaded prestates with -mt64 suffix.

Previously the native build used -mt and the reproducible build used -mt64.
Stop building the 32-bit multithreaded prestate in reproducible builds.

---------

Co-authored-by: Matthew Slipper <[email protected]>
* proofs: Add action test for unhappy consolidation

The test covers the unhappy path in the consolidation step of the fault
proof where an invalid message triggers a block replacement

* remove redundant test

* assert heads
This is because alerts use `increase()` to detect changes in the metrics,
and the first instance of a metric is not considered a change,
so detecting failures doesn't fire unless the metric was already 0.
Bumps [github.com/consensys/gnark-crypto](https://github.com/consensys/gnark-crypto) from 0.12.1 to 0.15.0.
- [Release notes](https://github.com/consensys/gnark-crypto/releases)
- [Changelog](https://github.com/Consensys/gnark-crypto/blob/master/CHANGELOG.md)
- [Commits](Consensys/gnark-crypto@v0.12.1...v0.15.0)

---
updated-dependencies:
- dependency-name: github.com/consensys/gnark-crypto
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
In #13772, the L1 cache size was made configurable and the cap of 1000
was removed. This implied that the old default value (before applying
the cap) of 2/3 the sequencing window was now active.

However, high-throughput chains don't need such a high cache size under
normal conditions, so memory usage unexpectedly jumped for most node
operators.

This PR adds back a lower default value of 900, which is a better
default for most nodes. Only low-throughput chains with infrequent safe
head increments can now use this flag to set a higher value.
* op-deployer: Support upgrades

* semgrep

* imports

* cr updates

* remove aliasing

* goimports

* cr updates

* fix lint

---------

Co-authored-by: Samuel Stokes <[email protected]>
* feat: prevent deployments of mips32 on opcm upgrade 13

* feat: Ensure that fork tests deploy mips64

* fix: error string in tests

* fix test name
* skip implementation upgrade and system config initialization tests for superchain ops tests

* fmt

* update gas snapshot
…#14074)

Bumps [github.com/lmittmann/w3](https://github.com/lmittmann/w3) from 0.17.4 to 0.17.5.
- [Release notes](https://github.com/lmittmann/w3/releases)
- [Commits](lmittmann/w3@v0.17.4...v0.17.5)

---
updated-dependencies:
- dependency-name: github.com/lmittmann/w3
  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>
#14035)

* op-challenger: Support downloading prestates with a specific filename.

Allows running the latest builds published from develop automatically.

* Update test

* Log information on the state used.
* feat: descope liquidity migration

* feat: remove superchain erc20 factory and beacon (#224)

* fix: descope pr fixes (#231)

---------

Co-authored-by: AgusDuha <[email protected]>
Co-authored-by: agusduha <[email protected]>
* feat(devnet-sdk): expose minimal test interface

* feat(devnet-sdk): basic infrastructure for mini test

Co-authored-by: Jan Nanista <[email protected]>

* feat(devnet-sdk): implemented system

* test(interop): new mini test to validate framework

* test(interop): improve mini test

* fix(devnet-sdk): improve cnx management

* fix(devnet-sdk): use big.Int

* test(interop): add constraints

* fix(devnet-sdk): fix tests

* fix(devnet-testing): use pointer receivers consistently

* fix(devnet-testing): remove unnecessary ContractAddress

* fix(devnet-testing): remove unnecessary NewBalanceFromFloat

* fix: cosmetic change to interop smoke test

* feat(devnet-sdk): proper interface-backed implementation

* feat(devnet-testing): testing the tests

* feat(devnet-testing): interface cleanup

* fix: remove obsolete Registry definition

* fix: address review comments

- add explicit interface checks (and remove superfluous interface)
- add tests for Balance type

---------

Co-authored-by: Jan Nanista <[email protected]>
Co-authored-by: Stefano Charissis <[email protected]>
Ensures the build fails if it is not available or has non-zero exit code rather than just checking for unsupported op codes in the error message.
* op-program: Write tx/receipts trie nodes to kv

* op-program: Make trie node storage optional in client
* challenger: Transition to invalid hash at superroot boundaries.

Doesn't yet handle transitioning at the first optimistic block that is unsafe.

* Fix comment.
Ensure InteropEnabled is set when --agreed-prestate is set.
Don't require L2 head to be set when interop enabled.
…re SetCode batcher txs (#13958)

* go: Update op-geth dependency to upstream pre-v1.14.13-master merge

We need the 7702 SetCode transaction type.

* all: adapt to op-geth upstream changes

* op-node/rollup/derive: treat SetCode or future tx types as invalid batcher txs

* go: Update op-geth dependency again to include latest changes

* derive: allow Deposit batcher txs

This allows batch tx force-inclusion for L3s.

* lint

* add txContext back

* fix SetCode batcher tx test

* go: update op-geth dependency to v1.101500.0-dev.1

which is tagged at ethereum-optimism/op-geth#480

* geth: pre-v1.14.13 integration review fixes

* op-chain-ops: simplify state commit call

* op-node/p2p: Use IP address for first Conduit bootnode

After updating to the latest upstream geth dependency, it seems that
host names are no longer supported for bootnodes.

* op-node/p2p: look up DNS host names of enode records

* op-node/p2p: Also lookup IPs for default bootnode URLs

* Update op-geth dependency to [email protected]

* op-node/p2p: Add test for default bootnodes

---------

Co-authored-by: protolambda <[email protected]>
We were using both Docker-based CI builder images as well as self-hosted runner images with software preinstalled. This was causing discrepancies between software versions when things were updated. Furthermore, changing `mise.toml` required a manual rebuild of the CI builder image for changes to take effect.

This PR updates the CI pipeline to use Mise to install all tool necessary to run the monorepo. Preinstalled tools have been removed from the self-hosted runners, and all Docker images in the pipeline have been replaced with a simple `cimg/base` image.
There's a nonce bug in the VM somewhere. This PR works around it and update these deployments to be deterministic. I'll investigate the bug separately.
* WIP sketch out change in calldata calculation if l1 activated EIP-7623

* infer l1 Pectra activation from nullity of  header.requestsHash

pass this down to the TxData method so it can make an informed decision on DA type

* add godoc

* refactor and add unit test

* tweak godoc

* use much larger / more representative values in test

* don't forget version byte

* add another unit test

* fix bug

* typos

* typo

* make e2e test handle pectra

* tweak

* unit tests for DA switching cover L1 Pectra active and inactive

* prefer isPectra = true in tests generally

* tighten up test params

* Wire up Prague Activation time in L1  genesis

* run da switching test on holocene and activate prague at genesis with HoloceneSystemConfig

* fix op-e2e fakepos to handle prague fork on L1

* update e2e tests to activate prague if they activate cancun

* Revert "update e2e tests to activate prague if they activate cancun"

This reverts commit f626d8d.

* only activate prague in AutoDA test for now

* default to no Prague

* increase numTxs

* fix godoc
This commit removes an e2e test that covers the custom gas token
feature. Keeping this around will just result in extra maintenance
overhead that is not necessary.

Useful alongside:
- #13603
- #13921

for maintaining a patch that contains custom gas token. It should be
easy to bring this back in the future if necessary
sigma and others added 30 commits February 20, 2025 22:55
This refactors the system interfaces a bit, to expose lower-level
details only at the express demand of the test.

The rationale being that for each test we want to eventually not have
them manipulate the implementation details of the underlying system.
But at the same time, we need an escape hatch for when the
higher-level interfaces are not sufficient.

But adding an explicit validator to gain access to these interfaces,
we can eventually statically detect which tests are well-behaved, and
which are not (yet)
This change makes devnet-sdk a leaf package as far as the rest of the
monorepo is concerned.

The artifact package was never really specific to kurtosis-devnet
anyway, as it contains a generic filesystem abstraction to access
kurtosis enclave artifacts. So we might as well add it to the rest of
kurtosis helper functions in devnet-sdk.

Going forward we'll likely want to split it into a separate module, so
that other repositories can import it without needing to import the
whole monorepo.
…mpatible (#14450)

* op-challenger: Update fault dispute game contracts to be backwards compatible

bondDistributionMode did not always exist and dispute-mon will need to start using it.

* Review feedback
* op-proposer: Support multiple supervisor endpoints.

* op-proposer: Use a string slice flag.

* op-proposer: Rename supervisor rpc flag to be plural.
…late identifiers and payloads. (#14447)

* op-e2e: Refactor GeneratedTransaction to avoid tests needing to calculate identifiers and payloads.

* op-e2e: Use a single method for inbox executing transactions.

* op-e2e: Include transaction on correct chains.

* Simplify further.

* Skip test again.
* ctb: Add clone-opcm script

* fix constructor

* preimage oracle

* shellcheck
In a previous refactoring we temporary lost the ability to run this
negative test on the smoke test scenario.
This change restores it.
* op-deployer: Add doc describing bootstrap limitation

* Update op-deployer/book/src/user-guide/known-limitations.md

Co-authored-by: Matt Solomon <[email protected]>

---------

Co-authored-by: Matt Solomon <[email protected]>
* op-service: fix block signer utils

* op-service: improve block signer
* op-validator: Add op-validator

OP Validator is a CLI tool that returns a chain's level of compliance with the Standard Rollup Charter.

* redeploy, cr cleanups

* goimports

* docs

* docs
* op-program: Add unichain mainnet to releases.json

* remove governanceApproved for uni cannon64

Co-authored-by: mbaxter <[email protected]>

* fix trailing comma

---------

Co-authored-by: mbaxter <[email protected]>
… handler (#14491)

* op-service: RPC server wraps http-util server now, and factor out RPC handler

* op-service: fix sub-test name
* op-service: cleanup rw map utils

* op-service: fix doc comment

Co-authored-by: Axel Kingsley <[email protected]>

---------

Co-authored-by: Axel Kingsley <[email protected]>
* feat: simplify by removing unneeded inputs

* Remove io contracts

* feat: get addrs from registry

* feat: get pdg blueprint from current opcm

* feat: add plan for getting fdg code

* feat: Add permissionlessDisputeGame bytecode and blueprint creation

* feat: Add blueprints checks

* fix: semgrep rule

* lint

* fix: use correct initcode

* fix: correct encoding of initCode

* semver

* fix imports

* feat: move IOPCM180 to /interfaces

* feat: print fdg initCodeHash
…ch publishing into separate goroutines (#14244)

* op-batcher: overhaul throttling, reading and writing loops

* no longer evaluate throttling conditions on a ticker
* break main loop into "reading" and "writing"
* reading loop signals to throttling and writing when ALL blocks are loaded (this could be done in a more fine grained way, even when each block is loaded)
* these run concurrently

* improvements

* readloop unblocks writing loop once, and then writing loop goes forever (pausing when it runs out of data)

tests pass but timeout due to bad shutdown

* rename to prevent shadowing

* allow for receipt handling when receipt and err are both nil

* split shutdownCtx into producers and consumers

* throttling loop ranges over a channel, does not take a context

* processReceiptsLoop ranges over a channel, does not take a context

* unify wait groups

* unify contexts

* writeLoop uses a ticker instead of a sleep

* WIP: add throughput test for batcher

* make txQueue local, not global state

* reduce diff

* reduce diff further

* make pendingBytesUpdated a local, not global

* read and write loop communicate with a channel

no more ticker required

* rename

* rename

* abstract promptLoop

* rename

* update readme

* add diagram to readme

* remove test

I'm not sure it is adding any value. May return to it in future

* sendToThrottlingLoop uses mutex

* harmonize "*Loop returning" logs

* tidy

* remove TODO

* rip out ThrottleInterval config var

* add activeSequencerChanged channel and wire it up to onActiveSequencerChanged hook in active rollup provider

* set callback at runtime, not in constructor

* reinstate startup order

* tidy

* remove dead code

* remove unintentional change

* rename readLoop to blockLoadingLoop and writeLoop to publishingLoop

* improve diagram

* replace ThrottleInterval with ThrottleThreshold as enabling var

* remove onActiveProviderChanged arg from constructors

* protect callback invocation with nullity check

* lint

* Apply suggestions from code review

Co-authored-by: Sebastian Stammler <[email protected]>

* remove ThrottelInterval from flags

* docs: mention active sequencer signal

* only attach callback if throttling is enabled

* increase buffer of activeSequencerChanged

means that we buffer a single event if the throttlingLoop is busy, even when using a try-send

* add buffer to pendingBytesUpdated

see previous commit

* reduce indentation

* remove dangling ref

* pass killCtx to publishingLoop and avoid accessing this context globally

* remove continue and always signal publishing loop

* remove unecessary mutex wrangle

* replace signalPublishingLoop method with trySignal fn

* extend TestRollupProvider_FailoverOnInactiveSequencer to cover callback fn

* use retryTimer in throttlingLoop

if RPC calls fail, they will be retried after retryInterval (or before, if another event triggers updateParams)

* op-batcher: improve active-seq-changed signalling setup

* remove unused state var

* rename blocksLoaded channel to publishSignal channel

---------

Co-authored-by: Sebastian Stammler <[email protected]>
* bump to foundry v1

* library harness failing

* rm return name

* fix internal revert tests

* rerun CI

* move to v1 tag
* benchmark upgrade call

* require to assert

* use lastCallGas

* Update packages/contracts-bedrock/test/L1/OPContractsManager.t.sol

Co-authored-by: Matt Solomon <[email protected]>

* change gas target to 20M

---------

Co-authored-by: Matt Solomon <[email protected]>
…ions (#14498)

* ctb/op-deployer: Simplify superchain config/protocol versions validations

While running the validators against newly-deployed chains, we discovered a bug where the superchain config's implementation cannot be checked unless the same proxy admin is shared between both the OP Chain and the superchain config. This only makes sense for OP Mainnet, so to simplify things I've removed the protocol version/superchain config checks from the standard validator. It will still check that the OP Chain is using the right superchain config, but it won't validate the config itself. We can use other tooling for that.

* checks
…nclaves (#14446)

* wip: ktnative data fetcher

* wip: ktnative data fetcher

* fix: Only accept absolute paths

* chore: Add tests

* chore: inject dependencies instead of using globals

* chore: Comment fixes

* fix: Lint
* chore: Add all predeployed addresses to devnet-sdk

* chore: Sort addresses
#14496)

* op-dispute-mon: Load bond distribution mode.

* op-dispute-mon: Update credit monitoring to handle new withdrawal path.

* Simplify
…river.sendTx` (#14517)

* op-batcher: add TestBatchSubmitter_sendTx_FloorDataGas

* op-batcher: use floorDataGas for transactions if greater than intrinsicGas

* Update op-batcher/batcher/driver.go

Co-authored-by: Sebastian Stammler <[email protected]>

* log error instead of ignoring

---------

Co-authored-by: Sebastian Stammler <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.