Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 19 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,35 @@ jobs:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
uses: actions-rust-lang/setup-rust-toolchain@0267444136ce4919088f5eae0461f736f21356de # v1
with:
components: rustfmt

- name: Run cargo fmt
run: cargo fmt --all -- --check

rust-doc:
name: Rust Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@0267444136ce4919088f5eae0461f736f21356de # v1

- name: Build workspace documentation
env:
RUSTDOCFLAGS: -D warnings
run: cargo doc --workspace --no-deps --all-features --locked

rust-deps:
name: Rust Dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
uses: actions-rust-lang/setup-rust-toolchain@0267444136ce4919088f5eae0461f736f21356de # v1

- name: Install cargo-sort
run: cargo install cargo-sort
Expand All @@ -59,7 +73,7 @@ jobs:
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends libclang-dev zlib1g-dev

- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
uses: actions-rust-lang/setup-rust-toolchain@0267444136ce4919088f5eae0461f736f21356de # v1
with:
components: clippy
cache-shared-key: rust-build
Expand All @@ -78,7 +92,7 @@ jobs:
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends libclang-dev zlib1g-dev

- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
uses: actions-rust-lang/setup-rust-toolchain@0267444136ce4919088f5eae0461f736f21356de # v1
with:
cache-shared-key: rust-build

Expand All @@ -104,7 +118,7 @@ jobs:
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends libclang-dev zlib1g-dev

- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
uses: actions-rust-lang/setup-rust-toolchain@0267444136ce4919088f5eae0461f736f21356de # v1

- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
Expand Down
10 changes: 6 additions & 4 deletions BREAKING_CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Each bullet is prefixed with a flag identifying the kind of breaking change:
- `[CLI]` -- CLI flag added, renamed, removed, or made required.
- `[Config]` -- default value, environment variable, or manifest field change.
- `[Format]` -- log, metric label, or serialized output format change that breaks parsers.
- `[RPC]` -- externally observable JSON-RPC behavior change that can affect applications.

Entries are split by audience. A change appears under `### For Validators` when validator-mode operation must change; otherwise it appears under `### For Node Operators`. A change requiring both audiences to act appears in both sections (rare).

Expand All @@ -26,17 +27,18 @@ No breaking changes in this release.

### For Node Operators

- **[Config] `arc-node-execution`: JSON-RPC gas cap default lowered.**
- **[Config][RPC] `arc-node-execution`: JSON-RPC gas cap default lowered.**
- Old (`v0.7.1`): `--rpc.gascap` default `50000000` (Reth stock default).
- New (`v0.7.2`): `--rpc.gascap` default `30000000`.
- The RPC gas cap limits gas available to `eth_call` and `eth_estimateGas` simulations. It is an RPC execution limit, not the protocol maximum gas limit for an on-chain transaction.
- `eth_call` and `eth_estimateGas` requests that need more than 30M gas now fail with a gas-cap error. Pass `--rpc.gascap 50000000` (or higher) to restore the previous budget. Operators who never set the flag and do not rely on calls above 30M gas are unaffected.

- **[CLI] `arc-node-execution`: replay-unprotected (pre-EIP-155) transactions are rejected over JSON-RPC by default.**
- **[CLI][RPC] `arc-node-execution`: replay-unprotected (pre-EIP-155) transactions are rejected over JSON-RPC by default.**
- Old (`v0.7.1`): pre-EIP-155 (replay-unprotected) transactions were accepted over JSON-RPC.
- New (`v0.7.2`): they are rejected by default with "only replay-protected (EIP-155) transactions allowed over RPC".
- Adds `--arc.rpc.allow-unprotected-txs` (default `false`); set it to accept legacy unprotected transactions over RPC.

- **[Config] `arc-node-execution`: JSON-RPC batch requests are capped.**
- **[Config][RPC] `arc-node-execution`: JSON-RPC batch requests are capped.**
- Old (`v0.7.1`): no limit on the number of entries in a JSON-RPC batch request.
- New (`v0.7.2`): `--arc.rpc.max-batch-entries` defaults to `100`; oversized batches are rejected with JSON-RPC error `-32600` before any per-entry handler runs. A value of `0` is rejected so the cap cannot be silently disabled.
- Operators whose tooling submits larger batches must raise `--arc.rpc.max-batch-entries <COUNT>`.
Expand All @@ -54,7 +56,7 @@ No breaking changes in this release.

### For Node Operators

- **[Config] `arc-node-execution`: EL RPC connection defaults tightened.**
- **[Config][RPC] `arc-node-execution`: EL RPC connection defaults tightened.**
- `--rpc.max-connections` default: `500` -> `250`.
- `--rpc.max-subscriptions-per-connection` default: `1024` -> `32`.
- Both flags remain accepted on `arc-node-execution`; operators that need the previous behavior must pass them explicitly. The new defaults bound a WebSocket subscription fan-out memory pressure path; real-world clients typically multiplex around five subscriptions per socket and are unaffected.
Expand Down
4 changes: 2 additions & 2 deletions deployments/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
# Logs: docker compose logs -f
#
# Required environment variables (see docs/running-an-arc-node.md#docker):
# ARC_EXECUTION_IMAGE — EL Docker image (e.g. docker.cloudsmith.io/circle/arc-network/arc-execution:0.6.0)
# ARC_CONSENSUS_IMAGE — CL Docker image (e.g. docker.cloudsmith.io/circle/arc-network/arc-consensus:0.6.0)
# ARC_EXECUTION_IMAGE — EL Docker image (e.g. docker.cloudsmith.io/circle/arc-network/arc-execution:0.7.3)
# ARC_CONSENSUS_IMAGE — CL Docker image (e.g. docker.cloudsmith.io/circle/arc-network/arc-consensus:0.7.3)
# ARC_HOME — data directory on the host (e.g. ~/.arc)

services:
Expand Down