This is a mandatory release of Lotus that introduces Filecoin network v13, codenamed the HyperDrive upgrade. The
Filecoin mainnet will upgrade, which is epoch 892800, on 2021-06-30T22:00:00Z. The network upgrade introduces the
following FIPs:
- FIP-0008: Add miner batched sector pre-commit method
- FIP-0011: Remove reward auction from reporting consensus faults
- FIP-0012: DataCap Top up for FIL+ Client Addresses
- FIP-0013: Add ProveCommitSectorAggregated method to reduce on-chain congestion
- FIP-0015: Revert FIP-0009(Exempt Window PoSts from BaseFee burn)
Note that this release is built on top of Lotus v1.9.0. Enterprising users can use the master
branch of Lotus to get the latest functionality, including all changes in this release candidate.
If you have any questions, leave a comment here.
Proof batching and aggregation
FIPs 0008 and 0013 combine to allow for a significant increase in the rate of onboarding storage on the Filecoin network. This aims to lead to more useful data being stored on the network, reduced network congestion, and lower network base fee.
Check out the documentation here for details on the new Lotus miner sealing config options, here for fee config options, and explanations of the new features.
Note:
- We recommend to keep
MinPreCommitBatch
as 1. - We recommend miners to set
PreCommitBatchWait
lower than 30 hours. - We recommend miners to set a longer
CommitBatchSlack
andPreCommitBatchSlack
to prevent message failures
due to expirations.
Projected state tree growth
In order to validate the Hyperdrive changes, we wrote a simulation to seal as many sectors as quickly as possible, assuming the same number and mix of 32GiB and 64GiB miners as the current network.
Given these assumptions:
- We'd expect a network storage growth rate of around 530PiB per day. π³ π π₯³ π
- We'd expect network bandwidth dedicated to
SubmitWindowedPoSt
to grow by about 0.02% per day. - We'd expect the state-tree (and therefore snapshot) size to grow by 1.16GiB per day.
- Nearly all of the state-tree growth is expected to come from new sector metadata.
- We'd expect the daily lotus datastore growth rate to increase by about 10-15% (from current ~21GiB/day).
- Most "growth" of the lotus datastore is due to "churn", historical data that's no longer referenced by the latest state-tree.
Future improvements
Various Lotus improvements are planned moving forward to mitigate the effects of the growing state tree size. The primary improvement is the Lotus splitstore, which will soon be enabled by default. The feature allows for online garbage collection for nodes that do not seek to maintain full chain and state history, thus eliminating the need for users to delete their datastores and sync from snapshots.
Other improvements including better compressed snapshots, faster pre-migrations, and improved chain exports are in the roadmap.
WindowPost base fee burn
Included in the HyperDrive upgrade is FIP-0015 which eliminates the special-case gas treatment of SubmitWindowedPoSt
messages that was introduced in FIP-0009. Although SubmitWindowedPoSt
messages will be relatively cheap, thanks to the introduction of optimistic acceptance of these proofs in FIP-0010, storage providers should pay attention to their MaxWindowPoStGasFee
config option: too low and PoSts may not land on chain; too high and they may cost an exorbitant amount!
Changelog
New Features
- Implement FIP-0015 (filecoin-project/lotus#6361)
- Integrate FIP0013 and FIP0008 (filecoin-project/lotus#6235)
- Configuration docs and cli examples
- cli docs
- Introduce gas prices for aggregate verifications (filecoin-project/lotus#6347)
- Introduce v5 actors (filecoin-project/lotus#6195)
- Robustify commit batcher (filecoin-project/lotus#6367)
- Always flush when timer goes off (filecoin-project/lotus#6563)
- Update default fees for aggregates (filecoin-project/lotus#6548)
- sealing: Early finalization option (filecoin-project/lotus#6452)
./lotus-miner/config.toml/[Sealing.FinalizeEarly]
: default to false. Enable if you want to FinalizeSector before commiting
- Add filplus utils to CLI (filecoin-project/lotus#6351)
- cli doc can be found here
- Add miner-side MaxDealStartDelay config (filecoin-project/lotus#6576)
Bug Fixes
- chainstore: Don't take heaviestLk with backlogged reorgCh (filecoin-project/lotus#6526)
- Backport #6041 - storagefsm: Fix batch deal packing behavior (filecoin-project/lotus#6519)
- backport: pick the correct partitions-per-post limit (filecoin-project/lotus#6503)
- failed sectors should be added into res correctly (filecoin-project/lotus#6472)
- sealing: Fix restartSectors race (filecoin-project/lotus#6491)
- Fund miners with the aggregate fee when ProveCommitting (filecoin-project/lotus#6428)
- Commit and Precommit batcher cannot share a getSectorDeadline method (filecoin-project/lotus#6416)
- Fix supported proof type manipulations for v5 actors (filecoin-project/lotus#6366)
- events: Fix handling of multiple matched events per epoch (filecoin-project/lotus#6362)
- Fix randomness fetching around null blocks (filecoin-project/lotus#6240)
Improvements
- Appimage v1.10.0 rc3 (filecoin-project/lotus#6492)
- Expand on Drand change testing (filecoin-project/lotus#6500)
- Backport Fix logging around mineOne (filecoin-project/lotus#6499)
- mpool: Add more metrics (filecoin-project/lotus#6453)
- Merge backported PRs into v1.10 release branch (filecoin-project/lotus#6436)
- Fix tests (filecoin-project/lotus#6371)
- Extend the default deal start epoch delay (filecoin-project/lotus#6350)
- sealing: Wire up context to batchers (filecoin-project/lotus#6497)
- Improve address resolution for messages (filecoin-project/lotus#6364)
Dependency Updates
- Proofs v8.0.2 (filecoin-project/lotus#6524)
- Update to fixed Bellperson (filecoin-project/lotus#6480)
- Update to go-praamfetch with fslocks (filecoin-project/lotus#6473)
- Update ffi with fixed multicore sdr support (filecoin-project/lotus#6471)
- github.com/filecoin-project/go-paramfetch (v0.0.2-0.20200701152213-3e0f0afdc261 -> v0.0.2-0.20210614165157-25a6c7769498)
- github.com/filecoin-project/specs-actors/v5 (v5.0.0-20210512015452-4fe3889fff57 -> v5.0.0)
- github.com/filecoin-project/go-hamt-ipld/v3 (v3.0.1 -> v3.1.0)
- github.com/ipfs/go-log/v2 (v2.1.2-0.20200626104915-0016c0b4b3e4 -> v2.1.3)
- github.com/filecoin-project/go-amt-ipld/v3 (v3.0.0 -> v3.1.0)
Network Version v13 HyperDrive Upgrade
- Set HyperDrive upgrade epoch (filecoin-project/lotus#6565)
- version bump to lotus v1.10.0-rc6 (filecoin-project/lotus#6529)
- Upgrade epochs for calibration reset (filecoin-project/lotus#6528)
- Lotus version 1.10.0-rc5 (filecoin-project/lotus#6504)
- Merge releases into v1.10 release (filecoin-project/lotus#6494)
- update lotus to v1.10.0-rc3 (filecoin-project/lotus#6481)
- updated configuration comments for docs
- Lotus version 1.10.0-rc2 (filecoin-project/lotus#6443)
- Set ntwk v13 HyperDrive Calibration upgrade epoch (filecoin-project/lotus#6442)
Contributors
πThank you to all the contributors!
Contributor | Commits | Lines Β± | Files Changed |
---|---|---|---|
@magik6k | 81 | +9606/-1536 | 361 |
@arajasek | 41 | +6543/-679 | 189 |
@ZenGround0 | 11 | +4074/-727 | 110 |
@anorth | 10 | +2035/-1177 | 55 |
@iand | 1 | +779/-12 | 5 |
@frrist | 2 | +722/-6 | 6 |
@Stebalien | 6 | +368/-24 | 15 |
@jennijuju | 11 | +204/-111 | 19 |
@vyzo | 6 | +155/-66 | 13 |
@coryschwartz | 10 | +171/-27 | 14 |
@Kubuxu | 4 | +177/-13 | 7 |
@ribasushi | 4 | +65/-42 | 5 |
@travisperson | 2 | +11/-11 | 4 |
@kirk-baird | 1 | +1/-5 | 1 |
@wangchao | 2 | +3/-2 | 2 |
Note Binaries were not built with this release, a fix for the build process was created and binaries were built from tag v1.10.0-binaries.