You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+12-5
Original file line number
Diff line number
Diff line change
@@ -11,12 +11,19 @@
11
11
12
12
- fix(eth): always return nil for eth transactions not found ([filecoin-project/lotus#12999](https://github.com/filecoin-project/lotus/pull/12999))
13
13
- feat: add gas to application metric reporting `vm/applyblocks_early_gas`, `vm/applyblocks_messages_gas`, `vm/applyblocks_cron_gas` ([filecoin-project/lotus#13030](https://github.com/filecoin-project/lotus/pull/13030))
14
-
- feat: add Lotus v2 experimental APIs with F3 awareness
14
+
- feat: add **Lotus v2 experimental APIs with F3 awareness**:<br>
15
15
The Lotus V2 APIs introduce a powerful new TipSet selection mechanism that significantly enhances how applications interact with the Filecoin blockchain. The design reduces API footprint, seamlessly handles both traditional Expected Consensus and the new F3 protocol, and provides graceful fallbacks. See [Filecoin v2 APIs](https://filoznotebook.notion.site/Filecoin-V2-APIs-1d0dc41950c1808b914de5966d501658) for an
- feat: add **Ethereum APIs to v2 with F3 awareness** and minor improvements to v1 Ethereum APIs:<br>
18
+
The full suite of Ethereum APIs supported by Lotus (aliased by `eth_`, `trace_` etc. for compatibility) are now also exposed on the new V2 API endpoint. Functionality of the APIs remains identical, however the mapping of `"finalized"` and `"safe"` will defer to F3 rather than using fixed epochs. When F3 is operating normally, both of these labels will choose the parent of the F3 finalized epoch rather than their EC fixed values as used in V1 APIs. Use the `/v2` API endpoint to be able to use `"finalized"` and be closer to the chain head when F3 is active. ([filecoin-project/lotus#13026](https://github.com/filecoin-project/lotus/pull/13026))<br>
19
+
Additional changes to the Ethereum APIs (both V1 and V2) introduced in this release include:
20
+
-`eth_getBlockTransactionCountByNumber` now takes the standard Ethereum block number specifier: hex encoded integers _or_ labels including `"latest"`, `"safe"` and `"finalized"`.
21
+
- All APIs that take a `BlockNumberOrHash` now handle the full range of labels: `"pending"`, `"latest"`, `"safe"`, `"finalized"` (previously only the first two were supported). These include: `eth_estimateGas`, `eth_call`, `eth_getCode`, `eth_getStorageAt`, `eth_getBalance`, `eth_getTransactionCount` and `eth_getBlockReceipts`.
22
+
-`EthGetTransactionByHashLimited`, `EthGetTransactionReceiptLimited` and `EthGetBlockReceiptsLimited` are no longer supported via the gateway, they are an unnecessary implementation detail.
23
+
- All endpoints that select by block hash or number now properly return `ErrNullRound` error types via the go-jsonrpc API and present a consistent error message via raw JSONRPC.
24
+
- The `"safe"` label has divergent behaviour between V1 and V2 APIs worth noting:
25
+
-`/v1` APIs will interpret `"safe"` as a fixed distance of 30 epochs behind `"latest"`, this is unchanged and is based on research into the stability of the chain under normal conditions.
26
+
-`/v2` APIs will interpret `"safe"` to be the same as `"finalized"` as long as F3 is enabled and properly functioning. In the case of F3 being inactive or otherwise not operational, it will be interpreted as a (*very* pessimistic) fixed distance of 200 epochs behind `"latest"`. This may be revised in a future update.
0 commit comments