diff --git a/CHANGELOG.md b/CHANGELOG.md index ed702d79abe..7225afd8669 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,52 +1,112 @@ # Lotus changelog -# 1.16.0-rc3 / 2022-06-22 +# 1.16.0 / 2022-06-24 -This is the third release candidate for the upcoming MANDATORY release of Lotus v1.16.0 that supports Filecoin network v16, codenamed the Skyr upgrade. (Fix the mainnet upgrade epoch info in Changelog) -Filecoin nv16 upgrade will introduce non-programmable FVM(FVM m1) and switch the network from using go spec-actor to rust built-in actor. Full changelog will be published upon final release. -## Mainnet nv16 Skyr Upgrade +This is a MANDATORY release of Lotus that introduces [Filecoin network v16, +codenamed the Skyr upgrade](https://github.com/filecoin-project/community/discussions/74?sort=new#discussioncomment-2392151). -This release candidate sets mainnet upgrade at epoch 1960320, 2022-07-06T14:00:00Z. The bundle that the network will be using is v8.0.0, manifest CID will be included upon final release. +The network is scheduled to upgrade to nv16 at epoch 1960320, on July 6th at 2022-07-06T14:00:00Z. All node operators, including storage providers, must upgrade to this release (or a later release) before that time. Storage providers must update their daemons, miners, market and worker(s). -Your lotus node will switch from the Legacy VM (that depended on go-based specs-actors) to FVM (that uses Rust-based builtin-actors) atomically upon the upgrade. +Your lotus node will switch from the Legacy VM (that depended on go-based specs-actors) to Filecoin Virtual Machine FVM (that uses Rust-based builtin-actors) atomically upon the upgrade. +The Skyr upgrade introduces the following FIPs, enhancements and bug fixes, delivered in [built-actors v8](https://github.com/filecoin-project/builtin-actors/releases/tag/v8.0.0) and [ref-fvm v1.0.0](https://github.com/filecoin-project/ref-fvm/releases/tag/fvm%40v1.0.0):, -## Calibration-net Upgrade +- [FIP-0030](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0030.md) +- [FIP-0031](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0031.md) +- [FIP-0032](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0032.md)) +- [FIP-0027](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0027.md) +- [Bug fix for the ProveReplicaUpdates method](https://github.com/filecoin-project/builtin-actors/pull/138) +- [New proofs version for SnarkPack](https://github.com/filecoin-project/builtin-actors/pull/474/commits/3027c365f516e1cba6f156d4fb9dbd8c893d5b62) -This release candidate sets the caibration-net upgrade at epoch 1044660, 2022-06-16T17:30:00Z. The bundle that the network should be using is v8.0.0-rc.1(located at `build/actors/v8.tar.zst` ) upon migration, manifest CID `bafy2bzacedrdn6z3z7xz7lx4wll3tlgktirhllzqxb766dxpaqp3ukxsjfsba`. -## Between rc2 & rc1 +## 🆕 Things you may wanna know -- We fixed a execution trace bug in ffi for implicit messages, and the execution trace should be more like legacy VM ones now! -- Your market node will now perform a light migration to migrate non-utf deal labels, as needed by FIP-0027. +### Actor Code CIDs -## 🆕 Things you may wanna know +As stated in [FIP-0031](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0031.md)- [structure of the code cid](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0031.md#structure-of-code-cids), system actors' code CIDs will be real content-addressing + +For lotus users, we are making the change minimal for you. This means the `CODE` output when you run `lotus state get-actor` will now be the actual CID that represents the executable code for the actor, followed by wrapped synthetic id like the ones you've got before, i.e `fil/8/system`. + +Moreover, this also means that in the future, whenever the actor code changes, the CID changes accordingly, and a network upgrade is needed for the network participants to have consensus over what executable code we should use for each system actor. ### Built-in actor bundles As the network introduces FVM, it's also switching from spec-actor (written in GoLang) to [built-in actor](https://github.com/filecoin-project/builtin-actors) (written in rust), in which the latter comes with[ importable bundles](https://github.com/filecoin-project/builtin-actors#importable-bundle). This means, like filecoin proof parameters, node operators now also need to fetch the actor bundles according to the network versions for the nodes to remain operational. -In lotus [v1.16.0-rc2](https://github.com/filecoin-project/lotus/releases/tag/v1.16.0-rc1), the bundles for all networks(mainnet, calibnet, and etc) are included in the lotus source tree (`build/actors/`) and embedded on build. +Bundles for all networks(mainnet, calibnet, and etc) are included in the lotus source tree (`build/actors/`) and embedded on build. Lotus verifies that the bundle CIDs are the right ones upon build & upgrade against the values in `build/builtin_actors_gen.go`, according to the network you are building. You may also check the bundle manifest CID matches the bundle gen-ed values by running `lotus state actor-cids --network-version 16`. -Lotus verifies that the bundle CIDs are the right ones upon build & upgrade against the values in `build/builtin_actors_gen.go`, according to the network you are building. You may also check the bundle manifest CID matches the bundle gen-ed values by running `lotus state actor-cids --network-version 16`. -(We will get into the CIDs more in the next section). +The manifest CID & full list of actor code CIDs for nv16 using v8.0.0 is: -As you may have noticed, all bundles are also available at https://github.com/filecoin-project/builtin-actors/releases, thus you can also manually download the bundles and place them in the right path. +``` + "_manifest": "bafy2bzacebogjbpiemi7npzxchgcjjki3tfxon4ims55obfyfleqntteljsea" + "account": "bafk2bzacedudbf7fc5va57t3tmo63snmt3en4iaidv4vo3qlyacbxaa6hlx6y" + "cron": "bafk2bzacecqb3eolfurehny6yp7tgmapib4ocazo5ilkopjce2c7wc2bcec62" + "init": "bafk2bzaceaipvjhoxmtofsnv3aj6gj5ida4afdrxa4ewku2hfipdlxpaektlw" + "multisig": "bafk2bzacebhldfjuy4o5v7amrhp5p2gzv2qo5275jut4adnbyp56fxkwy5fag" + "paymentchannel": "bafk2bzacebalad3f72wyk7qyilvfjijcwubdspytnyzlrhvn73254gqis44rq" + "reward": "bafk2bzacecwzzxlgjiavnc3545cqqil3cmq4hgpvfp2crguxy2pl5ybusfsbe" + "storagemarket": "bafk2bzacediohrxkp2fbsl4yj4jlupjdkgsiwqb4zuezvinhdo2j5hrxco62q" + "storageminer": "bafk2bzacecgnynvd3tene3bvqoknuspit56canij5bpra6wl4mrq2mxxwriyu" + "storagepower": "bafk2bzacebjvqva6ppvysn5xpmiqcdfelwbbcxmghx5ww6hr37cgred6dyrpm" + "system": "bafk2bzacedwq5uppsw7vp55zpj7jdieizirmldceehu6wvombw3ixq2tcq57w" + "verifiedregistry": "bafk2bzaceb3zbkjz3auizmoln2unmxep7dyfcmsre64vnqfhdyh7rkqfoxlw4" +``` + +All bundles are also available at https://github.com/filecoin-project/builtin-actors/releases, thus you can also manually download the bundles and place them in the right path. Note: use customized bundle will risk you to lose sync with the network! -## Actor Code CIDs +To get Code CIDs: +- api:`StateActorCodeCIDs` +- cli: `lotus state actor-cids` +- cli: `lotus-shed cid inspect-bundle` -If you have followed the conversation in FIP discussion[ _Does the switch of CodeCIDs to _real_ content-addressing impact you_](https://github.com/filecoin-project/FIPs/discussions/310) and [FIP-0031](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0031.md)- [structure of the code cid](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0031.md#structure-of-code-cids), you should already know that from nv16, system actor code CIDs will be real content-addressing instead of being a static string like `(fil/7/account)`/ `(fil/8/storageminer)`. +### Execution Trace -For lotus users, we are making the change minimal for you. This means the `CODE` output when you run `lotus state get-actor` will now be the actual CID that represents the executable code for the actor, followed by wrapped synthetic id like the ones you've got before, i.e `fil/8/system`. +For developers that are dependent on lotus execution trace, you will need to enable `LOTUS_VM_ENABLE_TRACING` envvar to get the exact execution trace response as before. Without the envvar enabled, `Subcall` details, Duration` and `GasCharges` fields will be missing from the new FVM trace. -Moreover, this also means that in the future, whenever the actor code changes, the CID will change accordingly, in which will result in a need for a network upgrade for the network participants to have consensus over what executable code we should use for each system actor. +### Deal Proposal Migration -### Execution Trace +All deal proposals with non-utf8 string as the label in the metadata store will perform a light migration to new format as defined in [v1.1.1](https://github.com/filecoin-project/go-fil-markets/pull/721). + +## Others +- Resource manager is now only enabled by default on full daemon node. You can enable it manually for other nodes by setting env var `LOTUS_RCMGR` to `1`. +- Fix: drand: calculation of round from Filecoin epochs ([filecoin-project/lotus#8606](https://github.com/filecoin-project/lotus/pull/8606)) -For developers that are dependent on lotus execution trace, you will need to enable `LOTUS_VM_ENABLE_TRACING` envvar to get the exact execution trace response as before. Without the envvar enabled, `Duration` and `GasCharges` fields will be missing from the new FVM trace. +## Dependency Update +- chore: deps: update to go-libp2p v0.19.4 ([filecoin-project/lotus#8801](https://github.com/filecoin-project/lotus/pull/8801)) +- github.com/filecoin-project/go-fil-markets (v1.20.1 -> v1.20.1-v16-2): +- github.com/filecoin-project/go-legs (v0.3.7 -> v0.3.10): +- github.com/filecoin-project/go-state-types (v0.1.8 -> v0.1.10): +- github.com/filecoin-project/specs-storage (v0.2.4 -> v0.4.1): + +## Contributors + +| Contributor | Commits | Lines ± | Files Changed | +|-------------|---------|---------|---------------| +| @geoff-vball | 37 | +10565/-8454 | 150 | +| @arajasek | 33 | +7964/-6340 | 473 | +| @arajasek | 37 | +6220/-6976 | 457 | +| @vyzo | 135 | +7287/-5380 | 546 | +| @ZenGround0 | 19 | +5958/-2920 | 226 | +| @stebalien | 18 | +1566/-1101 | 116 | +| Alex | 5 | +323/-2304 | 32 | +| @zenground0 | 9 | +583/-358 | 56 | +| @jennijuju | 5 | +853/-27 | 19 | +| @jennijuju | 24 | +392/-201 | 60 | +| Marco Munizaga | 3 | +236/-83 | 5 | +| @raulk| 9 | +93/-15 | 15 | +| @travisperson | 3 | +37/-37 | 12 | +| @Kubuxu | 1 | +41/-5 | 1 | +| @koalacxr | 1 | +29/-13 | 3 | +| @gammazero | 2 | +18/-10 | 4 | +| Peter Rabbitson | 1 | +5/-3 | 1 | +| Steve Loeppky | 1 | +6/-0 | 1 | +| @masih | 1 | +3/-3 | 2 | +| @magik6k | 1 | +4/-0 | 1 | +| @jennijuju | 1 | +2/-2 | 1 | +| tian zhou | 1 | +1/-1 | 1 | # 1.15.3 / 2022-05-31 diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 11fdcfb9206..daa38a92349 100644 Binary files a/build/openrpc/full.json.gz and b/build/openrpc/full.json.gz differ diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index 556acb36e16..3a260231aa4 100644 Binary files a/build/openrpc/miner.json.gz and b/build/openrpc/miner.json.gz differ diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 58ba9fa9df3..adf31802bbc 100644 Binary files a/build/openrpc/worker.json.gz and b/build/openrpc/worker.json.gz differ diff --git a/build/version.go b/build/version.go index ad2ef562da8..e5931312702 100644 --- a/build/version.go +++ b/build/version.go @@ -37,7 +37,7 @@ func BuildTypeString() string { } // BuildVersion is the local build version -const BuildVersion = "1.16.0-rc3" +const BuildVersion = "1.16.0" func UserVersion() string { if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" { diff --git a/documentation/en/cli-lotus-miner.md b/documentation/en/cli-lotus-miner.md index 583d2cc872b..726bf75612a 100644 --- a/documentation/en/cli-lotus-miner.md +++ b/documentation/en/cli-lotus-miner.md @@ -7,7 +7,7 @@ USAGE: lotus-miner [global options] command [command options] [arguments...] VERSION: - 1.16.0-rc3 + 1.16.0 COMMANDS: init Initialize a lotus miner repo diff --git a/documentation/en/cli-lotus-worker.md b/documentation/en/cli-lotus-worker.md index d2198b45a2c..d2f6166558a 100644 --- a/documentation/en/cli-lotus-worker.md +++ b/documentation/en/cli-lotus-worker.md @@ -7,7 +7,7 @@ USAGE: lotus-worker [global options] command [command options] [arguments...] VERSION: - 1.16.0-rc3 + 1.16.0 COMMANDS: run Start lotus worker diff --git a/documentation/en/cli-lotus.md b/documentation/en/cli-lotus.md index da16166b40d..d1a16ce18b1 100644 --- a/documentation/en/cli-lotus.md +++ b/documentation/en/cli-lotus.md @@ -7,7 +7,7 @@ USAGE: lotus [global options] command [command options] [arguments...] VERSION: - 1.16.0-rc3 + 1.16.0 COMMANDS: daemon Start a lotus daemon process