Skip to content

Commit 6cd7982

Browse files
rjan90BigLep
andauthored
build: release Lotus node v1.31.0-rc1 (#12693)
* build: release Lotus node v1.31.0-rc1 build: release Lotus node v1.31.0-rc1 * chore: update changelog for v1.31.0-rc1 chore: update changelog for v1.31.0-rc1 * Update CHANGELOG.md Update CHANGELOG.md Update CHANGELOG.md Co-Authored-By: Steve Loeppky <[email protected]> * chore: update changelog formatting chore: update changelog formatting --------- Co-authored-by: Steve Loeppky <[email protected]>
1 parent 3d0112e commit 6cd7982

9 files changed

+50
-32
lines changed

CHANGELOG.md

+41-23
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,56 @@
22

33
# UNRELEASED
44

5-
## New features
6-
- New ChainIndexer subsystem to index Filecoin chain state such as tipsets, messages, events and ETH transactions for accurate and faster RPC responses. The `ChainIndexer` replaces the existing `MsgIndex`, `EthTxHashLookup` and `EventIndex` implementations in Lotus, which [suffer from a multitude of known problems](https://github.com/filecoin-project/lotus/issues/12293). If you are an RPC provider or a node operator who uses or exposes Ethereum and/or events APIs, please refer to the [ChainIndexer documentation for operators](./documentation/en/chain-indexer-overview-for-operators.md) for information on how to enable, configure and use the new Indexer. While there is no automated data migration and one can upgrade and downgrade without backups, there are manual steps that need to be taken to backfill data when upgrading to this Lotus version, or downgrading to the previous version without ChainIndexer. Please be aware that that this feature removes some options in the Lotus configuration file, if these have been set, Lotus will report an error when starting. See the documentation for more information.
7-
- Return a consistent error when encountering null rounds in ETH RPC method calls. ([filecoin-project/lotus#12655](https://github.com/filecoin-project/lotus/pull/12655))
8-
- Reduce size of embedded genesis CAR files by removing WASM actor blocks and compressing with zstd. This reduces the `lotus` binary size by approximately 10 MiB. ([filecoin-project/lotus#12439](https://github.com/filecoin-project/lotus/pull/12439))
9-
- Add ChainSafe operated Calibration archival node to the bootstrap list ([filecoin-project/lotus#12517](https://github.com/filecoin-project/lotus/pull/12517))
5+
# Node and Miner v1.31.0-rc1 / 2024-11-12
6+
7+
This Lotus release candidate introduces the new `ChainIndexer` subsystem, enhancing the indexing of Filecoin chain state for improved RPC performance. Several bug fixes in the block production loop are also included. Please review the upgrade warnings and documentation for any important changes affecting RPC providers, node operators and storage providers.
8+
9+
## ☢️ Upgrade Warnings ☢️
10+
- The introduction of the new `ChainIndexer` subsystem replaces the existing `MsgIndex`, `EthTxHashLookup`, and `EventIndex` implementations. This change may affect RPC providers and node operators who use or expose Ethereum and/or events APIs. It is crucial to review the [ChainIndexer documentation for operators](./documentation/en/chain-indexer-overview-for-operators.md) to understand how to enable, configure, and use the new Indexer.
11+
12+
## ⭐ New Feature Highlights:
13+
- New ChainIndexer subsystem to index Filecoin chain state such as tipsets, messages, events and ETH transactions for accurate and faster RPC responses. The `ChainIndexer` replaces the existing `MsgIndex`, `EthTxHashLookup` and `EventIndex` implementations in Lotus, which [suffer from a multitude of known problems](https://github.com/filecoin-project/lotus/issues/12293). If you are an RPC provider or a node operator who uses or exposes Ethereum and/or events APIs, please refer to the [ChainIndexer documentation for operators](./documentation/en/chain-indexer-overview-for-operators.md) for information on how to enable, configure and use the new Indexer. While there is no automated data migration and one can upgrade and downgrade without backups, there are manual steps that need to be taken to backfill data when upgrading to this Lotus version, or downgrading to the previous version without ChainIndexer. Please be aware that that this feature removes some options in the Lotus configuration file, if these have been set, Lotus will report an error when starting. See the documentation for more information
1014
- `lotus chain head` now supports a `--height` flag to print just the epoch number of the current chain head ([filecoin-project/lotus#12609](https://github.com/filecoin-project/lotus/pull/12609))
11-
- `lotus-shed indexes inspect-indexes` now performs a comprehensive comparison of the event index data for each message by comparing the AMT root CID from the message receipt with the root of a reconstructed AMT. Previously `inspect-indexes` simply compared event counts, comparing AMT roots confirms all the event data is byte-perfect. ([filecoin-project/lotus#12570](https://github.com/filecoin-project/lotus/pull/12570))
12-
- Expose APIs to list the miner IDs that are currently participating in F3 via node. ([filecoin-project/lotus#12608](https://github.com/filecoin-project/lotus/pull/12608))
13-
- Implement new `lotus f3` CLI commands to list F3 participants, dump manifest, get/list finality certificates and check the F3 status. ([filecoin-project/lotus#12617](https://github.com/filecoin-project/lotus/pull/12617), [filecoin-project/lotus#12627](https://github.com/filecoin-project/lotus/pull/12627))
14-
- Return a `"data"` field on the `"error"` returned from RPC when `eth_call` and `eth_estimateGas` APIs encounter `execution reverted` errors. ([filecoin-project/lotus#12553](https://github.com/filecoin-project/lotus/pull/12553))
1515
- Implement `EthGetTransactionByBlockNumberAndIndex` (`eth_getTransactionByBlockNumberAndIndex`) and `EthGetTransactionByBlockHashAndIndex` (`eth_getTransactionByBlockHashAndIndex`) methods. ([filecoin-project/lotus#12618](https://github.com/filecoin-project/lotus/pull/12618))
16-
- Add a set of `lotus-shed datastore` commands for importing, exporting, and clearing parts of the datastore ([filecoin-project/lotus#12685](https://github.com/filecoin-project/lotus/pull/12685)):
16+
- `lotus-shed indexes inspect-indexes` now performs a comprehensive comparison of the event index data for each message by comparing the AMT root CID from the message receipt with the root of a reconstructed AMT. Previously `inspect-indexes` simply compared event counts. Comparing AMT roots instead confirms all the event data is byte-perfect. ([filecoin-project/lotus#12570](https://github.com/filecoin-project/lotus/pull/12570))
17+
- Reduce size of embedded genesis CAR files by removing WASM actor blocks and compressing with zstd. This reduces the `lotus` binary size by approximately 10 MiB. ([filecoin-project/lotus#12439](https://github.com/filecoin-project/lotus/pull/12439))
1718

18-
## Bug Fixes
19-
- Fix a bug in the `lotus-shed indexes backfill-events` command that may result in either duplicate events being backfilled where there are existing events (such an operation *should* be idempotent) or events erroneously having duplicate `logIndex` values when queried via ETH APIs. ([filecoin-project/lotus#12567](https://github.com/filecoin-project/lotus/pull/12567))
20-
- Event APIs (Eth events and actor events) should only return reverted events if client queries by specific block hash / tipset. Eth and actor event subscription APIs should always return reverted events to enable accurate observation of real-time changes. ([filecoin-project/lotus#12585](https://github.com/filecoin-project/lotus/pull/12585))
19+
## 🐛 Bug Fix Highlights
2120
- Add logic to check if the miner's owner address is delegated (f4 address). If it is delegated, the `lotus-shed sectors termination-estimate` command now sends the termination state call using the worker ID. This fix resolves the issue where termination-estimate did not function correctly for miners with delegated owner addresses. ([filecoin-project/lotus#12569](https://github.com/filecoin-project/lotus/pull/12569))
22-
- Fix hotloop in F3 pariticpation API ([filecoin-project/lotus#12575](https://github.com/filecoin-project/lotus/pull/12575))
23-
- Fix a bug in F3 participation API where valid leases may get removed due to dynamic manifest update. ([filecoin-project/lotus#12597](https://github.com/filecoin-project/lotus/pull/12597))
24-
- Change the F3 participation ticket encoding to allow parity testing across non-go implementations, where a ticket issued by Lotus may need to be decoded by, for example, Forest . The changes also enforce the minimum instance participation of 1 for miners. ([filecoin-project/lotus#12615](https://github.com/filecoin-project/lotus/pull/12615))
25-
- Fix issue where F3 wouldn't start participating again if Lotus restarted without restarting the Miner ([filecoin-project/lotus#12640](https://github.com/filecoin-project/lotus/pull/12640)).
26-
- Change the F3 HeadLookback parameter to 4 ([filecoin-project/lotus#12648](https://github.com/filecoin-project/lotus/pull/12648)).
27-
- Upgrade go-f3 to 0.7.1 to resolve Tipset not found errors when trying to establish instance start time ([filecoin-project/lotus#12651](https://github.com/filecoin-project/lotus/pull/12651)).
28-
- Try harder in the F3 participation loop to participate using the same lotus node ([filecoin-project/lotus#12664](https://github.com/filecoin-project/lotus/pull/12664)).
2921
- The mining loop will now correctly "stick" to the same upstream lotus node for all operations pertaining to mining a single block ([filecoin-project/lotus#12665](https://github.com/filecoin-project/lotus/pull/12665)).
22+
- The Lotus Miner will now always mine on the latest chain head returned by lotus, even if that head has less "weight" than the previously seen head. This is necessary because F3 may end up finalizing a tipset with a lower weight, although this situation should be rare on the Filecoin mainnet. ([filecoin-project/lotus#12659](https://github.com/filecoin-project/lotus/pull/12659))
3023
- Make the ordering of event output for `eth_` APIs and `GetActorEventsRaw` consistent, sorting ascending on: epoch, message index, event index and original event entry order. ([filecoin-project/lotus#12623](https://github.com/filecoin-project/lotus/pull/12623))
24+
- Event APIs (Eth events and actor events) should only return reverted events if client queries by specific block hash / tipset. Eth and actor event subscription APIs should always return reverted events to enable accurate observation of real-time changes. ([filecoin-project/lotus#12585](https://github.com/filecoin-project/lotus/pull/12585))
25+
- Fix a bug in the `lotus-shed indexes backfill-events` command that may result in either duplicate events being backfilled where there are existing events (such an operation *should* be idempotent) or events erroneously having duplicate `logIndex` values when queried via ETH APIs. ([filecoin-project/lotus#12567](https://github.com/filecoin-project/lotus/pull/12567))
3126

32-
## Changes
27+
## 📝 Changelog
3328

34-
- The Lotus Miner will now always mine on the latest chain head returned by lotus, even if that head has less "weight" than the previously seen head. This is necessary because F3 may end up finalizing a tipset with a lower weight, although this situation should be rare on the Filecoin mainnet. ([filecoin-project/lotus#12659](https://github.com/filecoin-project/lotus/pull/12659))
29+
For the full set of changes since the last stable release:
3530

36-
## Deps
31+
* Node: https://github.com/filecoin-project/lotus/compare/v1.30.0...v1.31.0-rc1
32+
* Miner: https://github.com/filecoin-project/lotus/compare/v1.30.0...miner/v1.31.0-rc1
33+
34+
## 👨‍👩‍👧‍👦 Contributors
35+
36+
| Contributor | Commits | Lines ± | Files Changed |
37+
|-------------|---------|---------|---------------|
38+
| Aarsh Shah | 2 | +6725/-5410 | 84 |
39+
| Masih H. Derkani | 13 | +1924/-867 | 61 |
40+
| Viraj Bhartiya | 6 | +2048/-703 | 41 |
41+
| Steven Allen | 25 | +1394/-404 | 53 |
42+
| Rod Vagg | 13 | +502/-272 | 39 |
43+
| Phi-rjan | 8 | +175/-64 | 20 |
44+
| Jakub Sztandera | 7 | +107/-66 | 15 |
45+
| aarshkshah1992 | 1 | +61/-30 | 5 |
46+
| Steve Loeppky | 1 | +78/-2 | 4 |
47+
| Krishang Shah | 1 | +7/-17 | 1 |
48+
| Łukasz Magiera | 1 | +9/-10 | 3 |
49+
| Phi | 1 | +9/-9 | 8 |
50+
| Danial Ahn | 1 | +14/-1 | 2 |
51+
| hanabi1224 | 1 | +7/-6 | 1 |
52+
| web3-bot | 1 | +1/-1 | 1 |
53+
| asamuj | 1 | +1/-1 | 1 |
54+
| Andrew Jackson (Ajax) | 1 | +2/-0 | 1 |
3755

3856
# Node and Miner v1.30.0 / 2024-11-06
3957

build/openrpc/full.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"openrpc": "1.2.6",
33
"info": {
44
"title": "Lotus RPC API",
5-
"version": "1.30.1-dev"
5+
"version": "1.31.0-rc1"
66
},
77
"methods": [
88
{

build/openrpc/gateway.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"openrpc": "1.2.6",
33
"info": {
44
"title": "Lotus RPC API",
5-
"version": "1.30.1-dev"
5+
"version": "1.31.0-rc1"
66
},
77
"methods": [
88
{

build/openrpc/miner.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"openrpc": "1.2.6",
33
"info": {
44
"title": "Lotus RPC API",
5-
"version": "1.30.1-dev"
5+
"version": "1.31.0-rc1"
66
},
77
"methods": [
88
{

build/openrpc/worker.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"openrpc": "1.2.6",
33
"info": {
44
"title": "Lotus RPC API",
5-
"version": "1.30.1-dev"
5+
"version": "1.31.0-rc1"
66
},
77
"methods": [
88
{

build/version.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
)
88

99
// NodeBuildVersion is the local build version of the Lotus daemon
10-
const NodeBuildVersion string = "1.30.1-dev"
10+
const NodeBuildVersion string = "1.31.0-rc1"
1111

1212
func NodeUserVersion() BuildVersion {
1313
if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" {
@@ -18,7 +18,7 @@ func NodeUserVersion() BuildVersion {
1818
}
1919

2020
// MinerBuildVersion is the local build version of the Lotus miner
21-
const MinerBuildVersion = "1.30.1-dev"
21+
const MinerBuildVersion = "1.31.0-rc1"
2222

2323
func MinerUserVersion() BuildVersion {
2424
if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" {

documentation/en/cli-lotus-miner.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ USAGE:
77
lotus-miner [global options] command [command options] [arguments...]
88
99
VERSION:
10-
1.30.1-dev
10+
1.31.0-rc1
1111
1212
COMMANDS:
1313
init Initialize a lotus miner repo

documentation/en/cli-lotus-worker.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ USAGE:
77
lotus-worker [global options] command [command options] [arguments...]
88
99
VERSION:
10-
1.30.1-dev
10+
1.31.0-rc1
1111
1212
COMMANDS:
1313
run Start lotus worker

documentation/en/cli-lotus.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ USAGE:
77
lotus [global options] command [command options] [arguments...]
88
99
VERSION:
10-
1.30.1-dev
10+
1.31.0-rc1
1111
1212
COMMANDS:
1313
daemon Start a lotus daemon process

0 commit comments

Comments
 (0)