Skip to content

chore(deps): bump github.com/quic-go/quic-go from 0.46.0 to 0.48.2#3

Closed
dependabot[bot] wants to merge 1 commit intocelo-integrationfrom
dependabot/go_modules/github.com/quic-go/quic-go-0.48.2
Closed

chore(deps): bump github.com/quic-go/quic-go from 0.46.0 to 0.48.2#3
dependabot[bot] wants to merge 1 commit intocelo-integrationfrom
dependabot/go_modules/github.com/quic-go/quic-go-0.48.2

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot bot commented on behalf of github Jan 6, 2025

Bumps github.com/quic-go/quic-go from 0.46.0 to 0.48.2.

Release notes

Sourced from github.com/quic-go/quic-go's releases.

v0.48.2

This patch release contains fixes for three bugs, including a patch for CVE-2024-53259 (details).

Changelog

Full Changelog: quic-go/quic-go@v0.48.1...v0.48.2

v0.48.1

This patch releases fixes a panic in the shutdown logic of the http3.Server that was introduced in v0.48.0. Thanks to @​WeidiDeng for the fix!

Changelog

Full Changelog: quic-go/quic-go@v0.48.0...v0.48.1

v0.48.0

New Features

The http3.Server now supports graceful shutdown: calling Shutdown stops the server from accepting new connections, and new HTTP requests on existing connections. It continues serving existing connections until all active requests have completed (or the context is canceled).

On the wire, graceful shutdown is signaled by sending a GOAWAY frame. This tells the client that the server will not accept any new requests. Clients are expected to finish existing requests and then close the QUIC connection.

Client-side support for graceful shutdown is not implemented yet (see #153).

Breaking Changes

  • The HTTP/3 client API was made more consistent with the Go standard library's HTTP/1 and HTTP/2 naming: #4693
  • The deprecated qlog.DefaultTracer function was removed: #4697
  • The deprecated http3.Server.SetQuicHeader method and http3.ListenAndServe were removed: #4698
  • http3.Server.Close now closes immediately all QUIC connections: #4689

Note that all connection passed to http3.Server.ServeQUICConn need to be closed by the caller, before calling http3.Server.Close.

Notable Fixes

  • Canceling a stream after connection termination now doesn't change the error returned from Stream.Write and Stream.Read (thanks to @​sukunrt for the fix): #4673
  • HTTP/3 Capsule Parsing logic didn't work for capsules that weren't read with a single Read call: #4683

Behind The Scenes

We've started migrating our test suite away from Ginkgo (tracking issue: #3652), and towards a more idiomatic approach to testing Go code (using require). This is a massive endevour, as our test suite is around 47k LOC.

In this release, a large number of Go packages were translated: #4640, #4641, #4642, #4643, #4649, #4650, #4652, #4662, #4670, #4671, #4675, #4667, #4676, #4680, #4681.

... (truncated)

Commits
  • 34157e6 use IP_PMTUDISC_PROBE instead of IP_PMTUDISC_DO on Linux (#4729)
  • a6ced3a fix race condition in closed connection packet handling (#4720)
  • 955506a fix arming of keep-alive timer after sending PMTUD probe packets (#4716)
  • 98de6ae http3: fix graceful server shutdown (#4707)
  • 6af2b1a http3: rename Server.CloseGracefully to Shutdown (#4701)
  • 4a9a81c http3: output panic stack trace as a string (#4700)
  • 588b93c http3: add (deprecated) type aliases for RoundTripper and SingleDestinationRo...
  • 2dc1e35 http3: remove deprecated ListenAndServe and Server.SetQuicHeader (#4698)
  • d5d7592 qlog: remove deprecated DefaultTracer function (#4697)
  • 29f903f http3: improve documentation for Transport and ClientConn (#4696)
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

Bumps [github.com/quic-go/quic-go](https://github.com/quic-go/quic-go) from 0.46.0 to 0.48.2.
- [Release notes](https://github.com/quic-go/quic-go/releases)
- [Changelog](https://github.com/quic-go/quic-go/blob/master/Changelog.md)
- [Commits](quic-go/quic-go@v0.46.0...v0.48.2)

---
updated-dependencies:
- dependency-name: github.com/quic-go/quic-go
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Jan 6, 2025
@dependabot dependabot bot changed the base branch from integration to celo-integration March 7, 2025 00:20
@Ayiga Ayiga force-pushed the celo-integration branch from e99a213 to 0895b87 Compare March 20, 2025 19:28
@QuentinI QuentinI closed this May 27, 2025
@dependabot @github
Copy link
Copy Markdown
Author

dependabot bot commented on behalf of github May 27, 2025

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot dependabot bot deleted the dependabot/go_modules/github.com/quic-go/quic-go-0.48.2 branch May 27, 2025 17:34
QuentinI added a commit that referenced this pull request Mar 3, 2026
The fallback batcher (op-batcher-fallback) was using Anvil account #3
(0x90F79bf6EB2c4f870365E785982E1f101E93b906), which is also the Deployer
key used by devnet tests for admin transactions (SwitchBatcher,
TransferOwnership, etc.). When both the fallback batcher service and test
code sign L1 transactions from the same account concurrently, nonce
collisions cause transactions to never be mined, leading to timeouts.

Switch the fallback batcher to Anvil account #6
(0x976EA74026E726554dB657fA54763abd0C3a0aa9) across docker-compose,
prepare-allocs (nonTeeBatcher in rollup config), and .env.

Co-authored-by: OpenCode <noreply@opencode.ai>
QuentinI added a commit that referenced this pull request Mar 3, 2026
The fallback batcher (op-batcher-fallback) was using Anvil account #3
(0x90F79bf6EB2c4f870365E785982E1f101E93b906), which is also the Deployer
key used by devnet tests for admin transactions (SwitchBatcher,
TransferOwnership, etc.). When both the fallback batcher service and test
code sign L1 transactions from the same account concurrently, nonce
collisions cause transactions to never be mined, leading to timeouts.

Switch the fallback batcher to Anvil account #6
(0x976EA74026E726554dB657fA54763abd0C3a0aa9) across docker-compose,
prepare-allocs (nonTeeBatcher in rollup config), and .env.

Co-authored-by: OpenCode <noreply@opencode.ai>
QuentinI added a commit that referenced this pull request Mar 4, 2026
The fallback batcher (op-batcher-fallback) was using Anvil account #3
(0x90F79bf6EB2c4f870365E785982E1f101E93b906), which is also the Deployer
key used by devnet tests for admin transactions (SwitchBatcher,
TransferOwnership, etc.). When both the fallback batcher service and test
code sign L1 transactions from the same account concurrently, nonce
collisions cause transactions to never be mined, leading to timeouts.

Switch the fallback batcher to Anvil account #6
(0x976EA74026E726554dB657fA54763abd0C3a0aa9) across docker-compose,
prepare-allocs (nonTeeBatcher in rollup config), and .env.

Co-authored-by: OpenCode <noreply@opencode.ai>
QuentinI added a commit that referenced this pull request Mar 5, 2026
The fallback batcher (op-batcher-fallback) was using Anvil account #3
(0x90F79bf6EB2c4f870365E785982E1f101E93b906), which is also the Deployer
key used by devnet tests for admin transactions (SwitchBatcher,
TransferOwnership, etc.). When both the fallback batcher service and test
code sign L1 transactions from the same account concurrently, nonce
collisions cause transactions to never be mined, leading to timeouts.

Switch the fallback batcher to Anvil account #6
(0x976EA74026E726554dB657fA54763abd0C3a0aa9) across docker-compose,
prepare-allocs (nonTeeBatcher in rollup config), and .env.

Co-authored-by: OpenCode <noreply@opencode.ai>
QuentinI added a commit that referenced this pull request Mar 20, 2026
…357)

* Move batch authentication into derivation pipeline, remove BatchInbox contract

Move batch authentication from on-chain validation (BatchInbox contract calling
BatchAuthenticator.validateBatch) to off-chain verification in the derivation
pipeline via BatchInfoAuthenticated event scanning.

Key changes:
- Add batch_authenticator.go: event-based auth using CollectAuthenticatedBatches
  which scans a lookback window once per L1 block and returns authenticated hashes
- Add isBatchTxAuthorized helper shared by calldata and blob data sources
- Remove BatchInbox contract, interface, tests, bindings, and snapshots entirely
  (Espresso-introduced, never in Celo fork)
- Remove validateBatch/validateTeeBatch/validateNonTeeBatch from BatchAuthenticator
  (authenticateBatchInfo and signer management remain)
- Regenerate BatchAuthenticator Go bindings
- Revert BatchInbox-related fields from L1Deployments, ChainState, DeployEspressoOutput,
  and calculateBatchInboxAddr back to upstream signatures (introduce+remove no-ops)
- Update integration/devnet tests for EOA BatchInbox behavior

Co-authored-by: OpenCode <noreply@opencode.ai>

* Add FallbackBatcherAddress to derivation pipeline for non-TEE batcher auth

When batch authentication is enabled, the TEE batcher requires a matching
BatchInfoAuthenticated event on L1. The fallback (non-TEE) batcher does not
call authenticateBatchInfo, so its transactions had no auth events and were
rejected by the derivation pipeline.

Add FallbackBatcherAddress to rollup.Config and the derivation pipeline's
DataSourceConfig. When event-based auth finds no matching event for a batch,
it falls back to sender verification against the fallback batcher address.
This allows the non-TEE batcher to post batches without on-chain auth events
while still requiring event-based auth for the TEE batcher.

Co-authored-by: OpenCode <noreply@opencode.ai>

* Remove validBatchInfo mapping from BatchAuthenticator

The validBatchInfo mapping was written to on every authenticateBatchInfo
call but no longer read by the derivation pipeline, which now uses
BatchInfoAuthenticated events instead. Removing it saves ~20k gas per
call.

- Remove mapping declaration and write from BatchAuthenticator.sol
- Remove from IBatchAuthenticator interface
- Remove test assertions on validBatchInfo
- Update SECURITY_ANALYSIS.md to reflect event-based auth model
- Bump contract version to 1.1.0
- Regenerate ABI/storage snapshots and Go bindings

Co-authored-by: OpenCode <noreply@opencode.ai>

* Comments

* Fix txmgr wrapper

* Fix nonce collision: use separate account for fallback batcher

The fallback batcher (op-batcher-fallback) was using Anvil account #3
(0x90F79bf6EB2c4f870365E785982E1f101E93b906), which is also the Deployer
key used by devnet tests for admin transactions (SwitchBatcher,
TransferOwnership, etc.). When both the fallback batcher service and test
code sign L1 transactions from the same account concurrently, nonce
collisions cause transactions to never be mined, leading to timeouts.

Switch the fallback batcher to Anvil account #6
(0x976EA74026E726554dB657fA54763abd0C3a0aa9) across docker-compose,
prepare-allocs (nonTeeBatcher in rollup config), and .env.

Co-authored-by: OpenCode <noreply@opencode.ai>

* Add batcher-side idle check: inactive batcher skips publishing

Query BatchAuthenticator.activeIsTee() before publishing to L1.
The inactive batcher (TEE or fallback) now skips publishStateToL1
instead of posting transactions that would be ignored by the
derivation pipeline.

This was previously unnecessary because the BatchInbox contract's
validateBatch() would revert inactive batcher transactions during
eth_estimateGas. With the move to an EOA batch inbox, both batchers
can freely post, so an explicit idle check is needed.

Co-authored-by: OpenCode <noreply@opencode.ai>

* Fix event signature mismatch: BatchInfoAuthenticated(bytes32) not (bytes32,address)

PR #363 removed the 'address indexed signer' parameter from the
BatchInfoAuthenticated event, but the Go derivation pipeline still used
the old 2-parameter signature. The keccak256 hash of the wrong signature
never matched actual log topics, causing CollectAuthenticatedBatches to
find zero events and reject every batch.

- Fix ABI string in batch_authenticator.go
- Update test mocks to use 2-topic logs matching the actual event
- Regenerate Go bindings from fresh forge artifacts

Co-authored-by: OpenCode <noreply@opencode.ai>

* Cache L1BlockRef lookups in batch auth lookback window traversal

CollectAuthenticatedBatches walks backwards ~100 L1 blocks per call,
making an L1BlockRefByHash RPC call for each step. Since consecutive
L1 blocks share ~99 blocks in their lookback windows, these calls are
almost entirely redundant after the first traversal.

Add a second global LRU cache (blockRefCache) mapping block hash to
L1BlockRef, alongside the existing receipt cache. On steady state this
reduces L1BlockRefByHash RPC calls from ~100 per L1 block to ~0-1,
a ~50x reduction in total RPC overhead for the batch auth path.

Co-authored-by: OpenCode <noreply@opencode.ai>

* Increase batcher switch stabilization delay to 60s in TestBatcherActivePublishOnly

In-flight sendTxWithEspresso goroutines spawned before deactivation
can take ~25s to drain their queued Txmgr.Send calls. The previous
10s delay was insufficient, causing stale TEE batcher transactions to
appear in the post-switch monitoring window and failing the assertion.

Co-authored-by: OpenCode <noreply@opencode.ai>

* Reduce lookback window

* Pin eth2-val-tools

* Update succinct versions

---------

Co-authored-by: OpenCode <noreply@opencode.ai>
shenkeyao pushed a commit that referenced this pull request Mar 20, 2026
…357)

* Move batch authentication into derivation pipeline, remove BatchInbox contract

Move batch authentication from on-chain validation (BatchInbox contract calling
BatchAuthenticator.validateBatch) to off-chain verification in the derivation
pipeline via BatchInfoAuthenticated event scanning.

Key changes:
- Add batch_authenticator.go: event-based auth using CollectAuthenticatedBatches
  which scans a lookback window once per L1 block and returns authenticated hashes
- Add isBatchTxAuthorized helper shared by calldata and blob data sources
- Remove BatchInbox contract, interface, tests, bindings, and snapshots entirely
  (Espresso-introduced, never in Celo fork)
- Remove validateBatch/validateTeeBatch/validateNonTeeBatch from BatchAuthenticator
  (authenticateBatchInfo and signer management remain)
- Regenerate BatchAuthenticator Go bindings
- Revert BatchInbox-related fields from L1Deployments, ChainState, DeployEspressoOutput,
  and calculateBatchInboxAddr back to upstream signatures (introduce+remove no-ops)
- Update integration/devnet tests for EOA BatchInbox behavior

Co-authored-by: OpenCode <noreply@opencode.ai>

* Add FallbackBatcherAddress to derivation pipeline for non-TEE batcher auth

When batch authentication is enabled, the TEE batcher requires a matching
BatchInfoAuthenticated event on L1. The fallback (non-TEE) batcher does not
call authenticateBatchInfo, so its transactions had no auth events and were
rejected by the derivation pipeline.

Add FallbackBatcherAddress to rollup.Config and the derivation pipeline's
DataSourceConfig. When event-based auth finds no matching event for a batch,
it falls back to sender verification against the fallback batcher address.
This allows the non-TEE batcher to post batches without on-chain auth events
while still requiring event-based auth for the TEE batcher.

Co-authored-by: OpenCode <noreply@opencode.ai>

* Remove validBatchInfo mapping from BatchAuthenticator

The validBatchInfo mapping was written to on every authenticateBatchInfo
call but no longer read by the derivation pipeline, which now uses
BatchInfoAuthenticated events instead. Removing it saves ~20k gas per
call.

- Remove mapping declaration and write from BatchAuthenticator.sol
- Remove from IBatchAuthenticator interface
- Remove test assertions on validBatchInfo
- Update SECURITY_ANALYSIS.md to reflect event-based auth model
- Bump contract version to 1.1.0
- Regenerate ABI/storage snapshots and Go bindings

Co-authored-by: OpenCode <noreply@opencode.ai>

* Comments

* Fix txmgr wrapper

* Fix nonce collision: use separate account for fallback batcher

The fallback batcher (op-batcher-fallback) was using Anvil account #3
(0x90F79bf6EB2c4f870365E785982E1f101E93b906), which is also the Deployer
key used by devnet tests for admin transactions (SwitchBatcher,
TransferOwnership, etc.). When both the fallback batcher service and test
code sign L1 transactions from the same account concurrently, nonce
collisions cause transactions to never be mined, leading to timeouts.

Switch the fallback batcher to Anvil account #6
(0x976EA74026E726554dB657fA54763abd0C3a0aa9) across docker-compose,
prepare-allocs (nonTeeBatcher in rollup config), and .env.

Co-authored-by: OpenCode <noreply@opencode.ai>

* Add batcher-side idle check: inactive batcher skips publishing

Query BatchAuthenticator.activeIsTee() before publishing to L1.
The inactive batcher (TEE or fallback) now skips publishStateToL1
instead of posting transactions that would be ignored by the
derivation pipeline.

This was previously unnecessary because the BatchInbox contract's
validateBatch() would revert inactive batcher transactions during
eth_estimateGas. With the move to an EOA batch inbox, both batchers
can freely post, so an explicit idle check is needed.

Co-authored-by: OpenCode <noreply@opencode.ai>

* Fix event signature mismatch: BatchInfoAuthenticated(bytes32) not (bytes32,address)

PR #363 removed the 'address indexed signer' parameter from the
BatchInfoAuthenticated event, but the Go derivation pipeline still used
the old 2-parameter signature. The keccak256 hash of the wrong signature
never matched actual log topics, causing CollectAuthenticatedBatches to
find zero events and reject every batch.

- Fix ABI string in batch_authenticator.go
- Update test mocks to use 2-topic logs matching the actual event
- Regenerate Go bindings from fresh forge artifacts

Co-authored-by: OpenCode <noreply@opencode.ai>

* Cache L1BlockRef lookups in batch auth lookback window traversal

CollectAuthenticatedBatches walks backwards ~100 L1 blocks per call,
making an L1BlockRefByHash RPC call for each step. Since consecutive
L1 blocks share ~99 blocks in their lookback windows, these calls are
almost entirely redundant after the first traversal.

Add a second global LRU cache (blockRefCache) mapping block hash to
L1BlockRef, alongside the existing receipt cache. On steady state this
reduces L1BlockRefByHash RPC calls from ~100 per L1 block to ~0-1,
a ~50x reduction in total RPC overhead for the batch auth path.

Co-authored-by: OpenCode <noreply@opencode.ai>

* Increase batcher switch stabilization delay to 60s in TestBatcherActivePublishOnly

In-flight sendTxWithEspresso goroutines spawned before deactivation
can take ~25s to drain their queued Txmgr.Send calls. The previous
10s delay was insufficient, causing stale TEE batcher transactions to
appear in the post-switch monitoring window and failing the assertion.

Co-authored-by: OpenCode <noreply@opencode.ai>

* Reduce lookback window

* Pin eth2-val-tools

* Update succinct versions

---------

Co-authored-by: OpenCode <noreply@opencode.ai>
# Conflicts:
#	espresso/docker-compose.yml
#	op-batcher/batcher/driver.go
#	op-e2e/system/e2esys/setup.go
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant