Summary
BREAKING_CHANGES.md currently categorizes breaking changes primarily in terms of node-operator concerns such as CLI flags, configuration defaults, and serialized/log output.
However, some node configuration changes also alter externally observable JSON-RPC behavior for applications.
A concrete example is the v0.7.2 reduction of the default RPC gas cap from 50,000,000 to 30,000,000.
After upgrading a node with otherwise unchanged configuration, an application can observe previously successful eth_call or eth_estimateGas requests begin failing.
This is therefore not only a node-operator configuration change. It is also an application compatibility change.
Current Behavior
The v0.7.2 breaking-change entry documents:
- old
--rpc.gascap default: 50000000
- new
--rpc.gascap default: 30000000
and explains that calls requiring more than 30M gas will now fail.
However, the breaking-change taxonomy does not provide a distinct category for changes to externally visible JSON-RPC behavior.
As a result, dApp developers, SDK maintainers, infrastructure providers, and RPC consumers may not realize that a node upgrade can change application behavior even when the JSON-RPC API itself has not changed.
Expected Behavior
Application-facing RPC compatibility changes should be explicitly classified in BREAKING_CHANGES.md.
For example:
[RPC] -- JSON-RPC semantics, limits, defaults, or externally observable behavior changed.
The v0.7.2 entry could then be represented as both:
[Config] default --rpc.gascap changed from 50M to 30M.
[RPC] eth_call and eth_estimateGas requests requiring >30M gas may now fail.
Why This Matters
RPC behavior is effectively part of Arc’s developer-facing interface.
Changes to:
- gas caps
- request limits
- transaction validation
- WebSocket subscription limits
- simulation behavior
- error responses
can break applications even though no Solidity contract or JSON-RPC method signature changed.
Treating these solely as operator configuration changes makes it harder for application developers to determine whether an Arc upgrade can affect their software.
Suggested Fix
Add an application-facing breaking-change category to BREAKING_CHANGES.md, for example:
[RPC] -- JSON-RPC semantics, limits, defaults, validation, or error behavior changed.
Consider also adding:
[App] -- externally observable behavior changed in a way that may require dApp or SDK changes.
Then annotate applicable historical entries, especially the v0.7.x RPC changes.
Summary
BREAKING_CHANGES.mdcurrently categorizes breaking changes primarily in terms of node-operator concerns such as CLI flags, configuration defaults, and serialized/log output.However, some node configuration changes also alter externally observable JSON-RPC behavior for applications.
A concrete example is the v0.7.2 reduction of the default RPC gas cap from
50,000,000to30,000,000.After upgrading a node with otherwise unchanged configuration, an application can observe previously successful
eth_calloreth_estimateGasrequests begin failing.This is therefore not only a node-operator configuration change. It is also an application compatibility change.
Current Behavior
The v0.7.2 breaking-change entry documents:
--rpc.gascapdefault:50000000--rpc.gascapdefault:30000000and explains that calls requiring more than 30M gas will now fail.
However, the breaking-change taxonomy does not provide a distinct category for changes to externally visible JSON-RPC behavior.
As a result, dApp developers, SDK maintainers, infrastructure providers, and RPC consumers may not realize that a node upgrade can change application behavior even when the JSON-RPC API itself has not changed.
Expected Behavior
Application-facing RPC compatibility changes should be explicitly classified in
BREAKING_CHANGES.md.For example:
[RPC] -- JSON-RPC semantics, limits, defaults, or externally observable behavior changed.
The v0.7.2 entry could then be represented as both:
[Config] default --rpc.gascap changed from 50M to 30M.
[RPC] eth_call and eth_estimateGas requests requiring >30M gas may now fail.
Why This Matters
RPC behavior is effectively part of Arc’s developer-facing interface.
Changes to:
can break applications even though no Solidity contract or JSON-RPC method signature changed.
Treating these solely as operator configuration changes makes it harder for application developers to determine whether an Arc upgrade can affect their software.
Suggested Fix
Add an application-facing breaking-change category to BREAKING_CHANGES.md, for example:
[RPC]-- JSON-RPC semantics, limits, defaults, validation, or error behavior changed.Consider also adding:
[App]-- externally observable behavior changed in a way that may require dApp or SDK changes.Then annotate applicable historical entries, especially the v0.7.x RPC changes.