This is the sixth release candidate of the next highly recommended feature release v1.15.1. This feature release introduces Index Provider, GraphSync v2, and many other latest functionalities, improvements and bug fixes.
More importantly, node operator can now enable the FVM(experimental) to sync mainnet!!
Highlights
🔥🔥🔥 FVM (Experimental) 🔥🔥🔥
- feat: fvm: FVM integration (filecoin-project/lotus#8332)
The lotus team is excited to announce the launch of experimental non-programmable FVM on mainnet. By enabling"LOTUS_USE_FVM_EXPERIMENTAL=1
envvar, the lotus daemon will be running the WASM-compiled built-in actors that is compatible with the existing chain(Network v15 OhSnap). If you are trying it out and having any questions or feedbacks, please leave a comment here!- chore: FVM: log when fvm is used(filecoin-project/lotus#8363)
- chore: ffi: the latest fvm release(filecoin-project/lotus#8382)
🌟🌟🌟 Index Provider (Production Ready!) 🌟🌟🌟
- feat: markets: Integrate index ingest protocol and retrieve by any CID (filecoin-project/lotus#7313)
More and more useful data is being stored on Filecoin via deals made by clients to Storage Providers. The goal is that this content is discoverable when people need them. To achieve that goal, one of the projects the Bedrock team is working on is building an Indexer Ecosystem, a project that's focus on content addressing on Filecoin, then potentially have interoperability with IPFS in the future and eventually serve the retrieval market. The Indexer Ecosystem high level architecture overview diagram can be found here and a detailed write up about can be found here.
That being said, with this release, lotus Storage Providers can easily become an Index Provider and serve the Indexer Content Addressing System. Index Providers generate advertisements from the deals made by a storage provider and announces the data to the indexer nodes for further processing:
- To learn more about what is an Index Provider and how to be an Index Provider, read it here in lotus docuementation.
- An one-off migration is needed in order for a Storage Provider to become an Index Provider and announce the proper formatted index. It's highly recommended for all Index Provider to do a force bulk initialization to enable index announcement on all existing deals.
- Note that the Initialization places IO workload on your storage system. SP should set a proper
concurrency
based on your hardware or can stop/start initialization at their wish/convenience as proving deadlines approach and elapse, to avoid IOPS starvation or competition with window PoSt.
- Note that the Initialization places IO workload on your storage system. SP should set a proper
- After the first one-time migration, being an Index Provider barely puts any extra usage on SP's market system.
- You can find the testing result by SPX fellows here.
We recommend all Storage Providers that are serving deals in the Filecoin network to become a Index Provider, make the data you are storing discoverable for the retrieval market and retrieval clients!
- If you have any questions about becoming an index provider, or the indexer system in general, leave a comment here.
- Follow the indexer project at https://github.com/filecoin-project/go-indexer-core.
- If you have any feature request or bug reports of running an index provider, create an issue in https://github.com/filecoin-project/index-provider.
- You may also join the #storetheindex channel in the Filecoin Slack to engage with the team & the community!
❗️❗️❗️ Dag Migration For New CAR index format in DagStore ❗️❗️❗️
The index provider leverages the latest CARv2 indexing format MultihashIndexSorted
, which stores the multihash code as well as the digest of all CIDs in a CAR file. Thus, all Storage Providers SHOULD perform an one-off DAG mirgation to regenerate DagStore CARv2 indices. You have to do it to become an index provider, failing to do so may also impact your future deal making.
Follow the instruction here to perform the migration.
New Features
- feat: sealing: Sector upgrade queue (filecoin-project/lotus#8333)
- feat: market utils: Support unixfsnode in TraverseDag (filecoin-project/lotus#8168)
- feat: config: enable indexer providing by default (filecoin-project/lotus#8314)
- feat: api: Make ClientCalcCommP multithreaded (filecoin-project/lotus#8276)
- feat: config: Persistent subsystem log level config (filecoin-project/lotus#8283)
- feat: shed: blockstore/vlog to car export cmds (filecoin-project/lotus#8265)
- feat: shed: ItestD (filecoin-project/lotus#8290)
- feat: Make add piece idempotent (filecoin-project/lotus#8160)
- feat: paychmgr: Support paych funding (a.k.a. fast paid retrieval) (filecoin-project/lotus#7883)
- feat: ci: packer snap (filecoin-project/lotus#7819)
- feat: #6147: Include worker name in sealing errors (filecoin-project/lotus#7844)
- Feat: cli: Remove verified data cap (filecoin-project/lotus#8175)
- feat: gateway: add MsigGetVestingSchedule to gateway api (filecoin-project/lotus#8104)
- feat: itests: add itests ensemble mocknet getter (filecoin-project/lotus#8157)
- feat: lotus-miner sectors list --initial-pledge (filecoin-project/lotus#8098)
- Resource Manager Metrics (filecoin-project/lotus#8089)
- feat: cli: set current network version from params (filecoin-project/lotus#8111)
- feat: Snapdeals support in
storage find
CLI (filecoin-project/lotus#8130)
Improvements
- improve resource manager integration (filecoin-project/lotus#8318)
- add check manual-stateless-deal with interactive deal making (filecoin-project/lotus#7560)
- test: cli: adding wallet tests (filecoin-project/lotus#8079)
- test: chain: unit tests for the syncer & sync manager (filecoin-project/lotus#8072)
- test: cli: unit tests for sync related commands (filecoin-project/lotus#8080)
- misc: wallet: wallet tests with annotations for system test matrix (filecoin-project/lotus#7928)
- test: Cli: add mempool tests (filecoin-project/lotus#8162)
- add a state-tree diff command to lotus shed (filecoin-project/lotus#8081)
- test: mempool: Add unit and integration tests (filecoin-project/lotus#8017)
- splistore cold object reification redux (filecoin-project/lotus#8029)
- test: cli: chain category unit tests (filecoin-project/lotus#8048)
- feat: config: Move MakeNewSectorForDeals config into the Sealing section(filecoin-project/lotus#8382)
Bug Fixes
- fix: FVM: add finality check for consensus faults #8452
- fix: market: Reuse the market PubSub in index provider #8451
- fix: market: set all index provider options based on lotus config #8444
- fix: sealing: Fix PR1 worker selection (#8421)
- fix: miner: dead loop on removing sector (#8421)
- fix: sealing: Remove sector copies from workers after snapdeals (filecoin-project/lotus#8331)
- fix: storagefsm: Fix error loop on bad event (filecoin-project/lotus#8339)
- fix: sealing: FinalizeSector doesn't need sealed replica access (filecoin-project/lotus#8339)
- fix: sealing: always do cooldown in handleSubmitReplicaUpdateFailed (filecoin-project/lotus#8353)
- fix: storage cli: Output primary sector status correctly (filecoin-project/lotus#8320)
- fix: sealing fsm: Handle inputLk correctly (filecoin-project/lotus#8291)
- fix: piece provider: Don't log CIDs as binary (filecoin-project/lotus#8287)
- fix:sealing:Log instead of error normal shutdown of state machine (filecoin-project/lotus#8232)
- fix:sealing:Handle finalize replica update failures in fsm (filecoin-project/lotus#8229)
- ci: appimage: re-install appimage CI (filecoin-project/lotus#7943)
- fix: sealing: PRU insufficient collateral (filecoin-project/lotus#8219)
- fix: shed: diff command (filecoin-project/lotus#8202)
- Make
--lite
option visible in the lotus daemon help text (filecoin-project/lotus#8207) - fix:sealing:Less verbose sector manager logging (filecoin-project/lotus#8213)
- avoid panic (filecoin-project/lotus#8205)
- A package is vulnerable to Exposure of Sensitive Information (filecoin-project/lotus#8204)
- fix: sealing: add flag usage (filecoin-project/lotus#8190)
- Fix the epoch used for gas in the message pool & validation (filecoin-project/lotus#8163)
- fix:sealing:really-do-it flag for abort upgrade (filecoin-project/lotus#8181)
- fix:proving:post check sector handles snap deals replica faults (filecoin-project/lotus#8177)
- fix: client: calculate commps for pieces bigger than 32GB (filecoin-project/lotus#8179)
- fix:cli:Continue instead of return error if no valid value is filled (filecoin-project/lotus#8131)
- fix: limit reification sizes (filecoin-project/lotus#8149)
- fix: state: Allow lotus-miner info to complete without admin permission (filecoin-project/lotus#8057)
- fix:paychan:deflake integration test (filecoin-project/lotus#8088)
- fix: worker: allow enable/disabling ReplicaUpdate tasks (filecoin-project/lotus#8090)
- don't fail reification on missing references (filecoin-project/lotus#8128)
- sealer: fix error message (filecoin-project/lotus#8121)
- don't track peer ids in rcmgr metrics (filecoin-project/lotus#8099)
- temporarily disable reification (filecoin-project/lotus#8132)
- [Describe]: when excute cmd "lotus-bench sealing" without "benchmark-… (filecoin-project/lotus#8173)
Dependency Updates
- deps: update go-libp2p and go-libp2p-resource-manager (filecoin-project/lotus#8289)
- feat(deps): update to graphsync v0.13.0 with 2.0 protocol (filecoin-project/lotus#8273)
- dep: actor: get v7 (filecoin-project/lotus#8194)
- deps: update go-libp2p to v0.18 release (filecoin-project/lotus#8355)
- github.com/filecoin-project/go-data-transfer (v1.14.1 -> v1.15.0):
- github.com/filecoin-project/go-fil-markets (v1.19.2 -> v1.20.1):
- deps: update go-libp2p to v0.18.0-rc5 (filecoin-project/lotus#8169)
Others
- chore: build: backport releases (filecoin-project/lotus#8192)
- feat: build: bump the version to v1.15.1-dev (filecoin-project/lotus#8073)
- makefile: add make jen (filecoin-project/lotus#8122)
- chore: Merge releases into master (filecoin-project/lotus#8156)
- chore: ci: disable publish-packer #8451