Skip to content

Commit

Permalink
Merge pull request #7492 from filecoin-project/jen/v1.13.0-rc3-prep
Browse files Browse the repository at this point in the history
v1.13.0 rc3
  • Loading branch information
jennijuju authored Oct 14, 2021
2 parents d1e1f8b + 02cef13 commit c23cff4
Show file tree
Hide file tree
Showing 29 changed files with 250 additions and 93 deletions.
119 changes: 79 additions & 40 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
# Lotus changelog

# v1.13.0-rc2 / 2021-10-06
# v1.13.0-rc3 / 2021-10-13

This is the second release candidates for lotus v1.13.0, a recommended lotus release that supports the upcoming
This is the third release candidates for lotus v1.13.0, a recommended lotus release that supports the upcoming
[Network v14 Chocolate upgrade](https://github.com/filecoin-project/lotus/discussions/7431).
This feature release includes latest functionality and improvements, like data transfer rate-limiting, rust-proof-ffi experimental CUDA support and so on. We *highly recommend* users like storage providers, data brokers, and so on to upgrade your nodes and all subsystems to this release!

> Note: This release candidate sets the upgrade epoch for calibration net, however, it does not set the Network v14
> Chocolate upgrade for mainnet. FIPs(FIP0020-0025) included are based on optimistic acceptance, things may well
> change according to the result of FIP last calls.
## Highlights
- Enable separate storage and retrieval transfer limits ([filecoin-project/lotus#7405](https://github.com/filecoin-project/lotus/pull/7405))
- Update proofs to v10.0.0 ([filecoin-project/lotus#7420](https://github.com/filecoin-project/lotus/pull/7420))
Expand Down Expand Up @@ -40,33 +36,15 @@ This feature release includes latest functionality and improvements, like data t
## Bug Fixes
- StateSearchMsg: Correct usage of the allowReplaced flag ([filecoin-project/lotus#7450](https://github.com/filecoin-project/lotus/pull/7450))
- fix staging area path buildup ([filecoin-project/lotus#7363](https://github.com/filecoin-project/lotus/pull/7363))
- Randomness: Move getters from ChainAPI to StateAPI ([filecoin-project/lotus#7322](https://github.com/filecoin-project/lotus/pull/7322))
- storagemgr: Cleanup workerLk around worker resources ([filecoin-project/lotus#7334](https://github.com/filecoin-project/lotus/pull/7334))
- fix: check padSector Cid ([filecoin-project/lotus#7310](https://github.com/filecoin-project/lotus/pull/7310))
- sealing: Recover sectors after failed AddPiece ([filecoin-project/lotus#7492](https://github.com/filecoin-project/lotus/pull/7492))
- fix: support node instantiation in external packages ([filecoin-project/lotus#7511](https://github.com/filecoin-project/lotus/pull/7511))

## Dependency Updates
- github.com/filecoin-project/go-data-transfer (v1.10.1 -> v1.11.1):
- github.com/filecoin-project/go-fil-markets (v1.12.0 -> v1.13.1):
- github.com/filecoin-project/go-paramfetch (v0.0.2-0.20210614165157-25a6c7769498 -> v0.0.2):
- github.com/filecoin-project/specs-actors/v6-rc1:
- Better logging (#1503) ([filecoin-project/specs-actors#1503](https://github.com/filecoin-project/specs-actors/pull/1503))
- Defensive programming: harden power actor against seal verify failures (#1502) ([filecoin-project/specs-actors#1502](https://github.com/filecoin-project/specs-actors/pull/1502))
- BatchBalancer fee charged on precommit aggregate (#1497) ([filecoin-project/specs-actors#1497](https://github.com/filecoin-project/specs-actors/pull/1497))
- Fix #1486 (#1489) ([filecoin-project/specs-actors#1489](https://github.com/filecoin-project/specs-actors/pull/1489))
- Sector extension deal weight bug fix (#1498) ([filecoin-project/specs-actors#1498](https://github.com/filecoin-project/specs-actors/pull/1498))
- Fip 0021 (#1487) ([filecoin-project/specs-actors#1487](https://github.com/filecoin-project/specs-actors/pull/1487))
- Fix #176 (swap to xerrors from pkg/errors) (#1494) ([filecoin-project/specs-actors#1494](https://github.com/filecoin-project/specs-actors/pull/1494))
- Merge branch 'master' of github.com:filecoin-project/specs-actors
- Merge branch 'fix-799'
- compute the hash of the proposal iff the proposal hash is present (#1365) ([filecoin-project/specs-actors#1365](https://github.com/filecoin-project/specs-actors/pull/1365))
- Revert "Remove cc upgrade (#1473)" (#1475) ([filecoin-project/specs-actors#1475](https://github.com/filecoin-project/specs-actors/pull/1475))
- Remove cc upgrade (#1473) ([filecoin-project/specs-actors#1473](https://github.com/filecoin-project/specs-actors/pull/1473))
- Update to v6 (#1468) ([filecoin-project/specs-actors#1468](https://github.com/filecoin-project/specs-actors/pull/1468))
- go state types version revert (#1467) ([filecoin-project/specs-actors#1467](https://github.com/filecoin-project/specs-actors/pull/1467))
- Adjust code for subtle change in go-multihash 0.0.15 (#1463) ([filecoin-project/specs-actors#1463](https://github.com/filecoin-project/specs-actors/pull/1463))
- Bump go state types (#1464) ([filecoin-project/specs-actors#1464](https://github.com/filecoin-project/specs-actors/pull/1464))
- Create CODEOWNERS (#1465) ([filecoin-project/specs-actors#1465](https://github.com/filecoin-project/specs-actors/pull/1465))
- Test deterministic offset (#1462) ([filecoin-project/specs-actors#1462](https://github.com/filecoin-project/specs-actors/pull/1462)
- Update go-libp2p to v0.15.0 ([filecoin-project/lotus#7362](https://github.com/filecoin-project/lotus/pull/7362))

## Others
Expand All @@ -76,34 +54,95 @@ This feature release includes latest functionality and improvements, like data t
- sync branch main with master on updates ([filecoin-project/lotus#7366](https://github.com/filecoin-project/lotus/pull/7366))
- remove job to install jq ([filecoin-project/lotus#7309](https://github.com/filecoin-project/lotus/pull/7309))
- restore filters for the build-macos job ([filecoin-project/lotus#7309](https://github.com/filecoin-project/lotus/pull/7455))

## Contributors

| Contributor | Commits | Lines ± | Files Changed |
|-------------|---------|---------|---------------|
| ZenGround0 | 12 | +4202/-2752 | 187 |
| Aayush Rajasekaran | 28 | +5023/-1059 | 213 |
| c r | 4 | +1276/-435 | 37 |
| Claudia Richoux | 12 | +1350/-209 | 43 |
| Łukasz Magiera | 10 | +1214/-68 | 30 |
| dirkmc | 8 | +845/-375 | 55 |
| Łukasz Magiera | 10 | +1056/-60 | 26 |
| Aarsh Shah | 6 | +813/-259 | 16 |
| Peter Rabbitson | 5 | +498/-74 | 19 |
| Aayush Rajasekaran | 10 | +552/-251 | 43 |
| Peter Rabbitson | 6 | +505/-78 | 22 |
| Jennifer Wang | 6 | +197/-288 | 33 |
| Anton Evangelatov | 10 | +335/-139 | 19 |
| Mike Greenberg | 15 | +336/-67 | 26 |
| Jennifer Wang | 7 | +66/-206 | 26 |
| Dirk McCormick | 8 | +149/-55 | 16 |
| Steven Allen | 2 | +115/-12 | 6 |
| hannahhoward | 3 | +53/-30 | 15 |
| Rod Vagg | 3 | +58/-10 | 7 |
| Jiaying Wang | 1 | +0/-56 | 1 |
| Travis Person | 3 | +33/-19 | 8 |
| hannahhoward | 4 | +56/-32 | 17 |
| Rod Vagg | 4 | +61/-13 | 9 |
| Jiaying Wang | 2 | +0/-57 | 2 |
| Hannah Howard | 1 | +33/-18 | 7 |
| Jakub Sztandera | 3 | +22/-11 | 4 |
| Jakub Sztandera | 8 | +27/-16 | 9 |
| Cory Schwartz | 1 | +16/-2 | 2 |
| Travis Person | 1 | +14/-0 | 1 |
| frrist | 1 | +12/-0 | 2 |
| ognots | 1 | +0/-10 | 2 |
| Steve Loeppky | 1 | +6/-0 | 1 |
| Adrian Lanzafame | 1 | +3/-3 | 1 |
| jennijuju | 1 | +2/-2 | 1 |
| swift-mx | 1 | +1/-1 | 1 |

# v1.12.0 / 2021-10-12

This is a mandatory release of Lotus that introduces [Filecoin Network v14](https://github.com/filecoin-project/community/discussions/74#discussioncomment-1398542), codenamed the Chocolate upgrade. The Filecoin mainnet will upgrade at epoch 1231620, on 2021-10-26T13:30:00Z.

The Chocolate upgrade introduces the following FIPs, delivered in [v6 actors](https://github.com/filecoin-project/specs-actors/releases/tag/v6.0.0)

- [FIP-0020](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0020.md): Add return value to `WithdrawBalance`
- [FIP-0021](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0021.md): Correct quality calculation on expiration
- [FIP-0022](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0022.md): Bad deals don't fail PublishStorageDeals
- [FIP-0023](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0023.md): Break ties between tipsets of equal weight
- [FIP-0024](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0024.md): BatchBalancer & BatchDiscount Post-HyperDrive Adjustment
- [FIP-0026](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0026.md): Extend sector faulty period from 2 weeks to 6 weeks

Note that this release is built on top of lotus v1.11.3. Enterprising users like storage providers, data brokers and others are recommended to use lotus v1.13.0 for latest new features, improvements and bug fixes.

## New Features and Changes
- Implement and support [FIP-0024](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0024.md) BatchBalancer & BatchDiscount Post-HyperDrive Adjustment:
- Precommit batch balancer support/config ([filecoin-project/lotus#7410](https://github.com/filecoin-project/lotus/pull/7410))
- Set `BatchPreCommitAboveBaseFee` to decide whether sending out a PreCommits in individual messages or in a batch.
- The default value of `BatchPreCommitAboveBaseFee` and `AggregateAboveBaseFee` are now updated to 0.32nanoFIL.
- The amount of FIL withdrawn from `WithdrawBalance` from miner or market via lotus CLI is now printed out upon message landing on the chain.

## Improvements
- Implement [FIP-0023](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0023.md) (Break ties between tipsets of equal weight)
- ChainStore: Add a tiebreaker rule for tipsets of equal weight ([filecoin-project/lotus#7378](https://github.com/filecoin-project/lotus/pull/7378))
- Randomness: Move getters from ChainAPI to StateAPI ([filecoin-project/lotus#7322](https://github.com/filecoin-project/lotus/pull/7322))

## Bug Fixes
- Fix Drand fetching around null tipsets ([filecoin-project/lotus#7376](https://github.com/filecoin-project/lotus/pull/7376))

## Dependency Updates
- Add [v6 actors](https://github.com/filecoin-project/specs-actors/releases/tag/v6.0.0)
- **Protocol changes**
- Multisig Approve only hashes when hash in params
- FIP 0020 WithdrawBalance methods return withdrawn value
- FIP 0021 Fix bug in power calculation when extending verified deals sectors
- FIP 0022 PublishStorageDeals drops errors in batch
- FIP 0024 BatchBalancer update and burn added to PreCommitBatch
- FIP 0026 Add FaultMaxAge extension
- Reduce calls to power and reward actors by passing values from power cron
- Defensive programming hardening power cron against programmer error
- **Implementation changes**
- Move to xerrors
- Improved logging: burn events are not logged with reasons and burned value.
- github.com/filecoin-project/go-state-types (v0.1.1-0.20210810190654-139e0e79e69e -> v0.1.1-0.20210915140513-d354ccf10379):

## Others
- v1.12.0-rc1 prep ([filecoin-project/lotus#7426](https://github.com/filecoin-project/lotus/pull/7426)
- Extend FaultMaxAge to 6 weeks for actors v6 on test networks only ([filecoin-project/lotus#7421](https://github.com/filecoin-project/lotus/pull/7421))

## Contributors
| @ZenGround0 | 12 | +4202/-2752 | 187 |
| @arajasek | 25 | +4567/-854 | 190 |
| @laudiacay | 4 | +1276/-435 | 37 |
| @laudiacay | 12 | +1350/-209 | 43 |
| @magik6k | 1 | +171/-13 | 8 |
| @Stebalien | 2 | +115/-12 | 6 |
| @jennijuju | 7 | +73/-34 | 26 |
| @travisperson | 2 | +19/-19 | 7 |
| @coryschwartz | 1 | +16/-2 | 2 |
| @Kubuxu | 5 | +5/-5 | 5 |
| @ribasushi | 1 | +5/-3 | 1 |

# v1.11.3 / 2021-09-29

Expand Down
Binary file modified build/openrpc/full.json.gz
Binary file not shown.
Binary file modified build/openrpc/miner.json.gz
Binary file not shown.
Binary file modified build/openrpc/worker.json.gz
Binary file not shown.
3 changes: 0 additions & 3 deletions build/params_2k.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
"github.com/filecoin-project/go-state-types/abi"
"github.com/filecoin-project/go-state-types/network"
"github.com/filecoin-project/lotus/chain/actors/policy"
miner6 "github.com/filecoin-project/specs-actors/v6/actors/builtin/miner"
)

const BootstrappersFile = ""
Expand Down Expand Up @@ -92,8 +91,6 @@ func init() {

BuildType |= Build2k

// To test out what this proposal would like on devnets / testnets: https://github.com/filecoin-project/FIPs/pull/190
miner6.FaultMaxAge = miner6.WPoStProvingPeriod * 42
}

const BlockDelaySecs = uint64(4)
Expand Down
4 changes: 0 additions & 4 deletions build/params_butterfly.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"github.com/filecoin-project/go-state-types/network"
"github.com/filecoin-project/lotus/chain/actors/policy"
builtin2 "github.com/filecoin-project/specs-actors/v2/actors/builtin"
miner6 "github.com/filecoin-project/specs-actors/v6/actors/builtin/miner"
"github.com/ipfs/go-cid"
)

Expand Down Expand Up @@ -54,9 +53,6 @@ func init() {
Devnet = true

BuildType = BuildButterflynet

// To test out what this proposal would like on devnets / testnets: https://github.com/filecoin-project/FIPs/pull/190
miner6.FaultMaxAge = miner6.WPoStProvingPeriod * 42
}

const BlockDelaySecs = uint64(builtin2.EpochDurationSeconds)
Expand Down
3 changes: 0 additions & 3 deletions build/params_calibnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"github.com/filecoin-project/go-state-types/network"
"github.com/filecoin-project/lotus/chain/actors/policy"
builtin2 "github.com/filecoin-project/specs-actors/v2/actors/builtin"
miner6 "github.com/filecoin-project/specs-actors/v6/actors/builtin/miner"
"github.com/ipfs/go-cid"
)

Expand Down Expand Up @@ -68,8 +67,6 @@ func init() {

BuildType = BuildCalibnet

// To test out what this proposal would like on devnets / testnets: https://github.com/filecoin-project/FIPs/pull/190
miner6.FaultMaxAge = miner6.WPoStProvingPeriod * 42
}

const BlockDelaySecs = uint64(builtin2.EpochDurationSeconds)
Expand Down
6 changes: 1 addition & 5 deletions build/params_interop.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,8 @@ import (
"github.com/filecoin-project/go-address"
"github.com/filecoin-project/go-state-types/abi"
"github.com/filecoin-project/go-state-types/network"
builtin2 "github.com/filecoin-project/specs-actors/v2/actors/builtin"
miner6 "github.com/filecoin-project/specs-actors/v6/actors/builtin/miner"

"github.com/filecoin-project/lotus/chain/actors/policy"
builtin2 "github.com/filecoin-project/specs-actors/v2/actors/builtin"
)

const BootstrappersFile = "interopnet.pi"
Expand Down Expand Up @@ -99,8 +97,6 @@ func init() {
SetAddressNetwork(address.Testnet)
Devnet = true

// To test out what this proposal would like on devnets / testnets: https://github.com/filecoin-project/FIPs/pull/190
miner6.FaultMaxAge = miner6.WPoStProvingPeriod * 42
}

const BlockDelaySecs = uint64(builtin2.EpochDurationSeconds)
Expand Down
4 changes: 2 additions & 2 deletions build/params_mainnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ const UpgradeTurboHeight = 712320
// 2021-06-30T22:00:00Z
var UpgradeHyperdriveHeight = abi.ChainEpoch(892800)

// ???
var UpgradeChocolateHeight = abi.ChainEpoch(999999999)
// 2021-10-26T13:30:00Z
var UpgradeChocolateHeight = abi.ChainEpoch(1231620)

func init() {
if os.Getenv("LOTUS_USE_TEST_ADDRESSES") != "1" {
Expand Down
87 changes: 87 additions & 0 deletions build/params_nerpanet.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
//go:build nerpanet
// +build nerpanet

package build

import (
"github.com/filecoin-project/go-state-types/abi"
"github.com/filecoin-project/go-state-types/network"
"github.com/filecoin-project/lotus/chain/actors/policy"
"github.com/ipfs/go-cid"

builtin2 "github.com/filecoin-project/specs-actors/v2/actors/builtin"
)

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

const GenesisNetworkVersion = network.Version0

const BootstrappersFile = "nerpanet.pi"
const GenesisFile = "nerpanet.car"

const UpgradeBreezeHeight = -1
const BreezeGasTampingDuration = 0

const UpgradeSmokeHeight = -1

const UpgradeIgnitionHeight = -2
const UpgradeRefuelHeight = -3

const UpgradeLiftoffHeight = -5

const UpgradeAssemblyHeight = 30 // critical: the network can bootstrap from v1 only
const UpgradeTapeHeight = 60

const UpgradeKumquatHeight = 90

const UpgradeCalicoHeight = 100
const UpgradePersianHeight = UpgradeCalicoHeight + (builtin2.EpochsInHour * 1)

const UpgradeClausHeight = 250

const UpgradeOrangeHeight = 300

const UpgradeTrustHeight = 600
const UpgradeNorwegianHeight = 201000
const UpgradeTurboHeight = 203000
const UpgradeHyperdriveHeight = 379178

const UpgradeChocolateHeight = 999999999

func init() {
// Minimum block production power is set to 4 TiB
// Rationale is to discourage small-scale miners from trying to take over the network
// One needs to invest in ~2.3x the compute to break consensus, making it not worth it
//
// DOWNSIDE: the fake-seals need to be kept alive/protected, otherwise network will seize
//
policy.SetConsensusMinerMinPower(abi.NewStoragePower(4 << 40))

policy.SetSupportedProofTypes(
abi.RegisteredSealProof_StackedDrg512MiBV1,
abi.RegisteredSealProof_StackedDrg32GiBV1,
abi.RegisteredSealProof_StackedDrg64GiBV1,
)

// Lower the most time-consuming parts of PoRep
policy.SetPreCommitChallengeDelay(10)

// TODO - make this a variable
//miner.WPoStChallengeLookback = abi.ChainEpoch(2)

Devnet = false

BuildType = BuildNerpanet

}

const BlockDelaySecs = uint64(builtin2.EpochDurationSeconds)

const PropagationDelaySecs = uint64(6)

// BootstrapPeerThreshold is the minimum number peers we need to track for a sync worker to start
const BootstrapPeerThreshold = 4

var WhitelistedBlock = cid.Undef
2 changes: 1 addition & 1 deletion build/params_shared_vals.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ const UnixfsLinksPerLevel = 1024
const AllowableClockDriftSecs = uint64(1)

// TODO: This is still terrible...What's the impact of updating this before mainnet actually upgrades
const NewestNetworkVersion = network.Version13
const NewestNetworkVersion = network.Version14

// Epochs
const ForkLengthThreshold = Finality
Expand Down
2 changes: 1 addition & 1 deletion build/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func BuildTypeString() string {
}

// BuildVersion is the local build version
const BuildVersion = "1.13.0-rc2"
const BuildVersion = "1.13.0-rc3"

func UserVersion() string {
if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" {
Expand Down
3 changes: 0 additions & 3 deletions chain/stmgr/stmgr.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,6 @@ func NewStateManager(cs *store.ChainStore, exec Executor, sys vm.SyscallBuilder,
})
lastVersion = upgrade.Network
}
} else {
// Otherwise, go directly to the latest version.
lastVersion = build.NewestNetworkVersion
}

return &StateManager{
Expand Down
19 changes: 14 additions & 5 deletions cli/wallet.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import (
"os"
"strings"

"github.com/filecoin-project/go-state-types/network"

"github.com/filecoin-project/lotus/build"

"github.com/urfave/cli/v2"
Expand Down Expand Up @@ -634,14 +636,21 @@ var walletMarketWithdraw = &cli.Command{
return err
}

var withdrawn abi.TokenAmount
if err := withdrawn.UnmarshalCBOR(bytes.NewReader(wait.Receipt.Return)); err != nil {
nv, err := api.StateNetworkVersion(ctx, wait.TipSet)
if err != nil {
return err
}

fmt.Printf("Successfully withdrew %s FIL\n", withdrawn)
if withdrawn != amt {
fmt.Printf("Note that this is less than the requested amount of %s FIL\n", amt)
if nv >= network.Version14 {
var withdrawn abi.TokenAmount
if err := withdrawn.UnmarshalCBOR(bytes.NewReader(wait.Receipt.Return)); err != nil {
return err
}

fmt.Printf("Successfully withdrew %s FIL\n", withdrawn)
if withdrawn.LessThan(amt) {
fmt.Printf("Note that this is less than the requested amount of %s FIL\n", amt)
}
}

return nil
Expand Down
Loading

0 comments on commit c23cff4

Please sign in to comment.