From 06761db7bf02b3afe7948df3cb6d0b89da9ad220 Mon Sep 17 00:00:00 2001 From: parthshah1 Date: Sat, 20 Apr 2024 00:58:17 -0700 Subject: [PATCH 01/22] Fixing dead links (#11907) --- scripts/snap-lotus-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/snap-lotus-entrypoint.sh b/scripts/snap-lotus-entrypoint.sh index a3ab04c5b34..68498da4a71 100755 --- a/scripts/snap-lotus-entrypoint.sh +++ b/scripts/snap-lotus-entrypoint.sh @@ -1,4 +1,4 @@ -LOTUS_IMPORT_SNAPSHOT="https://fil-chain-snapshots-fallback.s3.amazonaws.com/mainnet/minimal_finality_stateroots_latest.car" +LOTUS_IMPORT_SNAPSHOT="https://forest-archive.chainsafe.dev/latest/mainnet/" LOTUS_BINARY=$(dirname "$0")/lotus GATE="$LOTUS_PATH"/date_initialized if [ ! -f "$GATE" ]; then From 70e0767acf0b20a66123bda65c20a5c87309643e Mon Sep 17 00:00:00 2001 From: Piotr Galar Date: Mon, 22 Apr 2024 11:50:55 +0200 Subject: [PATCH 02/22] ci: ci: create gh workflow that updates sorted pr checks (#11861) * ci: create gh workflow that updates sorted pr checks * ci: use grouped_by_result template for pr checks sticky comment * chore: apply pr review suggestion --- .github/workflows/sorted-pr-checks.yml | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .github/workflows/sorted-pr-checks.yml diff --git a/.github/workflows/sorted-pr-checks.yml b/.github/workflows/sorted-pr-checks.yml new file mode 100644 index 00000000000..0c2b0ee8a6f --- /dev/null +++ b/.github/workflows/sorted-pr-checks.yml @@ -0,0 +1,32 @@ +name: Comment with sorted PR checks + +on: + workflow_dispatch: + inputs: + pull_number: + description: 'Pull request number' + required: true + workflow_run: + workflows: + - Build + - Check + - CodeQL + - Test + types: + - requested + - completed + +permissions: + pull-requests: write + +concurrency: + group: ${{ github.workflow }}-${{ github.event.inputs.pull_number || github.event.workflow_run.pull_requests[0].number || 'unknown' }} + cancel-in-progress: true + +jobs: + comment: + if: github.event.inputs.pull_number || github.event.workflow_run.pull_requests[0] + uses: ipdxco/sorted-pr-checks/.github/workflows/comment.yml@v1 + with: + pull_number: ${{ github.event.inputs.pull_number || github.event.workflow_run.pull_requests[0].number }} + template: unsuccessful_only From 95b6483ad9cfe3e14dc5f6fa02552ee41f8776ba Mon Sep 17 00:00:00 2001 From: ZenGround0 <5515260+ZenGround0@users.noreply.github.com> Date: Mon, 22 Apr 2024 20:01:26 -0400 Subject: [PATCH 03/22] Avoid cfg lookup on chain remove since unenabled splitstore delete is noop anyway (#11916) Co-authored-by: zenground0 --- cmd/lotus/daemon.go | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/cmd/lotus/daemon.go b/cmd/lotus/daemon.go index aeb70343264..369938020f5 100644 --- a/cmd/lotus/daemon.go +++ b/cmd/lotus/daemon.go @@ -661,22 +661,10 @@ func removeExistingChain(cctx *cli.Context, lr repo.Repo) error { } }() - cfg, err := lockedRepo.Config() + log.Info("removing splitstore directory...") + err = deleteSplitstoreDir(lockedRepo) if err != nil { - return xerrors.Errorf("error getting config: %w", err) - } - - fullNodeConfig, ok := cfg.(*config.FullNode) - if !ok { - return xerrors.Errorf("wrong config type: %T", cfg) - } - - if fullNodeConfig.Chainstore.EnableSplitstore { - log.Info("removing splitstore directory...") - err = deleteSplitstoreDir(lockedRepo) - if err != nil { - return xerrors.Errorf("error removing splitstore directory: %w", err) - } + return xerrors.Errorf("error removing splitstore directory: %w", err) } // Get the base repo path From 772f6a38c5a691c13b180552d52cd11f611495cd Mon Sep 17 00:00:00 2001 From: forcedebug <167591285+forcedebug@users.noreply.github.com> Date: Tue, 23 Apr 2024 08:56:43 +0800 Subject: [PATCH 04/22] Fix mismatched method names in comments (#11913) Signed-off-by: forcedebug --- cmd/lotus-sim/simulation/mock/mock.go | 2 +- cmd/lotus-sim/simulation/stages/commit_queue.go | 2 +- cmd/lotus-sim/simulation/stages/precommit_stage.go | 2 +- itests/eth_hash_lookup_test.go | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/lotus-sim/simulation/mock/mock.go b/cmd/lotus-sim/simulation/mock/mock.go index 4699b2aa665..002524070cc 100644 --- a/cmd/lotus-sim/simulation/mock/mock.go +++ b/cmd/lotus-sim/simulation/mock/mock.go @@ -149,7 +149,7 @@ func MockWindowPoStProof(proofType abi.RegisteredPoStProof, minerAddr address.Ad return proof, nil } -// makeCommR generates a "fake" but valid CommR for a sector. It is unique for the given sector/miner. +// MockCommR generates a "fake" but valid CommR for a sector. It is unique for the given sector/miner. func MockCommR(minerAddr address.Address, sno abi.SectorNumber) cid.Cid { return tutils.MakeCID(fmt.Sprintf("%s:%d", minerAddr, sno), &miner5.SealedCIDPrefix) } diff --git a/cmd/lotus-sim/simulation/stages/commit_queue.go b/cmd/lotus-sim/simulation/stages/commit_queue.go index 60cbfa4badf..f68dc67edfa 100644 --- a/cmd/lotus-sim/simulation/stages/commit_queue.go +++ b/cmd/lotus-sim/simulation/stages/commit_queue.go @@ -165,7 +165,7 @@ func (q *commitQueue) advanceEpoch(epoch abi.ChainEpoch) { }) } -// enquueProveCommit enqueues prove-commit for the given pre-commit for the given miner. +// enqueueProveCommit enqueues prove-commit for the given pre-commit for the given miner. func (q *commitQueue) enqueueProveCommit(addr address.Address, preCommitEpoch abi.ChainEpoch, info minertypes.SectorPreCommitInfo) error { // Compute the epoch at which we can start trying to commit. preCommitDelay := policy.GetPreCommitChallengeDelay() diff --git a/cmd/lotus-sim/simulation/stages/precommit_stage.go b/cmd/lotus-sim/simulation/stages/precommit_stage.go index 1a89413d72c..a47ec2a6e6c 100644 --- a/cmd/lotus-sim/simulation/stages/precommit_stage.go +++ b/cmd/lotus-sim/simulation/stages/precommit_stage.go @@ -54,7 +54,7 @@ func (*PreCommitStage) Name() string { return "pre-commit" } -// packPreCommits packs pre-commit messages until the block is full. +// PackMessages packs pre-commit messages until the block is full. func (stage *PreCommitStage) PackMessages(ctx context.Context, bb *blockbuilder.BlockBuilder) (_err error) { if !stage.initialized { if err := stage.load(ctx, bb); err != nil { diff --git a/itests/eth_hash_lookup_test.go b/itests/eth_hash_lookup_test.go index 0a2c11d3cf1..5edd61d4e8f 100644 --- a/itests/eth_hash_lookup_test.go +++ b/itests/eth_hash_lookup_test.go @@ -296,7 +296,7 @@ func TestTransactionHashLookupSecpFilecoinMessage(t *testing.T) { require.Equal(t, ethtypes.EthBytes(expected), chainTx.Input) } -// TestTransactionHashLookupSecpFilecoinMessage tests to see if lotus can find a Secp Filecoin Message using the transaction hash +// TestTransactionHashLookupNonexistentMessage tests to see if lotus can find a Secp Filecoin Message using the transaction hash func TestTransactionHashLookupNonexistentMessage(t *testing.T) { kit.QuietMiningLogs() From d23ea7665b0e01be271238d4bbc9e90193874c1f Mon Sep 17 00:00:00 2001 From: Jiaying Wang <42981373+jennijuju@users.noreply.github.com> Date: Tue, 23 Apr 2024 23:04:32 -0400 Subject: [PATCH 05/22] release: v1.26.3 (#11908) (#11915) (#11922) * deps: update dependencies to address migration memory bloat to address memory concerns during a heavy migration Ref: https://github.com/filecoin-project/go-state-types/pull/260 Ref: https://github.com/whyrusleeping/cbor-gen/pull/96 Ref: https://github.com/filecoin-project/go-amt-ipld/pull/90 * release: prep v1.26.3 patch Prep v1.26.3 patch release: - Update changelog, version and make gen + make docsgen-cli * deps: update cbor-gen to tagged version deps: update cbor-gen to tagged version * deps: update go-state-types to tagged version deps: update go-state-types to tagged version v0.13.2 * chore: deps: update go-state-types to v0.13.3 Fixes a panic when we have fewer than 1k proposals. --------- Co-authored-by: Phi-rjan Co-authored-by: Rod Vagg Co-authored-by: Steven Allen --- CHANGELOG.md | 6 + build/openrpc/full.json.gz | Bin 35935 -> 35935 bytes build/openrpc/gateway.json.gz | Bin 12258 -> 12258 bytes build/openrpc/miner.json.gz | Bin 16475 -> 16475 bytes build/openrpc/worker.json.gz | Bin 6049 -> 6048 bytes documentation/en/cli-lotus-provider.md | 410 +++++++++++++++++++++++++ go.mod | 6 +- go.sum | 12 +- 8 files changed, 425 insertions(+), 9 deletions(-) create mode 100644 documentation/en/cli-lotus-provider.md diff --git a/CHANGELOG.md b/CHANGELOG.md index e7dba87a5eb..1c14c53444b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ ## Improvements +# v1.26.3 / 2024-04-22 + +**This is a patch release that addresses high memory load concerns for the Lotus daemon in the coming network migration for network version 22, scheduled on epoch `3855360 - 2024-04-24 - 14:00:00Z`.** + +If your Lotus daemon is running on a machine with less memory and swap than 160GB, you should upgrade to this patch release to ensure you do not encounter any Out-Of-Memory issues during the pre-migration. + # v1.26.2 / 2024-04-08 **This is a mandatory patch release for the Filecoin network version 22 mainnet upgrade, for all node operators.** diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index baaf830238c024f8118746efa5064f6a537e08a8..08dda7784c666f634566edc12e0a9ce7f8908c37 100644 GIT binary patch delta 23 fcmcaVgX#VZrU@O4i#K+j>*i=sR+W1w%gz7*frbe+ delta 23 fcmcaVgX#VZrU@O4hc|Yf>*gr`|1##GEIR`Lj?fD# diff --git a/build/openrpc/gateway.json.gz b/build/openrpc/gateway.json.gz index 9c2dfbcf2a23bf48df7a05d645fc7c8b0187be02..9f5dc38ee6814d310fb0e17310fa4f2428409c80 100644 GIT binary patch delta 22 ecmaD9|0sS!GgEfL#@0}Mj&IX;bj8kLVgLYrkO}Sp delta 22 ecmaD9|0sS!Gt=t)jjf^j9FCT&?#IqyVgLYpLL diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index ba135c01577aa0bd16db70857c2b4c172bf43fc0..5fbd42c3db8b33d8058ebe13972b3c96cd51f997 100644 GIT binary patch delta 23 ecmccJz<9fXaY75D^2XM4_8fj;)wb{5nHd0el?c%Q delta 23 fcmccJz<9fXaY75D^TyV5_8cuo3g5hUXJ!BZe>Ms_ diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 58231030637b043f21a2a1a365b6c916da936cc7..0f3cb11c7a3140dc8227754c0ab7a27965626b96 100644 GIT binary patch literal 6048 zcmV;R7hmWfiwFP!00000|Lk3TbECGp|0){Ye>OYB#(>{4vww86ZEx<`?a4`+cFsvM zXJwFW8W2>7B;Jg_`yBzc!GHrcB-*T|Gus&S^5}W}NqQunpyy*keG{I*UPtQ;paN|& z_29`9WHxg!Jb|A*76#zr{1p6jeg+kIk7;0gB(5>&=y0h(7qhu%1@Pqh2@>S;YQNYH zHa(kkezL4{8=Dv^(87U9ZJ))}zkdBX^KQsABqn$lfcJlT^bXTYMnjVwfmOA4z6wl_ zF#O0mr}6(4;P*hlJZevoi946rWFEc1Qw8`MxV}XbyK_Z+WLY?F;?n+x72xZj?2VCX z?Gs|?2)x@oI7NiryFv^>?sI3XM|x&kh2~k`0xP`+lh> zJb_SwKBCBtc^OhJkICZL_X0cOeeyaZFTa-)Pyvg#y9vxWb`e(>{D@rN!Eu{spZKFM zHo+90^i)+<;BTQj;lIX91)fvSoBqD=F+3S9Zxx6vDlp-r&`PZ$j` z7l%)=i5Pzp4Q{Dy~=rG=PLfy7| z+Cl5OKovg_`;DExfEzSahw*>M1^=x6gL`?3M4g{1Deto$!bOi~af7{q0$rP=ekFxt zEnh0Bv5V)e_I5w{XWUleIQ7Xh3po9&&F0|*Q0#gP1IH$JP=O(J;0c^F<_9O;?kpr?M>@!uIHotgJPpNGAn&c~F;9^9}_ zZL22qNNSZKk1`aY9fl&3UfTi@n?bEGL@{>QbP_X#cNN@_h9Jdv>ALfgR=RHKx~1!G z#C4C164&iL5XVDSEQ`d+M3EP>%L*w_kkrOvDMS>;7}( zwiXGB7?Yk@%1Nalwl2b?k{dxK0rA#T!Isy7$WVxzS5jXlY^>1ezFI56 zkOV_-4GfL@#bD@Xf+h~GJC99j6~LY&@Gb^7<#;5iTns{Dj@7^%8&VDi7e#iT1gTev zTweNNgWf40<)SH**h|QD7>1~*w%!u({JPX$Z(h;$3VdoVm z=zK?%I!yjxPIFqU_Bb?`vo#c>HDScm%e{5->;90egChRV2W7c z@cw}pzfjNJV^_Ykox015rfqdjZL4NTW9Q;wqSw!_6-Guv z7&x;qVfNH6ST{ViEkJqq0Va$)=m0y@~dzfWRN|*$)LEaOzpu1n(Z^wmAnjv1~p>-iI4H%r^PkV;`A!*jo3(nRNsZu>b;J zc&RxG=AG@ruK*aJ~f`cFf2R4LV zL`Gc&7;NfPLIm4g?1c?74BXyX%)gg z)$eTI=VQ4p1-G{~5o?y7eJWP7x%Akcpo=X#;?2Y+h%SC6re|?;=Dst)10&^8c4f`3 z`LSQ(?u*TSv(E9Y0pUUKSs+YoGCK?juUdF1C|n4EuWxqN$|;m0;&#o<(uJzb$^O?1*t#pOrrdVUqe zfBhQ$b)6;PcB?Dj3t0DF?LI_vPk&{$YBHJmf?bafRa1?T0>7Zg?1Nv=udbNw*x%xF zoF~1g%sHYwN;-Dn7Cid({0g3^3jBxyT-3v-mkR7{kuuUpqk)>GX8o)| zg3|ruXcCD(LNZ9(BC4kj^`X%lX-0;w-k_%rdfHGQG)mg0H?^2NeTzI@(|VfLH-?&; zrBBt>;aKbSd#X{1!sB8R2RRaTL+_7=`bZy?aM0KyabOsl(O1WYu|=Xb8X04?HyVx9 zW=R~3hP|;d97NJ7AW>`?i!WmFCEORs%?$+fazmjFU?jW&j0HD>?%RMzFm>NXJ3^`ZQi(1D z;7|uymLJ^$zdy`TMT0p95Yz_DX@x&RGN|er!49QAfV8dNo<%%{Ha5nCp*9|5s7pV7 zLF%^S+@sgVK2-^NA?$NFe}rUEJ0Y?vX?3xWSkyJJHqah*LJL-C zxe6`T=CIGf4y|eI(}X{32m3T6y9U;N+9R%km7lhV%VQr+Zf~`QeSX~SEwQ%7tLOi$ z=~Eltd2THKM^g>8r;d$5e<1UJ_R0TwH4%$1VYvnNBjo?QngLYJ|9LF~NP!~@F=X0S z5jGNPnQa>kh((;(tP`7e+tF4m>V)2L$zds>s1sVSLd#WXv2J50p@`c?Q$i894XcDA z?z`G#6NtDJmYPQ2H7Y<-J=GZXhl8y}vE*5UD`F*!0%B1k7;^;UPJZp-RmsV3y1Xhm z`E8chBu6Y+i6ttrB(;rMUYD9}kn+0JkkDs> zc=kR39>`z6IQH3OI2{8$`fSr1X<%sCH4uj<#KteKxA3bNA!_% zPCXw}X5#>!Opy~{1^TH+>F?Y>LALNW-@Av)f=}JA%S=4a!HDoenb$RXj=yvN1ewho z-Xsa#38qk4b&>pDM!btk+6=ovA)(0wL@8SE-VkJHt4JQfDsiQ`SW zE(#c?UF6$cpL&mr|IRS!%)I~kJk&-yAJY?zeGU92X{GbUyT_NzqiBYqvPIa}uU}{0 z4Vi|-1n&ay{!fqIVS34EXtE=as`<`Wf$0&3A6e%#{=WkJ9tfC6?I|*G=Q7&=zra%k z_*(8cr{?#CkB`8+&8t)7IA@;}fGPFp5qP>GH_V=bpmRoIZl-AmA3gwLJ8`KSMllO1 z0q+TZ$hCN+fS)P-&109L?|YPCi`QB5f0Am&UA*&EJ}5qbqZ_ikAz#0Kg$fKp*F{`6 zAylA`C~{*4g*5Whi(}slB4@CA9l(?8wH*9jj_Uyj0*h^}Oltky4LpMya^v8Wj>Es+jkR#C>c#GpHI3)HUjjytHTK zwNmDCq2$@^-HWeO^ml^mrCG*c&L&wMpvNHu~9&T|A3q&Eqi|Xv3*7L47oW3j7n>vpIt&hNi&Jo{5~Oqt#3V z+#@ICe)klS%V@zl)@J^bd3^Z%_wx2uSviO6dNZa~vqjUeO(#WfW0#bhH>Ji<@OCxY z{Q_GmO2nS&yEb%P?Uxuj^-LTDmpBMwovvl^naahcABMKoxw_g7MY9dixrCE~&H_BlF-gkZ5I^n@1PoCY+>ir3 z$$HQ^@uc58?=7mKg^YRcgSB$t>b6S!e;a1j8o#Mq*H>S28E(T$U z4ej25X$+LWs@js#rDOz^j3Ff>l4RuSl3ZPSW2;NLHmr(<^8vgr8rB*{!wT^Gsk%vD ze;{Hz4vO$ia4=xjUJfv81%R0kQG#YcY+r)r9~=Nk(EJ@pMuKKhCDY##eTss2wfzLyKXb>9|%&yP|jPYGtOA^`TBHdoCW_~&#QV8$h-84A3#zv1}r{df0Q zEmmQB+~14t%gX>O1MFK1u*SG7z`EXj-F)P@Qdu}f6FUhBXP=JZ@K_ujc_YO^u}<(y zNa0-<$GcVDau@uQ%`vT&VzDa#rpH;)+DmM_p4ql*0X6l#$XEUrI!;0QNAxf?*IlQ6 zIL>!&Tm!YtxKgXCwQVd_w?1;^%6V>M6Q7Z(R~xscx^54(X2&Nns~Gk#7-r4raaF{+ z!l=5Yz^L+R%;YAPpY}(+X-al3^yRWsB?gulSYqIV!}PFM9HuWZa!#X9P}WVfOx3I# zqGR-koQo(cnBX9Yc9;3%C`KZa+4neC!q|@OTYJxOC#SYmcgHz3l(s^CmRoX%SqA@| z!9Q;y)iT#VK79DlPGXtih1(qG4iNpJrH{AUoH{2Oo$qjdxnEgy5ZK!QGtBPfSapHN-jzb5V1`a)V zkRfHq;e$TZQjgGU`WS1TD6*U%JdSY691&k|I&8NK8loXdI0 zEbpOqq)Dn3hMICSNopNzB%9ug&Et1!&t{l{ASrlobok-)#V9#Bot%35$+DuGkL#*U zws!gSoZ4izOOdke9IQ_{vdTSgWAo@}HL((+$lQ(Hb#@Ch?y&VMRk zN+q>kSFh<6w`w<}&1q^{xn2H;)1G0;dAtn64{(dA1`hR%siqoLC+Q#Gw1$t$jJqdV3rN?NYBa*?IK6;E11XO7e5<*KY{R{BE6 z3G7;kp{|eEJX*Ni@sYfS(vC$nhH+WyXsi(z*utiR=pj~-ZKKTTzfa3N+NXMMIijfb zhT=eu2vV7Xydgku;v z-FvlbM!St&O+vCmG`v@mCBbD9F9GkN;Bm#q^gC{@3H4qRCbj#A&~B|{|8pgix*q^s z*V{4G$O)dq=+I@LKmXqbQ!0 z>?~hpcCxZ7uB9u}I(b??GX>e1q42hI2l{%+HfVfoG)ix+X+5c$`)AHw5g%C=wmvQx zJ|h->Twg%3dJ}bUX@A4f#S?{x1NwV@5iB)=w({<>Op@14$OOEK33xffc>conIvFA9 z?@OzOs*j9)zcT&o-4Z!NZgC`96T`?~8u8{%YveCrke>yR-_nxFsxn!%F~Dh*bL1?;&|p=07AlS2e3J&7$AxPiIX)0Ktn>J6i=Du aQBSD`W4K)2F8@CO0RR7_KxV9MSOEZJF2+Ov literal 6049 zcmZvgRa6uVw}uHpYCu9@U|aHq)WOPI;9&V29TDL?v`#5kO8DiT2f{PhDN$W z>U^jEf3365zS>uNt#|F4=Xt@gco_dRkNYM;o+T~tM+glnSWvWokh;sp_HoA+v5ag& zq@?g4s;Vr&}%hiz! z@-OyWRrk^$r?&7G*w+KkkDNpT_EsyF{p*?+^=4gaC|VKx3Y_H|^nC$Wd*6O?Q}>#J zx$Z$;IreBNNb+?4{dq9Jj}Gmbk%a%%ZI8?tX+z~#j5&$1&}y%0q(3Xu5?{i?HS(qg zv!3wNa%RlD#EXQ4?)LF8?F}Kj0{#%7=WkL!c+s0&)sPjD5)j{~+zY&(D3TB|R)|L* za0{~pEj~b!wUxks%xBfrcE@`xmf`LcE246u4&^Mr_s!>uXz1Y*Q zcq^GXNow3pjwi75B65rLH8#rzk0~giPF;F=s9yW@R0N2*+2GesyOO;sOt$+GJdN~p zo89`&da^@Ul-ZM#P`5{O$C;TpP(Q5|wms&}+VxtDNIi1Y7{G`i#+R88_7oozB0W(3 zylw^Xk5Q;j=g^6cS=`}^$D3v#!8f=!bx{obvF~x;PxlzXNjwu)HPwAl6@e(l1wM!} z5Fw7kn=lC7{fLaCV_8?x=}Ypa^75uQRc6Yz3v?)MS62Z=p@ip5e34$Rq^%eym{`Vr z9j0?_&wrVS%fuDQUAX)3iR*(lCDs+)Sgchih9Sg#NDI^6?bN0kOGna|sl|WvC{D4X zVq2_sTTnB^MhiGUuS17j_s?;93yUP8A4Df^>@L8_QSJWSJ00Z@1sBge&;2L`7XLW9 zsoAgTLxp~wmZnp;2QE9fUZn)FI5B_HE`V}G&2*7T5Dtc{wvF<*;dO@55M^SkqvJd$ zCEvG}TO_4#P9RdK1wa8~&%K)ILM4{0hUi+ihqp7ElN6TdJ;79ud6rAr@W-mRTgq7LvqpQvqzv~h23u7HIx@pHLto^)Uc)4bPGuHTG)7&k| z?#lhMf7&o}IRxl0X_f}-L1ydfd}&bAJ%>^>%E)$p_>ge@3YLqEycr>C_`G#Qg3eg5$?A-aSskCekH$X53g}lK*t+R z0%yp#o588FX&{Bv6X_(GAFG7>!u`_v`SE^p=kZ8Eh*WgdTgm$NK`E)8#eM^dXP^5G z%<%9kz89|b8pje2y7@w*Z5qv_q9Jd<_{D$UMTK10rygYtGo&5q|1i6G=nM?@O+C5| z9-!dsw~D$V>9~$)I}`WWBt%rgJM2l@y_NSrO&2xXmSGLlogAw5Yq_u24#wxjMm3sB zcIi>m;BTVG22)e;M-1PHF$vx0eV1^mo*Jf* z3c#~#M&9~cHt%b_H|zW1VHR}UWG$IFiqqE`MdrOTrwMk9n&e@8u&QYZI>e9|vtH{ocfXLH#*zLS!ua8sl zXc{?{BVmGZ>uV@=XTNoQIFX41PKIXr2i*2U84DBdI7qBNYtQxwe!D@%7I^rZYTGZe(P zs_A1hUU$=Iwssgh4x5=csl{A{Z5uME;^)yvhU;^7P*6-nbT72#+kZ>5|3PtTLfVD> z*EV~Z>V$>*qIkrM;1Ke?8eR9X{e#=pf%H%uVuI(VQ;e3a0Y2@aGgCe8x`T$W(#cf! z@Q{q1*P7lFsbb{^o|J>VC$b|Z_OczXTTfeD>d3HS*qt{hlRZ9RZRM@J#^U*7fjyr3L~~Q)MYvssL+4>;ll65% z?!&D+plv1ASDp!((aFRo+ro)3@ve`oa9l}7@b-n(mkv6gVc`2@_@fV`@J_|E- z?IxHW)7udkFaJnCm>p>CL^?P96czd#NMrk{POYotN_4OgQJ?nhovXjZ2NdTiJaU>R zE?=1YoIl849~>8_R$r1+$|g3!+F0JM#C8LRp(!F%Kx4 zsgn;xeBrOOPx3S`Nq8sf*T@S^7vSh?%Nu57%Fy@)^SK9hCBU4m6Ep7Rn~>7)N>8af*jWQk_aNjtfNbXTYLRCGK-mATY$V35#)1^p}MZl)}_YYAQD zY*1xH1}0ubm=l7~HFO2Mwez(n7aPw3Ym2}4pL{w#@#ay#z*0+ku9J-PGt^ln58c!k z+Oy2yE(UMJiTfgLg1kx78{S{M@5ErjyI&}4WNAo7}U43^4B(fCh3J@mBz6-J6yh>@kLDQaqWItb{{ckudGNhYS0?hb!c?4Vy%ou$ZKnnwgRfZFdnuq zS*JvQf0CXZz9R7Rtri^$bcuUkE7y2!7|&se6N}}c$prL#xvu7Ou&O&U;sWo02>*6Y zUwEm&WjMkNX?ximZ)lp4?fm%^K5I=CV49M>4_k25N>|y}hLY|!tI@vD@3aO@^g z&;@*}@bIpS?p%pOud)=98fZT?5 zb}`jQ2>~}nHOjfq2kv;zX){@G+Lv(7=Q`4$-XvA_q7oN(IQXf?KfcE5`}~=I8b$2u z=Dl8IbY~1`69ZHQ+qNn2Uaa8CdsGG!0NbuI<;=o}dySpuEb23G6r;`*lyQ}USQP0l zt6qyMK-RvbSI=7NMs?0w)XPWTN)QKZq8Yr8tA#;dh+!k{EYfs$5Se0;>r!Hv()!kH z&uj1Fz2_t_9qKwg?-H-bA=YUcxBm4r2>0x{ zmZqnXS)Y6D7DaWWC}|EOS40R|wJZS!JH{7`&sb9bS|qVB2r8~s@)#V6ZYs#F>tXxS zc?_cA67L5f%{t6fRU&W8)IQJE>39?{7;|N`(#W>Z!DPY0+hZ5p>rZZvtv`amj#DaP z%CPMR{L_fmn`Lq6R^Tqo#C9J}EU!bM+*vo}d7gL6I*jito5G)&$P>0y6?=WfyJ2FG z>?U^Qi60MU7@U&6Qws|2Ql;8cKh1K*VdHSmTe~Z0BZ_G?87%3MnzN3`^Is8N!RH5@X3!n=6;7BL?G#-LR{>v zZgQb@KXF5K)@ZdOX615qaae-6|Y`;PV^jXuexj7cYp6?$|4Vb&td=>*t{M+!3nBa(a}{q+dGpg2 zl(S+Z(qHhQ%=@271%`CP6{V;05aZlySDTUU90WI^Kva)h!sE76@_#YX~&L=AF-`f z;5@xovf~FOB%XY!2IpL2fD_vnMd*uu@MLCM&C1AB^hok#O$dqc001x_&W&)oT3bdm zy>RGpdwH~JB;iDoU~B>Mc^_3*Mr-TRPhqHj4o_|Ncuu6V$VdQf+n2EpcAm)G*6Qg) zszowQ##7am<|5w<)6gQmh29^*F+q~Q{wPxxROPzlY0K}(K zYM$nis-KRZEf<4~6tk`*3^=gsTt@pJTP&+stH<7 z%T~3RTFm;KYXtP(#QkrkjE45i@LgklS&F5YCCI^u9bYls!U(u`e%3TR<;M2ZPOvOj zRWTt$^nckJn)lyq{VF8od26Usj>XE5Aj96g5ju|Wsj&NR5W>6z1Me=>kV5g9khil_ zs4oehAgK&R&=__Uxk`ul*SEhBk^Qs7jmep(|mQJvup4S-&7U8748)#CyCea9+|@(6KZLo zYshQD3{+yaf{YBm1UAFJ=w&P~?rJSir^@yH#xQ*jpcN>w0QhyvqQ2KlK4VS@lMY-5 z6J^F{V2{ZYn^Vf@6dIBt^b2pEKE)v54}O}gS!k#?a_%Er(1A8_3C8)qglg`8%OrD= zkH96k=Qw|yp9=QPOni9V5SEl!->c2JSQmZQ>Yy)oKZ2Sklr7gyDQkhd5_H=sR3?|d z=51mT3++v;>ncm;!C2V3_3JTMTFpV0rJ4-Fug_{$Xv{oeU;|AXtq|{)aAY{Zn z{o5rLZM|*FxRI1x(BxTK7fwP-$^)r{>X`RJB{<R(=|Cck1!}} zUne5;Ij$b{HJV#|XCvy5N?h*DF?p&kIVZV5b>t47IO8_s7(vNLWymWmyg92yR5X@s;W$@l=meHaJ4qVTJ1FOyS&AGb=$<*#@AG_D`Yt}+ zJWJfW@93WC)u@Gz^MK{0t?5+< zOLo~LIBomHC<-Q2d-xorANL$hzBQbEpW2tI<AFU26FIt#_~rA_A|GF-L}o>j(NvV*uZ2nYXtkiM-R=S8M^pqzs9XfT+b8U zc_M}BnGj<1h`;7Y+IT=8?^Ob&=oNJK>!8YSd-d0fKDTr?z6Het^`FwSDh%;@xjlqV zkM0_BcABChS~BgAGze8w=Ea_j5;eU9^$ovY*>mPVIy=!4B-0hI=6!sH|02a6-;V?* z5i(!4qUq^fah1(oijoZXp~bl^;K9jZcV={8Rh9mQ~a9ajcDF_XT3`atLS0ZgwznkC08zwU_vxP8Vb5U3k?&in}$>53Ge(hABOqzW6VKQRJ@qZ@p1gS-h-_30sW^UQ>gXRu~-!yX_30WejkJPs4vA`Uy;1$KSw4sKSykWsd8CR56h_= zOmIZqFcjtrg-mkyVek;yr`G(zrqrM*^Q(H5=%73Y?%6!`xp~CIz<7KdJfd85Ho(OA E50#V7RsaA1 diff --git a/documentation/en/cli-lotus-provider.md b/documentation/en/cli-lotus-provider.md new file mode 100644 index 00000000000..0fae817d2dd --- /dev/null +++ b/documentation/en/cli-lotus-provider.md @@ -0,0 +1,410 @@ +# lotus-provider +``` +NAME: + lotus-provider - Filecoin decentralized storage network provider + +USAGE: + lotus-provider [global options] command [command options] [arguments...] + +VERSION: + 1.26.3 + +COMMANDS: + run Start a lotus provider process + stop Stop a running lotus provider + config Manage node config by layers. The layer 'base' will always be applied. + test Utility functions for testing + version Print version + help, h Shows a list of commands or help for one command + DEVELOPER: + auth Manage RPC permissions + log Manage logging + wait-api Wait for lotus api to come online + fetch-params Fetch proving parameters + +GLOBAL OPTIONS: + --color use color in display output (default: depends on output being a TTY) + --db-host value Command separated list of hostnames for yugabyte cluster (default: "yugabyte") [$LOTUS_DB_HOST] + --db-name value (default: "yugabyte") [$LOTUS_DB_NAME, $LOTUS_HARMONYDB_HOSTS] + --db-user value (default: "yugabyte") [$LOTUS_DB_USER, $LOTUS_HARMONYDB_USERNAME] + --db-password value (default: "yugabyte") [$LOTUS_DB_PASSWORD, $LOTUS_HARMONYDB_PASSWORD] + --layers value (default: "base") [$LOTUS_LAYERS, $LOTUS_CONFIG_LAYERS] + --repo-path value (default: "~/.lotusprovider") [$LOTUS_REPO_PATH] + --vv enables very verbose mode, useful for debugging the CLI (default: false) + --help, -h show help + --version, -v print the version +``` + +## lotus-provider run +``` +NAME: + lotus-provider run - Start a lotus provider process + +USAGE: + lotus-provider run [command options] [arguments...] + +OPTIONS: + --listen value host address and port the worker api will listen on (default: "0.0.0.0:12300") [$LOTUS_WORKER_LISTEN] + --nosync don't check full-node sync status (default: false) + --manage-fdlimit manage open file limit (default: true) + --layers value [ --layers value ] list of layers to be interpreted (atop defaults). Default: base (default: "base") + --storage-json value path to json file containing storage config (default: "~/.lotus-provider/storage.json") + --journal value path to journal files (default: "~/.lotus-provider/") + --help, -h show help +``` + +## lotus-provider stop +``` +NAME: + lotus-provider stop - Stop a running lotus provider + +USAGE: + lotus-provider stop [command options] [arguments...] + +OPTIONS: + --help, -h show help +``` + +## lotus-provider config +``` +NAME: + lotus-provider config - Manage node config by layers. The layer 'base' will always be applied. + +USAGE: + lotus-provider config command [command options] [arguments...] + +COMMANDS: + default, defaults Print default node config + set, add, update, create Set a config layer or the base by providing a filename or stdin. + get, cat, show Get a config layer by name. You may want to pipe the output to a file, or use 'less' + list, ls List config layers you can get. + interpret, view, stacked, stack Interpret stacked config layers by this version of lotus-provider, with system-generated comments. + remove, rm, del, delete Remove a named config layer. + from-miner Express a database config (for lotus-provider) from an existing miner. + help, h Shows a list of commands or help for one command + +OPTIONS: + --help, -h show help +``` + +### lotus-provider config default +``` +NAME: + lotus-provider config default - Print default node config + +USAGE: + lotus-provider config default [command options] [arguments...] + +OPTIONS: + --no-comment don't comment default values (default: false) + --help, -h show help +``` + +### lotus-provider config set +``` +NAME: + lotus-provider config set - Set a config layer or the base by providing a filename or stdin. + +USAGE: + lotus-provider config set [command options] a layer's file name + +OPTIONS: + --title value title of the config layer (req'd for stdin) + --help, -h show help +``` + +### lotus-provider config get +``` +NAME: + lotus-provider config get - Get a config layer by name. You may want to pipe the output to a file, or use 'less' + +USAGE: + lotus-provider config get [command options] layer name + +OPTIONS: + --help, -h show help +``` + +### lotus-provider config list +``` +NAME: + lotus-provider config list - List config layers you can get. + +USAGE: + lotus-provider config list [command options] [arguments...] + +OPTIONS: + --help, -h show help +``` + +### lotus-provider config interpret +``` +NAME: + lotus-provider config interpret - Interpret stacked config layers by this version of lotus-provider, with system-generated comments. + +USAGE: + lotus-provider config interpret [command options] a list of layers to be interpreted as the final config + +OPTIONS: + --layers value [ --layers value ] comma or space separated list of layers to be interpreted (default: "base") + --help, -h show help +``` + +### lotus-provider config remove +``` +NAME: + lotus-provider config remove - Remove a named config layer. + +USAGE: + lotus-provider config remove [command options] [arguments...] + +OPTIONS: + --help, -h show help +``` + +### lotus-provider config from-miner +``` +NAME: + lotus-provider config from-miner - Express a database config (for lotus-provider) from an existing miner. + +USAGE: + lotus-provider config from-miner [command options] [arguments...] + +DESCRIPTION: + Express a database config (for lotus-provider) from an existing miner. + +OPTIONS: + --miner-repo value, --storagerepo value Specify miner repo path. flag(storagerepo) and env(LOTUS_STORAGE_PATH) are DEPRECATION, will REMOVE SOON (default: "~/.lotusminer") [$LOTUS_MINER_PATH, $LOTUS_STORAGE_PATH] + --to-layer value, -t value The layer name for this data push. 'base' is recommended for single-miner setup. + --overwrite, -o Use this with --to-layer to replace an existing layer (default: false) + --help, -h show help +``` + +## lotus-provider test +``` +NAME: + lotus-provider test - Utility functions for testing + +USAGE: + lotus-provider test command [command options] [arguments...] + +COMMANDS: + window-post, wd, windowpost, wdpost Compute a proof-of-spacetime for a sector (requires the sector to be pre-sealed). These will not send to the chain. + help, h Shows a list of commands or help for one command + +OPTIONS: + --help, -h show help +``` + +### lotus-provider test window-post +``` +NAME: + lotus-provider test window-post - Compute a proof-of-spacetime for a sector (requires the sector to be pre-sealed). These will not send to the chain. + +USAGE: + lotus-provider test window-post command [command options] [arguments...] + +COMMANDS: + here, cli Compute WindowPoSt for performance and configuration testing. + task, scheduled, schedule, async, asynchronous Test the windowpost scheduler by running it on the next available lotus-provider. + help, h Shows a list of commands or help for one command + +OPTIONS: + --help, -h show help +``` + +#### lotus-provider test window-post here +``` +NAME: + lotus-provider test window-post here - Compute WindowPoSt for performance and configuration testing. + +USAGE: + lotus-provider test window-post here [command options] [deadline index] + +DESCRIPTION: + Note: This command is intended to be used to verify PoSt compute performance. + It will not send any messages to the chain. Since it can compute any deadline, output may be incorrectly timed for the chain. + +OPTIONS: + --deadline value deadline to compute WindowPoSt for (default: 0) + --layers value [ --layers value ] list of layers to be interpreted (atop defaults). Default: base (default: "base") + --storage-json value path to json file containing storage config (default: "~/.lotus-provider/storage.json") + --partition value partition to compute WindowPoSt for (default: 0) + --help, -h show help +``` + +#### lotus-provider test window-post task +``` +NAME: + lotus-provider test window-post task - Test the windowpost scheduler by running it on the next available lotus-provider. + +USAGE: + lotus-provider test window-post task [command options] [arguments...] + +OPTIONS: + --deadline value deadline to compute WindowPoSt for (default: 0) + --layers value [ --layers value ] list of layers to be interpreted (atop defaults). Default: base (default: "base") + --help, -h show help +``` + +## lotus-provider version +``` +NAME: + lotus-provider version - Print version + +USAGE: + lotus-provider version [command options] [arguments...] + +OPTIONS: + --help, -h show help +``` + +## lotus-provider auth +``` +NAME: + lotus-provider auth - Manage RPC permissions + +USAGE: + lotus-provider auth command [command options] [arguments...] + +COMMANDS: + create-token Create token + api-info Get token with API info required to connect to this node + help, h Shows a list of commands or help for one command + +OPTIONS: + --help, -h show help +``` + +### lotus-provider auth create-token +``` +NAME: + lotus-provider auth create-token - Create token + +USAGE: + lotus-provider auth create-token [command options] [arguments...] + +OPTIONS: + --perm value permission to assign to the token, one of: read, write, sign, admin + --help, -h show help +``` + +### lotus-provider auth api-info +``` +NAME: + lotus-provider auth api-info - Get token with API info required to connect to this node + +USAGE: + lotus-provider auth api-info [command options] [arguments...] + +OPTIONS: + --perm value permission to assign to the token, one of: read, write, sign, admin + --help, -h show help +``` + +## lotus-provider log +``` +NAME: + lotus-provider log - Manage logging + +USAGE: + lotus-provider log command [command options] [arguments...] + +COMMANDS: + list List log systems + set-level Set log level + alerts Get alert states + help, h Shows a list of commands or help for one command + +OPTIONS: + --help, -h show help +``` + +### lotus-provider log list +``` +NAME: + lotus-provider log list - List log systems + +USAGE: + lotus-provider log list [command options] [arguments...] + +OPTIONS: + --help, -h show help +``` + +### lotus-provider log set-level +``` +NAME: + lotus-provider log set-level - Set log level + +USAGE: + lotus-provider log set-level [command options] [level] + +DESCRIPTION: + Set the log level for logging systems: + + The system flag can be specified multiple times. + + eg) log set-level --system chain --system chainxchg debug + + Available Levels: + debug + info + warn + error + + Environment Variables: + GOLOG_LOG_LEVEL - Default log level for all log systems + GOLOG_LOG_FMT - Change output log format (json, nocolor) + GOLOG_FILE - Write logs to file + GOLOG_OUTPUT - Specify whether to output to file, stderr, stdout or a combination, i.e. file+stderr + + +OPTIONS: + --system value [ --system value ] limit to log system + --help, -h show help +``` + +### lotus-provider log alerts +``` +NAME: + lotus-provider log alerts - Get alert states + +USAGE: + lotus-provider log alerts [command options] [arguments...] + +OPTIONS: + --all get all (active and inactive) alerts (default: false) + --help, -h show help +``` + +## lotus-provider wait-api +``` +NAME: + lotus-provider wait-api - Wait for lotus api to come online + +USAGE: + lotus-provider wait-api [command options] [arguments...] + +CATEGORY: + DEVELOPER + +OPTIONS: + --timeout value duration to wait till fail (default: 30s) + --help, -h show help +``` + +## lotus-provider fetch-params +``` +NAME: + lotus-provider fetch-params - Fetch proving parameters + +USAGE: + lotus-provider fetch-params [command options] [sectorSize] + +CATEGORY: + DEVELOPER + +OPTIONS: + --help, -h show help +``` diff --git a/go.mod b/go.mod index 674148ec3db..062aca2980c 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,7 @@ require ( github.com/filecoin-project/dagstore v0.5.2 github.com/filecoin-project/filecoin-ffi v0.30.4-0.20220519234331-bfd1f5f9fe38 github.com/filecoin-project/go-address v1.1.0 - github.com/filecoin-project/go-amt-ipld/v4 v4.2.0 + github.com/filecoin-project/go-amt-ipld/v4 v4.3.0 github.com/filecoin-project/go-bitfield v0.2.4 github.com/filecoin-project/go-cbor-util v0.0.1 github.com/filecoin-project/go-commp-utils v0.1.3 @@ -49,7 +49,7 @@ require ( github.com/filecoin-project/go-jsonrpc v0.3.1 github.com/filecoin-project/go-padreader v0.0.1 github.com/filecoin-project/go-paramfetch v0.0.4 - github.com/filecoin-project/go-state-types v0.13.1 + github.com/filecoin-project/go-state-types v0.13.3 github.com/filecoin-project/go-statemachine v1.0.3 github.com/filecoin-project/go-statestore v0.2.0 github.com/filecoin-project/go-storedcounter v0.1.0 @@ -144,7 +144,7 @@ require ( github.com/triplewz/poseidon v0.0.0-20230828015038-79d8165c88ed github.com/urfave/cli/v2 v2.25.5 github.com/whyrusleeping/bencher v0.0.0-20190829221104-bb6607aa8bba - github.com/whyrusleeping/cbor-gen v0.1.0 + github.com/whyrusleeping/cbor-gen v0.1.1 github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 github.com/xeipuuv/gojsonschema v1.2.0 github.com/xorcare/golden v0.6.1-0.20191112154924-b87f686d7542 diff --git a/go.sum b/go.sum index 4e6ce0dec0f..52755ba03d6 100644 --- a/go.sum +++ b/go.sum @@ -305,8 +305,8 @@ github.com/filecoin-project/go-amt-ipld/v3 v3.0.0/go.mod h1:Qa95YNAbtoVCTSVtX38a github.com/filecoin-project/go-amt-ipld/v3 v3.1.0 h1:ZNJ9tEG5bE72vBWYiuh5bkxJVM3ViHNOmQ7qew9n6RE= github.com/filecoin-project/go-amt-ipld/v3 v3.1.0/go.mod h1:UjM2QhDFrrjD5s1CdnkJkat4ga+LqZBZgTMniypABRo= github.com/filecoin-project/go-amt-ipld/v4 v4.0.0/go.mod h1:gF053YQ4BIpzTNDoEwHZas7U3oAwncDVGvOHyY8oDpE= -github.com/filecoin-project/go-amt-ipld/v4 v4.2.0 h1:DQTXQwMXxaetd+lhZGODjt5qC1WYT7tMAlYrWqI/fwI= -github.com/filecoin-project/go-amt-ipld/v4 v4.2.0/go.mod h1:0eDVF7pROvxrsxvLJx+SJZXqRaXXcEPUcgb/rG0zGU4= +github.com/filecoin-project/go-amt-ipld/v4 v4.3.0 h1:bY42N1gR0DqrLMCKUPzX1VhYVgXaETQm0Um4ohvyEP8= +github.com/filecoin-project/go-amt-ipld/v4 v4.3.0/go.mod h1:39Ep/yBbF6xN94WevLG9qSbglBJepHa5zeEbAE1pYsc= github.com/filecoin-project/go-bitfield v0.2.0/go.mod h1:CNl9WG8hgR5mttCnUErjcQjGvuiZjRqK9rHVBsQF4oM= github.com/filecoin-project/go-bitfield v0.2.3/go.mod h1:CNl9WG8hgR5mttCnUErjcQjGvuiZjRqK9rHVBsQF4oM= github.com/filecoin-project/go-bitfield v0.2.4 h1:uZ7MeE+XfM5lqrHJZ93OnhQKc/rveW8p9au0C68JPgk= @@ -355,8 +355,8 @@ github.com/filecoin-project/go-state-types v0.1.0/go.mod h1:ezYnPf0bNkTsDibL/psS github.com/filecoin-project/go-state-types v0.1.6/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q= github.com/filecoin-project/go-state-types v0.1.10/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q= github.com/filecoin-project/go-state-types v0.11.2-0.20230712101859-8f37624fa540/go.mod h1:SyNPwTsU7I22gL2r0OAPcImvLoTVfgRwdK/Y5rR1zz8= -github.com/filecoin-project/go-state-types v0.13.1 h1:4CivvlcHAIoAtFFVVlZtokynaMQu5XLXGoTKhQkfG1I= -github.com/filecoin-project/go-state-types v0.13.1/go.mod h1:cHpOPup9H1g2T29dKHAjC2sc7/Ef5ypjuW9A3I+e9yY= +github.com/filecoin-project/go-state-types v0.13.3 h1:9JPkC0E6HDtfHbaOIrFiCDzT/Z0jRTb9En4Y4Ci/b3w= +github.com/filecoin-project/go-state-types v0.13.3/go.mod h1:cHpOPup9H1g2T29dKHAjC2sc7/Ef5ypjuW9A3I+e9yY= github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe/go.mod h1:FGwQgZAt2Gh5mjlwJUlVB62JeYdo+if0xWxSEfBD9ig= github.com/filecoin-project/go-statemachine v1.0.3 h1:N07o6alys+V1tNoSTi4WuuoeNC4erS/6jE74+NsgQuk= github.com/filecoin-project/go-statemachine v1.0.3/go.mod h1:jZdXXiHa61n4NmgWFG4w8tnqgvZVHYbJ3yW7+y8bF54= @@ -1681,8 +1681,8 @@ github.com/whyrusleeping/cbor-gen v0.0.0-20200826160007-0b9f6c5fb163/go.mod h1:f github.com/whyrusleeping/cbor-gen v0.0.0-20210118024343-169e9d70c0c2/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= github.com/whyrusleeping/cbor-gen v0.0.0-20210303213153-67a261a1d291/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= github.com/whyrusleeping/cbor-gen v0.0.0-20220323183124-98fa8256a799/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= -github.com/whyrusleeping/cbor-gen v0.1.0 h1:Jneeq3V5enErVcuL0NKEbD1Gi+iOvEeFhXOV1S1Fc6g= -github.com/whyrusleeping/cbor-gen v0.1.0/go.mod h1:pM99HXyEbSQHcosHc0iW7YFmwnscr+t9Te4ibko05so= +github.com/whyrusleeping/cbor-gen v0.1.1 h1:eKfcJIoxivjMtwfCfmJAqSF56MHcWqyIScXwaC1VBgw= +github.com/whyrusleeping/cbor-gen v0.1.1/go.mod h1:pM99HXyEbSQHcosHc0iW7YFmwnscr+t9Te4ibko05so= github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E= github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8= github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdznlJHPMoKr0XTrX+IlJs1LH3lyx2nfr1dOlZ79k= From f907354300baac92c30857b61b918d598365561c Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Tue, 23 Apr 2024 12:34:54 +0100 Subject: [PATCH 06/22] Refactor `LookupID*` APIs in `StateManager` and `StateTree` The naming of `LookupID` can cause confusion when resolving actor IDs vs ID addresses. To avoid this: * Refactor `StateTree` `LookupID` to `LookupIDAddress`, because it returns ID address. * Refactor `StateManager` `LookupID` to `LookupIDAddress` because it also returns ID address via a chain call to `StateTree`. * Introduce a new API `StateManager` dedicated to resolving address to actor ID, called `LookupID` which returns `abi.ActorID`. For context, see: * https://github.com/filecoin-project/lotus/pull/11723#discussion_r1534728607 --- chain/consensus/common.go | 2 +- chain/state/statetree.go | 16 ++++++++-------- chain/stmgr/actors.go | 2 +- chain/stmgr/rpc/rpcstatemanager.go | 2 +- chain/stmgr/searchwait.go | 2 +- chain/stmgr/stmgr.go | 23 ++++++++++++++++++++--- chain/store/messages.go | 6 +++--- chain/vm/runtime.go | 2 +- chain/vm/vm.go | 8 ++++---- itests/migration_test.go | 2 +- node/impl/full/eth_utils.go | 2 +- node/impl/full/state.go | 2 +- 12 files changed, 43 insertions(+), 26 deletions(-) diff --git a/chain/consensus/common.go b/chain/consensus/common.go index a7e5c40d2b9..8fee0d4c2f1 100644 --- a/chain/consensus/common.go +++ b/chain/consensus/common.go @@ -220,7 +220,7 @@ func checkBlockMessages(ctx context.Context, sm *stmgr.StateManager, cs *store.C // the sender exists and is an account actor, and the nonces make sense var sender address.Address if nv >= network.Version13 { - sender, err = st.LookupID(m.From) + sender, err = st.LookupIDAddress(m.From) if err != nil { return xerrors.Errorf("failed to lookup sender %s: %w", m.From, err) } diff --git a/chain/state/statetree.go b/chain/state/statetree.go index 1a6497d04b9..03cd98d95ad 100644 --- a/chain/state/statetree.go +++ b/chain/state/statetree.go @@ -230,7 +230,7 @@ func NewStateTree(cst cbor.IpldStore, ver types.StateTreeVersion) (*StateTree, e Store: cst, snaps: newStateSnaps(), } - s.lookupIDFun = s.lookupIDinternal + s.lookupIDFun = s.lookupInternalIDAddress return s, nil } @@ -302,13 +302,13 @@ func LoadStateTree(cst cbor.IpldStore, c cid.Cid) (*StateTree, error) { Store: cst, snaps: newStateSnaps(), } - s.lookupIDFun = s.lookupIDinternal + s.lookupIDFun = s.lookupInternalIDAddress return s, nil } func (st *StateTree) SetActor(addr address.Address, act *types.Actor) error { - iaddr, err := st.LookupID(addr) + iaddr, err := st.LookupIDAddress(addr) if err != nil { return xerrors.Errorf("ID lookup failed: %w", err) } @@ -318,7 +318,7 @@ func (st *StateTree) SetActor(addr address.Address, act *types.Actor) error { return nil } -func (st *StateTree) lookupIDinternal(addr address.Address) (address.Address, error) { +func (st *StateTree) lookupInternalIDAddress(addr address.Address) (address.Address, error) { act, err := st.GetActor(init_.Address) if err != nil { return address.Undef, xerrors.Errorf("getting init actor: %w", err) @@ -339,8 +339,8 @@ func (st *StateTree) lookupIDinternal(addr address.Address) (address.Address, er return a, err } -// LookupID gets the ID address of this actor's `addr` stored in the `InitActor`. -func (st *StateTree) LookupID(addr address.Address) (address.Address, error) { +// LookupIDAddress gets the ID address of this actor's `addr` stored in the `InitActor`. +func (st *StateTree) LookupIDAddress(addr address.Address) (address.Address, error) { if addr.Protocol() == address.ID { return addr, nil } @@ -366,7 +366,7 @@ func (st *StateTree) GetActor(addr address.Address) (*types.Actor, error) { } // Transform `addr` to its ID format. - iaddr, err := st.LookupID(addr) + iaddr, err := st.LookupIDAddress(addr) if err != nil { if xerrors.Is(err, types.ErrActorNotFound) { return nil, xerrors.Errorf("resolution lookup failed (%s): %w", addr, err) @@ -411,7 +411,7 @@ func (st *StateTree) DeleteActor(addr address.Address) error { return xerrors.Errorf("DeleteActor called on undefined address") } - iaddr, err := st.LookupID(addr) + iaddr, err := st.LookupIDAddress(addr) if err != nil { if xerrors.Is(err, types.ErrActorNotFound) { return xerrors.Errorf("resolution lookup failed (%s): %w", addr, err) diff --git a/chain/stmgr/actors.go b/chain/stmgr/actors.go index f1d615e8d4f..0dce2c3cdf3 100644 --- a/chain/stmgr/actors.go +++ b/chain/stmgr/actors.go @@ -542,7 +542,7 @@ func (sm *StateManager) MarketBalance(ctx context.Context, addr address.Address, return api.MarketBalance{}, err } - addr, err = sm.LookupID(ctx, addr, ts) + addr, err = sm.LookupIDAddress(ctx, addr, ts) if err != nil { return api.MarketBalance{}, err } diff --git a/chain/stmgr/rpc/rpcstatemanager.go b/chain/stmgr/rpc/rpcstatemanager.go index 9186501eab9..fa311e1d4b9 100644 --- a/chain/stmgr/rpc/rpcstatemanager.go +++ b/chain/stmgr/rpc/rpcstatemanager.go @@ -44,7 +44,7 @@ func (s *RPCStateManager) LoadActorTsk(ctx context.Context, addr address.Address return s.gapi.StateGetActor(ctx, addr, tsk) } -func (s *RPCStateManager) LookupID(ctx context.Context, addr address.Address, ts *types.TipSet) (address.Address, error) { +func (s *RPCStateManager) LookupIDAddress(ctx context.Context, addr address.Address, ts *types.TipSet) (address.Address, error) { return s.gapi.StateLookupID(ctx, addr, ts.Key()) } diff --git a/chain/stmgr/searchwait.go b/chain/stmgr/searchwait.go index 356ace23c45..3377389b9b6 100644 --- a/chain/stmgr/searchwait.go +++ b/chain/stmgr/searchwait.go @@ -243,7 +243,7 @@ func (sm *StateManager) searchBackForMsg(ctx context.Context, from *types.TipSet return nil, nil, cid.Undef, xerrors.Errorf("failed to load initital tipset") } - mFromId, err := sm.LookupID(ctx, m.VMMessage().From, from) + mFromId, err := sm.LookupIDAddress(ctx, m.VMMessage().From, from) if err != nil { return nil, nil, cid.Undef, xerrors.Errorf("looking up From id address: %w", err) } diff --git a/chain/stmgr/stmgr.go b/chain/stmgr/stmgr.go index cd35d6d193e..d88d7dfd154 100644 --- a/chain/stmgr/stmgr.go +++ b/chain/stmgr/stmgr.go @@ -49,7 +49,7 @@ type StateManagerAPI interface { Call(ctx context.Context, msg *types.Message, ts *types.TipSet) (*api.InvocResult, error) GetPaychState(ctx context.Context, addr address.Address, ts *types.TipSet) (*types.Actor, paych.State, error) LoadActorTsk(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*types.Actor, error) - LookupID(ctx context.Context, addr address.Address, ts *types.TipSet) (address.Address, error) + LookupIDAddress(ctx context.Context, addr address.Address, ts *types.TipSet) (address.Address, error) ResolveToDeterministicAddress(ctx context.Context, addr address.Address, ts *types.TipSet) (address.Address, error) } @@ -400,13 +400,30 @@ func (sm *StateManager) GetBlsPublicKey(ctx context.Context, addr address.Addres return kaddr.Payload(), nil } -func (sm *StateManager) LookupID(ctx context.Context, addr address.Address, ts *types.TipSet) (address.Address, error) { +func (sm *StateManager) LookupIDAddress(_ context.Context, addr address.Address, ts *types.TipSet) (address.Address, error) { + // Check for the fast route first to avoid unnecessary CBOR store instantiation and state tree load. + if addr.Protocol() == address.ID { + return addr, nil + } + cst := cbor.NewCborStore(sm.cs.StateBlockstore()) state, err := state.LoadStateTree(cst, sm.parentState(ts)) if err != nil { return address.Undef, xerrors.Errorf("load state tree: %w", err) } - return state.LookupID(addr) + return state.LookupIDAddress(addr) +} + +func (sm *StateManager) LookupID(ctx context.Context, addr address.Address, ts *types.TipSet) (abi.ActorID, error) { + idAddr, err := sm.LookupIDAddress(ctx, addr, ts) + if err != nil { + return 0, xerrors.Errorf("state manager lookup id: %w", err) + } + id, err := address.IDFromAddress(idAddr) + if err != nil { + return 0, xerrors.Errorf("resolve actor id: id from addr: %w", err) + } + return abi.ActorID(id), nil } func (sm *StateManager) LookupRobustAddress(ctx context.Context, idAddr address.Address, ts *types.TipSet) (address.Address, error) { diff --git a/chain/store/messages.go b/chain/store/messages.go index c23f900d7cb..4129a9199a5 100644 --- a/chain/store/messages.go +++ b/chain/store/messages.go @@ -119,7 +119,7 @@ func (cs *ChainStore) BlockMsgsForTipset(ctx context.Context, ts *types.TipSet) var sender address.Address if ts.Height() >= build.UpgradeHyperdriveHeight { if useIds { - sender, err = st.LookupID(m.From) + sender, err = st.LookupIDAddress(m.From) if err != nil { return false, xerrors.Errorf("failed to resolve sender: %w", err) } @@ -131,14 +131,14 @@ func (cs *ChainStore) BlockMsgsForTipset(ctx context.Context, ts *types.TipSet) // uh-oh, we actually have an ID-sender! useIds = true for robust, nonce := range applied { - resolved, err := st.LookupID(robust) + resolved, err := st.LookupIDAddress(robust) if err != nil { return false, xerrors.Errorf("failed to resolve sender: %w", err) } applied[resolved] = nonce } - sender, err = st.LookupID(m.From) + sender, err = st.LookupIDAddress(m.From) if err != nil { return false, xerrors.Errorf("failed to resolve sender: %w", err) } diff --git a/chain/vm/runtime.go b/chain/vm/runtime.go index 355fcea2b09..9ca4f55d065 100644 --- a/chain/vm/runtime.go +++ b/chain/vm/runtime.go @@ -111,7 +111,7 @@ func (rt *Runtime) TotalFilCircSupply() abi.TokenAmount { } func (rt *Runtime) ResolveAddress(addr address.Address) (ret address.Address, ok bool) { - r, err := rt.state.LookupID(addr) + r, err := rt.state.LookupIDAddress(addr) if err != nil { if xerrors.Is(err, types.ErrActorNotFound) { return address.Undef, false diff --git a/chain/vm/vm.go b/chain/vm/vm.go index ba404ab1fa3..1e0591b6c94 100644 --- a/chain/vm/vm.go +++ b/chain/vm/vm.go @@ -902,7 +902,7 @@ func (vm *LegacyVM) transfer(from, to address.Address, amt types.BigInt, network return aerrors.Newf(exitcode.SysErrForbidden, "attempted to transfer negative value: %s", amt) } - fromID, err = vm.cstate.LookupID(from) + fromID, err = vm.cstate.LookupIDAddress(from) if err != nil { return aerrors.Fatalf("transfer failed when resolving sender address: %s", err) } @@ -921,7 +921,7 @@ func (vm *LegacyVM) transfer(from, to address.Address, amt types.BigInt, network return nil } - toID, err = vm.cstate.LookupID(to) + toID, err = vm.cstate.LookupIDAddress(to) if err != nil { return aerrors.Fatalf("transfer failed when resolving receiver address: %s", err) } @@ -935,12 +935,12 @@ func (vm *LegacyVM) transfer(from, to address.Address, amt types.BigInt, network return nil } - fromID, err = vm.cstate.LookupID(from) + fromID, err = vm.cstate.LookupIDAddress(from) if err != nil { return aerrors.Fatalf("transfer failed when resolving sender address: %s", err) } - toID, err = vm.cstate.LookupID(to) + toID, err = vm.cstate.LookupIDAddress(to) if err != nil { return aerrors.Fatalf("transfer failed when resolving receiver address: %s", err) } diff --git a/itests/migration_test.go b/itests/migration_test.go index 68991a579a9..e19aaf45f74 100644 --- a/itests/migration_test.go +++ b/itests/migration_test.go @@ -584,7 +584,7 @@ func TestMigrationNV18(t *testing.T) { // check the EthZeroAddress ethZeroAddr, err := (ethtypes.EthAddress{}).ToFilecoinAddress() require.NoError(t, err) - ethZeroAddrID, err := newStateTree.LookupID(ethZeroAddr) + ethZeroAddrID, err := newStateTree.LookupIDAddress(ethZeroAddr) require.NoError(t, err) ethZeroActor, err := newStateTree.GetActor(ethZeroAddrID) require.NoError(t, err) diff --git a/node/impl/full/eth_utils.go b/node/impl/full/eth_utils.go index 50e76f84ef4..1d7bfac5a39 100644 --- a/node/impl/full/eth_utils.go +++ b/node/impl/full/eth_utils.go @@ -392,7 +392,7 @@ func lookupEthAddress(addr address.Address, st *state.StateTree) (ethtypes.EthAd } // Otherwise, resolve the ID addr. - idAddr, err := st.LookupID(addr) + idAddr, err := st.LookupIDAddress(addr) if err != nil { return ethtypes.EthAddress{}, err } diff --git a/node/impl/full/state.go b/node/impl/full/state.go index dda8898325f..ed6fd668545 100644 --- a/node/impl/full/state.go +++ b/node/impl/full/state.go @@ -486,7 +486,7 @@ func (m *StateModule) StateLookupID(ctx context.Context, addr address.Address, t return address.Undef, xerrors.Errorf("loading tipset %s: %w", tsk, err) } - ret, err := m.StateManager.LookupID(ctx, addr, ts) + ret, err := m.StateManager.LookupIDAddress(ctx, addr, ts) if err != nil && xerrors.Is(err, types.ErrActorNotFound) { return address.Undef, &api.ErrActorNotFound{} } From 65edab42bc597355ff6776422ded9eda88d6e68a Mon Sep 17 00:00:00 2001 From: Phi-rjan Date: Thu, 25 Apr 2024 17:13:18 +0200 Subject: [PATCH 07/22] Add v13 support to invariants-checker (#11931) Add v13 support to invariants-checker --- cmd/lotus-shed/invariants.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmd/lotus-shed/invariants.go b/cmd/lotus-shed/invariants.go index 5c6fb2d4f0a..e3507015a36 100644 --- a/cmd/lotus-shed/invariants.go +++ b/cmd/lotus-shed/invariants.go @@ -18,6 +18,7 @@ import ( v10 "github.com/filecoin-project/go-state-types/builtin/v10" v11 "github.com/filecoin-project/go-state-types/builtin/v11" v12 "github.com/filecoin-project/go-state-types/builtin/v12" + v13 "github.com/filecoin-project/go-state-types/builtin/v13" v8 "github.com/filecoin-project/go-state-types/builtin/v8" v9 "github.com/filecoin-project/go-state-types/builtin/v9" @@ -186,6 +187,11 @@ var invariantsCmd = &cli.Command{ if err != nil { return xerrors.Errorf("checking state invariants: %w", err) } + case actorstypes.Version13: + messages, err = v13.CheckStateInvariants(actorTree, abi.ChainEpoch(epoch), actorCodeCids) + if err != nil { + return xerrors.Errorf("checking state invariants: %w", err) + } default: return xerrors.Errorf("unsupported actor version: %v", av) } From ec6d3e148381810dbfc230dcafbf2ac91b8b5055 Mon Sep 17 00:00:00 2001 From: Phi-rjan Date: Thu, 25 Apr 2024 21:46:13 +0200 Subject: [PATCH 08/22] chore: docs: nv-skeleton documentation (#11065) * nv-skeleton documentation Add a tutorial for how one can create a nv-skeleton in Lotus * Add footnote for `Add migration` step Add footnote for `Add migration` step * Indent migration-code Indent migration-code to make it show properly as a footnote. * Add ref-fvm and filecoin-ffi checklist Add ref-fvm and filecoin-ffi checklist * Add Filecoin-FFI steps Add Filecoin-FFI steps * Add step to params_butterfly.go Add step to params_butterfly.go * Fix typo Fix typo * Add links to reference PRs Add links to reference PRs * Update ref-fvm list Update ref-fvm list --- .../misc/Building_a_network_skeleton.md | 255 ++++++++++++++++++ 1 file changed, 255 insertions(+) create mode 100644 documentation/misc/Building_a_network_skeleton.md diff --git a/documentation/misc/Building_a_network_skeleton.md b/documentation/misc/Building_a_network_skeleton.md new file mode 100644 index 00000000000..5aea6f706f8 --- /dev/null +++ b/documentation/misc/Building_a_network_skeleton.md @@ -0,0 +1,255 @@ +# Network Upgrade Skeleton in Lotus + +This guide will walk you through the process of creating a skeleton for a network upgrade in Lotus. The process involves making changes in multiple repositories in the following order: + +1. [`ref-fvm`](#ref-fvm-checklist) +2. [`filecoin-ffi`](#filecoin-ffi-checklist) +3. [`go-state-types`](#go-state-types-checklist) +4. [`lotus`](#lotus-checklist) + +Each repository has its own set of steps that need to be followed. This guide will provide detailed instructions for each repository. + +## Setup + +1. Clone the [ref-fvm](https://github.com/filecoin-project/ref-fvm.git) repository. + +2. Clone the [filecoin-ffi](https://github.com/filecoin-project/filecoin-ffi.git) repository. + +3. Clone the [go-state-types](https://github.com/filecoin-project/go-state-types) repository. + +4. In your Lotus repository, add `replace github.com/filecoin-project/go-state-types => ../go-state-types` to the very end of your Lotus `go.mod` file. + - This ensures that your local clone copy of `go-state-types` is used. Any changes you make there will be reflected in your Lotus project. + +## Ref-FVM Checklist + +1. Add support for the new network version in Ref-FVM: + + - In `fvm/Cargo.toml` add `nvXX-dev` as a feature flag in the [features]-section. + - In `fvm/src/gas/price_list.rs`, extend the `price_list_by_network_version` function to support the new network version with the `nvXX-dev` feature flag. + - In fvm/src/machine/default.rs, locate the new function within your machine context. You'll find a SUPPORTED_VERSIONS constant that sets the range of supported network versions. Update this range to include the new network version. Do this by replacing the existing feature flag nvXX-dev and NetworkVersion::VXX with the new ones corresponding to your new network version. + - In `shared/src/version/mod.rs`, in the `NetworkVersion` implementation, you will find a series of constants representing different network versions. To add a new network version, you need to declare a new constant: `pub const (VXX+1): Self = Self(XX+1);` + +You can take a look at [this Ref-FVM PR as a reference](https://github.com/filecoin-project/ref-fvm/pull/1929), which added the skeleton for network version 22. + +## Filecoin-FFI Checklist + +1. Update the `TryFrom` implementation for `EngineVersion` in `rust/src/fvm/engine.rs` + - Add the new network version number (XX+1) to the existing match arm for the network version. + +2. Patch the FVM-dependency (fvm3) in `rust/cargo.toml` to use the custom branch of the FVM created in the [Ref-FVM Checklist](#ref-fvm-checklist)) + - Add `features = ["your-ref-fvm-branch"]` to tell Cargo to use you Ref-FVM branch. + +You can take a look at this [Filecoin-FFI PR as a reference](https://github.com/filecoin-project/filecoin-ffi/pull/438), which added the skeleton for network version 22. + +## Go-State-Types Checklist + +1. Follow the [go-state-types actor version checklist](https://github.com/filecoin-project/go-state-types/blob/master/actors_version_checklist.md): + + - Copy `go-state-types/builtin/vX` to `go-state-types/builtin/v(X+1)`. + - Change all references from vX to v(X+1) in the new files. + - Add new network version to `network/version.go`. + - Add new actors version to `actors/version.go`. + - Add `Version(XX+1) Version = XX+1` as a constant. + - In `func VersionForNetwork` add `case network.Version(XX+1): return Version(XX+1), nil`. + - Add the new version to the gen step of the makefile. + - Add `$(GO_BIN) run ./builtin/v(XX+1)/gen/gen.go`. + +You can take a look at this [Go-State-Types PR as a reference](https://github.com/filecoin-project/go-state-types/pull/232), which added the skeleton for network version 22. + +## Lotus Checklist + +1. Import new actors: + + - Create a mock actor-bundle for the new network version. + - In `/build/actors` run `./pack.sh vXX+1 vXX.0.0` where XX is the current actor bundle version. + +2. Define upgrade heights in `build/params_`: + + - Update the following files: + - `params_2k.go` + - Set previous `UpgradeXxxxxHeight = abi.ChainEpoch(-xx-1)` + - Add `var UpgradeXxxxxHeight = abi.ChainEpoch(200)` + - Add `UpgradeXxxxxHeight = getUpgradeHeight("LOTUS_XXXXX_HEIGHT", UpgradeXXXXHeight)` + - Set `const GenesisNetworkVersion = network.VersionXX` where XX is the network version you are upgrading from. + - `params_butterfly.go` + - set previous upgrade to `var UpgradeXxxxxHeigh = abi.ChainEpoch(-xx-1)` + - Add comment with ?????? signaling that the new upgrade date is unkown + - Add `const UpgradeXxxxxHeight = 999999999999999` + - `params_calibnet.go` + - Add comment with `??????` signaling that the new upgrade date is unkown + - Add `const UpgradeXxxxxHeight = 999999999999999` + - `params_interop.go` + - set previous upgrade to `var UpgradeXxxxxHeigh = abi.ChainEpoch(-xx-1)` + - Add `const UpgradeXxxxxHeight = 50` + - `params_mainnet.go` + - Set previous upgrade to `const UpgradeXxxxxHeight = XX` + - Add comment with ???? signaling that the new upgrade date is unkown + - Add `var UpgradeXxxxxxHeight = abi.ChainEpoch(9999999999)` + - Change the `LOTUS_DISABLE_XXXX` env variable to the new network name + - `params_testground.go` + - Add `UpgradeXxxxxHeight abi.ChainEpoch = (-xx-1)` + +3. Generate adapters: + + - Update `gen/inlinegen-data.json`. + - Add `XX+1` to "actorVersions" and set "latestActorsVersion" to `XX+1`. + - Add `XX+1` to "networkVersions" and set "latestNetworkVersion" to `XX+1`. + + - Run `make actors-gen`. This generates the `/chain/actors/builtin/*` code, `/chain/actors/policy/policy.go` code, `/chain/actors/version.go`, and `/itest/kit/ensemble_opts_nv.go`. + +4. Update `chain/consensus/filcns/upgrades.go`. + - Import `nv(XX+1) "github.com/filecoin-project/go-state-types/builtin/v(XX+1)/migration`. + - Add Schedule. [^1] + - Add Migration. [^2] + +5. Add actorstype to the NewActorRegistry in `/chain/consensus/computestate.go`. + - Add `inv.Register(actorstypes.Version(XX+1), vm.ActorsVersionPredicate(actorstypes.Version(XX+1)), builtin.MakeRegistry(actorstypes.Version(XX+1))`. + +6. Add upgrade field to `api/types.go/ForkUpgradeParams`. + - Add `UpgradeXxxxxHeight abi.ChainEpoch` to `ForkUpgradeParams` struct. + +7. Add upgrade to `node/impl/full/state.go`. + - Add `UpgradeXxxxxHeight: build.UpgradeXxxxxHeight,`. + +8. Add network version to `chain/state/statetree.go`. + - Add `network.VersionXX+1` to `VersionForNetwork` function. + +9. Run `make gen`. + +10. Run `make docsgen-cli`. + +And you're done! This should create a network upgrade skeleton that you are able to run locally with your local go-state-types clones, and a mock Actors-bundle. This will allow you to: + +- Have a local developer network that starts at the current network version. +- Be able to see the Actor CIDs/Actor version for the mock v12-bundle through `lotus state actor-cids --network-version XX+1` +- Have a successful pre-migration. +- Complete Migration at upgrade epoch, but fail immidiately after the upgrade. + +You can take a look at this [Lotus PR as a reference](https://github.com/filecoin-project/lotus/pull/11432), which added the skeleton for network version 22. + +// TODO: Create a video-tutorial going through all the steps + +[^1]: Here is an example of how you can add a schedule: + + ```go + { + Height: build.UpgradeXxxxHeight, + Network: network.Version(XX+1), + Migration: UpgradeActorsV(XX+1), + PreMigrations: []stmgr.PreMigration{{ + PreMigration: PreUpgradeActors(VXX+1), + StartWithin: 120, + DontStartWithin: 15, + StopWithin: 10, + }}, + Expensive: true, + }, + ``` + + This schedule should be added to the `DefaultUpgradeSchedule` function, specifically within the `updates` array. + +[^2]: Here is an example of how you can add a migration: + + ```go + func PreUpgradeActorsV(XX+1)(ctx context.Context, sm *stmgr.StateManager, cache stmgr.MigrationCache, root cid.Cid, epoch abi.ChainEpoch, ts *types.TipSet) error { + // Use half the CPUs for pre-migration, but leave at least 3. + workerCount := MigrationMaxWorkerCount + if workerCount <= 4 { + workerCount = 1 + } else { + workerCount /= 2 + } + + lbts, lbRoot, err := stmgr.GetLookbackTipSetForRound(ctx, sm, ts, epoch) + if err != nil { + return xerrors.Errorf("error getting lookback ts for premigration: %w", err) + } + + config := migration.Config{ + MaxWorkers: uint(workerCount), + ProgressLogPeriod: time.Minute * 5, + } + + _, err = upgradeActorsV(XX+1)Common(ctx, sm, cache, lbRoot, epoch, lbts, config) + return err + } + + func UpgradeActorsV(XX+1)(ctx context.Context, sm *stmgr.StateManager, cache stmgr.MigrationCache, cb stmgr.ExecMonitor, + root cid.Cid, epoch abi.ChainEpoch, ts *types.TipSet) (cid.Cid, error) { + // Use all the CPUs except 2. + workerCount := MigrationMaxWorkerCount - 3 + if workerCount <= 0 { + workerCount = 1 + } + config := migration.Config{ + MaxWorkers: uint(workerCount), + JobQueueSize: 1000, + ResultQueueSize: 100, + ProgressLogPeriod: 10 * time.Second, + } + newRoot, err := upgradeActorsV(XX+1)Common(ctx, sm, cache, root, epoch, ts, config) + if err != nil { + return cid.Undef, xerrors.Errorf("migrating actors v11 state: %w", err) + } + return newRoot, nil + } + + func upgradeActorsV(XX+1)Common( + ctx context.Context, sm *stmgr.StateManager, cache stmgr.MigrationCache, + root cid.Cid, epoch abi.ChainEpoch, ts *types.TipSet, + config migration.Config, + ) (cid.Cid, error) { + writeStore := blockstore.NewAutobatch(ctx, sm.ChainStore().StateBlockstore(), units.GiB/4) + adtStore := store.ActorStore(ctx, writeStore) + // ensure that the manifest is loaded in the blockstore + if err := bundle.LoadBundles(ctx, writeStore, actorstypes.Version(XX+1)); err != nil { + return cid.Undef, xerrors.Errorf("failed to load manifest bundle: %w", err) + } + + // Load the state root. + var stateRoot types.StateRoot + if err := adtStore.Get(ctx, root, &stateRoot); err != nil { + return cid.Undef, xerrors.Errorf("failed to decode state root: %w", err) + } + + if stateRoot.Version != types.StateTreeVersion5 { + return cid.Undef, xerrors.Errorf( + "expected state root version 5 for actors v(XX+1) upgrade, got %d", + stateRoot.Version, + ) + } + + manifest, ok := actors.GetManifest(actorstypes.Version(XX+1)) + if !ok { + return cid.Undef, xerrors.Errorf("no manifest CID for v(XX+1) upgrade") + } + + // Perform the migration + newHamtRoot, err := nv(XX+1).MigrateStateTree(ctx, adtStore, manifest, stateRoot.Actors, epoch, config, + migrationLogger{}, cache) + if err != nil { + return cid.Undef, xerrors.Errorf("upgrading to actors v11: %w", err) + } + + // Persist the result. + newRoot, err := adtStore.Put(ctx, &types.StateRoot{ + Version: types.StateTreeVersion5, + Actors: newHamtRoot, + Info: stateRoot.Info, + }) + if err != nil { + return cid.Undef, xerrors.Errorf("failed to persist new state root: %w", err) + } + + // Persists the new tree and shuts down the flush worker + if err := writeStore.Flush(ctx); err != nil { + return cid.Undef, xerrors.Errorf("writeStore flush failed: %w", err) + } + + if err := writeStore.Shutdown(ctx); err != nil { + return cid.Undef, xerrors.Errorf("writeStore shutdown failed: %w", err) + } + + return newRoot, nil + } + ``` \ No newline at end of file From 0f7c74e499aadf32a0b0e10d04f717dfa818ba04 Mon Sep 17 00:00:00 2001 From: Lee Date: Fri, 26 Apr 2024 16:26:57 +0800 Subject: [PATCH 09/22] feat: curio: add StorageInit api (#11918) * feat: add StorageInit api * remove unused variables * fix gen check --- api/api_curio.go | 1 + api/proxy_gen.go | 13 + build/openrpc/full.json | 486 +++++++++++------------ build/openrpc/gateway.json | 192 ++++----- build/openrpc/miner.json | 260 ++++++------ build/openrpc/worker.json | 74 ++-- cmd/curio/rpc/rpc.go | 38 ++ cmd/curio/storage.go | 30 +- documentation/en/api-v0-methods-curio.md | 40 ++ 9 files changed, 601 insertions(+), 533 deletions(-) diff --git a/api/api_curio.go b/api/api_curio.go index 6f31ef7e089..0eceb484fdb 100644 --- a/api/api_curio.go +++ b/api/api_curio.go @@ -17,6 +17,7 @@ type Curio interface { AllocatePieceToSector(ctx context.Context, maddr address.Address, piece PieceDealInfo, rawSize int64, source url.URL, header http.Header) (SectorOffset, error) //perm:write + StorageInit(ctx context.Context, path string, opts storiface.LocalStorageMeta) error //perm:admin StorageAddLocal(ctx context.Context, path string) error //perm:admin StorageDetachLocal(ctx context.Context, path string) error //perm:admin StorageList(ctx context.Context) (map[storiface.ID][]storiface.Decl, error) //perm:admin diff --git a/api/proxy_gen.go b/api/proxy_gen.go index c36c62d5720..f9e7866151b 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -136,6 +136,8 @@ type CurioMethods struct { StorageInfo func(p0 context.Context, p1 storiface.ID) (storiface.StorageInfo, error) `perm:"admin"` + StorageInit func(p0 context.Context, p1 string, p2 storiface.LocalStorageMeta) error `perm:"admin"` + StorageList func(p0 context.Context) (map[storiface.ID][]storiface.Decl, error) `perm:"admin"` StorageLocal func(p0 context.Context) (map[storiface.ID]string, error) `perm:"admin"` @@ -1580,6 +1582,17 @@ func (s *CurioStub) StorageInfo(p0 context.Context, p1 storiface.ID) (storiface. return *new(storiface.StorageInfo), ErrNotSupported } +func (s *CurioStruct) StorageInit(p0 context.Context, p1 string, p2 storiface.LocalStorageMeta) error { + if s.Internal.StorageInit == nil { + return ErrNotSupported + } + return s.Internal.StorageInit(p0, p1, p2) +} + +func (s *CurioStub) StorageInit(p0 context.Context, p1 string, p2 storiface.LocalStorageMeta) error { + return ErrNotSupported +} + func (s *CurioStruct) StorageList(p0 context.Context) (map[storiface.ID][]storiface.Decl, error) { if s.Internal.StorageList == nil { return *new(map[storiface.ID][]storiface.Decl), ErrNotSupported diff --git a/build/openrpc/full.json b/build/openrpc/full.json index ae12bc302c2..5d422f283cf 100644 --- a/build/openrpc/full.json +++ b/build/openrpc/full.json @@ -37,7 +37,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1638" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1651" } }, { @@ -60,7 +60,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1649" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1662" } }, { @@ -103,7 +103,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1660" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1673" } }, { @@ -214,7 +214,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1682" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1695" } }, { @@ -454,7 +454,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1693" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1706" } }, { @@ -685,7 +685,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1704" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1717" } }, { @@ -784,7 +784,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1715" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1728" } }, { @@ -816,7 +816,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1726" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1739" } }, { @@ -922,7 +922,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1737" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1750" } }, { @@ -1019,7 +1019,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1748" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1761" } }, { @@ -1078,7 +1078,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1759" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1772" } }, { @@ -1171,7 +1171,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1770" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1783" } }, { @@ -1255,7 +1255,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1781" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1794" } }, { @@ -1355,7 +1355,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1792" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1805" } }, { @@ -1411,7 +1411,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1803" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1816" } }, { @@ -1484,7 +1484,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1814" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1827" } }, { @@ -1557,7 +1557,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1825" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1838" } }, { @@ -1604,7 +1604,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1836" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1849" } }, { @@ -1636,7 +1636,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1847" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1860" } }, { @@ -1691,7 +1691,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1858" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1871" } }, { @@ -1743,7 +1743,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1880" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1893" } }, { @@ -1780,7 +1780,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1891" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1904" } }, { @@ -1827,7 +1827,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1902" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1915" } }, { @@ -1874,7 +1874,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1913" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1926" } }, { @@ -1954,7 +1954,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1924" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1937" } }, { @@ -2006,7 +2006,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1935" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1948" } }, { @@ -2065,7 +2065,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1946" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1959" } }, { @@ -2136,7 +2136,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1957" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1970" } }, { @@ -2177,7 +2177,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1968" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1981" } }, { @@ -2245,7 +2245,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1990" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2003" } }, { @@ -2306,7 +2306,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2001" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2014" } }, { @@ -2413,7 +2413,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2012" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2025" } }, { @@ -2569,7 +2569,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2023" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2036" } }, { @@ -2635,7 +2635,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2034" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2047" } }, { @@ -2976,7 +2976,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2045" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2058" } }, { @@ -3021,7 +3021,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2056" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2069" } }, { @@ -3068,7 +3068,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2089" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2102" } }, { @@ -3139,7 +3139,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2100" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2113" } }, { @@ -3282,7 +3282,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2111" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2124" } }, { @@ -3612,7 +3612,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2122" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2135" } }, { @@ -3680,7 +3680,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2133" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2146" } }, { @@ -3914,7 +3914,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2144" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2157" } }, { @@ -4077,7 +4077,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2155" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2168" } }, { @@ -4160,7 +4160,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2166" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2179" } }, { @@ -4201,7 +4201,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2177" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2190" } }, { @@ -4272,7 +4272,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2188" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2201" } }, { @@ -4416,7 +4416,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2199" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2212" } }, { @@ -4456,7 +4456,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2210" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2223" } }, { @@ -4497,7 +4497,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2221" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2234" } }, { @@ -4622,7 +4622,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2232" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2245" } }, { @@ -4747,7 +4747,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2243" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2256" } }, { @@ -4786,7 +4786,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2254" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2267" } }, { @@ -4833,7 +4833,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2265" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2278" } }, { @@ -4888,7 +4888,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2276" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2289" } }, { @@ -4917,7 +4917,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2287" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2300" } }, { @@ -5054,7 +5054,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2298" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2311" } }, { @@ -5083,7 +5083,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2309" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2322" } }, { @@ -5137,7 +5137,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2320" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2333" } }, { @@ -5228,7 +5228,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2331" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2344" } }, { @@ -5256,7 +5256,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2342" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2355" } }, { @@ -5346,7 +5346,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2353" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2366" } }, { @@ -5602,7 +5602,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2364" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2377" } }, { @@ -5847,7 +5847,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2375" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2388" } }, { @@ -5903,7 +5903,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2386" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2399" } }, { @@ -5950,7 +5950,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2397" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2410" } }, { @@ -6048,7 +6048,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2408" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2421" } }, { @@ -6114,7 +6114,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2419" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2432" } }, { @@ -6180,7 +6180,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2430" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2443" } }, { @@ -6289,7 +6289,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2441" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2454" } }, { @@ -6347,7 +6347,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2452" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2465" } }, { @@ -6469,7 +6469,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2463" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2476" } }, { @@ -6673,7 +6673,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2474" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2487" } }, { @@ -6868,7 +6868,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2485" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2498" } }, { @@ -7055,7 +7055,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2496" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2509" } }, { @@ -7259,7 +7259,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2507" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2520" } }, { @@ -7350,7 +7350,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2518" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2531" } }, { @@ -7408,7 +7408,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2529" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2542" } }, { @@ -7666,7 +7666,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2540" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2553" } }, { @@ -7941,7 +7941,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2551" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2564" } }, { @@ -7969,7 +7969,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2562" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2575" } }, { @@ -8007,7 +8007,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2573" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2586" } }, { @@ -8115,7 +8115,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2584" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2597" } }, { @@ -8153,7 +8153,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2595" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2608" } }, { @@ -8182,7 +8182,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2606" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2619" } }, { @@ -8245,7 +8245,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2617" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2630" } }, { @@ -8308,7 +8308,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2628" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2641" } }, { @@ -8353,7 +8353,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2639" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2652" } }, { @@ -8475,7 +8475,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2650" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2663" } }, { @@ -8630,7 +8630,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2661" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2674" } }, { @@ -8684,7 +8684,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2672" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2685" } }, { @@ -8738,7 +8738,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2683" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2696" } }, { @@ -8793,7 +8793,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2694" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2707" } }, { @@ -8936,7 +8936,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2705" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2718" } }, { @@ -9063,7 +9063,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2716" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2729" } }, { @@ -9165,7 +9165,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2727" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2740" } }, { @@ -9388,7 +9388,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2738" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2751" } }, { @@ -9571,7 +9571,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2749" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2762" } }, { @@ -9651,7 +9651,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2760" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2773" } }, { @@ -9696,7 +9696,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2771" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2784" } }, { @@ -9752,7 +9752,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2782" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2795" } }, { @@ -9832,7 +9832,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2793" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2806" } }, { @@ -9912,7 +9912,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2804" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2817" } }, { @@ -10397,7 +10397,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2815" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2828" } }, { @@ -10591,7 +10591,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2826" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2839" } }, { @@ -10746,7 +10746,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2837" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2850" } }, { @@ -10995,7 +10995,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2848" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2861" } }, { @@ -11150,7 +11150,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2859" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2872" } }, { @@ -11327,7 +11327,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2870" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2883" } }, { @@ -11425,7 +11425,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2881" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2894" } }, { @@ -11590,7 +11590,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2892" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2905" } }, { @@ -11629,7 +11629,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2903" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2916" } }, { @@ -11694,7 +11694,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2914" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2927" } }, { @@ -11740,7 +11740,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2925" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2938" } }, { @@ -11890,7 +11890,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2936" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2949" } }, { @@ -12027,7 +12027,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2947" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2960" } }, { @@ -12258,7 +12258,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2958" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2971" } }, { @@ -12395,7 +12395,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2969" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2982" } }, { @@ -12560,7 +12560,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2980" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2993" } }, { @@ -12637,7 +12637,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2991" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3004" } }, { @@ -12832,7 +12832,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3013" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3026" } }, { @@ -13011,7 +13011,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3024" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3037" } }, { @@ -13173,7 +13173,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3035" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3048" } }, { @@ -13321,7 +13321,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3046" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3059" } }, { @@ -13549,7 +13549,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3057" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3070" } }, { @@ -13697,7 +13697,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3068" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3081" } }, { @@ -13909,7 +13909,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3079" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3092" } }, { @@ -14115,7 +14115,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3090" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3103" } }, { @@ -14183,7 +14183,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3101" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3114" } }, { @@ -14300,7 +14300,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3112" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3125" } }, { @@ -14391,7 +14391,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3123" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3136" } }, { @@ -14477,7 +14477,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3134" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3147" } }, { @@ -14672,7 +14672,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3145" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3158" } }, { @@ -14834,7 +14834,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3156" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3169" } }, { @@ -15030,7 +15030,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3167" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3180" } }, { @@ -15210,7 +15210,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3178" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3191" } }, { @@ -15373,7 +15373,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3189" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3202" } }, { @@ -15400,7 +15400,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3200" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3213" } }, { @@ -15427,7 +15427,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3211" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3224" } }, { @@ -15526,7 +15526,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3222" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3235" } }, { @@ -15572,7 +15572,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3233" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3246" } }, { @@ -15672,7 +15672,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3244" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3257" } }, { @@ -15788,7 +15788,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3255" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3268" } }, { @@ -15836,7 +15836,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3266" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3279" } }, { @@ -15928,7 +15928,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3277" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3290" } }, { @@ -16043,7 +16043,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3288" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3301" } }, { @@ -16091,7 +16091,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3299" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3312" } }, { @@ -16128,7 +16128,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3310" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3323" } }, { @@ -16400,7 +16400,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3321" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3334" } }, { @@ -16448,7 +16448,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3332" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3345" } }, { @@ -16506,7 +16506,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3343" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3356" } }, { @@ -16711,7 +16711,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3354" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3367" } }, { @@ -16914,7 +16914,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3365" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3378" } }, { @@ -17083,7 +17083,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3376" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3389" } }, { @@ -17287,7 +17287,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3387" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3400" } }, { @@ -17454,7 +17454,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3398" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3411" } }, { @@ -17661,7 +17661,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3409" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3422" } }, { @@ -17729,7 +17729,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3420" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3433" } }, { @@ -17781,7 +17781,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3431" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3444" } }, { @@ -17830,7 +17830,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3442" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3455" } }, { @@ -17921,7 +17921,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3453" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3466" } }, { @@ -18427,7 +18427,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3464" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3477" } }, { @@ -18533,7 +18533,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3475" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3488" } }, { @@ -18585,7 +18585,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3486" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3499" } }, { @@ -19137,7 +19137,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3497" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3510" } }, { @@ -19251,7 +19251,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3508" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3521" } }, { @@ -19348,7 +19348,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3519" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3532" } }, { @@ -19448,7 +19448,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3530" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3543" } }, { @@ -19536,7 +19536,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3541" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3554" } }, { @@ -19636,7 +19636,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3552" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3565" } }, { @@ -19723,7 +19723,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3563" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3576" } }, { @@ -19814,7 +19814,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3574" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3587" } }, { @@ -19939,7 +19939,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3585" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3598" } }, { @@ -20048,7 +20048,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3596" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3609" } }, { @@ -20118,7 +20118,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3607" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3620" } }, { @@ -20221,7 +20221,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3618" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3631" } }, { @@ -20282,7 +20282,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3629" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3642" } }, { @@ -20412,7 +20412,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3640" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3653" } }, { @@ -20519,7 +20519,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3651" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3664" } }, { @@ -20728,7 +20728,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3662" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3675" } }, { @@ -20805,7 +20805,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3673" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3686" } }, { @@ -20882,7 +20882,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3684" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3697" } }, { @@ -20991,7 +20991,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3695" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3708" } }, { @@ -21100,7 +21100,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3706" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3719" } }, { @@ -21161,7 +21161,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3717" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3730" } }, { @@ -21271,7 +21271,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3728" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3741" } }, { @@ -21332,7 +21332,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3739" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3752" } }, { @@ -21400,7 +21400,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3750" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3763" } }, { @@ -21468,7 +21468,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3761" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3774" } }, { @@ -21549,7 +21549,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3772" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3785" } }, { @@ -21698,7 +21698,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3783" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3796" } }, { @@ -21770,7 +21770,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3794" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3807" } }, { @@ -21929,7 +21929,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3805" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3818" } }, { @@ -22094,7 +22094,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3816" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3829" } }, { @@ -22164,7 +22164,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3827" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3840" } }, { @@ -22232,7 +22232,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3838" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3851" } }, { @@ -22325,7 +22325,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3849" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3862" } }, { @@ -22396,7 +22396,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3860" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3873" } }, { @@ -22597,7 +22597,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3871" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3884" } }, { @@ -22729,7 +22729,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3882" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3895" } }, { @@ -22866,7 +22866,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3893" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3906" } }, { @@ -22977,7 +22977,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3904" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3917" } }, { @@ -23109,7 +23109,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3915" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3928" } }, { @@ -23240,7 +23240,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3926" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3939" } }, { @@ -23311,7 +23311,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3937" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3950" } }, { @@ -23395,7 +23395,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3948" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3961" } }, { @@ -23481,7 +23481,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3959" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3972" } }, { @@ -23664,7 +23664,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3970" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3983" } }, { @@ -23691,7 +23691,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3981" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3994" } }, { @@ -23744,7 +23744,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3992" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4005" } }, { @@ -23832,7 +23832,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4003" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4016" } }, { @@ -24283,7 +24283,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4014" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4027" } }, { @@ -24450,7 +24450,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4025" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4038" } }, { @@ -24548,7 +24548,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4036" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4049" } }, { @@ -24721,7 +24721,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4047" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4060" } }, { @@ -24819,7 +24819,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4058" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4071" } }, { @@ -24970,7 +24970,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4069" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4082" } }, { @@ -25055,7 +25055,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4080" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4093" } }, { @@ -25123,7 +25123,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4091" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4104" } }, { @@ -25175,7 +25175,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4102" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4115" } }, { @@ -25243,7 +25243,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4113" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4126" } }, { @@ -25404,7 +25404,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4124" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4137" } }, { @@ -25451,7 +25451,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4146" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4159" } }, { @@ -25498,7 +25498,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4157" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4170" } }, { @@ -25541,7 +25541,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4179" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4192" } }, { @@ -25637,7 +25637,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4190" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4203" } }, { @@ -25903,7 +25903,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4201" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4214" } }, { @@ -25926,7 +25926,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4212" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4225" } }, { @@ -25969,7 +25969,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4223" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4236" } }, { @@ -26020,7 +26020,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4234" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4247" } }, { @@ -26065,7 +26065,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4245" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4258" } }, { @@ -26093,7 +26093,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4256" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4269" } }, { @@ -26133,7 +26133,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4267" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4280" } }, { @@ -26192,7 +26192,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4278" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4291" } }, { @@ -26236,7 +26236,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4289" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4302" } }, { @@ -26295,7 +26295,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4300" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4313" } }, { @@ -26332,7 +26332,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4311" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4324" } }, { @@ -26376,7 +26376,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4322" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4335" } }, { @@ -26416,7 +26416,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4333" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4346" } }, { @@ -26491,7 +26491,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4344" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4357" } }, { @@ -26699,7 +26699,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4355" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4368" } }, { @@ -26743,7 +26743,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4366" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4379" } }, { @@ -26833,7 +26833,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4377" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4390" } }, { @@ -26860,7 +26860,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4388" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4401" } } ] diff --git a/build/openrpc/gateway.json b/build/openrpc/gateway.json index faa2c8536c7..04a2df7d7ee 100644 --- a/build/openrpc/gateway.json +++ b/build/openrpc/gateway.json @@ -242,7 +242,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4399" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4412" } }, { @@ -473,7 +473,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4410" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4423" } }, { @@ -572,7 +572,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4421" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4434" } }, { @@ -604,7 +604,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4432" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4445" } }, { @@ -710,7 +710,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4443" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4456" } }, { @@ -803,7 +803,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4454" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4467" } }, { @@ -887,7 +887,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4465" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4478" } }, { @@ -987,7 +987,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4476" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4489" } }, { @@ -1043,7 +1043,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4487" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4500" } }, { @@ -1116,7 +1116,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4498" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4511" } }, { @@ -1189,7 +1189,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4509" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4522" } }, { @@ -1236,7 +1236,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4520" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4533" } }, { @@ -1268,7 +1268,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4531" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4544" } }, { @@ -1305,7 +1305,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4553" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4566" } }, { @@ -1352,7 +1352,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4564" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4577" } }, { @@ -1392,7 +1392,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4575" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4588" } }, { @@ -1439,7 +1439,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4586" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4599" } }, { @@ -1468,7 +1468,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4597" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4610" } }, { @@ -1605,7 +1605,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4608" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4621" } }, { @@ -1634,7 +1634,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4619" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4632" } }, { @@ -1688,7 +1688,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4630" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4643" } }, { @@ -1779,7 +1779,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4641" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4654" } }, { @@ -1807,7 +1807,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4652" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4665" } }, { @@ -1897,7 +1897,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4663" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4676" } }, { @@ -2153,7 +2153,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4674" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4687" } }, { @@ -2398,7 +2398,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4685" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4698" } }, { @@ -2454,7 +2454,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4696" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4709" } }, { @@ -2501,7 +2501,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4707" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4720" } }, { @@ -2599,7 +2599,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4718" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4731" } }, { @@ -2665,7 +2665,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4729" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4742" } }, { @@ -2731,7 +2731,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4740" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4753" } }, { @@ -2840,7 +2840,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4751" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4764" } }, { @@ -2898,7 +2898,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4762" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4775" } }, { @@ -3020,7 +3020,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4773" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4786" } }, { @@ -3207,7 +3207,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4784" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4797" } }, { @@ -3411,7 +3411,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4795" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4808" } }, { @@ -3502,7 +3502,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4806" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4819" } }, { @@ -3560,7 +3560,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4817" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4830" } }, { @@ -3818,7 +3818,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4828" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4841" } }, { @@ -4093,7 +4093,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4839" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4852" } }, { @@ -4121,7 +4121,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4850" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4863" } }, { @@ -4159,7 +4159,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4861" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4874" } }, { @@ -4267,7 +4267,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4872" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4885" } }, { @@ -4305,7 +4305,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4883" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4896" } }, { @@ -4334,7 +4334,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4894" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4907" } }, { @@ -4397,7 +4397,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4905" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4918" } }, { @@ -4460,7 +4460,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4916" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4929" } }, { @@ -4505,7 +4505,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4927" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4940" } }, { @@ -4627,7 +4627,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4938" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4951" } }, { @@ -4782,7 +4782,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4949" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4962" } }, { @@ -4836,7 +4836,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4960" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4973" } }, { @@ -4890,7 +4890,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4971" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4984" } }, { @@ -4992,7 +4992,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4982" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4995" } }, { @@ -5215,7 +5215,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4993" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5006" } }, { @@ -5398,7 +5398,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5004" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5017" } }, { @@ -5592,7 +5592,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5015" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5028" } }, { @@ -5638,7 +5638,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5026" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5039" } }, { @@ -5788,7 +5788,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5037" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5050" } }, { @@ -5925,7 +5925,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5048" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5061" } }, { @@ -5993,7 +5993,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5059" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5072" } }, { @@ -6110,7 +6110,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5070" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5083" } }, { @@ -6201,7 +6201,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5081" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5094" } }, { @@ -6287,7 +6287,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5092" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5105" } }, { @@ -6314,7 +6314,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5103" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5116" } }, { @@ -6341,7 +6341,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5114" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5127" } }, { @@ -6409,7 +6409,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5125" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5138" } }, { @@ -6915,7 +6915,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5136" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5149" } }, { @@ -7012,7 +7012,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5147" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5160" } }, { @@ -7112,7 +7112,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5158" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5171" } }, { @@ -7212,7 +7212,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5169" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5182" } }, { @@ -7337,7 +7337,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5180" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5193" } }, { @@ -7446,7 +7446,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5191" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5204" } }, { @@ -7549,7 +7549,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5202" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5215" } }, { @@ -7679,7 +7679,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5213" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5226" } }, { @@ -7786,7 +7786,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5224" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5237" } }, { @@ -7847,7 +7847,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5235" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5248" } }, { @@ -7915,7 +7915,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5246" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5259" } }, { @@ -7996,7 +7996,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5257" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5270" } }, { @@ -8155,7 +8155,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5268" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5281" } }, { @@ -8248,7 +8248,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5279" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5292" } }, { @@ -8449,7 +8449,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5290" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5303" } }, { @@ -8560,7 +8560,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5301" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5314" } }, { @@ -8691,7 +8691,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5312" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5325" } }, { @@ -8777,7 +8777,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5323" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5336" } }, { @@ -8804,7 +8804,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5334" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5347" } }, { @@ -8857,7 +8857,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5345" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5358" } }, { @@ -8945,7 +8945,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5356" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5369" } }, { @@ -9396,7 +9396,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5367" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5380" } }, { @@ -9563,7 +9563,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5378" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5391" } }, { @@ -9736,7 +9736,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5389" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5402" } }, { @@ -9804,7 +9804,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5400" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5413" } }, { @@ -9872,7 +9872,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5411" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5424" } }, { @@ -10033,7 +10033,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5422" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5435" } }, { @@ -10078,7 +10078,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5444" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5457" } }, { @@ -10123,7 +10123,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5455" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5468" } }, { @@ -10150,7 +10150,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5466" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5479" } } ] diff --git a/build/openrpc/miner.json b/build/openrpc/miner.json index bc374e63e20..b94f96abff2 100644 --- a/build/openrpc/miner.json +++ b/build/openrpc/miner.json @@ -30,7 +30,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5752" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5765" } }, { @@ -109,7 +109,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5763" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5776" } }, { @@ -155,7 +155,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5774" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5787" } }, { @@ -203,7 +203,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5785" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5798" } }, { @@ -251,7 +251,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5796" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5809" } }, { @@ -354,7 +354,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5807" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5820" } }, { @@ -428,7 +428,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5818" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5831" } }, { @@ -591,7 +591,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5829" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5842" } }, { @@ -742,7 +742,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5840" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5853" } }, { @@ -781,7 +781,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5851" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5864" } }, { @@ -833,7 +833,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5862" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5875" } }, { @@ -872,7 +872,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5884" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5897" } }, { @@ -924,7 +924,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5895" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5908" } }, { @@ -996,7 +996,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5906" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5919" } }, { @@ -1035,7 +1035,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5917" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5930" } }, { @@ -1074,7 +1074,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5928" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5941" } }, { @@ -1101,7 +1101,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5939" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5952" } }, { @@ -1128,7 +1128,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5950" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5963" } }, { @@ -1155,7 +1155,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5961" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5974" } }, { @@ -1182,7 +1182,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5972" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5985" } }, { @@ -1209,7 +1209,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5983" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5996" } }, { @@ -1236,7 +1236,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5994" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6007" } }, { @@ -1294,7 +1294,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6005" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6018" } }, { @@ -1421,7 +1421,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6016" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6029" } }, { @@ -1461,7 +1461,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6027" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6040" } }, { @@ -1500,7 +1500,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6038" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6051" } }, { @@ -1539,7 +1539,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6049" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6062" } }, { @@ -1578,7 +1578,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6060" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6073" } }, { @@ -1617,7 +1617,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6071" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6084" } }, { @@ -1656,7 +1656,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6082" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6095" } }, { @@ -1695,7 +1695,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6093" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6106" } }, { @@ -1747,7 +1747,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6104" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6117" } }, { @@ -1770,7 +1770,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6115" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6128" } }, { @@ -1813,7 +1813,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6126" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6139" } }, { @@ -1884,7 +1884,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6137" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6150" } }, { @@ -2265,7 +2265,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6148" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6161" } }, { @@ -2364,7 +2364,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6170" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6183" } }, { @@ -2415,7 +2415,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6192" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6205" } }, { @@ -2473,7 +2473,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6203" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6216" } }, { @@ -2616,7 +2616,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6214" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6227" } }, { @@ -2743,7 +2743,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6225" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6238" } }, { @@ -3007,7 +3007,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6236" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6249" } }, { @@ -3044,7 +3044,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6247" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6260" } }, { @@ -3182,7 +3182,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6258" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6271" } }, { @@ -3205,7 +3205,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6269" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6282" } }, { @@ -3276,7 +3276,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6280" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6293" } }, { @@ -3319,7 +3319,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6291" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6304" } }, { @@ -3426,7 +3426,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6302" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6315" } }, { @@ -3489,7 +3489,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6313" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6326" } }, { @@ -3521,7 +3521,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6324" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6337" } }, { @@ -3609,7 +3609,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6335" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6348" } }, { @@ -3700,7 +3700,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6346" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6359" } }, { @@ -3740,7 +3740,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6357" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6370" } }, { @@ -3780,7 +3780,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6368" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6381" } }, { @@ -3821,7 +3821,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6379" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6392" } }, { @@ -3889,7 +3889,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6390" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6403" } }, { @@ -4020,7 +4020,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6401" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6414" } }, { @@ -4151,7 +4151,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6412" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6425" } }, { @@ -4251,7 +4251,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6423" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6436" } }, { @@ -4351,7 +4351,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6434" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6447" } }, { @@ -4451,7 +4451,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6445" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6458" } }, { @@ -4551,7 +4551,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6456" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6469" } }, { @@ -4651,7 +4651,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6467" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6480" } }, { @@ -4751,7 +4751,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6478" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6491" } }, { @@ -4875,7 +4875,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6489" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6502" } }, { @@ -4999,7 +4999,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6500" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6513" } }, { @@ -5114,7 +5114,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6511" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6524" } }, { @@ -5214,7 +5214,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6522" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6535" } }, { @@ -5347,7 +5347,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6533" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6546" } }, { @@ -5471,7 +5471,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6544" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6557" } }, { @@ -5595,7 +5595,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6555" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6568" } }, { @@ -5719,7 +5719,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6566" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6579" } }, { @@ -5852,7 +5852,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6577" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6590" } }, { @@ -5952,7 +5952,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6588" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6601" } }, { @@ -5993,7 +5993,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6599" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6612" } }, { @@ -6065,7 +6065,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6610" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6623" } }, { @@ -6115,7 +6115,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6621" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6634" } }, { @@ -6159,7 +6159,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6632" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6645" } }, { @@ -6200,7 +6200,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6643" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6656" } }, { @@ -6444,7 +6444,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6654" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6667" } }, { @@ -6518,7 +6518,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6665" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6678" } }, { @@ -6568,7 +6568,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6676" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6689" } }, { @@ -6597,7 +6597,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6687" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6700" } }, { @@ -6626,7 +6626,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6698" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6711" } }, { @@ -6682,7 +6682,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6709" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6722" } }, { @@ -6705,7 +6705,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6720" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6733" } }, { @@ -6765,7 +6765,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6731" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6744" } }, { @@ -6804,7 +6804,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6742" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6755" } }, { @@ -6844,7 +6844,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6753" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6766" } }, { @@ -6917,7 +6917,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6764" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6777" } }, { @@ -6981,7 +6981,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6775" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6788" } }, { @@ -7044,7 +7044,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6786" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6799" } }, { @@ -7094,7 +7094,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6797" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6810" } }, { @@ -7653,7 +7653,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6808" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6821" } }, { @@ -7694,7 +7694,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6819" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6832" } }, { @@ -7735,7 +7735,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6830" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6843" } }, { @@ -7776,7 +7776,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6841" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6854" } }, { @@ -7817,7 +7817,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6852" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6865" } }, { @@ -7858,7 +7858,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6863" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6876" } }, { @@ -7889,7 +7889,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6874" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6887" } }, { @@ -7939,7 +7939,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6885" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6898" } }, { @@ -7980,7 +7980,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6896" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6909" } }, { @@ -8019,7 +8019,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6907" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6920" } }, { @@ -8083,7 +8083,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6918" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6931" } }, { @@ -8141,7 +8141,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6929" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6942" } }, { @@ -8588,7 +8588,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6940" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6953" } }, { @@ -8624,7 +8624,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6951" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6964" } }, { @@ -8767,7 +8767,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6962" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6975" } }, { @@ -8823,7 +8823,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6973" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6986" } }, { @@ -8862,7 +8862,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6984" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6997" } }, { @@ -9039,7 +9039,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6995" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7008" } }, { @@ -9091,7 +9091,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7006" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7019" } }, { @@ -9283,7 +9283,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7017" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7030" } }, { @@ -9383,7 +9383,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7028" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7041" } }, { @@ -9437,7 +9437,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7039" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7052" } }, { @@ -9476,7 +9476,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7050" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7063" } }, { @@ -9561,7 +9561,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7061" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7074" } }, { @@ -9755,7 +9755,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7072" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7085" } }, { @@ -9853,7 +9853,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7083" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7096" } }, { @@ -9985,7 +9985,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7094" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7107" } }, { @@ -10039,7 +10039,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7105" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7118" } }, { @@ -10073,7 +10073,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7116" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7129" } }, { @@ -10160,7 +10160,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7127" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7140" } }, { @@ -10214,7 +10214,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7138" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7151" } }, { @@ -10314,7 +10314,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7149" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7162" } }, { @@ -10391,7 +10391,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7160" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7173" } }, { @@ -10482,7 +10482,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7171" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7184" } }, { @@ -10521,7 +10521,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7182" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7195" } }, { @@ -10637,7 +10637,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7193" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7206" } }, { @@ -12737,7 +12737,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7204" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7217" } } ] diff --git a/build/openrpc/worker.json b/build/openrpc/worker.json index 220d2e1c9e4..b02ba61390a 100644 --- a/build/openrpc/worker.json +++ b/build/openrpc/worker.json @@ -161,7 +161,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7292" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7305" } }, { @@ -252,7 +252,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7303" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7316" } }, { @@ -420,7 +420,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7314" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7327" } }, { @@ -447,7 +447,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7325" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7338" } }, { @@ -597,7 +597,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7336" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7349" } }, { @@ -700,7 +700,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7347" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7360" } }, { @@ -803,7 +803,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7358" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7371" } }, { @@ -925,7 +925,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7369" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7382" } }, { @@ -1135,7 +1135,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7380" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7393" } }, { @@ -1306,7 +1306,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7391" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7404" } }, { @@ -3350,7 +3350,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7402" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7415" } }, { @@ -3470,7 +3470,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7413" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7426" } }, { @@ -3531,7 +3531,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7424" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7437" } }, { @@ -3569,7 +3569,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7435" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7448" } }, { @@ -3729,7 +3729,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7446" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7459" } }, { @@ -3913,7 +3913,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7457" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7470" } }, { @@ -4054,7 +4054,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7468" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7481" } }, { @@ -4107,7 +4107,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7479" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7492" } }, { @@ -4250,7 +4250,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7490" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7503" } }, { @@ -4474,7 +4474,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7501" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7514" } }, { @@ -4601,7 +4601,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7512" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7525" } }, { @@ -4768,7 +4768,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7523" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7536" } }, { @@ -4895,7 +4895,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7534" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7547" } }, { @@ -4933,7 +4933,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7545" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7558" } }, { @@ -4972,7 +4972,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7556" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7569" } }, { @@ -4995,7 +4995,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7567" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7580" } }, { @@ -5034,7 +5034,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7578" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7591" } }, { @@ -5057,7 +5057,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7589" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7602" } }, { @@ -5096,7 +5096,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7600" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7613" } }, { @@ -5130,7 +5130,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7611" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7624" } }, { @@ -5184,7 +5184,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7622" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7635" } }, { @@ -5223,7 +5223,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7633" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7646" } }, { @@ -5262,7 +5262,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7644" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7657" } }, { @@ -5297,7 +5297,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7655" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7668" } }, { @@ -5477,7 +5477,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7666" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7679" } }, { @@ -5506,7 +5506,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7677" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7690" } }, { @@ -5529,7 +5529,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7688" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L7701" } } ] diff --git a/cmd/curio/rpc/rpc.go b/cmd/curio/rpc/rpc.go index f45e276c3f5..1b2bb25e643 100644 --- a/cmd/curio/rpc/rpc.go +++ b/cmd/curio/rpc/rpc.go @@ -9,9 +9,11 @@ import ( "net/http" "net/url" "os" + "path/filepath" "time" "github.com/gbrlsnchs/jwt/v3" + "github.com/google/uuid" "github.com/gorilla/mux" logging "github.com/ipfs/go-log/v2" "github.com/mitchellh/go-homedir" @@ -39,6 +41,8 @@ import ( "github.com/filecoin-project/lotus/storage/sealer/storiface" ) +const metaFile = "sectorstore.json" + var log = logging.Logger("curio/rpc") var permissioned = os.Getenv("LOTUS_DISABLE_AUTH_PERMISSIONED") != "1" @@ -162,6 +166,40 @@ func (p *CurioAPI) Shutdown(context.Context) error { return nil } +func (p *CurioAPI) StorageInit(ctx context.Context, path string, opts storiface.LocalStorageMeta) error { + path, err := homedir.Expand(path) + if err != nil { + return xerrors.Errorf("expanding local path: %w", err) + } + + if err := os.MkdirAll(path, 0755); err != nil { + if !os.IsExist(err) { + return err + } + } + _, err = os.Stat(filepath.Join(path, metaFile)) + if !os.IsNotExist(err) { + if err == nil { + return xerrors.Errorf("path is already initialized") + } + return err + } + if opts.ID == "" { + opts.ID = storiface.ID(uuid.New().String()) + } + if !(opts.CanStore || opts.CanSeal) { + return xerrors.Errorf("must specify at least one of --store or --seal") + } + b, err := json.MarshalIndent(opts, "", " ") + if err != nil { + return xerrors.Errorf("marshaling storage config: %w", err) + } + if err := os.WriteFile(filepath.Join(path, metaFile), b, 0644); err != nil { + return xerrors.Errorf("persisting storage metadata (%s): %w", filepath.Join(path, metaFile), err) + } + return nil +} + func (p *CurioAPI) StorageAddLocal(ctx context.Context, path string) error { path, err := homedir.Expand(path) if err != nil { diff --git a/cmd/curio/storage.go b/cmd/curio/storage.go index 9a073e037b9..2fa6d2d5291 100644 --- a/cmd/curio/storage.go +++ b/cmd/curio/storage.go @@ -1,11 +1,8 @@ package main import ( - "encoding/json" "fmt" "math/bits" - "os" - "path/filepath" "sort" "strconv" "strings" @@ -28,8 +25,6 @@ import ( "github.com/filecoin-project/lotus/storage/sealer/storiface" ) -const metaFile = "sectorstore.json" - var storageCmd = &cli.Command{ Name: "storage", Usage: "manage sector storage", @@ -122,20 +117,6 @@ over time } if cctx.Bool("init") { - if err := os.MkdirAll(p, 0755); err != nil { - if !os.IsExist(err) { - return err - } - } - - _, err := os.Stat(filepath.Join(p, metaFile)) - if !os.IsNotExist(err) { - if err == nil { - return xerrors.Errorf("path is already initialized") - } - return err - } - var maxStor int64 if cctx.IsSet("max-storage") { maxStor, err = units.RAMInBytes(cctx.String("max-storage")) @@ -144,7 +125,7 @@ over time } } - cfg := &storiface.LocalStorageMeta{ + cfg := storiface.LocalStorageMeta{ ID: storiface.ID(uuid.New().String()), Weight: cctx.Uint64("weight"), CanSeal: cctx.Bool("seal"), @@ -158,13 +139,8 @@ over time return xerrors.Errorf("must specify at least one of --store or --seal") } - b, err := json.MarshalIndent(cfg, "", " ") - if err != nil { - return xerrors.Errorf("marshaling storage config: %w", err) - } - - if err := os.WriteFile(filepath.Join(p, metaFile), b, 0644); err != nil { - return xerrors.Errorf("persisting storage metadata (%s): %w", filepath.Join(p, metaFile), err) + if err := minerApi.StorageInit(ctx, p, cfg); err != nil { + return xerrors.Errorf("init storage: %w", err) } } diff --git a/documentation/en/api-v0-methods-curio.md b/documentation/en/api-v0-methods-curio.md index e94dca8b0ad..0bfe09af5cb 100644 --- a/documentation/en/api-v0-methods-curio.md +++ b/documentation/en/api-v0-methods-curio.md @@ -12,6 +12,7 @@ * [StorageDetachLocal](#StorageDetachLocal) * [StorageFindSector](#StorageFindSector) * [StorageInfo](#StorageInfo) + * [StorageInit](#StorageInit) * [StorageList](#StorageList) * [StorageLocal](#StorageLocal) * [StorageStat](#StorageStat) @@ -269,6 +270,45 @@ Response: } ``` +### StorageInit + + +Perms: admin + +Inputs: +```json +[ + "string value", + { + "ID": "76f1988b-ef30-4d7e-b3ec-9a627f4ba5a8", + "Weight": 42, + "CanSeal": true, + "CanStore": true, + "MaxStorage": 42, + "Groups": [ + "string value" + ], + "AllowTo": [ + "string value" + ], + "AllowTypes": [ + "string value" + ], + "DenyTypes": [ + "string value" + ], + "AllowMiners": [ + "string value" + ], + "DenyMiners": [ + "string value" + ] + } +] +``` + +Response: `{}` + ### StorageList From 5e1d8f661e8db7f384c4af23274303f6186d42e7 Mon Sep 17 00:00:00 2001 From: "Andrew Jackson (Ajax)" Date: Fri, 26 Apr 2024 04:11:42 -0500 Subject: [PATCH 10/22] feat: curio: simpler reservation release logic (#11900) * simpler release logic * oops, plus simpler * simpler --- storage/paths/local.go | 63 +++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 35 deletions(-) diff --git a/storage/paths/local.go b/storage/paths/local.go index 7e955ccfe51..244def37726 100644 --- a/storage/paths/local.go +++ b/storage/paths/local.go @@ -461,42 +461,23 @@ func (st *Local) reportStorage(ctx context.Context) { } func (st *Local) Reserve(ctx context.Context, sid storiface.SectorRef, ft storiface.SectorFileType, storageIDs storiface.SectorPaths, overheadTab map[storiface.SectorFileType]int) (release func(), err error) { - ssize, err := sid.ProofType.SectorSize() + var ssize abi.SectorSize + ssize, err = sid.ProofType.SectorSize() if err != nil { return nil, err } + release = func() {} st.localLk.Lock() - var releaseCalled bool - - // double release debug guard - var firstDonebuf []byte - var releaseFuncs []func() - - release = func() { - for _, releaseFunc := range releaseFuncs { - releaseFunc() - } - - // debug guard against double release call - if releaseCalled { - curStack := make([]byte, 20480) - curStack = curStack[:runtime.Stack(curStack, false)] - - log.Errorw("double release call", "sector", sid, "fileType", ft, "prevStack", string(firstDonebuf), "curStack", string(curStack)) - } - - firstDonebuf = make([]byte, 20480) - firstDonebuf = firstDonebuf[:runtime.Stack(firstDonebuf, false)] - - releaseCalled = true - } - - cleanupOnError := func() { release() } defer func() { st.localLk.Unlock() - cleanupOnError() + if err != nil { + release() + release = func() {} + } else { + release = DoubleCallWrap(release) + } }() for _, fileType := range ft.AllSet() { @@ -531,21 +512,33 @@ func (st *Local) Reserve(ctx context.Context, sid storiface.SectorRef, ft storif p.reserved += overhead p.reservations[resID] = overhead - releaseFuncs = append(releaseFuncs, func() { + old_r := release + release = func() { + old_r() st.localLk.Lock() defer st.localLk.Unlock() - log.Debugw("reserve release", "id", id, "sector", sid, "fileType", fileType, "overhead", overhead, "reserved-before", p.reserved, "reserved-after", p.reserved-overhead) - p.reserved -= overhead delete(p.reservations, resID) - }) + } } - // no errors, don't cleanup, caller will call release - cleanupOnError = func() {} + return +} - return release, nil +// DoubleCallWrap wraps a function to make sure it's not called twice +func DoubleCallWrap(f func()) func() { + var stack []byte + return func() { + curStack := make([]byte, 20480) + curStack = curStack[:runtime.Stack(curStack, false)] + if len(stack) > 0 { + log.Warnf("double call from:\n%s\nBut originally from:", curStack, stack) + return + } + stack = curStack + f() + } } func (st *Local) AcquireSector(ctx context.Context, sid storiface.SectorRef, existing storiface.SectorFileType, allocate storiface.SectorFileType, pathType storiface.PathType, op storiface.AcquireMode, opts ...storiface.AcquireOption) (storiface.SectorPaths, storiface.SectorPaths, error) { From 0a28ce471ede8764d1e0a84842476f6eab886851 Mon Sep 17 00:00:00 2001 From: beck <34204218+beck-8@users.noreply.github.com> Date: Sat, 27 Apr 2024 17:17:00 +0800 Subject: [PATCH 11/22] fix NewLine (#11893) --- cli/filplus.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/filplus.go b/cli/filplus.go index 717fa0d831b..cf37a10f331 100644 --- a/cli/filplus.go +++ b/cli/filplus.go @@ -330,7 +330,7 @@ var filplusListAllocationsCmd = &cli.Command{ tablewriter.Col(pieceSize), tablewriter.Col(tMin), tablewriter.Col(tMax), - tablewriter.NewLineCol(expr)) + tablewriter.Col(expr)) // populate it with content for _, alloc := range allocs { tw.Write(alloc) @@ -479,7 +479,7 @@ var filplusListClaimsCmd = &cli.Command{ tablewriter.Col(tMin), tablewriter.Col(tMax), tablewriter.Col(tStart), - tablewriter.NewLineCol(sector)) + tablewriter.Col(sector)) // populate it with content for _, alloc := range claimList { From ae2cc67f96553dca3e69cd2fa25d94c02e55a1dd Mon Sep 17 00:00:00 2001 From: Rod Vagg Date: Mon, 29 Apr 2024 12:19:58 +1000 Subject: [PATCH 12/22] fix(events): check for sync-in-progress (#11932) --- chain/events/filter/event.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/chain/events/filter/event.go b/chain/events/filter/event.go index 1669d840eec..0accc551ab4 100644 --- a/chain/events/filter/event.go +++ b/chain/events/filter/event.go @@ -375,6 +375,10 @@ func (m *EventFilterManager) Revert(ctx context.Context, from, to *types.TipSet) func (m *EventFilterManager) Install(ctx context.Context, minHeight, maxHeight abi.ChainEpoch, tipsetCid cid.Cid, addresses []address.Address, keysWithCodec map[string][]types.ActorEventBlock, excludeReverted bool) (EventFilter, error) { m.mu.Lock() + if m.currentHeight == 0 { + // sync in progress, we haven't had an Apply + m.currentHeight = m.ChainStore.GetHeaviestTipSet().Height() + } currentHeight := m.currentHeight m.mu.Unlock() From 10877d2e662842af06f67ce04f7f3da318d2bb36 Mon Sep 17 00:00:00 2001 From: Rod Vagg Date: Fri, 26 Apr 2024 20:24:13 +1000 Subject: [PATCH 13/22] feat(events): adjust indexes in event index db to match query patterns Introduces a v4 migration that just adjusts indexes. Copies some improvements from https://github.com/filecoin-project/lotus/pull/11723 Closes: https://github.com/filecoin-project/lotus/issues/11909 --- chain/events/filter/index.go | 143 ++++++++++++++++++++++++++--------- 1 file changed, 107 insertions(+), 36 deletions(-) diff --git a/chain/events/filter/index.go b/chain/events/filter/index.go index 296d7c1d5b7..a9651224d4a 100644 --- a/chain/events/filter/index.go +++ b/chain/events/filter/index.go @@ -26,7 +26,7 @@ var pragmas = []string{ "PRAGMA temp_store = memory", "PRAGMA mmap_size = 30000000000", "PRAGMA page_size = 32768", - "PRAGMA auto_vacuum = NONE", + "PRAGMA auto_vacuum = NONE", // not useful until we implement GC "PRAGMA automatic_index = OFF", "PRAGMA journal_mode = WAL", "PRAGMA read_uncommitted = ON", @@ -45,8 +45,10 @@ var ddls = []string{ reverted INTEGER NOT NULL )`, - createIndexEventHeightTipsetKey, createIndexEventEmitterAddr, + createIndexEventTipsetKeyCid, + createIndexEventHeight, + createIndexEventReverted, `CREATE TABLE IF NOT EXISTS event_entry ( event_id INTEGER, @@ -57,7 +59,9 @@ var ddls = []string{ value BLOB NOT NULL )`, - createIndexEventEntryKey, + createIndexEventEntryIndexedKey, + createIndexEventEntryCodecValue, + createIndexEventEntryEventId, // metadata containing version of schema `CREATE TABLE IF NOT EXISTS _meta ( @@ -67,6 +71,7 @@ var ddls = []string{ `INSERT OR IGNORE INTO _meta (version) VALUES (1)`, `INSERT OR IGNORE INTO _meta (version) VALUES (2)`, `INSERT OR IGNORE INTO _meta (version) VALUES (3)`, + `INSERT OR IGNORE INTO _meta (version) VALUES (4)`, } var ( @@ -74,7 +79,7 @@ var ( ) const ( - schemaVersion = 3 + schemaVersion = 4 eventExists = `SELECT MAX(id) FROM event WHERE height=? AND tipset_key=? AND tipset_key_cid=? AND emitter_addr=? AND event_index=? AND message_cid=? AND message_index=?` insertEvent = `INSERT OR IGNORE INTO event(height, tipset_key, tipset_key_cid, emitter_addr, event_index, message_cid, message_index, reverted) VALUES(?, ?, ?, ?, ?, ?, ?, ?)` @@ -82,9 +87,14 @@ const ( revertEventsInTipset = `UPDATE event SET reverted=true WHERE height=? AND tipset_key=?` restoreEvent = `UPDATE event SET reverted=false WHERE height=? AND tipset_key=? AND tipset_key_cid=? AND emitter_addr=? AND event_index=? AND message_cid=? AND message_index=?` - createIndexEventHeightTipsetKey = `CREATE INDEX IF NOT EXISTS height_tipset_key ON event (height,tipset_key)` - createIndexEventEmitterAddr = `CREATE INDEX IF NOT EXISTS event_emitter_addr ON event (emitter_addr)` - createIndexEventEntryKey = `CREATE INDEX IF NOT EXISTS event_entry_key_index ON event_entry (key)` + createIndexEventEmitterAddr = `CREATE INDEX IF NOT EXISTS event_emitter_addr ON event (emitter_addr)` + createIndexEventTipsetKeyCid = `CREATE INDEX IF NOT EXISTS event_tipset_key_cid ON event (tipset_key_cid);` + createIndexEventHeight = `CREATE INDEX IF NOT EXISTS event_height ON event (height);` + createIndexEventReverted = `CREATE INDEX IF NOT EXISTS event_reverted ON event (reverted);` + + createIndexEventEntryIndexedKey = `CREATE INDEX IF NOT EXISTS event_entry_indexed_key ON event_entry (indexed, key);` + createIndexEventEntryCodecValue = `CREATE INDEX IF NOT EXISTS event_entry_codec_value ON event_entry (codec, value);` + createIndexEventEntryEventId = `CREATE INDEX IF NOT EXISTS event_entry_event_id ON event_entry(event_id);` ) type EventIndex struct { @@ -237,7 +247,7 @@ func (ei *EventIndex) migrateToVersion2(ctx context.Context, chainStore *store.C if err != nil { return xerrors.Errorf("rows affected: %w", err) } - log.Infof("cleaned up %d entries that had deleted events\n", nrRowsAffected) + log.Infof("Cleaned up %d entries that had deleted events\n", nrRowsAffected) // drop the temporary indices after the migration _, err = tx.ExecContext(ctx, "DROP INDEX IF EXISTS tmp_tipset_key_cid") @@ -249,11 +259,9 @@ func (ei *EventIndex) migrateToVersion2(ctx context.Context, chainStore *store.C return xerrors.Errorf("drop index tmp_height_tipset_key_cid: %w", err) } - // create the final index on event.height and event.tipset_key - _, err = tx.ExecContext(ctx, createIndexEventHeightTipsetKey) - if err != nil { - return xerrors.Errorf("create index height_tipset_key: %w", err) - } + // original v2 migration introduced an index: + // CREATE INDEX IF NOT EXISTS height_tipset_key ON event (height,tipset_key) + // which has subsequently been removed in v4, so it's omitted here // increment the schema version to 2 in _meta table. _, err = tx.ExecContext(ctx, "INSERT OR IGNORE INTO _meta (version) VALUES (2)") @@ -266,20 +274,7 @@ func (ei *EventIndex) migrateToVersion2(ctx context.Context, chainStore *store.C return xerrors.Errorf("commit transaction: %w", err) } - // during the migration, we have likely increased the WAL size a lot, so lets do some - // simple DB administration to free up space (VACUUM followed by truncating the WAL file) - // as this would be a good time to do it when no other writes are happening - log.Infof("Performing DB vacuum and wal checkpointing to free up space after the migration") - _, err = ei.db.ExecContext(ctx, "VACUUM") - if err != nil { - log.Warnf("error vacuuming database: %s", err) - } - _, err = ei.db.ExecContext(ctx, "PRAGMA wal_checkpoint(TRUNCATE)") - if err != nil { - log.Warnf("error checkpointing wal: %s", err) - } - - log.Infof("Successfully migrated events to version 2 in %s", time.Since(now)) + log.Infof("Successfully migrated event index from version 1 to version 2 in %s", time.Since(now)) return nil } @@ -301,11 +296,9 @@ func (ei *EventIndex) migrateToVersion3(ctx context.Context) error { return xerrors.Errorf("create index event_emitter_addr: %w", err) } - // create index on event_entry.key index. - _, err = tx.ExecContext(ctx, createIndexEventEntryKey) - if err != nil { - return xerrors.Errorf("create index event_entry_key_index: %w", err) - } + // original v3 migration introduced an index: + // CREATE INDEX IF NOT EXISTS event_entry_key_index ON event_entry (key) + // which has subsequently been removed in v4, so it's omitted here // increment the schema version to 3 in _meta table. _, err = tx.ExecContext(ctx, "INSERT OR IGNORE INTO _meta (version) VALUES (3)") @@ -317,10 +310,78 @@ func (ei *EventIndex) migrateToVersion3(ctx context.Context) error { if err != nil { return xerrors.Errorf("commit transaction: %w", err) } + log.Infof("Successfully migrated event index from version 2 to version 3 in %s", time.Since(now)) + return nil +} + +// migrateToVersion4 migrates the schema from version 3 to version 4 by adjusting indexes to match +// the query patterns of the event filter. +// +// First it drops indexes introduced in previous migrations: +// 1. the index on the event.height and event.tipset_key columns +// 2. the index on the event_entry.key column +// +// And then creating the following indices: +// 1. an index on the event.tipset_key_cid column +// 2. an index on the event.height column +// 3. an index on the event.reverted column +// 4. an index on the event_entry.indexed and event_entry.key columns +// 5. an index on the event_entry.codec and event_entry.value columns +// 6. an index on the event_entry.event_id column +func (ei *EventIndex) migrateToVersion4(ctx context.Context) error { + now := time.Now() + + tx, err := ei.db.BeginTx(ctx, nil) + if err != nil { + return xerrors.Errorf("begin transaction: %w", err) + } + defer func() { _ = tx.Rollback() }() + + for _, create := range []struct { + desc string + query string + }{ + {"drop index height_tipset_key", "DROP INDEX IF EXISTS height_tipset_key;"}, + {"drop index event_entry_key_index", "DROP INDEX IF EXISTS event_entry_key_index;"}, + {"create index event_tipset_key_cid", createIndexEventTipsetKeyCid}, + {"create index event_height", createIndexEventHeight}, + {"create index event_reverted", createIndexEventReverted}, + {"create index event_entry_indexed_key", createIndexEventEntryIndexedKey}, + {"create index event_entry_codec_value", createIndexEventEntryCodecValue}, + {"create index event_entry_event_id", createIndexEventEntryEventId}, + } { + _, err = tx.ExecContext(ctx, create.query) + if err != nil { + return xerrors.Errorf("%s: %w", create.desc, err) + } + } + + err = tx.Commit() + if err != nil { + return xerrors.Errorf("commit transaction: %w", err) + } + + ei.vacuumDBAndCheckpointWAL(ctx) + log.Infof("Successfully migrated events to version 3 in %s", time.Since(now)) return nil } +func (ei *EventIndex) vacuumDBAndCheckpointWAL(ctx context.Context) { + // During the large migrations, we have likely increased the WAL size a lot, so lets do some + // simple DB administration to free up space (VACUUM followed by truncating the WAL file) + // as this would be a good time to do it when no other writes are happening. + log.Infof("Performing DB vacuum and wal checkpointing to free up space after the migration") + _, err := ei.db.ExecContext(ctx, "VACUUM") + if err != nil { + log.Warnf("error vacuuming database: %s", err) + } + _, err = ei.db.ExecContext(ctx, "PRAGMA wal_checkpoint(TRUNCATE)") + if err != nil { + log.Warnf("error checkpointing wal: %s", err) + } +} + func NewEventIndex(ctx context.Context, path string, chainStore *store.ChainStore) (*EventIndex, error) { db, err := sql.Open("sqlite3", path+"?mode=rwc") if err != nil { @@ -358,25 +419,35 @@ func NewEventIndex(ctx context.Context, path string, chainStore *store.ChainStor } if version == 1 { - log.Infof("upgrading event index from version 1 to version 2") + log.Infof("Upgrading event index from version 1 to version 2") err = eventIndex.migrateToVersion2(ctx, chainStore) if err != nil { _ = db.Close() - return nil, xerrors.Errorf("could not migrate sql data to version 2: %w", err) + return nil, xerrors.Errorf("could not migrate event index schema from version 1 to version 2: %w", err) } version = 2 } if version == 2 { - log.Infof("upgrading event index from version 2 to version 3") + log.Infof("Upgrading event index from version 2 to version 3") err = eventIndex.migrateToVersion3(ctx) if err != nil { _ = db.Close() - return nil, xerrors.Errorf("could not migrate sql data to version 2: %w", err) + return nil, xerrors.Errorf("could not migrate event index schema from version 2 to version 3: %w", err) } version = 3 } + if version == 3 { + log.Infof("Upgrading event index from version 3 to version 4") + err = eventIndex.migrateToVersion4(ctx) + if err != nil { + _ = db.Close() + return nil, xerrors.Errorf("could not migrate event index schema from version 3 to version 4: %w", err) + } + version = 4 + } + if version != schemaVersion { _ = db.Close() return nil, xerrors.Errorf("invalid database version: got %d, expected %d", version, schemaVersion) From 15f5f4745d11773fd2b361d6fbeba66e8bb68a92 Mon Sep 17 00:00:00 2001 From: 0x5459 <0x5459@protonmail.com> Date: Mon, 29 Apr 2024 18:21:40 +0800 Subject: [PATCH 14/22] fix(pipeline): should return if error occurred when get network version (#11902) --- storage/pipeline/states_replica_update.go | 1 + 1 file changed, 1 insertion(+) diff --git a/storage/pipeline/states_replica_update.go b/storage/pipeline/states_replica_update.go index a0d92891cd2..85e3fabee79 100644 --- a/storage/pipeline/states_replica_update.go +++ b/storage/pipeline/states_replica_update.go @@ -174,6 +174,7 @@ func (m *Sealing) handleSubmitReplicaUpdate(ctx statemachine.Context, sector Sec nv, err := m.Api.StateNetworkVersion(ctx.Context(), ts.Key()) if err != nil { log.Errorf("failed to get network version: %+v", err) + return ctx.Send(SectorSubmitReplicaUpdateFailed{}) } pams, deals, err := m.processPieces(ctx.Context(), sector, nv >= network.Version22) From aa76a450862559c16bb187968e20b6aaf51d247e Mon Sep 17 00:00:00 2001 From: Rod Vagg Date: Mon, 29 Apr 2024 14:06:27 +1000 Subject: [PATCH 15/22] fix(events): correct log msg for v4 events index db migration --- chain/events/filter/index.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chain/events/filter/index.go b/chain/events/filter/index.go index a9651224d4a..75f5b1c30c5 100644 --- a/chain/events/filter/index.go +++ b/chain/events/filter/index.go @@ -363,7 +363,7 @@ func (ei *EventIndex) migrateToVersion4(ctx context.Context) error { ei.vacuumDBAndCheckpointWAL(ctx) - log.Infof("Successfully migrated events to version 3 in %s", time.Since(now)) + log.Infof("Successfully migrated event index from version 3 to version 4 in %s", time.Since(now)) return nil } From cee77aa41527239a93f851a8eefea4d698483dd0 Mon Sep 17 00:00:00 2001 From: Rod Vagg Date: Tue, 30 Apr 2024 13:49:46 +1000 Subject: [PATCH 16/22] chore: remove duplicate words in strings and comments --- api/api_full.go | 2 +- api/v0api/full.go | 2 +- build/builtin_actors.go | 4 ++-- build/openrpc/full.json | 2 +- chain/events/filter/index.go | 2 +- chain/messagepool/selection.go | 2 +- chain/store/checkpoint_test.go | 2 +- documentation/en/api-v0-methods.md | 2 +- documentation/en/api-v1-unstable-methods.md | 2 +- journal/alerting/alerts.go | 2 +- metrics/metrics.go | 8 ++++---- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/api/api_full.go b/api/api_full.go index 85233a712df..bbfcae0a2eb 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -335,7 +335,7 @@ type FullNode interface { WalletVerify(context.Context, address.Address, []byte, *crypto.Signature) (bool, error) //perm:read // WalletDefaultAddress returns the address marked as default in the wallet. WalletDefaultAddress(context.Context) (address.Address, error) //perm:write - // WalletSetDefault marks the given address as as the default one. + // WalletSetDefault marks the given address as the default one. WalletSetDefault(context.Context, address.Address) error //perm:write // WalletExport returns the private key of an address in the wallet. WalletExport(context.Context, address.Address) (*types.KeyInfo, error) //perm:admin diff --git a/api/v0api/full.go b/api/v0api/full.go index db84ddc8745..b61fc157025 100644 --- a/api/v0api/full.go +++ b/api/v0api/full.go @@ -293,7 +293,7 @@ type FullNode interface { WalletVerify(context.Context, address.Address, []byte, *crypto.Signature) (bool, error) //perm:read // WalletDefaultAddress returns the address marked as default in the wallet. WalletDefaultAddress(context.Context) (address.Address, error) //perm:write - // WalletSetDefault marks the given address as as the default one. + // WalletSetDefault marks the given address as the default one. WalletSetDefault(context.Context, address.Address) error //perm:write // WalletExport returns the private key of an address in the wallet. WalletExport(context.Context, address.Address) (*types.KeyInfo, error) //perm:admin diff --git a/build/builtin_actors.go b/build/builtin_actors.go index 6aace0bec50..1cc43c3749c 100644 --- a/build/builtin_actors.go +++ b/build/builtin_actors.go @@ -145,10 +145,10 @@ func readEmbeddedBuiltinActorsMetadata(bundle string) ([]*BuiltinActorsMetadata, ) if !strings.HasPrefix(bundle, "v") { - return nil, xerrors.Errorf("bundle bundle '%q' doesn't start with a 'v'", bundle) + return nil, xerrors.Errorf("bundle '%q' doesn't start with a 'v'", bundle) } if !strings.HasSuffix(bundle, archiveExt) { - return nil, xerrors.Errorf("bundle bundle '%q' doesn't end with '%s'", bundle, archiveExt) + return nil, xerrors.Errorf("bundle '%q' doesn't end with '%s'", bundle, archiveExt) } version, err := strconv.ParseInt(bundle[1:len(bundle)-len(archiveExt)], 10, 0) if err != nil { diff --git a/build/openrpc/full.json b/build/openrpc/full.json index 5d422f283cf..7dabd77521d 100644 --- a/build/openrpc/full.json +++ b/build/openrpc/full.json @@ -26382,7 +26382,7 @@ { "name": "Filecoin.WalletSetDefault", "description": "```go\nfunc (s *FullNodeStruct) WalletSetDefault(p0 context.Context, p1 address.Address) error {\n\tif s.Internal.WalletSetDefault == nil {\n\t\treturn ErrNotSupported\n\t}\n\treturn s.Internal.WalletSetDefault(p0, p1)\n}\n```", - "summary": "WalletSetDefault marks the given address as as the default one.\n", + "summary": "WalletSetDefault marks the given address as the default one.\n", "paramStructure": "by-position", "params": [ { diff --git a/chain/events/filter/index.go b/chain/events/filter/index.go index 75f5b1c30c5..7b3cae96937 100644 --- a/chain/events/filter/index.go +++ b/chain/events/filter/index.go @@ -478,7 +478,7 @@ func (ei *EventIndex) CollectEvents(ctx context.Context, te *TipSetEvents, rever // rollback the transaction (a no-op if the transaction was already committed) defer func() { _ = tx.Rollback() }() - // lets handle the revert case first, since its simpler and we can simply mark all events events in this tipset as reverted and return + // lets handle the revert case first, since its simpler and we can simply mark all events in this tipset as reverted and return if revert { _, err = tx.Stmt(ei.stmtRevertEventsInTipset).Exec(te.msgTs.Height(), te.msgTs.Key().Bytes()) if err != nil { diff --git a/chain/messagepool/selection.go b/chain/messagepool/selection.go index 163bd76f985..0d0ed3cbab2 100644 --- a/chain/messagepool/selection.go +++ b/chain/messagepool/selection.go @@ -400,7 +400,7 @@ tailLoop: continue tailLoop } - // the merge loop ended after processing all the chains and we we probably have still + // the merge loop ended after processing all the chains and we probably have still // gas to spare; end the loop. break } diff --git a/chain/store/checkpoint_test.go b/chain/store/checkpoint_test.go index a30c4d8605d..8b775d334a0 100644 --- a/chain/store/checkpoint_test.go +++ b/chain/store/checkpoint_test.go @@ -52,7 +52,7 @@ func TestChainCheckpoint(t *testing.T) { head = cs.GetHeaviestTipSet() require.True(t, head.Equals(checkpoint)) - // Let the second miner miner mine a fork + // Let the second miner mine a fork last = checkpointParents for i := 0; i < 4; i++ { ts, err := cg.NextTipSetFromMiners(last, cg.Miners[1:], 0) diff --git a/documentation/en/api-v0-methods.md b/documentation/en/api-v0-methods.md index eedfd227e93..9a8c4821b4b 100644 --- a/documentation/en/api-v0-methods.md +++ b/documentation/en/api-v0-methods.md @@ -7594,7 +7594,7 @@ Inputs: Response: `"f01234"` ### WalletSetDefault -WalletSetDefault marks the given address as as the default one. +WalletSetDefault marks the given address as the default one. Perms: write diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index dee290b343e..8dab4f35f3d 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -9284,7 +9284,7 @@ Inputs: Response: `"f01234"` ### WalletSetDefault -WalletSetDefault marks the given address as as the default one. +WalletSetDefault marks the given address as the default one. Perms: write diff --git a/journal/alerting/alerts.go b/journal/alerting/alerts.go index 290d06e2aa7..1d6dd0a5c01 100644 --- a/journal/alerting/alerts.go +++ b/journal/alerting/alerts.go @@ -95,7 +95,7 @@ func (a *Alerting) update(at AlertType, message interface{}, upd func(Alert, jso }{ AlertError: err.Error(), }) - log.Errorw("marshaling marshaling error failed", "type", at, "error", err) + log.Errorw("marshaling error failed", "type", at, "error", err) } a.alerts[at] = upd(alert, rawMsg) diff --git a/metrics/metrics.go b/metrics/metrics.go index 5d6ba79ec3b..85b9d82ec20 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -190,11 +190,11 @@ var ( RcmgrAllowPeer = stats.Int64("rcmgr/allow_peer", "Number of allowed peer connections", stats.UnitDimensionless) RcmgrBlockPeer = stats.Int64("rcmgr/block_peer", "Number of blocked peer connections", stats.UnitDimensionless) RcmgrAllowProto = stats.Int64("rcmgr/allow_proto", "Number of allowed streams attached to a protocol", stats.UnitDimensionless) - RcmgrBlockProto = stats.Int64("rcmgr/block_proto", "Number of blocked blocked streams attached to a protocol", stats.UnitDimensionless) - RcmgrBlockProtoPeer = stats.Int64("rcmgr/block_proto", "Number of blocked blocked streams attached to a protocol for a specific peer", stats.UnitDimensionless) + RcmgrBlockProto = stats.Int64("rcmgr/block_proto", "Number of blocked streams attached to a protocol", stats.UnitDimensionless) + RcmgrBlockProtoPeer = stats.Int64("rcmgr/block_proto", "Number of blocked streams attached to a protocol for a specific peer", stats.UnitDimensionless) RcmgrAllowSvc = stats.Int64("rcmgr/allow_svc", "Number of allowed streams attached to a service", stats.UnitDimensionless) - RcmgrBlockSvc = stats.Int64("rcmgr/block_svc", "Number of blocked blocked streams attached to a service", stats.UnitDimensionless) - RcmgrBlockSvcPeer = stats.Int64("rcmgr/block_svc", "Number of blocked blocked streams attached to a service for a specific peer", stats.UnitDimensionless) + RcmgrBlockSvc = stats.Int64("rcmgr/block_svc", "Number of blocked streams attached to a service", stats.UnitDimensionless) + RcmgrBlockSvcPeer = stats.Int64("rcmgr/block_svc", "Number of blocked streams attached to a service for a specific peer", stats.UnitDimensionless) RcmgrAllowMem = stats.Int64("rcmgr/allow_mem", "Number of allowed memory reservations", stats.UnitDimensionless) RcmgrBlockMem = stats.Int64("rcmgr/block_mem", "Number of blocked memory reservations", stats.UnitDimensionless) From 46992f0fd27f42a0407f32b02364ef7a80c9eefe Mon Sep 17 00:00:00 2001 From: Rod Vagg Date: Tue, 30 Apr 2024 15:40:19 +1000 Subject: [PATCH 17/22] fix(events): register events index db migration v4 --- chain/events/filter/index.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/chain/events/filter/index.go b/chain/events/filter/index.go index 7b3cae96937..9a8f8bca4c5 100644 --- a/chain/events/filter/index.go +++ b/chain/events/filter/index.go @@ -356,6 +356,10 @@ func (ei *EventIndex) migrateToVersion4(ctx context.Context) error { } } + if _, err = tx.Exec("INSERT OR IGNORE INTO _meta (version) VALUES (4)"); err != nil { + return xerrors.Errorf("increment _meta version: %w", err) + } + err = tx.Commit() if err != nil { return xerrors.Errorf("commit transaction: %w", err) From 914a65cea642e6278b0f134291527b416b927e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Tue, 30 Apr 2024 11:16:44 +0200 Subject: [PATCH 18/22] fix: curio seal: Failed commit retry strategy (#11870) * ffi: improved-error-handling * curio seal: Failed commit retry strategy * use master ffi * mod tidy --- curiosrc/seal/task_porep.go | 52 +++++++++++++++++++++++++++++++++++++ extern/filecoin-ffi | 2 +- go.sum | 6 ++++- 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/curiosrc/seal/task_porep.go b/curiosrc/seal/task_porep.go index fb03ce59bb0..58e307bc020 100644 --- a/curiosrc/seal/task_porep.go +++ b/curiosrc/seal/task_porep.go @@ -3,6 +3,7 @@ package seal import ( "bytes" "context" + "strings" "github.com/ipfs/go-cid" "golang.org/x/xerrors" @@ -111,6 +112,15 @@ func (p *PoRepTask) Do(taskID harmonytask.TaskID, stillOwned func() bool) (done proof, err := p.sc.PoRepSnark(ctx, sr, sealed, unsealed, sectorParams.TicketValue, abi.InteractiveSealRandomness(rand)) if err != nil { + end, err := p.recoverErrors(ctx, sectorParams.SpID, sectorParams.SectorNumber, err) + if err != nil { + return false, xerrors.Errorf("recover errors: %w", err) + } + if end { + // done, but the error handling has stored a different than success state + return true, nil + } + return false, xerrors.Errorf("failed to compute seal proof: %w", err) } @@ -161,4 +171,46 @@ func (p *PoRepTask) Adder(taskFunc harmonytask.AddTaskFunc) { p.sp.pollers[pollerPoRep].Set(taskFunc) } +func (p *PoRepTask) recoverErrors(ctx context.Context, spid, snum int64, cerr error) (end bool, err error) { + const ( + // rust-fil-proofs error strings + // https://github.com/filecoin-project/rust-fil-proofs/blob/3f018b51b6327b135830899d237a7ba181942d7e/storage-proofs-porep/src/stacked/vanilla/proof.rs#L454C1-L463 + errstrInvalidCommD = "Invalid comm_d detected at challenge_index" + errstrInvalidCommR = "Invalid comm_r detected at challenge_index" + errstrInvalidEncoding = "Invalid encoding proof generated at layer" + ) + + if cerr == nil { + return false, xerrors.Errorf("nil error") + } + + switch { + case strings.Contains(cerr.Error(), errstrInvalidCommD): + fallthrough + case strings.Contains(cerr.Error(), errstrInvalidCommR): + // todo: it might be more optimal to just retry the Trees compute first. + // Invalid CommD/R likely indicates a problem with the data computed in that step + // For now for simplicity just retry the whole thing + fallthrough + case strings.Contains(cerr.Error(), errstrInvalidEncoding): + n, err := p.db.Exec(ctx, `UPDATE sectors_sdr_pipeline + SET after_porep = FALSE, after_sdr = FALSE, after_tree_d = FALSE, + after_tree_r = FALSE, after_tree_c = FALSE + WHERE sp_id = $1 AND sector_number = $2`, + spid, snum) + if err != nil { + return false, xerrors.Errorf("store sdr success: updating pipeline: %w", err) + } + if n != 1 { + return false, xerrors.Errorf("store sdr success: updated %d rows", n) + } + + return true, nil + + default: + // if end is false the original error will be returned by the caller + return false, nil + } +} + var _ harmonytask.TaskInterface = &PoRepTask{} diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index b715c9403fa..ed08caaf877 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit b715c9403faf919e95fdc702cd651e842f18d890 +Subproject commit ed08caaf8778e1b6def83efd37fce41574214353 diff --git a/go.sum b/go.sum index 52755ba03d6..19156912f2f 100644 --- a/go.sum +++ b/go.sum @@ -305,6 +305,7 @@ github.com/filecoin-project/go-amt-ipld/v3 v3.0.0/go.mod h1:Qa95YNAbtoVCTSVtX38a github.com/filecoin-project/go-amt-ipld/v3 v3.1.0 h1:ZNJ9tEG5bE72vBWYiuh5bkxJVM3ViHNOmQ7qew9n6RE= github.com/filecoin-project/go-amt-ipld/v3 v3.1.0/go.mod h1:UjM2QhDFrrjD5s1CdnkJkat4ga+LqZBZgTMniypABRo= github.com/filecoin-project/go-amt-ipld/v4 v4.0.0/go.mod h1:gF053YQ4BIpzTNDoEwHZas7U3oAwncDVGvOHyY8oDpE= +github.com/filecoin-project/go-amt-ipld/v4 v4.2.0/go.mod h1:0eDVF7pROvxrsxvLJx+SJZXqRaXXcEPUcgb/rG0zGU4= github.com/filecoin-project/go-amt-ipld/v4 v4.3.0 h1:bY42N1gR0DqrLMCKUPzX1VhYVgXaETQm0Um4ohvyEP8= github.com/filecoin-project/go-amt-ipld/v4 v4.3.0/go.mod h1:39Ep/yBbF6xN94WevLG9qSbglBJepHa5zeEbAE1pYsc= github.com/filecoin-project/go-bitfield v0.2.0/go.mod h1:CNl9WG8hgR5mttCnUErjcQjGvuiZjRqK9rHVBsQF4oM= @@ -354,7 +355,7 @@ github.com/filecoin-project/go-state-types v0.0.0-20201102161440-c8033295a1fc/go github.com/filecoin-project/go-state-types v0.1.0/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g= github.com/filecoin-project/go-state-types v0.1.6/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q= github.com/filecoin-project/go-state-types v0.1.10/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q= -github.com/filecoin-project/go-state-types v0.11.2-0.20230712101859-8f37624fa540/go.mod h1:SyNPwTsU7I22gL2r0OAPcImvLoTVfgRwdK/Y5rR1zz8= +github.com/filecoin-project/go-state-types v0.13.1/go.mod h1:cHpOPup9H1g2T29dKHAjC2sc7/Ef5ypjuW9A3I+e9yY= github.com/filecoin-project/go-state-types v0.13.3 h1:9JPkC0E6HDtfHbaOIrFiCDzT/Z0jRTb9En4Y4Ci/b3w= github.com/filecoin-project/go-state-types v0.13.3/go.mod h1:cHpOPup9H1g2T29dKHAjC2sc7/Ef5ypjuW9A3I+e9yY= github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe/go.mod h1:FGwQgZAt2Gh5mjlwJUlVB62JeYdo+if0xWxSEfBD9ig= @@ -953,6 +954,7 @@ github.com/klauspost/compress v1.17.6/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6K github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.6/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/koalacxr/quantile v0.0.1 h1:wAW+SQ286Erny9wOjVww96t8ws+x5Zj6AKHDULUK+o0= @@ -1681,6 +1683,7 @@ github.com/whyrusleeping/cbor-gen v0.0.0-20200826160007-0b9f6c5fb163/go.mod h1:f github.com/whyrusleeping/cbor-gen v0.0.0-20210118024343-169e9d70c0c2/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= github.com/whyrusleeping/cbor-gen v0.0.0-20210303213153-67a261a1d291/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= github.com/whyrusleeping/cbor-gen v0.0.0-20220323183124-98fa8256a799/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= +github.com/whyrusleeping/cbor-gen v0.1.0/go.mod h1:pM99HXyEbSQHcosHc0iW7YFmwnscr+t9Te4ibko05so= github.com/whyrusleeping/cbor-gen v0.1.1 h1:eKfcJIoxivjMtwfCfmJAqSF56MHcWqyIScXwaC1VBgw= github.com/whyrusleeping/cbor-gen v0.1.1/go.mod h1:pM99HXyEbSQHcosHc0iW7YFmwnscr+t9Te4ibko05so= github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E= @@ -2065,6 +2068,7 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220708085239-5a0f0661e09d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 1b6bffd339ee1c415c3704a8f9b7080d9b9d2613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Sat, 20 Apr 2024 09:39:38 +0200 Subject: [PATCH 19/22] fix: curio: Update pgx imports, fix db_storage alloc --- curiosrc/market/lmrpc/lmrpc.go | 2 +- lib/harmony/harmonytask/singleton_task.go | 2 +- storage/paths/db_index.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/curiosrc/market/lmrpc/lmrpc.go b/curiosrc/market/lmrpc/lmrpc.go index dd78802894a..33c0d34deb3 100644 --- a/curiosrc/market/lmrpc/lmrpc.go +++ b/curiosrc/market/lmrpc/lmrpc.go @@ -14,8 +14,8 @@ import ( "github.com/google/uuid" logging "github.com/ipfs/go-log/v2" - "github.com/jackc/pgx/v5" manet "github.com/multiformats/go-multiaddr/net" + "github.com/yugabyte/pgx/v5" "golang.org/x/xerrors" "github.com/filecoin-project/go-address" diff --git a/lib/harmony/harmonytask/singleton_task.go b/lib/harmony/harmonytask/singleton_task.go index 72003341026..2395f343c38 100644 --- a/lib/harmony/harmonytask/singleton_task.go +++ b/lib/harmony/harmonytask/singleton_task.go @@ -4,7 +4,7 @@ import ( "errors" "time" - "github.com/jackc/pgx/v5" + "github.com/yugabyte/pgx/v5" "github.com/filecoin-project/lotus/lib/harmony/harmonydb" "github.com/filecoin-project/lotus/lib/passcall" diff --git a/storage/paths/db_index.go b/storage/paths/db_index.go index 79239544533..499c425bec3 100644 --- a/storage/paths/db_index.go +++ b/storage/paths/db_index.go @@ -723,7 +723,7 @@ func (dbi *DBIndex) StorageBestAlloc(ctx context.Context, allocate storiface.Sec FROM storage_path WHERE available >= $1 and NOW()-($2 * INTERVAL '1 second') < last_heartbeat - and heartbeat_err = '' + and heartbeat_err IS NULL and (($3 and can_seal = TRUE) or ($4 and can_store = TRUE)) order by (available::numeric * weight) desc`, spaceReq, From c2dd67403b8250d05ab0f78747fe6146fd9951cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Wed, 24 Apr 2024 21:46:04 +0200 Subject: [PATCH 20/22] feat: curioweb: Improve task_history indexes (#11911) --- lib/harmony/harmonydb/sql/20240317-web-summary-index.sql | 1 + lib/harmony/harmonydb/sql/20240420-web-task-indexes.sql | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100644 lib/harmony/harmonydb/sql/20240420-web-task-indexes.sql diff --git a/lib/harmony/harmonydb/sql/20240317-web-summary-index.sql b/lib/harmony/harmonydb/sql/20240317-web-summary-index.sql index 28902448d05..e1c7e7a79ee 100644 --- a/lib/harmony/harmonydb/sql/20240317-web-summary-index.sql +++ b/lib/harmony/harmonydb/sql/20240317-web-summary-index.sql @@ -1,4 +1,5 @@ /* Used for webui clusterMachineSummary */ +-- NOTE: This index is changed in 20240420-web-task-indexes.sql CREATE INDEX harmony_task_history_work_index ON harmony_task_history (completed_by_host_and_port ASC, name ASC, result ASC, work_end DESC); diff --git a/lib/harmony/harmonydb/sql/20240420-web-task-indexes.sql b/lib/harmony/harmonydb/sql/20240420-web-task-indexes.sql new file mode 100644 index 00000000000..33eb9e73642 --- /dev/null +++ b/lib/harmony/harmonydb/sql/20240420-web-task-indexes.sql @@ -0,0 +1,9 @@ +DROP INDEX harmony_task_history_work_index; + +/* + This structure improves clusterMachineSummary query better than the old version, + while at the same time also being usable by clusterTaskHistorySummary (which wasn't + the case with the old index). + */ +create index harmony_task_history_work_index + on harmony_task_history (work_end desc, completed_by_host_and_port asc, name asc, result asc); From 10f7b6ed5f10bb3cd1b8fcc0c78aaf01694c7750 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Tue, 30 Apr 2024 19:34:43 +0200 Subject: [PATCH 21/22] mod tidy --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 062aca2980c..edf83fc3a52 100644 --- a/go.mod +++ b/go.mod @@ -107,7 +107,6 @@ require ( github.com/ipni/go-libipni v0.0.8 github.com/ipni/index-provider v0.12.0 github.com/jackc/pgerrcode v0.0.0-20220416144525-469b46aa5efa - github.com/jackc/pgx/v5 v5.4.1 github.com/kelseyhightower/envconfig v1.4.0 github.com/koalacxr/quantile v0.0.1 github.com/libp2p/go-buffer-pool v0.1.0 @@ -251,6 +250,7 @@ require ( github.com/ipsn/go-secp256k1 v0.0.0-20180726113642-9d62b9f0bc52 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 // indirect + github.com/jackc/pgx/v5 v5.4.1 // indirect github.com/jackc/puddle/v2 v2.2.1 // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c // indirect From 6bbe09041101845b3636f89390e2e2320cbd9af8 Mon Sep 17 00:00:00 2001 From: Aarsh Shah Date: Wed, 1 May 2024 13:20:41 +0400 Subject: [PATCH 22/22] Event index should be unique for tipsets (#11952) * event index should be unique for tipsets * fix formatting * migrate to version 5 --- chain/events/filter/event.go | 10 +++++-- chain/events/filter/index.go | 58 ++++++++++++++++++++++++++++++++---- 2 files changed, 59 insertions(+), 9 deletions(-) diff --git a/chain/events/filter/event.go b/chain/events/filter/event.go index 0accc551ab4..fa17d235ea9 100644 --- a/chain/events/filter/event.go +++ b/chain/events/filter/event.go @@ -57,7 +57,7 @@ var _ Filter = (*eventFilter)(nil) type CollectedEvent struct { Entries []types.EventEntry EmitterAddr address.Address // address of emitter - EventIdx int // index of the event within the list of emitted events + EventIdx int // index of the event within the list of emitted events in a given tipset Reverted bool Height abi.ChainEpoch TipSetKey types.TipSetKey // tipset that contained the message @@ -94,8 +94,11 @@ func (f *eventFilter) CollectEvents(ctx context.Context, te *TipSetEvents, rever if err != nil { return xerrors.Errorf("load executed messages: %w", err) } + + eventCount := 0 + for msgIdx, em := range ems { - for evIdx, ev := range em.Events() { + for _, ev := range em.Events() { // lookup address corresponding to the actor id addr, found := addressLookups[ev.Emitter] if !found { @@ -119,7 +122,7 @@ func (f *eventFilter) CollectEvents(ctx context.Context, te *TipSetEvents, rever cev := &CollectedEvent{ Entries: ev.Entries, EmitterAddr: addr, - EventIdx: evIdx, + EventIdx: eventCount, Reverted: revert, Height: te.msgTs.Height(), TipSetKey: te.msgTs.Key(), @@ -141,6 +144,7 @@ func (f *eventFilter) CollectEvents(ctx context.Context, te *TipSetEvents, rever } f.collected = append(f.collected, cev) f.mu.Unlock() + eventCount++ } } diff --git a/chain/events/filter/index.go b/chain/events/filter/index.go index 9a8f8bca4c5..9bf7213c82f 100644 --- a/chain/events/filter/index.go +++ b/chain/events/filter/index.go @@ -72,6 +72,7 @@ var ddls = []string{ `INSERT OR IGNORE INTO _meta (version) VALUES (2)`, `INSERT OR IGNORE INTO _meta (version) VALUES (3)`, `INSERT OR IGNORE INTO _meta (version) VALUES (4)`, + `INSERT OR IGNORE INTO _meta (version) VALUES (5)`, } var ( @@ -79,7 +80,7 @@ var ( ) const ( - schemaVersion = 4 + schemaVersion = 5 eventExists = `SELECT MAX(id) FROM event WHERE height=? AND tipset_key=? AND tipset_key_cid=? AND emitter_addr=? AND event_index=? AND message_cid=? AND message_index=?` insertEvent = `INSERT OR IGNORE INTO event(height, tipset_key, tipset_key_cid, emitter_addr, event_index, message_cid, message_index, reverted) VALUES(?, ?, ?, ?, ?, ?, ?, ?)` @@ -365,9 +366,42 @@ func (ei *EventIndex) migrateToVersion4(ctx context.Context) error { return xerrors.Errorf("commit transaction: %w", err) } + log.Infof("Successfully migrated event index from version 3 to version 4 in %s", time.Since(now)) + return nil +} + +func (ei *EventIndex) migrateToVersion5(ctx context.Context) error { + now := time.Now() + + tx, err := ei.db.BeginTx(ctx, nil) + if err != nil { + return xerrors.Errorf("begin transaction: %w", err) + } + defer func() { _ = tx.Rollback() }() + + stmtEventIndexUpdate, err := tx.PrepareContext(ctx, "UPDATE event SET event_index = (SELECT COUNT(*) FROM event e2 WHERE e2.tipset_key_cid = event.tipset_key_cid AND e2.id <= event.id) - 1") + if err != nil { + return xerrors.Errorf("prepare stmtEventIndexUpdate: %w", err) + } + + _, err = stmtEventIndexUpdate.ExecContext(ctx) + if err != nil { + return xerrors.Errorf("update event index: %w", err) + } + + _, err = tx.ExecContext(ctx, "INSERT OR IGNORE INTO _meta (version) VALUES (5)") + if err != nil { + return xerrors.Errorf("increment _meta version: %w", err) + } + + err = tx.Commit() + if err != nil { + return xerrors.Errorf("commit transaction: %w", err) + } + ei.vacuumDBAndCheckpointWAL(ctx) - log.Infof("Successfully migrated event index from version 3 to version 4 in %s", time.Since(now)) + log.Infof("Successfully migrated event index from version 4 to version 5 in %s", time.Since(now)) return nil } @@ -452,6 +486,16 @@ func NewEventIndex(ctx context.Context, path string, chainStore *store.ChainStor version = 4 } + if version == 4 { + log.Infof("Upgrading event index from version 4 to version 5") + err = eventIndex.migrateToVersion5(ctx) + if err != nil { + _ = db.Close() + return nil, xerrors.Errorf("could not migrate event index schema from version 4 to version 5: %w", err) + } + version = 5 + } + if version != schemaVersion { _ = db.Close() return nil, xerrors.Errorf("invalid database version: got %d, expected %d", version, schemaVersion) @@ -505,10 +549,11 @@ func (ei *EventIndex) CollectEvents(ctx context.Context, te *TipSetEvents, rever return xerrors.Errorf("load executed messages: %w", err) } + eventCount := 0 // iterate over all executed messages in this tipset and insert them into the database if they // don't exist, otherwise mark them as not reverted for msgIdx, em := range ems { - for evIdx, ev := range em.Events() { + for _, ev := range em.Events() { addr, found := addressLookups[ev.Emitter] if !found { var ok bool @@ -532,7 +577,7 @@ func (ei *EventIndex) CollectEvents(ctx context.Context, te *TipSetEvents, rever te.msgTs.Key().Bytes(), // tipset_key tsKeyCid.Bytes(), // tipset_key_cid addr.Bytes(), // emitter_addr - evIdx, // event_index + eventCount, // event_index em.Message().Cid().Bytes(), // message_cid msgIdx, // message_index ).Scan(&entryID) @@ -547,7 +592,7 @@ func (ei *EventIndex) CollectEvents(ctx context.Context, te *TipSetEvents, rever te.msgTs.Key().Bytes(), // tipset_key tsKeyCid.Bytes(), // tipset_key_cid addr.Bytes(), // emitter_addr - evIdx, // event_index + eventCount, // event_index em.Message().Cid().Bytes(), // message_cid msgIdx, // message_index false, // reverted @@ -582,7 +627,7 @@ func (ei *EventIndex) CollectEvents(ctx context.Context, te *TipSetEvents, rever te.msgTs.Key().Bytes(), // tipset_key tsKeyCid.Bytes(), // tipset_key_cid addr.Bytes(), // emitter_addr - evIdx, // event_index + eventCount, // event_index em.Message().Cid().Bytes(), // message_cid msgIdx, // message_index ) @@ -600,6 +645,7 @@ func (ei *EventIndex) CollectEvents(ctx context.Context, te *TipSetEvents, rever log.Warnf("restored %d events but expected only one to exist", rowsAffected) } } + eventCount++ } }