Releases: filecoin-project/lotus
v1.29.2
This is the stable release for Lotus node v1.29.2. Key updates in this release include:
- 🆕 New API Support: Added support for
EthGetBlockReceipts
RPC method to retrieve transaction receipts for a specified block. This method allows users to obtain Ethereum format receipts of all transactions included in a given tipset as specified by its Ethereum block equivalent. (filecoin-project/lotus#12478) - 🆙 Dependency Update: Upgraded go-libp2p to version v0.35.5 (filecoin-project/lotus#12511), and go-multiaddr-dns to v0.4.0 (filecoin-project/lotus#12540).
- 🐛 Bug Fix: Legacy/historical Drand lookups via
StateGetBeaconEntry
now work again for all historical epochs.StateGetBeaconEntry
now uses the on-chain beacon entries and follows the same rules for historical Drand round matching asStateGetRandomnessFromBeacon
and theget_beacon_randomness
FVM syscall. Be aware that there will be some some variance in matching Filecoin epochs to Drand rounds where null Filecoin rounds are involved prior to network version 14. (filecoin-project/lotus#12428).
☢️ Upgrade Warnings ☢️
- This release requires a minimum Go version of v1.22.7 or higher (filecoin-project/lotus#12459)
📝 Changelog
See v1.29.1...release/v1.29.2 for the set of changes since the last release.
👨👩👧👦 Contributors
Contributor | Commits | Lines ± | Files Changed |
---|---|---|---|
aarshkshah1992 | 2 | +1753/-662 | 12 |
Viraj Bhartiya | 1 | +770/-38 | 18 |
Rod Vagg | 1 | +480/-83 | 14 |
Phi-rjan | 2 | +20/-13 | 9 |
Phi | 2 | +6/-25 | 7 |
v1.29.2-rc1
This is the first release candidate for Lotus node v1.29.2. Key updates in this release include:
- New API Support: Added support for
EthGetBlockReceipts
RPC method to retrieve transaction receipts for a specified block. This method allows users to obtain Ethereum format receipts of all transactions included in a given tipset as specified by its Ethereum block equivalent. (filecoin-project/lotus#12478) - Dependency Update: Upgraded go-libp2p to version v0.35.5 (filecoin-project/lotus#12511)
- Bug Fix: Legacy/historical Drand lookups via
StateGetBeaconEntry
now work again for all historical epochs.StateGetBeaconEntry
now uses the on-chain beacon entries and follows the same rules for historical Drand round matching asStateGetRandomnessFromBeacon
and theget_beacon_randomness
FVM syscall. Be aware that there will be some some variance in matching Filecoin epochs to Drand rounds where null Filecoin rounds are involved prior to network version 14. (filecoin-project/lotus#12428).
📝 Changelog
See v1.29.1...release/v1.29.2-rc1 for the set of changes since the last release.
v1.29.1
This is a Lotus Node patch release that addresses a critical sync issue affecting users of the v1.29.0 release. The primary fix in this release is:
- Downgrade of a dependency that was causing invalid BLS signatures, leading to sync failures for many Lotus nodes. See #12467 for more information about the bug.
We strongly recommend that all users currently running Lotus v1.29.0 upgrade to this version to resolve the syncing problems.
Contributors
Contributor | Commits | Lines ± | Files Changed |
---|---|---|---|
Phi | 1 | +14/-6 | 7 |
Jiaying Wang | 1 | +9/-2 | 3 |
v1.28.3
v1.29.0
This is a Lotus Node only release, which includes a variety of new features, improvements, and fixes, particularly focused on enhancing ETH RPC functionality. Key highlights of this release include:
-
New Features:
- Trace Filter API: Added support for the
trace_filter
RPC method, allowing users to configureEthTraceFilterMaxResults
to limit the number of results returned in any individualtrace_filter
RPC API call. (filecoin-project/lotus#12123) - Filecoin to ETH Address Conversion: The
FilecoinAddressToEthAddress
RPC can now return ETH addresses for all Filecoin address types ("f0"/"f1"/"f2"/"f3") based on the client's re-org tolerance. Note that this is a breaking change if you are using the API via the go-jsonrpc library or by using Lotus as a library, but it is non-breaking when using the API via any other RPC method as it adds an optional second argument. (filecoin-project/lotus#12324) - Sending to ETH addresses The
lotus send
command now supports sending to ETH address recipients. (filecoin-project/lotus#12319)
- Trace Filter API: Added support for the
-
Improvements:
- Gateway Enhancements: Significant improvements to the
lotus-gateway
including better rate limiting and stateful handling. The--per-conn-rate-limit
now works as advertised, and a new--eth-max-filters-per-conn
option allows setting the maximum number of filters and subscriptions per connection, defaulting to 16. Stateful Ethereum APIs are now disabled for plain HTTP connections and require websockets. Additionally, the default value for theEvents.FilterTTL
config option has been reduced from 24h to 1h. (filecoin-project/lotus#12315) - Performance Improvements: Addressed SQLite index selection performance regressions, significantly improving query times for event-related data. (filecoin-project/lotus#12261).
- Gateway Enhancements: Significant improvements to the
☢️ Upgrade Warnings ☢️
lotus-gateway
behaviour, CLI-arguments and APIs have received minor changes. See the improvements section in theOrganised Changelog
section below for more information.- The
FilecoinAddressToEthAddress
RPC introduces a breaking change for users of the go-jsonrpc library or Lotus as a library. - We are aware that legacy/historical Drand lookups via
StateGetBeaconEntry
are currently broken. If you rely onStateGetBeaconEntry
for looking up historic beacons, we recommend waiting for the Lotus v1.29.1 release. You can follow the progress on this issue in #12414.
📝 Changelog
See v1.28.2...release/v1.29.0 for the set of changes since the last release.
Organized Changelog
New features
- feat: Add trace filter API supporting RPC method
trace_filter
(filecoin-project/lotus#12123). ConfiguringEthTraceFilterMaxResults
sets a limit on how many results are returned in any individualtrace_filter
RPC API call. - feat:
FilecoinAddressToEthAddress
RPC can now return ETH addresses for all Filecoin address types ("f0"/"f1"/"f2"/"f3") based on client's re-org tolerance. This is a breaking change if you are using the API via the go-jsonrpc library or by using Lotus as a library, but is a non-breaking change when using the API via any other RPC method as it adds an optional second argument.
(filecoin-project/lotus#12324). - feat: Added
lotus-shed indexes inspect-events
health-check command (filecoin-project/lotus#12346). - feat(libp2p): expose libp2p bandwidth metrics (#12402) (filecoin-project/lotus#12402)
- feat: Lotus Send CLI: Lotus send should work with ETH address receipients (#12319)
Improvements
- feat!: gateway: fix rate limiting, better stateful handling (filecoin-project/lotus#12327).
- CLI usage documentation has been improved for
lotus-gateway
--per-conn-rate-limit
now works as advertised.--eth-max-filters-per-conn
is new and allows you to set the maximum number of filters and subscription per connection, it defaults to 16.- Previously, this limit was set to
16
and applied separately to filters and subscriptions. This limit is now unified and applies to both filters and subscriptions.
- Previously, this limit was set to
- Stateful Ethereum APIs (those involving filters and subscriptions) are now disabled for plain HTTP connections. A client must be using websockets to access these APIs.
- These APIs are also now automatically removed from the node by the gateway when a client disconnects.
- Some APIs have changed which may impact users consuming Lotus Gateway code as a library.
- The default value for the
Events.FilterTTL
config option has been reduced from 24h to 1h. This means that filters will expire on a Lotus node after 1 hour of not being accessed by the client.
- CLI usage documentation has been improved for
- feat: f3: override F3BootstrapEpoch on 2k devnet with environment variable (#12354) (filecoin-project/lotus#12354)
- feat: p2p: allow overriding bootstrap nodes with environmemnt variable (#12292) (filecoin-project/lotus#12292)
- feat(f3): F3 has been updated with many performance improvements and additional metrics.
- fix: Eth Event Receipt Logs: use event index for logs (#12269) (filecoin-project/lotus#12269)
- fix: add datacap balance to circ supply internal accounting as unCirc (#12348) (filecoin-project/lotus#12348)
- feat: Use a block cache to speed up the
EthGetBlockByHash
API (#12359) (filecoin-project/lotus#12359) - fix: lotus-shed: store processed tipset after backfilling events (#12335) (filecoin-project/lotus#12335)
- fix: Eth Tx Events Bloom Filter: fix slice modification bug and flaky test (#12203) (filecoin-project/lotus#12203)
- fix(ETH RPC): receipts: use correct txtype in receipts (#12332) (filecoin-project/lotus#12332
- fix(cli): only change method for 0x recipients (#12328) (filecoin-project/lotus#12328)
- feat: api: clean API for Miners (#12112) (filecoin-project/lotus#12112)
- feat: p2p: environment variables for disabling DHT query filter and routing table filter (#12289) (filecoin-project/lotus#12289)
- fix: cli: Add delegated to cli docs (#12229) (filecoin-project/lotus#12229)
- feat: sqlite: extract common init and migration utilities (#12098) (filecoin-project/lotus#12098)
- feat: niporep: multi-sector onboarding through UnmanagedMiner (#12180) (filecoin-project/lotus#12180)
Dependencies
From v1.28.2...release/v1.29.0#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6
- github.com/filecoin-project/go-commp-utils (v0.1.3 -> v0.1.4):
- github.com/filecoin-project/go-commp-utils/nonffi (v0.0.0-20220905160352-62059082a837 -> v0.0.0-20240802040721-2a04ffc8ffe8):
- github.com/filecoin-project/go-hamt-ipld/v3 (v3.1.0 -> v3.4.0):
- github.com/filecoin-project/go-jsonrpc (v0.3.2 -> v0.6.0):
- github.com/filecoin-project/jackc/pgx (v5.4.1 -> v5.6.0)
- feat(f3): update from v0.0.7 to v0.1.0 (#12382) (filecoin-project/lotus#12382)
- feat: f3: update go-f3 to 0.2.0 (#12390) (filecoin-project/lotus#12390)
Chores
- chore: ffi: copy verifier iface, mock & ffi out of storage (#11581) (filecoin-project/lotus#11581)
- docs: update LOTUS_RELEASE_FLOW.MD document (#12322) (filecoin-project/lotus#12322)
- docs: update references to releases branch (#12396) (filecoin-project/lotus#12396)
- docs: pr title check fix to link to right doc (#12371) (filecoin-project/lotus#12371)
- docs: updating CONTRIBUTING.md with table of contents and TOC guidance (#12372) (filecoin-project/lotus#12372)
- docs: release template: update based on 1.28 learnings (#12356) (filecoin-project/lotus#12356)
- refactor: adjust PR Title Check workflow to reduce noise (#12373) (filecoin-project/lotus#12373)
- feat(ci): add PR title check workflow (#12340) (filecoin-project/lotus#12340)
- chore(docs): fix some function names (#12368) (filecoin-project/lotus#12368)
- feat: ci: automate the new release process (#12096) ([filecoin-proj...
v1.29.0-rc1
This is a Lotus Node only release, which includes a variety of new features, improvements, and fixes, particularly focused on enhancing ETH RPC functionality. ⭐️ Key highlights of this release include: ⭐️
-
New Features:
- Trace Filter API: Added support for the
trace_filter
RPC method, allowing users to configureEthTraceFilterMaxResults
to limit the number of results returned in any individualtrace_filter
RPC API call. (filecoin-project/lotus#12123) - Filecoin to ETH Address Conversion: The
FilecoinAddressToEthAddress
RPC can now return ETH addresses for all Filecoin address types ("f0"/"f1"/"f2"/"f3") based on the client's re-org tolerance. Note that this is a breaking change if you are using the API via the go-jsonrpc library or by using Lotus as a library, but it is non-breaking when using the API via any other RPC method as it adds an optional second argument. (filecoin-project/lotus#12324) - Sending to ETH addresses The
lotus send
command now supports sending to ETH address recipients. (filecoin-project/lotus#12319)
- Trace Filter API: Added support for the
-
Improvements:
- Gateway Enhancements: Significant improvements to the
lotus-gateway
including better rate limiting and stateful handling. The--per-conn-rate-limit
now works as advertised, and a new--eth-max-filters-per-conn
option allows setting the maximum number of filters and subscriptions per connection, defaulting to 16. Stateful Ethereum APIs are now disabled for plain HTTP connections and require websockets. Additionally, the default value for theEvents.FilterTTL
config option has been reduced from 24h to 1h. (filecoin-project/lotus#12315) - Performance Improvements: Addressed SQLite index selection performance regressions, significantly improving query times for event-related data. (filecoin-project/lotus#12261).
- Gateway Enhancements: Significant improvements to the
☢️ Upgrade Warnings ☢️
lotus-gateway
behaviour, CLI-arguments and APIs have received minor changes. See the improvements section below for more information.- The
FilecoinAddressToEthAddress
RPC introduces a breaking change for users of the go-jsonrpc library or Lotus as a library.
📝 Changelog
See v1.28.2...release/v1.29.0 for the set of changes since the last release.
Organized Changelog
New features
- feat: Add trace filter API supporting RPC method
trace_filter
(filecoin-project/lotus#12123). ConfiguringEthTraceFilterMaxResults
sets a limit on how many results are returned in any individualtrace_filter
RPC API call. - feat:
FilecoinAddressToEthAddress
RPC can now return ETH addresses for all Filecoin address types ("f0"/"f1"/"f2"/"f3") based on client's re-org tolerance. This is a breaking change if you are using the API via the go-jsonrpc library or by using Lotus as a library, but is a non-breaking change when using the API via any other RPC method as it adds an optional second argument.
(filecoin-project/lotus#12324). - feat: Added
lotus-shed indexes inspect-events
health-check command (filecoin-project/lotus#12346). - feat(libp2p): expose libp2p bandwidth metrics (#12402) (filecoin-project/lotus#12402)
- feat: Lotus Send CLI: Lotus send should work with ETH address receipients (#12319)
Improvements
- feat!: gateway: fix rate limiting, better stateful handling (filecoin-project/lotus#12315).
- CLI usage documentation has been improved for
lotus-gateway
--per-conn-rate-limit
now works as advertised.--eth-max-filters-per-conn
is new and allows you to set the maximum number of filters and subscription per connection, it defaults to 16.- Previously, this limit was set to
16
and applied separately to filters and subscriptions. This limit is now unified and applies to both filters and subscriptions.
- Previously, this limit was set to
- Stateful Ethereum APIs (those involving filters and subscriptions) are now disabled for plain HTTP connections. A client must be using websockets to access these APIs.
- These APIs are also now automatically removed from the node by the gateway when a client disconnects.
- Some APIs have changed which may impact users consuming Lotus Gateway code as a library.
- The default value for the
Events.FilterTTL
config option has been reduced from 24h to 1h. This means that filters will expire on a Lotus node after 1 hour of not being accessed by the client.
- CLI usage documentation has been improved for
- feat: f3: override F3BootstrapEpoch on 2k devnet with environment variable (#12354) (filecoin-project/lotus#12354)
- feat: p2p: allow overriding bootstrap nodes with environmemnt variable (#12292) (filecoin-project/lotus#12292)
- feat(f3): F3 has been updated with many performance improvements and additional metrics.
- fix: Eth Event Receipt Logs: use event index for logs (#12269) (filecoin-project/lotus#12269)
- fix: add datacap balance to circ supply internal accounting as unCirc (#12348) (filecoin-project/lotus#12348)
- feat: Use a block cache to speed up the
EthGetBlockByHash
API (#12359) (filecoin-project/lotus#12359) - fix: lotus-shed: store processed tipset after backfilling events (#12335) (filecoin-project/lotus#12335)
- fix: Eth Tx Events Bloom Filter: fix slice modification bug and flaky test (#12203) (filecoin-project/lotus#12203)
- fix(ETH RPC): receipts: use correct txtype in receipts (#12332) (filecoin-project/lotus#12332
- fix(cli): only change method for 0x recipients (#12328) (filecoin-project/lotus#12328)
- feat: api: clean API for Miners (#12112) (filecoin-project/lotus#12112)
Dependencies
From v1.28.2...release/v1.29.0#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6
- github.com/filecoin-project/go-commp-utils (v0.1.3 -> v0.1.4):
- github.com/filecoin-project/go-commp-utils/nonffi (v0.0.0-20220905160352-62059082a837 -> v0.0.0-20240802040721-2a04ffc8ffe8):
- github.com/filecoin-project/go-hamt-ipld/v3 (v3.1.0 -> v3.4.0):
- github.com/filecoin-project/go-jsonrpc (v0.3.2 -> v0.6.0):
- github.com/filecoin-project/jackc/pgx (v5.4.1 -> v5.6.0)
- feat: f3: update go-f3 to 0.2.0 (#12390) (filecoin-project/lotus#12390)
Chores
- chore: ffi: copy verifier iface, mock & ffi out of storage (#11581) (filecoin-project/lotus#11581)
- docs: update LOTUS_RELEASE_FLOW.MD document (#12322) (filecoin-project/lotus#12322)
- docs: update references to releases branch (#12396) (filecoin-project/lotus#12396)
- docs: pr title check fix to link to right doc (#12371) (filecoin-project/lotus#12371)
- docs: updating CONTRIBUTING.md with table of contents and TOC guidance (#12372) (filecoin-project/lotus#12372)
- docs: release template: update based on 1.28 learnings (#12356) (filecoin-project/lotus#12356)
- refactor: adjust PR Title Check workflow to reduce noise (#12373) (filecoin-project/lotus#12373)
- feat(ci): add PR title check workflow (#12340) (filecoin-project/lotus#12340)
- chore(docs): fix some function names (#12368) (filecoin-project/lotus#12368)
- feat: ci: automate the new release process (#12096) (filecoin-project/lotus#12096)
- feat: ci: upload junit xml reports to buildpulse (#12225) (filecoin-project/lotus#12225)
- github: improve stalebot behavior/language (#12370) (filecoin-project/lotus#12370)
- chore: docs: fix some misspellings (#12333) (filecoin-project/lotus#12333)
- docs: expand
CONTRIBUTING.md
and updateREADME.md
(#12366) (filecoin-project/lotus#12366) - chore: docs: Update step in skeleton guide (#12349) (filecoin-project/lotus#12349)
- chore: docs: Add initial
Update_Dependencies_Lotus.md
(#12107) (filecoin-project/lotus#12107) - chore: proxy single Put/Delete to the Many variants (#12313) (filecoin-project/lotus#12313)
- chore: logging: switch stdout print to...
v1.28.2
This is a Lotus patch release v1.28.2 for Node operators and Storage Providers.
For node operators, this patch release is HIGHLY RECOMMENDED as it fixes an issue where excessive bandwidth usage (issue #12381) was caused by a routing loop in pubsub, where small "manifest" messages were cycling repeatedly around the network due to an ineffective routing loop prevention mechanism. The new f3 release also has a couple performance improvements around CPU usage. (If you are curious about the progress of F3 testing, follow the updates here).
For storage providers, this patch release fixes pledge issues users have been encountering. This update addresses existing issues, including the too-small pledge in snap and the lack of DDO-awareness in PoRep Commit.
☢️ Upgrade Warnings ☢️
-
The
releases
branch has been deprecated with the 202408 split of 'Lotus Node' and 'Lotus Miner'. See https://github.com/filecoin-project/lotus/blob/master/LOTUS_RELEASE_FLOW.md#why-is-the-releases-branch-deprecated-and-what-are-alternatives for more info and alternatives for getting the latest release for both the 'Lotus Node' and 'Lotus Miner' based on the Branch and Tag Strategy.- To get the latest Lotus Node tag:
git tag -l 'v*' | sort -V -r | head -n 1
- To get the latest Lotus Miner tag:
git tag -l 'miner/v*' | sort -V -r | head -n 1
- To get the latest Lotus Node tag:
-
Breaking change in Miner public APIs
storage/pipeline.NewPreCommitBatcher
andstorage/pipeline.New
. They now have an additional error return to deal with errors arising from fetching the sealing config. -
#12390: Update go-f3 to 0.2.0
-
#12341: fix: miner: Fix DDO pledge math
miner/v1.28.2
Callout: This release is the same as Lotus v1.28.2 tag. For detailed information, please refer to the v1.28.2 release notes.
The publication of the miner/v1.28.2
release here on GitHub is solely for the purpose of testing automation in our documentation process (Ref: filecoin-project/lotus-docs#746 (comment)).
v1.28.1
This is the MANDATORY Lotus v1.28.1 release, which will deliver the Filecoin network version 23, codenamed Waffle 🧇. v1.28.1 is also the minimal version that supports nv23.
This release sets the Mainnet to upgrade at epoch 4154640, corresponding to 2024-08-06T12:00:00Z.
☢️ Upgrade Warnings ☢️
- If you are running the
v1.26.x
version of Lotus, please go through theUpgrade Warnings
section for thev1.27.*
releases, before upgrading to this RC. - Note that v1.28.0 needed a bug fix and a feature enhancement to ensure a smooth support for nv23 and it was retracted. Please update your node to v1.28.1 or above before the nv23 upgrade!
- 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 for full details.
- All Storage Providers MUST finish onboarding all sectors that have deal IDs in the
PreCommitSectors
OnChainSectorInfo
s before upgrading the lotus miner OR THEY WILL BE WASTED. Please see more details in the next section.
The Filecoin network version 23 delivers the following FIPs:
- FIP-0065: Ignore built-in market locked balance in circulating supply calculation
- FIP-0079: Add BLS Aggregate Signatures to FVM
- FIP-0084: Remove Storage Miner Actor Method ProveCommitSectors
⚠️ Please note that onboarding viaProveCommitSectors
is deprecated in favor ofProveCommitSectors3
, which was introduced in FIP-0076 and activated in the last network upgrade (NV22).ProveCommitSectors3
will reject the activation of sectors that were precommitted with deal IDs.
Storage Providers should ensure that their pipeline is updated to adopt theProveCommitSector3
flow as soon as possible. Otherwise, they risk losing deal collateral, PCD, and sealing work for sectors that were not fully committed on-chain before the upgrade yet have deal IDs in the precommitted sector on-chain info. This release removes the deprecatedProveCommitSectors
pipeline, and the new pipeline is fully supported. Prior to this release, the onboarding pipeline would still prefer to useProveCommitSectors
for sectors containing deals. If you have any questions, please don't hesitate to reach out in #fil-curio-dev.
- FIP-0085: Convert f090 Mining Reserve Actor to Keyless Account Actor
- FIP-0091: Add support for legacy Ethereum transactions
- FIP-0092: NI-PoRep
- FIP-0086: Fast Finality Soft Launch
Note that we are only doing a "soft launch"/"passive testing" for F3 (Fast Finality) i.e. FIP-0086 in NV23. Please see this doc for more details.
v14 Builtin Actor Bundle
Builtin actor v14.0.0 is used for supporting this upgrade. Make sure that your lotus actor bundle matches the v14 actors manifest by running the following cli after upgrading:
lotus state actor-cids --network-version=23
Network Version: 23
Actor Version: 14
Manifest CID: bafy2bzacecbueuzsropvqawsri27owo7isa5gp2qtluhrfsto2qg7wpgxnkba
Actor CID
account bafk2bzacebr7ik7lng7vysm754mu5x7sakphwm4soqi6zwbox4ukpd6ndwvqy
cron bafk2bzacecwn6eiwa7ysimmk6i57i5whj4cqzwijx3xdlxwb5canmweaez6xc
datacap bafk2bzacecidw7ajvtjhmygqs2yxhmuybyvtwp25dxpblvdxxo7u4gqfzirjg
eam bafk2bzaced2cxnfwngpcubg63h7zk4y5hjwwuhfjxrh43xozax2u6u2woweju
ethaccount bafk2bzacechu4u7asol5mpcsr6fo6jeaeltvayj5bllupyiux7tcynsxby7ko
evm bafk2bzacedupohbgwrcw5ztbbsvrpqyybnokr4ylegmk7hrbt3ueeykua6zxw
init bafk2bzacecbbcshenkb6z2v4irsudv7tyklfgphhizhghix6ke5gpl4r5f2b6
multisig bafk2bzaceajcmsngu3f2chk2y7nanlen5xlftzatytzm6hxwiiw5i5nz36bfc
paymentchannel bafk2bzaceavslp27u3f4zwjq45rlg6assj6cqod7r5f6wfwkptlpi6j4qkmne
placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro
reward bafk2bzacedvfnjittwrkhoar6n5xrykowg2e6rpur4poh2m572f7m7evyx4lc
storagemarket bafk2bzaceaju5wobednmornvdqcyi6khkvdttkru4dqduqicrdmohlwfddwhg
storageminer bafk2bzacea3f43rxzemmakjpktq2ukayngean3oo2de5cdxlg2wsyn53wmepc
storagepower bafk2bzacedo6scxizooytn53wjwg2ooiawnj4fsoylcadnp7mhgzluuckjl42
system bafk2bzacecak4ow7tmauku42s3u2yydonk4hx6ov6ov542hy7lcbji3nhrrhs
verifiedregistry bafk2bzacebvyzjzmvmjvpypphqsumpy6rzxuugnehgum7grc6sv3yqxzrshb4
Migration
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 than 1 minute.
- The migration is expected to take less than 30 seconds on a node with an NVMe drive and a newer CPU. For nodes running on slower disks/CPU, it is still expected to take less than 1 minute.
- Max memory usage during benchmarking the migration in "offline mode" (i.e., node not syncing) was 23GiB.
- Max memory usage when benchmarking the migration in "online mode" (i.e., while the node is syncing) was 30GiB. Numbers here might vary depending on the load your node is under.
More details on the migration benchmarking can be found in #12128
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 running the non-cached migration (i.e., just running the migration at the network upgrade epoch), and scheduling some additional downtime. Operators of such nodes can read the How to disable premigration in network upgrade tutorial.
Fast Finality for Filecoin (f3) soft launch
We are one step closer to reduce Filecoin's finality from 7.5 hours to a minute or so, you can checkout the FIP for more details. Changing the consensus protocol is not trivial, and the f3 implementation team has designed a passive testing plan to verify the protocol and give time for client implementation teams to integrate and test F3 before it is fully activated in the network consensus. That said, the lotus team has implemented f3 & the manifest for passive testing in this release, and we would like to ask node operators, especially storage providers, to participate in the testing by participating in F3 on the mainnet (which is enabled by default in this release)! We will keep updating this discussion to capture "what can you expect" & testing status. If you notice any unexpected behaviour caused by f3, please do not hesitate to reach out to us in #fil-fast-finality.
F3 (Fast Finality) is experimental in this release. All the new F3 APIs are unstable and subject to until nv24 release (assuming f3 will be fully activated in this upgrade).
Exchanges and RPC providers are recommended to opt-out of F3 functionality for now. You can disable F3 by adding the LOTUS_DISABLE_F3 = 1
environment variable.
Dependencies
- github.com/filecoin-project/go-state-types (
v0.14.0-dev
->v0.14.0
) - github.com/filecoin-project/filecoin-ffi (
v1.27.0-rc2
->v1.28.0
) - github.com/filecoin-project/go-libp2p2 (
v0.35.3
->v0.35.4
) ref-fvm4
(as part offilecoin-ffi
) (4.2.0
->4.3.1
)- A new
github.com/filecoin-project/go-f3
dependency for F3 soft launch (v0.0.5
)
Others
- Soft launch of F3 (#12119)
- NI-PoRep changes (#12130)
- Fixes for the ETH events API (#12080)
- Support for legacy Ethereum transactions (#11969)
- Ignore market balance after nv23 (#11976)
- Add finality-related params for
eth_getBlockByNumber
(#12110) - rename
Actor.Address
toActor.DelegatedAddress
and only use it for f4 addresses (#12155) - feat:ec: integrate F3 dynamic manifest #12185
- fix: f3: Fix F3 build parameters for testground target (#12189) (filecoin-project/lotus#12189)
- fix: eth_getLogs: #12212
- chore: lotus-shed: Add support for nv23 in migrate-state cmd #12172
- feat: F3: Update go-f3, change the style of participation call #12196
- chore: f3: Upgrade go mod F3 dependency to v0.0.3 tagged release #12216
- fix: Eth Trace Block: nil access panic #12221
- chore!: markets: remove stray unixfs constants, ...
v1.28.0
Update on 2024-07-24
This release is retracted, please refer to v1.28.1 for more details
⬇️ DEPRECATED ⬇️
This is the MANDATORY Lotus v1.28.0 release, which will deliver the Filecoin network version 23, codenamed Waffle 🧇.
This release sets the Mainnet to upgrade at epoch 4154640, corresponding to 2024-08-06T12:00:00Z.
☢️ Upgrade Warnings ☢️
-
If you are running the
v1.26.x
version of Lotus, please go through theUpgrade Warnings
section for thev1.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 for full details.
The Filecoin network version 23 delivers the following FIPs:
- FIP-0065: Ignore built-in market locked balance in circulating supply calculation
- FIP-0079: Add BLS Aggregate Signatures to FVM
- FIP-0084: Remove Storage Miner Actor Method ProveCommitSectors
- FIP-0085: Convert f090 Mining Reserve Actor to Keyless Account Actor
- FIP-0091: Add support for legacy Ethereum transactions
- FIP-0092: NI-PoRep
- FIP-0086: Fast Finality Soft Launch
Note that we are only doing a "soft launch"/"passive testing" for F3 (Fast Finality) i.e. FIP-0086 in NV23. Please see this doc for more details.
v14 Builtin Actor Bundle
Builtin actor v14.0.0 is used for supporting this upgrade. Make sure that your lotus actor bundle matches the v14 actors manifest by running the following cli after upgrading:
lotus state actor-cids --network-version=23
Network Version: 23
Actor Version: 14
Manifest CID: bafy2bzacecbueuzsropvqawsri27owo7isa5gp2qtluhrfsto2qg7wpgxnkba
Actor CID
account bafk2bzacebr7ik7lng7vysm754mu5x7sakphwm4soqi6zwbox4ukpd6ndwvqy
cron bafk2bzacecwn6eiwa7ysimmk6i57i5whj4cqzwijx3xdlxwb5canmweaez6xc
datacap bafk2bzacecidw7ajvtjhmygqs2yxhmuybyvtwp25dxpblvdxxo7u4gqfzirjg
eam bafk2bzaced2cxnfwngpcubg63h7zk4y5hjwwuhfjxrh43xozax2u6u2woweju
ethaccount bafk2bzacechu4u7asol5mpcsr6fo6jeaeltvayj5bllupyiux7tcynsxby7ko
evm bafk2bzacedupohbgwrcw5ztbbsvrpqyybnokr4ylegmk7hrbt3ueeykua6zxw
init bafk2bzacecbbcshenkb6z2v4irsudv7tyklfgphhizhghix6ke5gpl4r5f2b6
multisig bafk2bzaceajcmsngu3f2chk2y7nanlen5xlftzatytzm6hxwiiw5i5nz36bfc
paymentchannel bafk2bzaceavslp27u3f4zwjq45rlg6assj6cqod7r5f6wfwkptlpi6j4qkmne
placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro
reward bafk2bzacedvfnjittwrkhoar6n5xrykowg2e6rpur4poh2m572f7m7evyx4lc
storagemarket bafk2bzaceaju5wobednmornvdqcyi6khkvdttkru4dqduqicrdmohlwfddwhg
storageminer bafk2bzacea3f43rxzemmakjpktq2ukayngean3oo2de5cdxlg2wsyn53wmepc
storagepower bafk2bzacedo6scxizooytn53wjwg2ooiawnj4fsoylcadnp7mhgzluuckjl42
system bafk2bzacecak4ow7tmauku42s3u2yydonk4hx6ov6ov542hy7lcbji3nhrrhs
verifiedregistry bafk2bzacebvyzjzmvmjvpypphqsumpy6rzxuugnehgum7grc6sv3yqxzrshb4
Migration
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 than 1 minute.
- The migration is expected to take less than 30 seconds on a node with an NVMe drive and a newer CPU. For nodes running on slower disks/CPU, it is still expected to take less than 1 minute.
- Max memory usage during benchmarking the migration in "offline mode" (i.e., node not syncing) was 23GiB.
- Max memory usage when benchmarking the migration in "online mode" (i.e., while the node is syncing) was 30GiB. Numbers here might vary depending on the load your node is under.
More details on the migration benchmarking can be found in #12128
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 running the non-cached migration (i.e., just running the migration at the network upgrade epoch), and scheduling some additional downtime. Operators of such nodes can read the How to disable premigration in network upgrade tutorial.
Fast Finality for Filecoin (f3) soft launch
We are one step closer to reduce Filecoin's finality from 7.5 hours to a minute or so, you can checkout the FIP for more details. Changing the consensus protocol is not trivial, and the f3 implementation team has designed a passive testing plan to verify the protocol and give time for client implementation teams to integrate and test F3 before it is fully activated in the network consensus. That said, the lotus team has implemented f3 & the manifest for passive testing in this release, and we would like to ask node operators, especially storage providers, to participate in the testing by participating in F3 on the mainnet (which is enabled by default in this release)! We will keep updating this discussion to capture "what can you expect" & testing status. If you notice any unexpected behaviour caused by f3, please do not hesitate to reach out to us in #fil-fast-finality.
F3 (Fast Finality) is experimental in this release. All the new F3 APIs are unstable and subject to until nv24 release (assuming f3 will be fully activated in this upgrade).
Exchanges and RPC providers are recommended to opt-out of F3 functionality for now. You can disable F3 by adding the DISABLE_F3 = 1
environment variable, which will output a log saying that F3 has been disabled.
Dependencies
- github.com/filecoin-project/go-state-types (
v0.14.0-dev
->v0.14.0
) - github.com/filecoin-project/filecoin-ffi (
v1.27.0-rc2
->v1.28.0
) - github.com/filecoin-project/go-libp2p2 (
v0.35.3
->v0.35.4
) ref-fvm4
(as part offilecoin-ffi
) (4.2.0
->4.3.1
)- A new
github.com/filecoin-project/go-f3
dependency for F3 soft launch (v0.0.5
)
Others
- Soft launch of F3 (#12119)
- NI-PoRep changes (#12130)
- Fixes for the ETH events API (#12080)
- Support for legacy Ethereum transactions (#11969)
- Ignore market balance after nv23 (#11976)
- Add finality-related params for
eth_getBlockByNumber
(#12110) - rename
Actor.Address
toActor.DelegatedAddress
and only use it for f4 addresses (#12155) - feat:ec: integrate F3 dynamic manifest #12185
- fix: f3: Fix F3 build parameters for testground target (#12189) (filecoin-project/lotus#12189)
- fix: eth_getLogs: #12212
- chore: lotus-shed: Add support for nv23 in migrate-state cmd #12172
- feat: F3: Update go-f3, change the style of participation call #12196
- chore: f3: Upgrade go mod F3 dependency to v0.0.3 tagged release #12216
- fix: Eth Trace Block: nil access panic #12221
- chore!: markets: remove stray unixfs constants, features and references #12217
- chore: metrics: Upgrade to OpenTelemetry v1.28.0 #12223
- fix: bug: Reduce log level in F3 message sending to Debug #12224
- [skip changelog] chore: config: yet more lp2p removal from miner #12252
- fix(store): correctly break weight ties based on smaller ticket #12253
- fix: exchange bug #12275
- chore: deps: Update GST, Filecoin-FFI and Actors to final versions NV23 #12276
- metrics: f3: Set up otel metrics reporting to prometheus #12285
- Upgrade to go-f3 v0.0.5 #12279