Skip to content
Closed
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
15 changes: 4 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,10 @@
> * [CHANGELOG_1.2x.md](./documentation/changelog/CHANGELOG_1.2x.md) - v1.20.0 to v1.29.2

# UNRELEASED
- feat(api): add StateMinerCreationDeposit API method for FIP-0077 - calculates the deposit required for creating a new miner ([filecoin-project/lotus#13308](https://github.com/filecoin-project/lotus/pull/13308))
- feat(net): add LOTUS_ENABLE_MESSAGE_FETCH_INSTRUMENTATION=1 to turn on metrics and debugging for local vs bitswap message fetching during block validation ([filecoin-project/lotus#13221](https://github.com/filecoin-project/lotus/pull/13221))
- chore(docs): mark v0 API as "deprecated" and v1 as "stable" ([filecoin-project/lotus#13264](https://github.com/filecoin-project/lotus/pull/13264))
- fix(api): `eth_getCode` and `eth_getStorageAt` now return state after the specified block rather than before it ([filecoin-project/lotus#13274](https://github.com/filecoin-project/lotus/pull/13274))
- fix(api): `eth_getTransactionCount` now returns state after the specified block rather than before it ([filecoin-project/lotus#13275](https://github.com/filecoin-project/lotus/pull/13275))
- feat: support for F3-aware snapshot v2 format per [FRC-0108](https://github.com/filecoin-project/FIPs/blob/master/FRCs/frc-0108.md) ([filecoin-project/lotus#13282](https://github.com/filecoin-project/lotus/pull/13282))
- snapshot export now defaults to v2 format with embedded F3 finality certificates, dramatically reducing F3 catchup time from ~8 hours
- transparently imports both v1 and v2 snapshot formats
- to export v1 snapshots, use `lotus chain export --skip-old-msgs --recent-stateroots=2001 --snapshot-version=1 <filename>`
- feat(eth): use F3 for "finalized" and "safe" resolution in v1 APIs. This switches the /v1 Ethereum APIs to have the same resolution rules as /v2, enabling F3 awareness for all Ethereum calls where `"finalized"` or `"safe"` is supplied. See [F3-aware Ethereum APIs via `/v2` endpoint and improvements to existing `/v1` APIs](#f3-aware-ethereum-apis-via-v2-endpoint-and-improvements-to-existing-v1-apis) below for details of how the /v2 APIs work as introduced in the 1.33.0 release. Set the environment variable `LOTUS_ETH_V1_DISABLE_F3_FINALITY_RESOLUTION` to `1` to revert this behaviour but note that the option to revert will likely be removed in a future release. ([filecoin-project/lotus#13298](https://github.com/filecoin-project/lotus/pull/13298))
- feat(f3): expose simple ChainGetFinalizedTipSet API on v1 (and gateway) that just returns the latest F3 finalized tipset, or falls back to EC finality if F3 is not operational on the node or if the F3 finalized tipset is further back than EC finalized tipset. This API can be used for follow-up state calls that clamp to a specific tipset to have assurance of state finality. ([filecoin-project/lotus#13299](https://github.com/filecoin-project/lotus/pull/13299))

# UNRELEASED v1.34.0

See https://github.com/filecoin-project/lotus/blob/release/v1.34.0/CHANGELOG.md

# Node v1.33.1 / 2025-07-31
This is the Lotus v1.33.1 release, which introduces performance improvements and operational enhancements. This release focuses on improving F3 subsystem performance, and enhancing CLI tools for better storage provider operations. Notable improvements include up to 6-10x performance gains in F3 power table calculations, ensuring that PreCommit and ProveCommit operations are aggregating to get optimal gas usage after FIP-100, and a enhanced sector management tool with CSV output support. These improvements collectively enhance the stability and efficiency of Lotus operations for both node operators and storage providers.
Expand Down
2 changes: 1 addition & 1 deletion api/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ type ForkUpgradeParams struct {
UpgradeTuktukHeight abi.ChainEpoch
UpgradeTeepHeight abi.ChainEpoch
UpgradeTockHeight abi.ChainEpoch
UpgradeXxHeight abi.ChainEpoch
UpgradeGoldenWeekHeight abi.ChainEpoch
}

// ChainExportConfig holds configuration for chain ranged exports.
Expand Down
4 changes: 2 additions & 2 deletions build/buildconstants/params_2k.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ var UpgradeTockHeight = abi.ChainEpoch(-30)

const UpgradeTockFixHeight = -103

var UpgradeXxHeight = abi.ChainEpoch(200)
var UpgradeGoldenWeekHeight = abi.ChainEpoch(200)

var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
0: DrandQuicknet,
Expand Down Expand Up @@ -177,7 +177,7 @@ func init() {
UpgradeTeepHeight = getUpgradeHeight("LOTUS_TEEP_HEIGHT", UpgradeTeepHeight)
UpgradeTockHeight = getUpgradeHeight("LOTUS_TOCK_HEIGHT", UpgradeTockHeight)
// UpgradeTockFixHeight = getUpgradeHeight("LOTUS_TOCK_FIX_HEIGHT", UpgradeTockFixHeight)
UpgradeXxHeight = getUpgradeHeight("LOTUS_XX_HEIGHT", UpgradeXxHeight)
UpgradeGoldenWeekHeight = getUpgradeHeight("LOTUS_GOLDEN_WEEK_HEIGHT", UpgradeGoldenWeekHeight)

DrandSchedule = map[abi.ChainEpoch]DrandEnum{
0: DrandQuicknet,
Expand Down
2 changes: 1 addition & 1 deletion build/buildconstants/params_butterfly.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ const UpgradeTockHeight = -30
const UpgradeTockFixHeight = -103

// ??????
const UpgradeXxHeight = 999999999999999
const UpgradeGoldenWeekHeight = 999999999999999

var ConsensusMinerMinPower = abi.NewStoragePower(2 << 30)
var PreCommitChallengeDelay = abi.ChainEpoch(150)
Expand Down
2 changes: 1 addition & 1 deletion build/buildconstants/params_calibnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ var UpgradeTockHeight abi.ChainEpoch = UpgradeTeepHeight + builtin.EpochsInDay*7
const UpgradeTockFixHeight abi.ChainEpoch = 2558014

// ??????
const UpgradeXxHeight = 999999999999999
const UpgradeGoldenWeekHeight = 999999999999999

var ConsensusMinerMinPower = abi.NewStoragePower(32 << 30)
var PreCommitChallengeDelay = abi.ChainEpoch(150)
Expand Down
2 changes: 1 addition & 1 deletion build/buildconstants/params_interop.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ var UpgradeTockHeight = abi.ChainEpoch(-30)
// This fix upgrade only ran on calibrationnet
const UpgradeTockFixHeight abi.ChainEpoch = -4

const UpgradeXxHeight = 50
const UpgradeGoldenWeekHeight = 50

var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
0: DrandQuicknet,
Expand Down
6 changes: 3 additions & 3 deletions build/buildconstants/params_mainnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ var UpgradeTockHeight = UpgradeTeepHeight + builtin.EpochsInDay*90
var UpgradeTockFixHeight = abi.ChainEpoch(-1)

// ??????
var UpgradeXxHeight = abi.ChainEpoch(9999999999)
var UpgradeGoldenWeekHeight = abi.ChainEpoch(9999999999)

var UpgradeTeepInitialFilReserved = InitialFilReserved // FIP-0100: no change for mainnet

Expand All @@ -158,8 +158,8 @@ func init() {
}
SetAddressNetwork(addrNetwork)

if os.Getenv("LOTUS_DISABLE_XX") == "1" {
UpgradeXxHeight = math.MaxInt64 - 1
if os.Getenv("LOTUS_DISABLE_GOLDEN_WEEK") == "1" {
UpgradeGoldenWeekHeight = math.MaxInt64 - 1
}

// NOTE: DO NOT change this unless you REALLY know what you're doing. This is not consensus critical, however,
Expand Down
2 changes: 1 addition & 1 deletion build/buildconstants/params_testground.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ var (
UpgradeTeepInitialFilReserved *big.Int = wholeFIL(300_000_000)
UpgradeTockHeight abi.ChainEpoch = -32
UpgradeTockFixHeight abi.ChainEpoch = -33
UpgradeXxHeight abi.ChainEpoch = -34
UpgradeGoldenWeekHeight abi.ChainEpoch = -34

DrandSchedule = map[abi.ChainEpoch]DrandEnum{
0: DrandMainnet,
Expand Down
12 changes: 6 additions & 6 deletions build/openrpc/full.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions build/openrpc/gateway.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/openrpc/miner.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/openrpc/v0/gateway.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/openrpc/v2/full.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/openrpc/v2/gateway.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/openrpc/worker.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions build/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
)

// NodeBuildVersion is the local build version of the Lotus daemon
const NodeBuildVersion string = "1.33.2-dev"
const NodeBuildVersion string = "1.34.1-dev"

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

// MinerBuildVersion is the local build version of the Lotus miner
const MinerBuildVersion = "1.33.2-dev"
const MinerBuildVersion = "v1.34.1-dev"

func MinerUserVersion() BuildVersion {
if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" {
Expand Down
2 changes: 1 addition & 1 deletion chain/consensus/filcns/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ func DefaultUpgradeSchedule() stmgr.UpgradeSchedule {
Network: network.Version26,
Migration: UpgradeActorsV16Fix,
}, {
Height: buildconstants.UpgradeXxHeight,
Height: buildconstants.UpgradeGoldenWeekHeight,
Network: network.Version27,
Migration: UpgradeActorsV17,
PreMigrations: []stmgr.PreMigration{{
Expand Down
2 changes: 1 addition & 1 deletion documentation/en/api-methods-v0-deprecated.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion documentation/en/api-methods-v1-stable.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion documentation/en/cli-lotus-miner.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion documentation/en/cli-lotus-worker.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion documentation/en/cli-lotus.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion node/impl/full/state.go
Original file line number Diff line number Diff line change
Expand Up @@ -2163,7 +2163,7 @@ func (a *StateAPI) StateGetNetworkParams(ctx context.Context) (*api.NetworkParam
UpgradeTuktukHeight: buildconstants.UpgradeTuktukHeight,
UpgradeTeepHeight: buildconstants.UpgradeTeepHeight,
UpgradeTockHeight: buildconstants.UpgradeTockHeight,
UpgradeXxHeight: buildconstants.UpgradeXxHeight,
UpgradeGoldenWeekHeight: buildconstants.UpgradeGoldenWeekHeight,
},
}, nil
}
32 changes: 29 additions & 3 deletions storage/sealer/fr32/readers.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,37 @@ func (r *unpadReader) readInner(out []byte) (int, error) {
r.left -= uint64(todo)

n, err := io.ReadAtLeast(r.src, r.work[:todo], int(todo))
if err != nil && err != io.EOF {
return n, err
if err == io.ErrUnexpectedEOF {
// We got a partial read. This happens when the underlying reader
// doesn't have as much data as expected (e.g., non-power-of-2 pieces).
// Process what we got.
if n > 0 {
// Round down to complete 128-byte chunks
completeChunks := n / 128
if completeChunks > 0 {
validBytes := completeChunks * 128
Unpad(r.work[:validBytes], out[:completeChunks*127])
// Adjust left to reflect that we couldn't read everything
r.left = 0
return completeChunks * 127, io.EOF
}
}
// Not enough data for even one chunk
return 0, io.EOF
}
if err == io.EOF {
// Clean EOF with no data
if n == 0 {
return 0, io.EOF
}
// Got some data with EOF - shouldn't happen with ReadAtLeast but handle it
return 0, xerrors.Errorf("unexpected EOF with partial read: %d bytes", n)
}
if err != nil {
return 0, err
}
if n < int(todo) {
return 0, xerrors.Errorf("didn't read enough: %d / %d, left %d, out %d", n, todo, r.left, len(out))
return 0, xerrors.Errorf("short read without EOF: got %d, expected %d", n, todo)
}

Unpad(r.work[:todo], out[:todo.Unpadded()])
Expand Down
Loading