From 84896f4790301b1786983bc4312d973414f5c8bc Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Thu, 17 Mar 2022 15:13:01 -0400 Subject: [PATCH 1/3] update the change log for v1.15.1 --- CHANGELOG.md | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 330a14d85..54b30b094 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,113 @@ # Lotus changelog +# 1.15.1-rc1 / 2022-03-16 + +This is the first 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 miannet!! + +## Highlights + +### 🔥🔥🔥 FVM (Experimental) 🔥🔥🔥 +- feat: fvm: FVM integration ([filecoin-project/lotus#8332](https://github.com/filecoin-project/lotus/pull/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](https://github.com/filecoin-project/builtin-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](https://github.com/filecoin-project/lotus/discussions/8334)! + + +### 🌟🌟🌟 Index Provider (Production Ready!) 🌟🌟🌟 +- feat: markets: Integrate index ingest protocol and retrieve by any CID ([filecoin-project/lotus#7313](https://github.com/filecoin-project/lotus/pull/7313)) + +More and more useful data is being stored in Filecoin via deals made by clients to Storage Providers. It is the goal that these content is discoverable when people needs them. To archive that goal, one of the projects [the Bedrock team](https://www.notion.so/pl-strflt/Bedrock-2e956d5d8143432080a1d84435ccf0ff) 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](https://github.com/filecoin-project/storetheindex/blob/main/doc/indexer_ecosys.png) and a detailed write up about can be found [here](https://www.notion.so/pl-strflt/Introducing-Indexer-to-SP-90bf296794174a8281c121d4ce6747a0). + +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](https://lotus.filecoin.io/storage-providers/operate/index-provider/) in lotus docuementation. +- An [one-off migration](https://lotus.filecoin.io/storage-providers/operate/index-provider/#first-time-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](https://lotus.filecoin.io/storage-providers/configure/dagstore/#forcing-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. +- 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](https://github.com/filecoin-project/lotus/discussions/8087). + +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](https://github.com/filecoin-project/lotus/discussions/8341). + - 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. + +## New Features +- feat: market utils: Support unixfsnode in TraverseDag ([filecoin-project/lotus#8168](https://github.com/filecoin-project/lotus/pull/8168)) +- feat: config: enable indexer providing by default ([filecoin-project/lotus#8314](https://github.com/filecoin-project/lotus/pull/8314)) +- feat: api: Make ClientCalcCommP multithreaded ([filecoin-project/lotus#8276](https://github.com/filecoin-project/lotus/pull/8276)) +- feat: config: Persistent subsystem log level config ([filecoin-project/lotus#8283](https://github.com/filecoin-project/lotus/pull/8283)) +- feat: shed: blockstore/vlog to car export cmds ([filecoin-project/lotus#8265](https://github.com/filecoin-project/lotus/pull/8265)) +- feat: shed: ItestD ([filecoin-project/lotus#8290](https://github.com/filecoin-project/lotus/pull/8290)) +- feat: Make add piece idempotent ([filecoin-project/lotus#8160](https://github.com/filecoin-project/lotus/pull/8160)) +- feat: paychmgr: Support paych funding (a.k.a. fast paid retrieval) ([filecoin-project/lotus#7883](https://github.com/filecoin-project/lotus/pull/7883)) +- feat: ci: packer snap ([filecoin-project/lotus#7819](https://github.com/filecoin-project/lotus/pull/7819)) +- feat: #6147: Include worker name in sealing errors ([filecoin-project/lotus#7844](https://github.com/filecoin-project/lotus/pull/7844)) +- Feat: cli: Remove verified data cap ([filecoin-project/lotus#8175](https://github.com/filecoin-project/lotus/pull/8175)) +- feat: gateway: add MsigGetVestingSchedule to gateway api ([filecoin-project/lotus#8104](https://github.com/filecoin-project/lotus/pull/8104)) +- feat: itests: add itests ensemble mocknet getter ([filecoin-project/lotus#8157](https://github.com/filecoin-project/lotus/pull/8157)) +- feat: lotus-miner sectors list --initial-pledge ([filecoin-project/lotus#8098](https://github.com/filecoin-project/lotus/pull/8098)) +- Resource Manager Metrics ([filecoin-project/lotus#8089](https://github.com/filecoin-project/lotus/pull/8089)) +- feat: cli: set current network version from params ([filecoin-project/lotus#8111](https://github.com/filecoin-project/lotus/pull/8111)) +- feat: Snapdeals support in `storage find` CLI ([filecoin-project/lotus#8130](https://github.com/filecoin-project/lotus/pull/8130)) + +## Improvements +- improve resource manager integration ([filecoin-project/lotus#8318](https://github.com/filecoin-project/lotus/pull/8318)) +- add check manual-stateless-deal with interactive deal making ([filecoin-project/lotus#7560](https://github.com/filecoin-project/lotus/pull/7560)) +- test: cli: adding wallet tests ([filecoin-project/lotus#8079](https://github.com/filecoin-project/lotus/pull/8079)) +- test: chain: unit tests for the syncer & sync manager ([filecoin-project/lotus#8072](https://github.com/filecoin-project/lotus/pull/8072)) +- test: cli: unit tests for sync related commands ([filecoin-project/lotus#8080](https://github.com/filecoin-project/lotus/pull/8080)) +- misc: wallet: wallet tests with annotations for system test matrix ([filecoin-project/lotus#7928](https://github.com/filecoin-project/lotus/pull/7928)) +- test: Cli: add mempool tests ([filecoin-project/lotus#8162](https://github.com/filecoin-project/lotus/pull/8162)) +- add a state-tree diff command to lotus shed ([filecoin-project/lotus#8081](https://github.com/filecoin-project/lotus/pull/8081)) +- test: mempool: Add unit and integration tests ([filecoin-project/lotus#8017](https://github.com/filecoin-project/lotus/pull/8017)) +- splistore cold object reification redux ([filecoin-project/lotus#8029](https://github.com/filecoin-project/lotus/pull/8029)) +- test: cli: chain category unit tests ([filecoin-project/lotus#8048](https://github.com/filecoin-project/lotus/pull/8048)) + +## Bug Fixes +- fix: storage cli: Output primary sector status correctly ([filecoin-project/lotus#8320](https://github.com/filecoin-project/lotus/pull/8320)) +- fix: sealing fsm: Handle inputLk correctly ([filecoin-project/lotus#8291](https://github.com/filecoin-project/lotus/pull/8291)) +- fix: piece provider: Don't log CIDs as binary ([filecoin-project/lotus#8287](https://github.com/filecoin-project/lotus/pull/8287)) +- fix:sealing:Log instead of error normal shutdown of state machine ([filecoin-project/lotus#8232](https://github.com/filecoin-project/lotus/pull/8232)) +- fix:sealing:Handle finalize replica update failures in fsm ([filecoin-project/lotus#8229](https://github.com/filecoin-project/lotus/pull/8229)) +- ci: appimage: re-install appimage CI ([filecoin-project/lotus#7943](https://github.com/filecoin-project/lotus/pull/7943)) +- fix: sealing: PRU insufficient collateral ([filecoin-project/lotus#8219](https://github.com/filecoin-project/lotus/pull/8219)) +- fix: shed: diff command ([filecoin-project/lotus#8202](https://github.com/filecoin-project/lotus/pull/8202)) +- Make `--lite` option visible in the lotus daemon help text ([filecoin-project/lotus#8207](https://github.com/filecoin-project/lotus/pull/8207)) +- fix:sealing:Less verbose sector manager logging ([filecoin-project/lotus#8213](https://github.com/filecoin-project/lotus/pull/8213)) +- avoid panic ([filecoin-project/lotus#8205](https://github.com/filecoin-project/lotus/pull/8205)) +- A package is vulnerable to Exposure of Sensitive Information ([filecoin-project/lotus#8204](https://github.com/filecoin-project/lotus/pull/8204)) +- fix: sealing: add flag usage ([filecoin-project/lotus#8190](https://github.com/filecoin-project/lotus/pull/8190)) +- Fix the epoch used for gas in the message pool & validation ([filecoin-project/lotus#8163](https://github.com/filecoin-project/lotus/pull/8163)) +- fix:sealing:really-do-it flag for abort upgrade ([filecoin-project/lotus#8181](https://github.com/filecoin-project/lotus/pull/8181)) +- fix:proving:post check sector handles snap deals replica faults ([filecoin-project/lotus#8177](https://github.com/filecoin-project/lotus/pull/8177)) +- fix: client: calculate commps for pieces bigger than 32GB ([filecoin-project/lotus#8179](https://github.com/filecoin-project/lotus/pull/8179)) +- fix:cli:Continue instead of return error if no valid value is filled ([filecoin-project/lotus#8131](https://github.com/filecoin-project/lotus/pull/8131)) +- fix: limit reification sizes ([filecoin-project/lotus#8149](https://github.com/filecoin-project/lotus/pull/8149)) +- fix: state: Allow lotus-miner info to complete without admin permission ([filecoin-project/lotus#8057](https://github.com/filecoin-project/lotus/pull/8057)) +- fix:paychan:deflake integration test ([filecoin-project/lotus#8088](https://github.com/filecoin-project/lotus/pull/8088)) +- fix: worker: allow enable/disabling ReplicaUpdate tasks ([filecoin-project/lotus#8090](https://github.com/filecoin-project/lotus/pull/8090)) +- don't fail reification on missing references ([filecoin-project/lotus#8128](https://github.com/filecoin-project/lotus/pull/8128)) +- sealer: fix error message ([filecoin-project/lotus#8121](https://github.com/filecoin-project/lotus/pull/8121)) +- don't track peer ids in rcmgr metrics ([filecoin-project/lotus#8099](https://github.com/filecoin-project/lotus/pull/8099)) +- temporarily disable reification ([filecoin-project/lotus#8132](https://github.com/filecoin-project/lotus/pull/8132)) +- [Describe]: when excute cmd "lotus-bench sealing" without "benchmark-… ([filecoin-project/lotus#8173](https://github.com/filecoin-project/lotus/pull/8173)) + +## Dependency Updates +- deps: update go-libp2p and go-libp2p-resource-manager ([filecoin-project/lotus#8289](https://github.com/filecoin-project/lotus/pull/8289)) +- feat(deps): update to graphsync v0.13.0 with 2.0 protocol ([filecoin-project/lotus#8273](https://github.com/filecoin-project/lotus/pull/8273)) +- dep: actor: get v7 ([filecoin-project/lotus#8194](https://github.com/filecoin-project/lotus/pull/8194)) +- 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](https://github.com/filecoin-project/lotus/pull/8169)) + +## Others +- chore: build: backport releases ([filecoin-project/lotus#8192](https://github.com/filecoin-project/lotus/pull/8192)) +- feat: build: bump the version to v1.15.1-dev ([filecoin-project/lotus#8073](https://github.com/filecoin-project/lotus/pull/8073)) +- makefile: add make jen ([filecoin-project/lotus#8122](https://github.com/filecoin-project/lotus/pull/8122)) +- chore: Merge releases into master ([filecoin-project/lotus#8156](https://github.com/filecoin-project/lotus/pull/8156)) + # 1.15.0 / 2022-03-09 This is an optional release with retrieval improvements(client side), SP ux with unsealing, snap deals and regular deal making and many other new features, improvements and bug fixes. From 3c252e1d87be73c3c715a996a2c915e3295d97f8 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Thu, 17 Mar 2022 15:30:02 -0400 Subject: [PATCH 2/3] bump the version to v1.15.1-rc1 --- build/openrpc/full.json.gz | Bin 27023 -> 27023 bytes build/openrpc/miner.json.gz | Bin 13154 -> 13154 bytes build/openrpc/worker.json.gz | Bin 3961 -> 3961 bytes build/version.go | 2 +- documentation/en/cli-lotus-miner.md | 2 +- documentation/en/cli-lotus-worker.md | 2 +- documentation/en/cli-lotus.md | 2 +- go.mod | 2 +- go.sum | 3 ++- 9 files changed, 7 insertions(+), 6 deletions(-) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 2261c102e43d406b7c5ee9f32fe6e6669891ea72..16040bf9c8ceb98dd04952becea566f5dcbf39f5 100644 GIT binary patch delta 26981 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 delta 26942 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 E0HkXo;s5{u diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index 2ef745e363f046bd79be12f9150368b0af11e933..83c477de7de10df83eb4a5a8547ff4e60d3fdd9b 100644 GIT binary patch delta 23 fcmaEq_9$&a2lI|J|Bc<}jX0c+i(U|IV`2aRiiHX3 delta 23 ecmaEq_9$&a2Xn*=$Bo_RjW~F^EUiV`m>2+s^9dOM diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 465501bc648c999ee83526a899f95e4e142a1eb1..74c8e394b6487c15670c107748f14c49f7c68a34 100644 GIT binary patch delta 23 fcmew<_fu{{GqeBuLmS&(^Kop57T?15jDZ0FihK$` delta 23 fcmew<_fu{{Gc)u3!yDUP^KsNLGzqaiV_*OPfE5WI diff --git a/build/version.go b/build/version.go index c80c1df40..965ebb662 100644 --- a/build/version.go +++ b/build/version.go @@ -37,7 +37,7 @@ func BuildTypeString() string { } // BuildVersion is the local build version -const BuildVersion = "1.15.1-dev" +const BuildVersion = "1.15.1-rc1" func UserVersion() string { if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" { diff --git a/documentation/en/cli-lotus-miner.md b/documentation/en/cli-lotus-miner.md index 382fe4265..688964f87 100644 --- a/documentation/en/cli-lotus-miner.md +++ b/documentation/en/cli-lotus-miner.md @@ -7,7 +7,7 @@ USAGE: lotus-miner [global options] command [command options] [arguments...] VERSION: - 1.15.1-dev + 1.15.1-rc1 COMMANDS: init Initialize a lotus miner repo diff --git a/documentation/en/cli-lotus-worker.md b/documentation/en/cli-lotus-worker.md index f9ca24123..26f8f2420 100644 --- a/documentation/en/cli-lotus-worker.md +++ b/documentation/en/cli-lotus-worker.md @@ -7,7 +7,7 @@ USAGE: lotus-worker [global options] command [command options] [arguments...] VERSION: - 1.15.1-dev + 1.15.1-rc1 COMMANDS: run Start lotus worker diff --git a/documentation/en/cli-lotus.md b/documentation/en/cli-lotus.md index a9697f3af..5f50d6d4f 100644 --- a/documentation/en/cli-lotus.md +++ b/documentation/en/cli-lotus.md @@ -7,7 +7,7 @@ USAGE: lotus [global options] command [command options] [arguments...] VERSION: - 1.15.1-dev + 1.15.1-rc1 COMMANDS: daemon Start a lotus daemon process diff --git a/go.mod b/go.mod index 03450afdb..3cf616d89 100644 --- a/go.mod +++ b/go.mod @@ -105,7 +105,7 @@ require ( github.com/ipfs/interface-go-ipfs-core v0.5.2 github.com/ipld/go-car v0.3.3 github.com/ipld/go-car/v2 v2.1.1 - github.com/ipld/go-codec-dagpb v1.3.0 + github.com/ipld/go-codec-dagpb v1.3.2 github.com/ipld/go-ipld-prime v0.16.0 github.com/ipld/go-ipld-selector-text-lite v0.0.1 github.com/jonboulle/clockwork v0.2.2 // indirect diff --git a/go.sum b/go.sum index 8bbe3340a..73ed47440 100644 --- a/go.sum +++ b/go.sum @@ -911,8 +911,9 @@ github.com/ipld/go-car v0.3.3/go.mod h1:/wkKF4908ULT4dFIFIUZYcfjAnj+KFnJvlh8Hsz1 github.com/ipld/go-car/v2 v2.1.1 h1:saaKz4nC0AdfCGHLYKeXLGn8ivoPC54fyS55uyOLKwA= github.com/ipld/go-car/v2 v2.1.1/go.mod h1:+2Yvf0Z3wzkv7NeI69i8tuZ+ft7jyjPYIWZzeVNeFcI= github.com/ipld/go-codec-dagpb v1.2.0/go.mod h1:6nBN7X7h8EOsEejZGqC7tej5drsdBAXbMHyBT+Fne5s= -github.com/ipld/go-codec-dagpb v1.3.0 h1:czTcaoAuNNyIYWs6Qe01DJ+sEX7B+1Z0LcXjSatMGe8= github.com/ipld/go-codec-dagpb v1.3.0/go.mod h1:ga4JTU3abYApDC3pZ00BC2RSvC3qfBb9MSJkMLSwnhA= +github.com/ipld/go-codec-dagpb v1.3.2 h1:MZQUIjanHXXfDuYmtWYT8nFbqfFsZuyHClj6VDmSXr4= +github.com/ipld/go-codec-dagpb v1.3.2/go.mod h1:ga4JTU3abYApDC3pZ00BC2RSvC3qfBb9MSJkMLSwnhA= github.com/ipld/go-ipld-prime v0.0.2-0.20191108012745-28a82f04c785/go.mod h1:bDDSvVz7vaK12FNvMeRYnpRFkSUPNQOiCYQezMD/P3w= github.com/ipld/go-ipld-prime v0.9.0/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= From 7244ff9e1495fef16cb3d9ab95f574dfedfe48e4 Mon Sep 17 00:00:00 2001 From: Jiaying Wang <42981373+jennijuju@users.noreply.github.com> Date: Thu, 17 Mar 2022 17:37:13 -0400 Subject: [PATCH 3/3] Update CHANGELOG.md --- CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54b30b094..7dac5d3ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ # 1.15.1-rc1 / 2022-03-16 This is the first 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 miannet!! +More importantly, node operator can now enable the FVM(experimental) to sync mainnet!! ## Highlights @@ -15,7 +15,7 @@ The lotus team is excited to announce the launch of experimental non-programmabl ### 🌟🌟🌟 Index Provider (Production Ready!) 🌟🌟🌟 - feat: markets: Integrate index ingest protocol and retrieve by any CID ([filecoin-project/lotus#7313](https://github.com/filecoin-project/lotus/pull/7313)) -More and more useful data is being stored in Filecoin via deals made by clients to Storage Providers. It is the goal that these content is discoverable when people needs them. To archive that goal, one of the projects [the Bedrock team](https://www.notion.so/pl-strflt/Bedrock-2e956d5d8143432080a1d84435ccf0ff) 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](https://github.com/filecoin-project/storetheindex/blob/main/doc/indexer_ecosys.png) and a detailed write up about can be found [here](https://www.notion.so/pl-strflt/Introducing-Indexer-to-SP-90bf296794174a8281c121d4ce6747a0). +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](https://www.notion.so/pl-strflt/Bedrock-2e956d5d8143432080a1d84435ccf0ff) 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](https://github.com/filecoin-project/storetheindex/blob/main/doc/indexer_ecosys.png) and a detailed write up about can be found [here](https://www.notion.so/pl-strflt/Introducing-Indexer-to-SP-90bf296794174a8281c121d4ce6747a0). 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](https://lotus.filecoin.io/storage-providers/operate/index-provider/) in lotus docuementation. @@ -32,6 +32,7 @@ We recommend all Storage Providers that are serving deals in the Filecoin networ ### ❗️❗️❗️ 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](https://lotus.filecoin.io/storage-providers/operate/index-provider/) to perform the migration. ## New Features - feat: market utils: Support unixfsnode in TraverseDag ([filecoin-project/lotus#8168](https://github.com/filecoin-project/lotus/pull/8168))