Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: release: v1.28.0-rc2 #12179

Merged
merged 9 commits into from
Jul 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 14 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,18 @@

## Improvements

# v1.28.0-rc1 / 2024-07-01
# v1.28.0-rc2 / 2024-07-04

This is the first release candidate of the upcoming MANDATORY Lotus v1.28.0 release, which will deliver the Filecoin network version 23, codenamed Waffle 🧇.
This is the second release candidate of the upcoming MANDATORY Lotus v1.28.0 release, which will deliver the Filecoin network version 23, codenamed Waffle 🧇.

**This release canidate does NOT set a calibration network upgrade epoch, it will be added in the second release candidate, expected to be released July 4th. This release candidate does NOT set the mainnet upgrade epoch yet, which will be updated in the final release.**
**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.

☢️ Upgrade Warnings ☢️

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.

- 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.
Copy link
Contributor

@aarshkshah1992 aarshkshah1992 Jul 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we also want to include a warning about the actor migration ? Or atleast remove what we've written about this being a light weight migration ?

The NV23 specific migration is light but the base migration is expensive (which is nothing specific to NV23).


## The Filecoin network version 23 delivers the following FIPs:

- [FIP-0065: Ignore built-in market locked balance in circulating supply calculation](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0065.md)
Expand Down Expand Up @@ -63,7 +65,15 @@ verifiedregistry bafk2bzaceczw2kp6gjjdcjbso7mewp7guik7gr525pal6dotdja2lrct6ok3c
```

## Migration
The NV23 upgrade migration is expected to be extremely light as only FIP-0085 requires a migration. We don't expect null tipsets after the upgrade epoch or heavy block validation times. We will updated this sections once we have run the final benchmarks.

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:

- Pre-Migration is expected to take less then 1 minute
- 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.

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.

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/)

## Dependencies
- github.com/filecoin-project/go-state-types (`v0.14.0-dev` -> `v0.14.0-rc5`)
Expand Down
2 changes: 1 addition & 1 deletion build/openrpc/full.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"openrpc": "1.2.6",
"info": {
"title": "Lotus RPC API",
"version": "1.28.0-rc1"
"version": "1.28.0-rc2"
},
"methods": [
{
Expand Down
2 changes: 1 addition & 1 deletion build/openrpc/gateway.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"openrpc": "1.2.6",
"info": {
"title": "Lotus RPC API",
"version": "1.28.0-rc1"
"version": "1.28.0-rc2"
},
"methods": [
{
Expand Down
2 changes: 1 addition & 1 deletion build/openrpc/miner.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"openrpc": "1.2.6",
"info": {
"title": "Lotus RPC API",
"version": "1.28.0-rc1"
"version": "1.28.0-rc2"
},
"methods": [
{
Expand Down
2 changes: 1 addition & 1 deletion build/openrpc/worker.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"openrpc": "1.2.6",
"info": {
"title": "Lotus RPC API",
"version": "1.28.0-rc1"
"version": "1.28.0-rc2"
},
"methods": [
{
Expand Down
8 changes: 3 additions & 5 deletions build/params_2k.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,7 @@ const UpgradeWatermelonFix2Height = -101
const UpgradeCalibrationDragonFixHeight = -102

var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
0: DrandMainnet,
UpgradePhoenixHeight: DrandQuicknet,
0: DrandQuicknet,
}

var SupportedProofTypes = []abi.RegisteredSealProof{
Expand Down Expand Up @@ -160,8 +159,7 @@ func init() {

UpgradePhoenixHeight = getUpgradeHeight("LOTUS_PHOENIX_HEIGHT", UpgradePhoenixHeight)
DrandSchedule = map[abi.ChainEpoch]DrandEnum{
0: DrandMainnet,
UpgradePhoenixHeight: DrandQuicknet,
0: DrandQuicknet,
}

BuildType |= Build2k
Expand Down Expand Up @@ -191,5 +189,5 @@ const Eip155ChainId = 31415926

var WhitelistedBlock = cid.Undef

const F3Enabled = true
const f3Enabled = true
const F3BootstrapEpoch abi.ChainEpoch = 100
5 changes: 2 additions & 3 deletions build/params_butterfly.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ import (
)

var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
0: DrandMainnet,
UpgradePhoenixHeight: DrandQuicknet,
0: DrandQuicknet,
}

const GenesisNetworkVersion = network.Version22
Expand Down Expand Up @@ -107,5 +106,5 @@ const Eip155ChainId = 3141592

var WhitelistedBlock = cid.Undef

const F3Enabled = true
const f3Enabled = true
const F3BootstrapEpoch abi.ChainEpoch = 200
8 changes: 4 additions & 4 deletions build/params_calibnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,8 @@ const UpgradePhoenixHeight = UpgradeDragonHeight + 120
// 2024-04-03T11:00:00Z
const UpgradeCalibrationDragonFixHeight = 1493854

// ?????
const UpgradeWaffleHeight = 999999999999999
// 2024-07-11T12:00:00Z
const UpgradeWaffleHeight = 1779094

var SupportedProofTypes = []abi.RegisteredSealProof{
abi.RegisteredSealProof_StackedDrg32GiBV1,
Expand Down Expand Up @@ -152,5 +152,5 @@ const Eip155ChainId = 314159

var WhitelistedBlock = cid.Undef

const F3Enabled = false
const F3BootstrapEpoch abi.ChainEpoch = -1
const f3Enabled = true
const F3BootstrapEpoch abi.ChainEpoch = UpgradeWaffleHeight + 100
5 changes: 2 additions & 3 deletions build/params_interop.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,7 @@ const UpgradeWatermelonFix2Height = -2
const UpgradeCalibrationDragonFixHeight = -3

var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
0: DrandMainnet,
UpgradePhoenixHeight: DrandQuicknet,
0: DrandQuicknet,
}

var SupportedProofTypes = []abi.RegisteredSealProof{
Expand Down Expand Up @@ -146,5 +145,5 @@ const Eip155ChainId = 3141592

var WhitelistedBlock = cid.Undef

const F3Enabled = true
const f3Enabled = true
const F3BootstrapEpoch abi.ChainEpoch = 1000
2 changes: 1 addition & 1 deletion build/params_mainnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,5 +169,5 @@ const Eip155ChainId = 314
// WhitelistedBlock skips checks on message validity in this block to sidestep the zero-bls signature
var WhitelistedBlock = MustParseCid("bafy2bzaceapyg2uyzk7vueh3xccxkuwbz3nxewjyguoxvhx77malc2lzn2ybi")

const F3Enabled = false
const f3Enabled = false
const F3BootstrapEpoch abi.ChainEpoch = -1
7 changes: 7 additions & 0 deletions build/params_shared_funcs.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package build

import (
"os"

"github.com/ipfs/go-cid"
"github.com/libp2p/go-libp2p/core/protocol"

Expand Down Expand Up @@ -49,3 +51,8 @@ func MustParseCid(c string) cid.Cid {

return ret
}

func IsF3Enabled() bool {
const F3DisableEnvKey = "LOTUS_DISABLE_F3"
return f3Enabled && len(os.Getenv(F3DisableEnvKey)) == 0
}
4 changes: 2 additions & 2 deletions build/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ func BuildTypeString() string {
}

// NodeBuildVersion is the local build version of the Lotus daemon
const NodeBuildVersion string = "1.28.0-rc1"
const NodeBuildVersion string = "1.28.0-rc2"

func NodeUserVersion() BuildVersion {
if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" {
Expand All @@ -50,7 +50,7 @@ func NodeUserVersion() BuildVersion {
}

// MinerBuildVersion is the local build version of the Lotus miner
const MinerBuildVersion = "1.28.0-rc1"
const MinerBuildVersion = "1.28.0-rc2"

func MinerUserVersion() BuildVersion {
if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" {
Expand Down
2 changes: 1 addition & 1 deletion documentation/en/cli-lotus-miner.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ USAGE:
lotus-miner [global options] command [command options] [arguments...]

VERSION:
1.28.0-rc1
1.28.0-rc2

COMMANDS:
init Initialize a lotus miner repo
Expand Down
2 changes: 1 addition & 1 deletion documentation/en/cli-lotus-worker.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ USAGE:
lotus-worker [global options] command [command options] [arguments...]

VERSION:
1.28.0-rc1
1.28.0-rc2

COMMANDS:
run Start lotus worker
Expand Down
2 changes: 1 addition & 1 deletion documentation/en/cli-lotus.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ USAGE:
lotus [global options] command [command options] [arguments...]

VERSION:
1.28.0-rc1
1.28.0-rc2

COMMANDS:
daemon Start a lotus daemon process
Expand Down
2 changes: 1 addition & 1 deletion node/builder_chain.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ var ChainNode = Options(
Override(HandleIncomingBlocksKey, modules.HandleIncomingBlocks),
),

If(build.F3Enabled, Override(new(*lf3.F3), lf3.New)),
If(build.IsF3Enabled(), Override(new(*lf3.F3), lf3.New)),
)

func ConfigFullNode(c interface{}) Option {
Expand Down
2 changes: 1 addition & 1 deletion node/builder_miner.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ func ConfigStorageMiner(c interface{}) Option {
Override(new(config.HarmonyDB), cfg.HarmonyDB),
Override(new(harmonydb.ITestID), harmonydb.ITestID("")),
Override(new(*ctladdr.AddressSelector), modules.AddressSelector(&cfg.Addresses)),
If(build.F3Enabled, Override(F3Participation, modules.F3Participation)),
If(build.IsF3Enabled(), Override(F3Participation, modules.F3Participation)),
)
}

Expand Down
1 change: 1 addition & 0 deletions node/impl/full/eth.go
Original file line number Diff line number Diff line change
Expand Up @@ -734,6 +734,7 @@ func (a *EthModule) EthFeeHistory(ctx context.Context, p jsonrpc.RawParams) (eth
)

for blocksIncluded < int(params.BlkCount) && ts.Height() > 0 {
basefee = ts.Blocks()[0].ParentBaseFee
_, msgs, rcpts, err := executeTipset(ctx, ts, a.Chain, a.StateAPI)
if err != nil {
return ethtypes.EthFeeHistory{}, xerrors.Errorf("failed to retrieve messages and receipts for height %d: %w", ts.Height(), err)
Expand Down
2 changes: 1 addition & 1 deletion node/modules/lp2p/pubsub.go
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ func GossipSub(in GossipIn) (service *pubsub.PubSub, err error) {
build.IndexerIngestTopic(in.Nn),
}

if build.F3Enabled {
if build.IsF3Enabled() {
allowTopics = append(allowTopics, gpbft.NetworkName(in.Nn).PubSubTopic())
}

Expand Down