From e4a87e266dbf4c92e8baffbda5bf39f7324fd8cc Mon Sep 17 00:00:00 2001 From: ayaanoncrypto <1.06945712e+08+ayaanoncrypto@users.noreply.github.com> Date: Wed, 19 Aug 2026 19:45:57 +0000 Subject: [PATCH 1/3] docs: clarify RPC behavior and validate rustdoc --- .github/workflows/ci.yml | 14 ++++++++++++++ BREAKING_CHANGES.md | 4 +++- deployments/docker-compose.yml | 4 ++-- docs/running-an-arc-node.md | 4 ++-- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b655f8fa..958fec96 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,6 +34,20 @@ jobs: - 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@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 diff --git a/BREAKING_CHANGES.md b/BREAKING_CHANGES.md index 43a1881c..f33fd969 100644 --- a/BREAKING_CHANGES.md +++ b/BREAKING_CHANGES.md @@ -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). @@ -26,9 +27,10 @@ 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.** diff --git a/deployments/docker-compose.yml b/deployments/docker-compose.yml index 11b440f5..d1641f00 100644 --- a/deployments/docker-compose.yml +++ b/deployments/docker-compose.yml @@ -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: diff --git a/docs/running-an-arc-node.md b/docs/running-an-arc-node.md index 93f04f9d..e521ad9b 100644 --- a/docs/running-an-arc-node.md +++ b/docs/running-an-arc-node.md @@ -218,8 +218,8 @@ curl -s -X POST http://localhost:8545 \ ``` The produced output is in JSON format. -The `result` field represents the next block height, in hexadecimal -(you can use `printf "%0d"` to translate it into decimal). +The `result` field represents the latest block number known to the node, in hexadecimal. +It is not the next block height. You can use `printf "%0d"` to translate it into decimal. It should increase over time. If it remains `0x0`, check the logs of the consensus layer for errors. Common causes are a missing or incomplete snapshot, mismatched `$ARC_RUN` From 573ce38769188ae38480f6c9a323ae361c1055e6 Mon Sep 17 00:00:00 2001 From: ayaanoncrypto <1.06945712e+08+ayaanoncrypto@users.noreply.github.com> Date: Wed, 19 Aug 2026 21:21:16 +0000 Subject: [PATCH 2/3] docs: address RPC review feedback --- .github/workflows/ci.yml | 12 ++++++------ BREAKING_CHANGES.md | 6 +++--- docs/running-an-arc-node.md | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 958fec96..84afcbe7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,7 +27,7 @@ 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 @@ -41,7 +41,7 @@ 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 - name: Build workspace documentation env: @@ -55,7 +55,7 @@ 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 - name: Install cargo-sort run: cargo install cargo-sort @@ -73,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 @@ -92,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 @@ -118,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 diff --git a/BREAKING_CHANGES.md b/BREAKING_CHANGES.md index f33fd969..5340dc8e 100644 --- a/BREAKING_CHANGES.md +++ b/BREAKING_CHANGES.md @@ -33,12 +33,12 @@ No breaking changes in this release. - 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 `. @@ -56,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. diff --git a/docs/running-an-arc-node.md b/docs/running-an-arc-node.md index e521ad9b..29a65e84 100644 --- a/docs/running-an-arc-node.md +++ b/docs/running-an-arc-node.md @@ -219,7 +219,7 @@ curl -s -X POST http://localhost:8545 \ The produced output is in JSON format. The `result` field represents the latest block number known to the node, in hexadecimal. -It is not the next block height. You can use `printf "%0d"` to translate it into decimal. +It is not the next block height. You can use `printf "%d\n" 0x64` to translate a hexadecimal value into decimal. It should increase over time. If it remains `0x0`, check the logs of the consensus layer for errors. Common causes are a missing or incomplete snapshot, mismatched `$ARC_RUN` From dee374bcfb28f08902523435629cc1371aa50684 Mon Sep 17 00:00:00 2001 From: ayaanoncrypto <1.06945712e+08+ayaanoncrypto@users.noreply.github.com> Date: Thu, 20 Aug 2026 13:13:56 +0000 Subject: [PATCH 3/3] docs: deduplicate block number clarification --- docs/running-an-arc-node.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/running-an-arc-node.md b/docs/running-an-arc-node.md index 29a65e84..93f04f9d 100644 --- a/docs/running-an-arc-node.md +++ b/docs/running-an-arc-node.md @@ -218,8 +218,8 @@ curl -s -X POST http://localhost:8545 \ ``` The produced output is in JSON format. -The `result` field represents the latest block number known to the node, in hexadecimal. -It is not the next block height. You can use `printf "%d\n" 0x64` to translate a hexadecimal value into decimal. +The `result` field represents the next block height, in hexadecimal +(you can use `printf "%0d"` to translate it into decimal). It should increase over time. If it remains `0x0`, check the logs of the consensus layer for errors. Common causes are a missing or incomplete snapshot, mismatched `$ARC_RUN`