Releases: OffchainLabs/nitro
Arbitrum Nitro v2.3.4 Release Candidate 4
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.4-rc.4-82988d5
What's Changed
This release improves EIP-4844 batch posting and merges in a new go-ethereum version compared to the previous release candidate.
Configuration Changes
--log-level
has new values:-8
is trace-4
is debug0
is info4
is warn8
is error12
is crit
- For alerting, note that error logs will now have a level field of "error" instead of "eror".
Internal Highlights
- Add a check to make sure we don't allow accidentally downgrading ArbOS: #2236
- Merge v1.13.6: #2237
- Fix data poster creating nonce gap: #2261
Full Changelog: v2.3.4-rc.3...v2.3.4-rc.4
Arbitrum Nitro v2.3.4 Release Candidate 3
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.4-rc.3-fb101a8
What's Changed
This release improves EIP-4844 batch posting and adds support for Redis streams as a block validation work queue compared to the previous release candidate.
Configuration Changes
- If any config options in
--node.block-validator.validation-server.*
are set, they must be copied (not moved) to--node.block-validator.execution-server-config.*
.- E.g. if
--node.block-validator.validation-server.url http://localhost:1234
was set, you must also set--node.block-validator.execution-server-config.url http://localhost:1234
on this new version.
- E.g. if
User-facing Improvements
- eth_syncing: improve fields and naming: #2224
- Pull in geth fix for stopping the flat call tracer: #2258
- Add support for Redis streams to Nitro's block validation: #2241
Internal Highlights
- Reduce maximum EIP-4844 batch size slightly: #2220
- Fix data poster noop storage check in batch poster: #2225
- Avoid deadlocking sender account w/ diff type txs: #2234
- Merge upstream go-ethereum v1.13.5: #2230
- Improve preimage validation in JIT and Arbitrator: #2217
- Use metrics namespaces when opening databases: #2229
Full Changelog: v2.3.4-rc.2...v2.3.4-rc.3
Arbitrum Nitro v2.3.4 Release Candidate 2
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.4-rc.2-c84507b
Note that release candidate 1 was never fully released in favor of this release candidate which has an additional PR.
What's Changed
This release improves sequencer reliability and node performance, in addition to adding metrics for chain pricing data.
User-facing Improvements
- Set default --execution.sequencer.max-revert-gas-reject=0 to improve sequencer reliability: #2213
Internal Highlights
- Execution service 4: execution->consensus interface: #1535
- syncProgressMap: bug fix: #2209
- Validate preimages in both JIT and Arbitrator: #2208
- Don't wait on the prefetcher to complete before producing the next block: #2216
- Add metrics to track L1 price in batch poster: #2173
- Track pricing data in sequencer and batch poster. Add option to decline incoming transactions during extreme l1 pricing conditions: #2180
- Don't increment the gas used metric in the prefetcher: #2214
- Do not log 'error applying transaction' errors when the block is being created for the prefetcher: #2215
Full Changelog: v2.3.3...v2.3.4-rc.2
Arbitrum Nitro v2.3.3
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.3-6a1c1a7
What's Changed
This release improves EIP-4844 support. It's a recommended upgrade for any L2 batch posters, along with anyone having inbox reader issues reading blob batches. It also improves batch poster support for parent chains which have unknown transaction types.
Internal Highlights
- Improve error logging when blob client fails to read blobs from beacon-URL: #2193
- Fix MaxFeeBidMultipleBips to respect rbf minimums: #2199
- Add backup blob client: #2170
- Use raw JSON RPCs to look for batch reverts: #2202
- Add metrics for L2 gas pricing: #2204
- Verify that --chain.info-json is compatible with deployed chain config and detect conflicts between node options and deployed chain config: #2165
- Add badgerdb memory options: #2194
Full Changelog: v2.3.2...v2.3.3
Arbitrum Nitro v2.3.2
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.2-064fa11
It is identical to v2.3.2-rc.1 aside from the updated version tag.
What's Changed
This release improves batch poster support for EIP-4844 and fixes a rare state corruption issue with debug tracing requests.
Configuration Changes
- The DAS option
--data-availability.local-cache.expiration
has been removed in favor of the new--data-availability.local-cache.capacity
flag. This config option is only available for data availability servers, not nitro nodes.
Internal Highlights
- Supply a maxFeePerGas for batch gas estimation: #2187
- Disable EIP-4844 blob posting when another DAS is enabled: #2186
- Set a maximum multiple of the current tx fees to bid in the data poster: #2188
- Add extra check for recent block in debug tracing by hash: OffchainLabs/go-ethereum#293
- Pull in geth changes for state recreation: #2005
- Handle go-ethereum's blob tx already known: #2182
- Include chainID in Tx to signtx args conversion: #2171
- Support blob transactions in data poster external signer: #2169
- Update badgerdb: #2172
- Das replace cache: #2179
- Fix ErrExceedsMaxMempoolSize err log: #2183
Full Changelog: v2.3.1...v2.3.2
Arbitrum Nitro v2.3.2 Release Candidate 1
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.2-rc.1-064fa11
What's Changed
This release improves batch poster support for EIP-4844 and fixes a rare state corruption issue with debug tracing requests.
Internal Highlights
- Supply a maxFeePerGas for batch gas estimation: #2187
- Disable EIP-4844 blob posting when another DAS is enabled: #2186
- Set a maximum multiple of the current tx fees to bid in the data poster: #2188
- Add extra check for recent block in debug tracing by hash: OffchainLabs/go-ethereum#293
- Pull in geth changes for state recreation: #2005
- Handle go-ethereum's blob tx already known: #2182
- Include chainID in Tx to signtx args conversion: #2171
- Support blob transactions in data poster external signer: #2169
- Update badgerdb: #2172
- Das replace cache: #2179
- Add --data-availability.local-cache.max-size-mb: #2176
- Fix ErrExceedsMaxMempoolSize err log: #2183
Full Changelog: v2.3.1...v2.3.2-rc.1
Arbitrum Nitro v2.3.1
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.1-26fad6f
It is identical to v2.3.1-rc.1 aside from the updated version tag.
What's Changed
This release fixes validators processing EIP-4844 batches and improves EIP-4844 blob based batch posting performance and reliability. However, we still recommend waiting for more testing to be done before enabling EIP-4844 batch posting on Arbitrum Orbit chains (the current default configuration does not have EIP-4844 batch posting enabled).
User-facing Improvements
- Add option for beacon auth header: #2162
- Seq-coordinator-manager should handle uninitialized redis: #2154
Internal Highlights
- Fix recording blob preimages: #2167
- Properly support replace by fee for blob txs: #2164
- Avoid freq switch of non-4844 to 4844 batch post: #2158
- Save Blob data as fetched from beaconURL to disk: #2166
- Unified reader interface for Data Availability providers: #2155
- Don't force delayed sequencing when coordinator is disabled: #2079
- Log a warning whenever we don’t do the next validation because we’re low on memory: #2163
- Update testnode submodule: #2132
- Bump contracts pin: #2127
Full Changelog: v2.3.0...v2.3.1
Arbitrum Nitro v2.3.1 Release Candidate 1
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.1-rc.1-f761877
What's Changed
This release fixes validators processing EIP-4844 batches compared to the last alpha release.
Internal Highlights
Full Changelog: v2.3.1-alpha.1...v2.3.1-rc.1
Arbitrum Nitro v2.3.1 Alpha 1
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.1-alpha.1-f10123b
What's Changed
This release improves EIP-4844 blob based batch posting performance and reliability. However, we still recommend waiting for more testing to be done before enabling EIP-4844 batch posting on Arbitrum Orbit chains (the current default configuration does not have EIP-4844 batch posting enabled).
User-facing Improvements
- Add option for beacon auth header: #2162
- Seq-coordinator-manager should handle uninitialized redis: #2154
Internal Highlights
- Properly support replace by fee for blob txs: #2164
- Avoid freq switch of non-4844 to 4844 batch post: #2158
- Unified reader interface for Data Availability providers: #2155
- Don't force delayed sequencing when coordinator is disabled: #2079
- Log a warning whenever we don’t do the next validation because we’re low on memory: #2163
- Update testnode submodule: #2132
- Bump contracts pin: #2127
Full Changelog: v2.3.0...v2.3.1-alpha.1
Arbitrum Nitro v2.3.0
This release is available as a Docker image on Docker Hub at offchainlabs/nitro-node:v2.3.0-3e14543
What's Changed
This release adds support for ArbOS 20, which includes EIP-4844 batch posting support and new EVM opcodes such as MCOPY and TSTORE. The Arbitrum DAO forum proposal documents the full extent of the upgrade. This release will be a required upgrade for any Arbitrum networks that chose to adopt ArbOS 20. For a chain to adopt ArbOS 20 it must have nitro-contracts 1.2.1 or higher deployed.
Beacon chain RPC connection
To run an layer 2 Arbitrum Nitro node (this does not apply to layer 3s), you will now need to supply a beacon chain RPC connection. This allows the node to query the contents of EIP-4844 batches. If you're running an layer 1 node locally, your consensus client should expose this RPC. Prysm exposes this RPC on port 3500 by default, and Lighthouse exposes this RPC on port 5052 by default. Check your consensus client's documentation for details.
If you're using a 3rd party L1 execution client RPC (previously the only RPC required to run an Arbitrum node), ask your provider if they also provide a beacon chain RPC. We have a non-exhaustive list of 3rd party beacon chain RPC providers here: https://docs.arbitrum.io/node-running/reference/ethereum-beacon-rpc-providers
Currently, in order to sync an Arbitrum node from scratch (or from a database that's more than 18 days old), your beacon chain RPC will also need to support querying historical blobs, which is not the default behavior of Ethereum consensus clients. However, some 3rd party beacon chain RPC providers do provide this data. We list some providers known to do this in our documentation.
To test if your beacon chain RPC URL is correct, try curl <Layer 1 beacon chain URL>/eth/v1/beacon/genesis
. You should get a response like the following (this response is for mainnet, other networks will have other values for each field):
{"data":{"genesis_time":"1606824023","genesis_validators_root":"0x4b363db94e286120d76eb905340fdd4e54bfe9f06bf33ff6cf5ad27f511bfe95","genesis_fork_version":"0x00000000"}}
You can set this URL on the command line with --parent-chain.blob-client.beacon-url=<Layer 1 beacon chain URL>
or use the equivalent JSON config path.
User-facing Improvements
Internal Highlights
- Add consensus-v20 to Dockerfile: #2153
Full Changelog: v2.2.5...v2.3.0