Skip to content

Commit 28a578f

Browse files
rjan90Kubuxumasihaarshkshah1992rvagg
authored
build: release: v1.28.0 (#12271)
* Update changelog Update changelog * chore: lotus-shed: Add support for nv23 in `migrate-state` cmd (#12172) * Add support for nv23 in `lotus-shed migrate-state` cmd Add support for nv23 in `lotus-shed migrate-state` cmd * Add actors v14 to `check-invariants` cmd Add actors v14 to `check-invariants` cmd * feat: F3: Update go-f3, change the style of participation call (#12196) * Upgrade go mod F3 dependency to v0.0.3 tagged release Use concrete/latest version of F3: v0.0.3 * update changelog * chore!: markets: remove deal constants * Upgrade to OpenTelemetry v1.28.0 Upgrade to new version of OpenTelemetry to also play nice with F3. * Reduce log level in F3 message sending to Debug (#12224) Reduce the log level for `miner with id...` to DEBUG, since in normal operation of F3 at least 5 messages are sent per epoch. In an event of rebroadcast the number of messages broadcasted could surpass 10. Hence, the `DEBUG` log level. * chore: deps: upgrade to [email protected] * Upgrade to latest go-f3 `v0.0.4` (#12237) Upgrade to the latest go F3, with fix to default cert exchange config in local devnet. * chore: config: yet more lp2p removal from miner * fix(store): correctly break weight ties based on smaller ticket (#12253) @rjan90 and @jennijuju reported seeing this log a lot, which prompted an investigation of the logic. This code does not implement [FIP-0023](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0023.md) correctly. Specifically, if we have the following mintickets: ``` ts1: 1, 2 ts2: 0,3 ``` This code will incorrectly return ts1 as the "smaller" tipset, even though the tie should have been broken in favour of ts2 based on `1 > 0`. * Fix lint error: correct typo in F3Participation function comment Fix lint error: correct typo in F3Participation function comment * Fix typo in F3Participate documentation Corrected "successfull" to "successful" in comments and documentation to fix a lint error. * chore: libp2p: update to v0.35.4 (#12265) * go mod tidy go mod tidy * Update CHANGELOG.md Co-authored-by: Steve Loeppky <[email protected]> * fix a bug * Set Mainnet upgrade epoch NV23 Set Mainnet upgrade epoch NV23 * Update changelog.md Update changelog.md * chore: deps: Update GST, Filecoin-FFI and Actors to final versions NV23 (#12276) * Update to final GST for nv23 Update to final GST for nv23 * Bump filecoin-ffi to v1.28.0 Bump filecoin-ffi to v1.28.0 * Update CHANGELOG.md Update CHANGELOG.md * Update Builtin-actors to v14.0.0 Update Builtin-actors to v14.0.0 * Update Changelog, version-string, make gen and make docsgen Update Changelog, version-string, make gen and make docsgen * Re-run ./pack.sh v14 v14.0.0 Re-run ./pack.sh v14 v14.0.0 * Set up otel metrics reporting to prometheus Register otel collector bridging to the default prometheus registry so that F3 metrics (which use the newer otel APIs for metrics) get included in Lotus metrics. * Update changelog with #12285 backport Update changelog with #12285 backport * Revert "chore!: markets: remove deal constants" This reverts commit d045ccb. * Revert "chore: config: yet more lp2p removal from miner" This reverts commit 70400c9. * fix eth trace panic * backport: f3: Upgrade to go-f3 `v0.0.5` (#12279) (#12288) * chore: f3: Upgrade to go-f3 `v0.0.5` (#12279) * Upgrade to go-f3 `v0.0.5` Upgrade to the latest version of go-f3 with initial power table storage with far enough lookback, and dynamic manifest persistence. --------- Co-authored-by: Jakub Sztandera <[email protected]> Co-authored-by: Jiaying Wang <[email protected]> Co-authored-by: Steven Allen <[email protected]> * remove unwanted changelog * fix import * Revert "chore!: markets: remove deal constants" This reverts commit d045ccb. * Revert "chore: config: yet more lp2p removal from miner" This reverts commit 70400c9. * fix eth trace panic * Update CHANGELOG.md Co-authored-by: Jakub Sztandera <[email protected]> * Update CHANGELOG.md --------- Co-authored-by: Masih H. Derkani <[email protected]> Co-authored-by: Jakub Sztandera <[email protected]> Co-authored-by: Steven Allen <[email protected]> Co-authored-by: Phi <[email protected]> Co-authored-by: aarshkshah1992 <[email protected]> --------- Co-authored-by: Jakub Sztandera <[email protected]> Co-authored-by: Masih H. Derkani <[email protected]> Co-authored-by: aarshkshah1992 <[email protected]> Co-authored-by: Rod Vagg <[email protected]> Co-authored-by: Peter Rabbitson <[email protected]> Co-authored-by: Aayush Rajasekaran <[email protected]> Co-authored-by: Steve Loeppky <[email protected]> Co-authored-by: Jiaying Wang <[email protected]> Co-authored-by: Steven Allen <[email protected]>
1 parent 316b6fc commit 28a578f

40 files changed

+1520
-747
lines changed

CHANGELOG.md

+55-45
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,12 @@
11
# Lotus changelog
22

3-
# UNRELEASED
3+
# v1.28.0 / 2024-07-23
4+
This is the MANDATORY Lotus v1.28.0 release, which will deliver the Filecoin network version 23, codenamed Waffle 🧇.
45

5-
## ☢️ Upgrade Warnings ☢️
6-
7-
- This Lotus release includes some correctness improvements to the events subsystem, impacting RPC APIs including `GetActorEventsRaw`, `SubscribeActorEventsRaw`, `eth_getLogs` and the `eth` filter APIs. Part of these improvements involve an events database migration that may take some time to complete on nodes with extensive event databases. See [filecoin-project/lotus#12080](https://github.com/filecoin-project/lotus/pull/12080) for details.
8-
9-
## New features
10-
11-
- feat: Add trace transaction API supporting RPC method `trace_transaction` ([filecoin-project/lotus#12068](https://github.com/filecoin-project/lotus/pull/12068))
12-
13-
## Improvements
14-
15-
# v1.28.0-rc5 / 2024-07-11
16-
17-
This is the fifth release candidate of the upcoming MANDATORY Lotus v1.28.0 release, which will deliver the Filecoin network version 23, codenamed Waffle 🧇.
6+
**This release sets the Mainnet to upgrade at epoch 4154640, corresponding to 2024-08-06T12:00:00Z.**
187

19-
**This release candidate sets the calibration network to upgrade at epoch 1779094, corresponding to 2024-07-11T12:00:00Z.** This release does NOT set the mainnet upgrade epoch yet, in which will be updated in the final release.
20-
21-
Compared to `Lotus v1.28.0-rc4`, the `Lotus v1.28.0-rc5` release addresses some performance problems in the `eth_getLogs` API.
22-
It also addresses a bug in the `eth_getLogs` API around handling null blocks.
23-
24-
☢️ Upgrade Warnings ☢️
25-
26-
If you are running the `v1.26.0` or an earlier version of Lotus, please go through the `Upgrade Warnings` section for the `v1.27.*` releases, before upgrading to this RC.
8+
## ☢️ Upgrade Warnings ☢️
9+
- If you are running the `v1.26.x` version of Lotus, please go through the `Upgrade Warnings` section for the `v1.27.*` releases, before upgrading to this RC.
2710

2811
- This upgrade includes an additional migration to the events database. Node operators running Lotus with events turned on (off by default) may experience some delay in initial start-up of Lotus as a minor database migration takes place. See [filecoin-project/lotus#12080](https://github.com/filecoin-project/lotus/pull/12080) for full details.
2912

@@ -40,49 +23,63 @@ If you are running the `v1.26.0` or an earlier version of Lotus, please go throu
4023
Note that we are only doing a "soft launch"/"passive testing" for F3 (Fast Finality) i.e. FIP-0086 in NV23. Please see [this doc](https://docs.google.com/document/d/14hMFN95_AsByBh7iMc4r_czUgg8tfjHQ1gTsmmHZ8jI/edit#heading=h.dhzqs3lisv24) for more details.
4124

4225
## v14 Builtin Actor Bundle
43-
The actor bundles for the **calibration network** can be checked as follows:
26+
27+
[Builtin actor v14.0.0](https://github.com/filecoin-project/builtin-actors/releases/tag/v14.0.0) is used for supporting this upgrade. Make sure that your lotus actor bundle matches the v14 actors manifest by running the following cli after upgrading:
4428

4529
```
4630
lotus state actor-cids --network-version=23
4731
Network Version: 23
4832
Actor Version: 14
49-
Manifest CID: bafy2bzacebq3hncszqpojglh2dkwekybq4zn6qpc4gceqbx36wndps5qehtau
33+
Manifest CID: bafy2bzacecbueuzsropvqawsri27owo7isa5gp2qtluhrfsto2qg7wpgxnkba
5034

5135
Actor CID
52-
account bafk2bzaced5ecfm56dvtw26q56j4d32yoccyd7ggxn3qdki2enxpqqav45ths
53-
cron bafk2bzacedpbtttpyvtjncqoyobr63mhqqtlrygbnudhxyp2vha56f626dkfs
54-
datacap bafk2bzacecded3lcvo7ndsk66samyecw2trnhrgzi7jxsary3sqgopxlk6rku
55-
eam bafk2bzacecsda4uw7dcu76a27gnrrdcm73tgms7wrte6jbou63vloktkqc5ne
56-
ethaccount bafk2bzacebu2lcxfmohomjj3umslnylwugf5gssywdq3575tjarta7o227dls
57-
evm bafk2bzacea4xnekruhfmdnzvzeo6cbf7jsfgco6x5wje2ckwc2ui2ojzcrlgu
58-
init bafk2bzacedfmsdlewihdcrkdepnfata26nj7akbvexzs3chicujhjf2uxsazc
59-
multisig bafk2bzacedwx4svscsp6wqqu2vlcunjihvvm4u2jnsqjkwutjhir7dwtl7z6m
60-
paymentchannel bafk2bzacedbit7oo6lryhbo64uikvtjtfcth6oxwy3eebxerenu2h7rj44n24
36+
account bafk2bzacebr7ik7lng7vysm754mu5x7sakphwm4soqi6zwbox4ukpd6ndwvqy
37+
cron bafk2bzacecwn6eiwa7ysimmk6i57i5whj4cqzwijx3xdlxwb5canmweaez6xc
38+
datacap bafk2bzacecidw7ajvtjhmygqs2yxhmuybyvtwp25dxpblvdxxo7u4gqfzirjg
39+
eam bafk2bzaced2cxnfwngpcubg63h7zk4y5hjwwuhfjxrh43xozax2u6u2woweju
40+
ethaccount bafk2bzacechu4u7asol5mpcsr6fo6jeaeltvayj5bllupyiux7tcynsxby7ko
41+
evm bafk2bzacedupohbgwrcw5ztbbsvrpqyybnokr4ylegmk7hrbt3ueeykua6zxw
42+
init bafk2bzacecbbcshenkb6z2v4irsudv7tyklfgphhizhghix6ke5gpl4r5f2b6
43+
multisig bafk2bzaceajcmsngu3f2chk2y7nanlen5xlftzatytzm6hxwiiw5i5nz36bfc
44+
paymentchannel bafk2bzaceavslp27u3f4zwjq45rlg6assj6cqod7r5f6wfwkptlpi6j4qkmne
6145
placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro
62-
reward bafk2bzaced5rlycj7fzpscfc7p3wwxarngwqylqshj7te3uffey5tevunz4we
63-
storagemarket bafk2bzaceatwbyrec2nnwggxc2alpqve7rl52fmbhqflebuxmmnvg3qckjb7c
64-
storageminer bafk2bzacecr7ozkdz7l2pq3ig5qxae2ysivbnojhsn4gw3o57ov4mhksma7me
65-
storagepower bafk2bzacedgeolvjtnw7fkji5kqmx322abv6uls2v34fuml6nw36dvfcw4mtu
66-
system bafk2bzacederl6tlpieldsn6mkndqwd4wj5orfoqgab6p2klswfn3cjagxwla
67-
verifiedregistry bafk2bzaceczw2kp6gjjdcjbso7mewp7guik7gr525pal6dotdja2lrct6ok3c
46+
reward bafk2bzacedvfnjittwrkhoar6n5xrykowg2e6rpur4poh2m572f7m7evyx4lc
47+
storagemarket bafk2bzaceaju5wobednmornvdqcyi6khkvdttkru4dqduqicrdmohlwfddwhg
48+
storageminer bafk2bzacea3f43rxzemmakjpktq2ukayngean3oo2de5cdxlg2wsyn53wmepc
49+
storagepower bafk2bzacedo6scxizooytn53wjwg2ooiawnj4fsoylcadnp7mhgzluuckjl42
50+
system bafk2bzacecak4ow7tmauku42s3u2yydonk4hx6ov6ov542hy7lcbji3nhrrhs
51+
verifiedregistry bafk2bzacebvyzjzmvmjvpypphqsumpy6rzxuugnehgum7grc6sv3yqxzrshb4
6852
```
6953

7054
## Migration
7155

7256
All node operators, including storage providers, should be aware that ONE pre-migration is being scheduled 120 epochs before the network upgrade. The migration for the NV23 upgrade is expected to be light with no heavy pre-migrations, here are some expected timings and resource consumption numbers:
7357

74-
- Pre-Migration is expected to take less then 1 minute
75-
- The migration is expected to take less then 30 seconds on a node with a NVMe-drive and a newer CPU. For nodes running on slower disks/CPU, it is still expected to take less then 1 minute.
58+
- Pre-migration is expected to take less than 1 minute.
59+
- The migration is expected to take less than 30 seconds on a node with an NVMe drive and a newer CPU. For nodes running on slower disks/CPU, it is still expected to take less than 1 minute.
60+
- Max memory usage during benchmarking the migration in "offline mode" (i.e., node not syncing) was 23GiB.
61+
- Max memory usage when benchmarking the migration in "online mode" (i.e., while the node is syncing) was 30GiB. Numbers here might vary depending on the load your node is under.
62+
More details on the migration benchmarking can be found in https://github.com/filecoin-project/lotus/issues/12128
7663

7764
We recommend node operators (who haven't enabled splitstore discard mode) that do not care about historical chain states, to prune the chain blockstore by syncing from a snapshot 1-2 days before the upgrade.
7865

79-
For certain node operators, such as full archival nodes or systems that need to keep large amounts of state (RPC providers), we recommend skipping the pre-migration and run the non-cached migration (i.e., just running the migration at the network upgrade epoch), and schedule for some additional downtime. Operators of such nodes can read the [How to disable premigration in network upgrade tutorial.](https://lotus.filecoin.io/kb/disable-premigration/)
66+
For certain node operators, such as full archival nodes or systems that need to keep large amounts of state (RPC providers), we recommend skipping the pre-migration and running the non-cached migration (i.e., just running the migration at the network upgrade epoch), and scheduling some additional downtime. Operators of such nodes can read the [How to disable premigration in network upgrade tutorial.](https://lotus.filecoin.io/kb/disable-premigration/)
67+
68+
## Fast Finality for Filecoin (f3) soft launch
69+
70+
We are one step closer to reduce Filecoin's finality from 7.5 hours to a minute or so, you can checkout the [FIP](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0086.md) for more details. Changing the consensus protocol is not trivial, and the f3 implementation team has designed a [passive testing plan to verify the protocol](https://github.com/filecoin-project/go-f3/issues/213) and give time for client implementation teams to integrate and test F3 before it is fully activated in the network consensus. That said, the lotus team has implemented f3 & the manifest for passive testing in this release, and we would like to ask node operators, especially storage providers, to participate in the testing by participating in F3 on the mainnet (which is enabled by default in this release)! We will keep updating [this discussion](https://github.com/filecoin-project/lotus/discussions/12287) to capture "what can you expect" & testing status. If you notice any unexpected behaviour caused by f3, please do not hesitate to reach out to us in #fil-fast-finality.
71+
72+
F3 (Fast Finality) is experimental in this release. All the new F3 APIs are unstable and subject to until nv24 release (assuming f3 will be fully activated in this upgrade).
73+
74+
Exchanges and RPC providers are recommended to opt-out of F3 functionality for now. You can disable F3 by adding the `DISABLE_F3 = 1` environment variable, which will output a log saying that F3 has been disabled.
8075

8176
## Dependencies
82-
- github.com/filecoin-project/go-state-types (`v0.14.0-dev` -> `v0.14.0-rc5`)
83-
- github.com/filecoin-project/filecoin-ffi (`v1.27.0-rc2` -> `v1.28.0-rc2`)
77+
78+
- github.com/filecoin-project/go-state-types (`v0.14.0-dev` -> `v0.14.0`)
79+
- github.com/filecoin-project/filecoin-ffi (`v1.27.0-rc2` -> `v1.28.0`)
80+
- github.com/filecoin-project/go-libp2p2 (`v0.35.3` -> `v0.35.4`)
8481
- `ref-fvm4` (as part of `filecoin-ffi`) (`4.2.0` -> `4.3.1`)
85-
- A new `github.com/filecoin-project/go-f3` dependency for F3 soft launch (`v0.0.2`)
82+
- A new `github.com/filecoin-project/go-f3` dependency for F3 soft launch (`v0.0.5`)
8683

8784
## Others
8885

@@ -96,6 +93,19 @@ For certain node operators, such as full archival nodes or systems that need to
9693
- feat:ec: integrate F3 dynamic manifest #12185
9794
- fix: f3: Fix F3 build parameters for testground target (#12189) ([filecoin-project/lotus#12189](https://github.com/filecoin-project/lotus/pull/12189))
9895
- fix: eth_getLogs: https://github.com/filecoin-project/lotus/pull/12212
96+
- chore: lotus-shed: Add support for nv23 in migrate-state cmd #12172
97+
- feat: F3: Update go-f3, change the style of participation call #12196
98+
- chore: f3: Upgrade go mod F3 dependency to v0.0.3 tagged release #12216
99+
- fix: Eth Trace Block: nil access panic #12221
100+
- chore!: markets: remove stray unixfs constants, features and references #12217
101+
- chore: metrics: Upgrade to OpenTelemetry v1.28.0 #12223
102+
- fix: bug: Reduce log level in F3 message sending to Debug #12224
103+
- [skip changelog] chore: config: yet more lp2p removal from miner #12252
104+
- fix(store): correctly break weight ties based on smaller ticket #12253
105+
- fix: exchange bug #12275
106+
- chore: deps: Update GST, Filecoin-FFI and Actors to final versions NV23 #12276
107+
- metrics: f3: Set up otel metrics reporting to prometheus #12285
108+
- Upgrade to go-f3 v0.0.5 #12279
99109

100110
# v1.27.1 / 2024-06-24
101111

api/api_full.go

+20-7
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/filecoin-project/go-address"
1313
"github.com/filecoin-project/go-bitfield"
1414
"github.com/filecoin-project/go-f3/certs"
15+
"github.com/filecoin-project/go-f3/gpbft"
1516
"github.com/filecoin-project/go-jsonrpc"
1617
"github.com/filecoin-project/go-state-types/abi"
1718
"github.com/filecoin-project/go-state-types/big"
@@ -861,17 +862,29 @@ type FullNode interface {
861862
// This is an EXPERIMENTAL API and may be subject to change.
862863
SubscribeActorEventsRaw(ctx context.Context, filter *types.ActorEventFilter) (<-chan *types.ActorEvent, error) //perm:read
863864

864-
// F3Participate should be called by a miner node to participate in signing F3 consensus.
865-
// The address should be of type ID
866-
// The returned channel will never be closed by the F3
867-
// If it is closed without the context being cancelled, the caller should retry.
868-
// The values returned on the channel will inform the caller about participation
869-
// Empty strings will be sent if participation succeeded, non-empty strings explain possible errors.
870-
F3Participate(ctx context.Context, minerID address.Address) (<-chan string, error) //perm:admin
865+
//*********************************** ALL F3 APIs below are not stable & subject to change ***********************************
866+
867+
// F3Participate should be called by a storage provider to participate in signing F3 consensus.
868+
// Calling this API gives the lotus node a lease to sign in F3 on behalf of given SP.
869+
// The lease should be active only on one node. The lease will expire at the newLeaseExpiration.
870+
// To continue participating in F3 with the given node, call F3Participate again before
871+
// the newLeaseExpiration time.
872+
// newLeaseExpiration cannot be further than 5 minutes in the future.
873+
// It is recommended to call F3Participate every 60 seconds
874+
// with newLeaseExpiration set 2min into the future.
875+
// The oldLeaseExpiration has to be set to newLeaseExpiration of the last successful call.
876+
// For the first call to F3Participate, set the oldLeaseExpiration to zero value/time in the past.
877+
// F3Participate will return true if the lease was accepted.
878+
// The minerID has to be the ID address of the miner.
879+
F3Participate(ctx context.Context, minerID address.Address, newLeaseExpiration time.Time, oldLeaseExpiration time.Time) (bool, error) //perm:sign
871880
// F3GetCertificate returns a finality certificate at given instance number
872881
F3GetCertificate(ctx context.Context, instance uint64) (*certs.FinalityCertificate, error) //perm:read
873882
// F3GetLatestCertificate returns the latest finality certificate
874883
F3GetLatestCertificate(ctx context.Context) (*certs.FinalityCertificate, error) //perm:read
884+
// F3GetECPowerTable returns a F3 specific power table for use in standalone F3 nodes.
885+
F3GetECPowerTable(ctx context.Context, tsk types.TipSetKey) (gpbft.PowerEntries, error) //perm:read
886+
// F3GetF3PowerTable returns a F3 specific power table.
887+
F3GetF3PowerTable(ctx context.Context, tsk types.TipSetKey) (gpbft.PowerEntries, error) //perm:read
875888
}
876889

877890
// reverse interface to the client, called after EthSubscribe

api/docgen/docgen.go

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/filecoin-project/go-address"
2727
"github.com/filecoin-project/go-bitfield"
2828
"github.com/filecoin-project/go-f3/certs"
29+
"github.com/filecoin-project/go-f3/gpbft"
2930
"github.com/filecoin-project/go-jsonrpc/auth"
3031
"github.com/filecoin-project/go-state-types/abi"
3132
"github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
@@ -401,6 +402,7 @@ func init() {
401402
ToHeight: epochPtr(1020),
402403
})
403404
addExample(&certs.FinalityCertificate{})
405+
addExample(gpbft.ActorID(1000))
404406
}
405407

406408
func GetAPIType(name, pkg string) (i interface{}, t reflect.Type, permStruct []reflect.Type) {

api/mocks/mock_full.go

+36-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)