Skip to content

docs: node verification guide incorrectly describes eth_blockNumber as returning the next block height #272

Description

@mssystem1

Summary

The Running an Arc Node documentation incorrectly states that the result returned by eth_blockNumber represents the next block height.

eth_blockNumber returns the number of the latest block known to the node.

Calling the returned value the "next block height" introduces an off-by-one semantic error in the node-operation documentation.

Affected Documentation

File:

docs/running-an-arc-node.md

Section:

Verify operation

Current Documentation

The guide instructs operators to call:

curl -s -X POST http://localhost:8545 \
  -H "Content-Type: application/json" \
  -d '{ "jsonrpc": "2.0", "method": "eth_blockNumber", "params": [], "id": 1}'

It then states that:

The result field represents the next block height, in hexadecimal.

This is inaccurate.

Actual Behavior

For a chain whose latest block is block N:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0xN"
}

represents block N, not block N + 1.

In other words:

eth_blockNumber = latest/current block number

not:

eth_blockNumber = next block height

Why This Matters

This wording can create off-by-one mistakes in:

  • node sync checks;
  • operational scripts;
  • monitoring;
  • block indexing;
  • troubleshooting;
  • documentation copied into third-party tooling.

For example, if the RPC returns:

0x64

the node's reported latest block number is:

100

The documentation currently implies this is the height of the next block to be produced.

Expected Documentation

The paragraph should instead say something similar to:

The `result` field contains the latest block number known to the execution
layer, encoded as a hexadecimal quantity. The value should increase as the
node follows the chain.

Suggested Fix

Replace:

The result field represents the next block height, in hexadecimal

with:

The result field represents the latest block number known to the node,
encoded in hexadecimal.

Optional Improvement

The verification section could also provide a deterministic conversion example:

BLOCK_HEX=$(curl -s -X POST http://localhost:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
  | jq -r '.result')

printf "%d\n" "$BLOCK_HEX"

This makes it clearer that the value is the current latest block number.

Impact

Documentation / developer experience.

Severity:

Low

The node itself behaves correctly; the issue is the documented interpretation
of a standard RPC response.

Environment

Repository:

circlefin/arc-node

File:

docs/running-an-arc-node.md

RPC method:

eth_blockNumber

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions