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 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/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/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/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/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 ae12bc302c2..3d19fcfcc81 100644 --- a/build/openrpc/full.json +++ b/build/openrpc/full.json @@ -2,7 +2,7 @@ "openrpc": "1.2.6", "info": { "title": "Lotus RPC API", - "version": "1.27.0-dev" + "version": "1.27.1-dev" }, "methods": [ { @@ -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,13 +26376,13 @@ "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" } }, { "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": [ { @@ -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/full.json.gz b/build/openrpc/full.json.gz index baaf830238c..08dda7784c6 100644 Binary files a/build/openrpc/full.json.gz and b/build/openrpc/full.json.gz differ diff --git a/build/openrpc/gateway.json b/build/openrpc/gateway.json index faa2c8536c7..7b54df5a328 100644 --- a/build/openrpc/gateway.json +++ b/build/openrpc/gateway.json @@ -2,7 +2,7 @@ "openrpc": "1.2.6", "info": { "title": "Lotus RPC API", - "version": "1.27.0-dev" + "version": "1.27.1-dev" }, "methods": [ { @@ -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/gateway.json.gz b/build/openrpc/gateway.json.gz index 9c2dfbcf2a2..9f5dc38ee68 100644 Binary files a/build/openrpc/gateway.json.gz and b/build/openrpc/gateway.json.gz differ diff --git a/build/openrpc/miner.json b/build/openrpc/miner.json index bc374e63e20..8c5a5ff91be 100644 --- a/build/openrpc/miner.json +++ b/build/openrpc/miner.json @@ -2,7 +2,7 @@ "openrpc": "1.2.6", "info": { "title": "Lotus RPC API", - "version": "1.27.0-dev" + "version": "1.27.1-dev" }, "methods": [ { @@ -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/miner.json.gz b/build/openrpc/miner.json.gz index ba135c01577..5fbd42c3db8 100644 Binary files a/build/openrpc/miner.json.gz and b/build/openrpc/miner.json.gz differ diff --git a/build/openrpc/worker.json b/build/openrpc/worker.json index 220d2e1c9e4..86bd7c0b159 100644 --- a/build/openrpc/worker.json +++ b/build/openrpc/worker.json @@ -2,7 +2,7 @@ "openrpc": "1.2.6", "info": { "title": "Lotus RPC API", - "version": "1.27.0-dev" + "version": "1.27.1-dev" }, "methods": [ { @@ -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/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 58231030637..0f3cb11c7a3 100644 Binary files a/build/openrpc/worker.json.gz and b/build/openrpc/worker.json.gz differ diff --git a/build/version.go b/build/version.go index 4b18f642baa..2244c98d871 100644 --- a/build/version.go +++ b/build/version.go @@ -37,7 +37,7 @@ func BuildTypeString() string { } // BuildVersion is the local build version -const BuildVersion = "1.27.0-dev" +const BuildVersion = "1.27.1-dev" func UserVersion() string { if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" { 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/events/filter/event.go b/chain/events/filter/event.go index 1669d840eec..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++ } } @@ -375,6 +379,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() diff --git a/chain/events/filter/index.go b/chain/events/filter/index.go index 296d7c1d5b7..9bf7213c82f 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,8 @@ 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)`, + `INSERT OR IGNORE INTO _meta (version) VALUES (5)`, } var ( @@ -74,7 +80,7 @@ var ( ) const ( - schemaVersion = 3 + 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(?, ?, ?, ?, ?, ?, ?, ?)` @@ -82,9 +88,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 +248,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 +260,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 +275,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 +297,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 +311,115 @@ func (ei *EventIndex) migrateToVersion3(ctx context.Context) error { if err != nil { return xerrors.Errorf("commit transaction: %w", err) } - log.Infof("Successfully migrated events to version 3 in %s", time.Since(now)) + 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) + } + } + + 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) + } + + 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 4 to version 5 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 +457,45 @@ 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 == 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) @@ -407,7 +526,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 { @@ -430,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 @@ -457,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) @@ -472,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 @@ -507,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 ) @@ -525,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++ } } 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/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/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/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/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 { 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/cmd/curio/tasks/tasks.go b/cmd/curio/tasks/tasks.go index 71923018d9e..fde13c33659 100644 --- a/cmd/curio/tasks/tasks.go +++ b/cmd/curio/tasks/tasks.go @@ -114,9 +114,10 @@ func StartTasks(ctx context.Context, dependencies *deps.Deps) (*harmonytask.Task activeTasks = append(activeTasks, sdrTask) } if cfg.Subsystems.EnableSealSDRTrees { - treesTask := seal.NewTreesTask(sp, db, slr, cfg.Subsystems.SealSDRTreesMaxTasks) + treeDTask := seal.NewTreeDTask(sp, db, slr, cfg.Subsystems.SealSDRTreesMaxTasks) + treeRCTask := seal.NewTreeRCTask(sp, db, slr, cfg.Subsystems.SealSDRTreesMaxTasks) finalizeTask := seal.NewFinalizeTask(cfg.Subsystems.FinalizeMaxTasks, sp, slr, db) - activeTasks = append(activeTasks, treesTask, finalizeTask) + activeTasks = append(activeTasks, treeDTask, treeRCTask, finalizeTask) } if cfg.Subsystems.EnableSendPrecommitMsg { precommitTask := seal.NewSubmitPrecommitTask(sp, db, full, sender, as, cfg.Fees.MaxPreCommitGasFee) 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) } 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/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 diff --git a/curiosrc/ffi/sdr_funcs.go b/curiosrc/ffi/sdr_funcs.go index e9ce62831de..eff49578d98 100644 --- a/curiosrc/ffi/sdr_funcs.go +++ b/curiosrc/ffi/sdr_funcs.go @@ -61,7 +61,7 @@ type storageProvider struct { } func (l *storageProvider) AcquireSector(ctx context.Context, taskID *harmonytask.TaskID, sector storiface.SectorRef, existing, allocate storiface.SectorFileType, sealing storiface.PathType) (fspaths, ids storiface.SectorPaths, release func(), err error) { - var paths, storageIDs storiface.SectorPaths + var sectorPaths, storageIDs storiface.SectorPaths var releaseStorage func() var ok bool @@ -77,7 +77,7 @@ func (l *storageProvider) AcquireSector(ctx context.Context, taskID *harmonytask log.Debugw("using existing storage reservation", "task", taskID, "sector", sector, "existing", existing, "allocate", allocate) - paths = resv.Paths + sectorPaths = resv.Paths storageIDs = resv.PathIDs releaseStorage = resv.Release @@ -87,7 +87,7 @@ func (l *storageProvider) AcquireSector(ctx context.Context, taskID *harmonytask // present locally. Note that we do not care about 'allocate' reqeuests, those files don't exist, and are just // proposed paths with a reservation of space. - _, checkPathIDs, err := l.storage.AcquireSector(ctx, sector, existing, storiface.FTNone, sealing, storiface.AcquireMove, storiface.AcquireInto(storiface.PathsWithIDs{Paths: paths, IDs: storageIDs})) + _, checkPathIDs, err := l.storage.AcquireSector(ctx, sector, existing, storiface.FTNone, sealing, storiface.AcquireMove, storiface.AcquireInto(storiface.PathsWithIDs{Paths: sectorPaths, IDs: storageIDs})) if err != nil { return storiface.SectorPaths{}, storiface.SectorPaths{}, nil, xerrors.Errorf("acquire reserved existing files: %w", err) } @@ -101,20 +101,20 @@ func (l *storageProvider) AcquireSector(ctx context.Context, taskID *harmonytask // No related reservation, acquire storage as usual var err error - paths, storageIDs, err = l.storage.AcquireSector(ctx, sector, existing, allocate, sealing, storiface.AcquireMove) + sectorPaths, storageIDs, err = l.storage.AcquireSector(ctx, sector, existing, allocate, sealing, storiface.AcquireMove) if err != nil { return storiface.SectorPaths{}, storiface.SectorPaths{}, nil, err } - releaseStorage, err = l.localStore.Reserve(ctx, sector, allocate, storageIDs, storiface.FSOverheadSeal) + releaseStorage, err = l.localStore.Reserve(ctx, sector, allocate, storageIDs, storiface.FSOverheadSeal, paths.MinFreeStoragePercentage) if err != nil { return storiface.SectorPaths{}, storiface.SectorPaths{}, nil, xerrors.Errorf("reserving storage space: %w", err) } } - log.Debugf("acquired sector %d (e:%d; a:%d): %v", sector, existing, allocate, paths) + log.Debugf("acquired sector %d (e:%d; a:%d): %v", sector, existing, allocate, sectorPaths) - return paths, storageIDs, func() { + return sectorPaths, storageIDs, func() { releaseStorage() for _, fileType := range storiface.PathTypes { @@ -194,13 +194,13 @@ func (sb *SealCalls) ensureOneCopy(ctx context.Context, sid abi.SectorID, pathID return nil } -func (sb *SealCalls) TreeDRC(ctx context.Context, task *harmonytask.TaskID, sector storiface.SectorRef, unsealed cid.Cid, size abi.PaddedPieceSize, data io.Reader, unpaddedData bool) (scid cid.Cid, ucid cid.Cid, err error) { +func (sb *SealCalls) TreeRC(ctx context.Context, task *harmonytask.TaskID, sector storiface.SectorRef, unsealed cid.Cid) (scid cid.Cid, ucid cid.Cid, err error) { p1o, err := sb.makePhase1Out(unsealed, sector.ProofType) if err != nil { return cid.Undef, cid.Undef, xerrors.Errorf("make phase1 output: %w", err) } - paths, pathIDs, releaseSector, err := sb.sectors.AcquireSector(ctx, task, sector, storiface.FTCache, storiface.FTSealed, storiface.PathSealing) + fspaths, pathIDs, releaseSector, err := sb.sectors.AcquireSector(ctx, task, sector, storiface.FTCache, storiface.FTSealed, storiface.PathSealing) if err != nil { return cid.Undef, cid.Undef, xerrors.Errorf("acquiring sector paths: %w", err) } @@ -208,66 +208,55 @@ func (sb *SealCalls) TreeDRC(ctx context.Context, task *harmonytask.TaskID, sect defer func() { if err != nil { - clerr := removeDRCTrees(paths.Cache) + clerr := removeDRCTrees(fspaths.Cache, false) if clerr != nil { - log.Errorw("removing tree files after TreeDRC error", "error", clerr, "exec-error", err, "sector", sector, "cache", paths.Cache) + log.Errorw("removing tree files after TreeDRC error", "error", clerr, "exec-error", err, "sector", sector, "cache", fspaths.Cache) } } }() - treeDUnsealed, err := proof.BuildTreeD(data, unpaddedData, filepath.Join(paths.Cache, proofpaths.TreeDName), size) + // create sector-sized file at paths.Sealed; PC2 transforms it into a sealed sector in-place + ssize, err := sector.ProofType.SectorSize() if err != nil { - return cid.Undef, cid.Undef, xerrors.Errorf("building tree-d: %w", err) - } - - if treeDUnsealed != unsealed { - return cid.Undef, cid.Undef, xerrors.Errorf("tree-d cid mismatch with supplied unsealed cid") + return cid.Undef, cid.Undef, xerrors.Errorf("getting sector size: %w", err) } { - // create sector-sized file at paths.Sealed; PC2 transforms it into a sealed sector in-place - ssize, err := sector.ProofType.SectorSize() - if err != nil { - return cid.Undef, cid.Undef, xerrors.Errorf("getting sector size: %w", err) - } - - { - // copy TreeD prefix to sealed sector, SealPreCommitPhase2 will mutate it in place into the sealed sector + // copy TreeD prefix to sealed sector, SealPreCommitPhase2 will mutate it in place into the sealed sector - // first try reflink + truncate, that should be way faster - err := reflink.Always(filepath.Join(paths.Cache, proofpaths.TreeDName), paths.Sealed) - if err == nil { - err = os.Truncate(paths.Sealed, int64(ssize)) - if err != nil { - return cid.Undef, cid.Undef, xerrors.Errorf("truncating reflinked sealed file: %w", err) - } - } else { - log.Errorw("reflink treed -> sealed failed, falling back to slow copy, use single scratch btrfs or xfs filesystem", "error", err, "sector", sector, "cache", paths.Cache, "sealed", paths.Sealed) + // first try reflink + truncate, that should be way faster + err := reflink.Always(filepath.Join(fspaths.Cache, proofpaths.TreeDName), fspaths.Sealed) + if err == nil { + err = os.Truncate(fspaths.Sealed, int64(ssize)) + if err != nil { + return cid.Undef, cid.Undef, xerrors.Errorf("truncating reflinked sealed file: %w", err) + } + } else { + log.Errorw("reflink treed -> sealed failed, falling back to slow copy, use single scratch btrfs or xfs filesystem", "error", err, "sector", sector, "cache", fspaths.Cache, "sealed", fspaths.Sealed) - // fallback to slow copy, copy ssize bytes from treed to sealed - dst, err := os.OpenFile(paths.Sealed, os.O_WRONLY|os.O_CREATE, 0644) - if err != nil { - return cid.Undef, cid.Undef, xerrors.Errorf("opening sealed sector file: %w", err) - } - src, err := os.Open(filepath.Join(paths.Cache, proofpaths.TreeDName)) - if err != nil { - return cid.Undef, cid.Undef, xerrors.Errorf("opening treed sector file: %w", err) - } + // fallback to slow copy, copy ssize bytes from treed to sealed + dst, err := os.OpenFile(fspaths.Sealed, os.O_WRONLY|os.O_CREATE, 0644) + if err != nil { + return cid.Undef, cid.Undef, xerrors.Errorf("opening sealed sector file: %w", err) + } + src, err := os.Open(filepath.Join(fspaths.Cache, proofpaths.TreeDName)) + if err != nil { + return cid.Undef, cid.Undef, xerrors.Errorf("opening treed sector file: %w", err) + } - _, err = io.CopyN(dst, src, int64(ssize)) - derr := dst.Close() - _ = src.Close() - if err != nil { - return cid.Undef, cid.Undef, xerrors.Errorf("copying treed -> sealed: %w", err) - } - if derr != nil { - return cid.Undef, cid.Undef, xerrors.Errorf("closing sealed file: %w", derr) - } + _, err = io.CopyN(dst, src, int64(ssize)) + derr := dst.Close() + _ = src.Close() + if err != nil { + return cid.Undef, cid.Undef, xerrors.Errorf("copying treed -> sealed: %w", err) + } + if derr != nil { + return cid.Undef, cid.Undef, xerrors.Errorf("closing sealed file: %w", derr) } } } - sl, uns, err := ffi.SealPreCommitPhase2(p1o, paths.Cache, paths.Sealed) + sl, uns, err := ffi.SealPreCommitPhase2(p1o, fspaths.Cache, fspaths.Sealed) if err != nil { return cid.Undef, cid.Undef, xerrors.Errorf("computing seal proof: %w", err) } @@ -283,22 +272,28 @@ func (sb *SealCalls) TreeDRC(ctx context.Context, task *harmonytask.TaskID, sect return sl, uns, nil } -func removeDRCTrees(cache string) error { - // list files in cache +func removeDRCTrees(cache string, isDTree bool) error { files, err := os.ReadDir(cache) if err != nil { return xerrors.Errorf("listing cache: %w", err) } + var testFunc func(string) bool + + if isDTree { + testFunc = proofpaths.IsTreeDFile + } else { + testFunc = proofpaths.IsTreeRCFile + } + for _, file := range files { - if proofpaths.IsTreeFile(file.Name()) { + if testFunc(file.Name()) { err := os.Remove(filepath.Join(cache, file.Name())) if err != nil { return xerrors.Errorf("removing tree file: %w", err) } } } - return nil } @@ -625,3 +620,40 @@ func (sb *SealCalls) sectorStorageType(ctx context.Context, sector storiface.Sec return true, storiface.PathStorage, nil } + +// PreFetch fetches the sector file to local storage before SDR and TreeRC Tasks +func (sb *SealCalls) PreFetch(ctx context.Context, sector storiface.SectorRef, task *harmonytask.TaskID) (fsPath, pathID storiface.SectorPaths, releaseSector func(), err error) { + fsPath, pathID, releaseSector, err = sb.sectors.AcquireSector(ctx, task, sector, storiface.FTCache, storiface.FTNone, storiface.PathSealing) + if err != nil { + return storiface.SectorPaths{}, storiface.SectorPaths{}, nil, xerrors.Errorf("acquiring sector paths: %w", err) + } + // Don't release the storage locks. They will be released in TreeD func() + return +} + +func (sb *SealCalls) TreeD(ctx context.Context, sector storiface.SectorRef, unsealed cid.Cid, size abi.PaddedPieceSize, data io.Reader, unpaddedData bool, fspaths, pathIDs storiface.SectorPaths) error { + var err error + defer func() { + if err != nil { + clerr := removeDRCTrees(fspaths.Cache, true) + if clerr != nil { + log.Errorw("removing tree files after TreeDRC error", "error", clerr, "exec-error", err, "sector", sector, "cache", fspaths.Cache) + } + } + }() + + treeDUnsealed, err := proof.BuildTreeD(data, unpaddedData, filepath.Join(fspaths.Cache, proofpaths.TreeDName), size) + if err != nil { + return xerrors.Errorf("building tree-d: %w", err) + } + + if treeDUnsealed != unsealed { + return xerrors.Errorf("tree-d cid mismatch with supplied unsealed cid") + } + + if err := sb.ensureOneCopy(ctx, sector.ID, pathIDs, storiface.FTCache); err != nil { + return xerrors.Errorf("ensure one copy: %w", err) + } + + return nil +} diff --git a/curiosrc/ffi/task_storage.go b/curiosrc/ffi/task_storage.go index f01a472fa8c..4bbb8e343e7 100644 --- a/curiosrc/ffi/task_storage.go +++ b/curiosrc/ffi/task_storage.go @@ -43,6 +43,9 @@ type TaskStorage struct { pathType storiface.PathType taskToSectorRef func(taskID harmonytask.TaskID) (SectorRef, error) + + // Minimum free storage percentage cutoff for reservation rejection + MinFreeStoragePercentage float64 } type ReleaseStorageFunc func() // free storage reservation @@ -56,14 +59,15 @@ type StorageReservation struct { Alloc, Existing storiface.SectorFileType } -func (sb *SealCalls) Storage(taskToSectorRef func(taskID harmonytask.TaskID) (SectorRef, error), alloc, existing storiface.SectorFileType, ssize abi.SectorSize, pathType storiface.PathType) *TaskStorage { +func (sb *SealCalls) Storage(taskToSectorRef func(taskID harmonytask.TaskID) (SectorRef, error), alloc, existing storiface.SectorFileType, ssize abi.SectorSize, pathType storiface.PathType, MinFreeStoragePercentage float64) *TaskStorage { return &TaskStorage{ - sc: sb, - alloc: alloc, - existing: existing, - ssize: ssize, - pathType: pathType, - taskToSectorRef: taskToSectorRef, + sc: sb, + alloc: alloc, + existing: existing, + ssize: ssize, + pathType: pathType, + taskToSectorRef: taskToSectorRef, + MinFreeStoragePercentage: MinFreeStoragePercentage, } } @@ -166,7 +170,7 @@ func (t *TaskStorage) Claim(taskID int) error { } // reserve the space - release, err := t.sc.sectors.localStore.Reserve(ctx, sectorRef.Ref(), requestedTypes, pathIDs, storiface.FSOverheadSeal) + release, err := t.sc.sectors.localStore.Reserve(ctx, sectorRef.Ref(), requestedTypes, pathIDs, storiface.FSOverheadSeal, t.MinFreeStoragePercentage) if err != nil { return err } diff --git a/curiosrc/gc/storage_endpoint_gc.go b/curiosrc/gc/storage_endpoint_gc.go index 45783f35367..d49c51a1bb3 100644 --- a/curiosrc/gc/storage_endpoint_gc.go +++ b/curiosrc/gc/storage_endpoint_gc.go @@ -209,6 +209,7 @@ func (s *StorageEndpointGC) Do(taskID harmonytask.TaskID, stillOwned func() bool // Remove dead URLs from storage_path entries and handle path cleanup for _, du := range deadURLs { + du := du // Fetch the current URLs for the storage path var URLs string err = tx.QueryRow("SELECT urls FROM storage_path WHERE storage_id = $1", du.StorageID).Scan(&URLs) diff --git a/curiosrc/piece/task_park_piece.go b/curiosrc/piece/task_park_piece.go index 68a94a295a0..18ebcdef849 100644 --- a/curiosrc/piece/task_park_piece.go +++ b/curiosrc/piece/task_park_piece.go @@ -15,6 +15,7 @@ import ( "github.com/filecoin-project/lotus/lib/harmony/harmonytask" "github.com/filecoin-project/lotus/lib/harmony/resources" "github.com/filecoin-project/lotus/lib/promise" + "github.com/filecoin-project/lotus/storage/paths" "github.com/filecoin-project/lotus/storage/sealer/storiface" ) @@ -185,7 +186,7 @@ func (p *ParkPieceTask) TypeDetails() harmonytask.TaskTypeDetails { Cpu: 1, Gpu: 0, Ram: 64 << 20, - Storage: p.sc.Storage(p.taskToRef, storiface.FTPiece, storiface.FTNone, maxSizePiece, storiface.PathSealing), + Storage: p.sc.Storage(p.taskToRef, storiface.FTPiece, storiface.FTNone, maxSizePiece, storiface.PathSealing, paths.MinFreeStoragePercentage), }, MaxFailures: 10, } diff --git a/curiosrc/seal/poller.go b/curiosrc/seal/poller.go index 568280bdbce..073091f83df 100644 --- a/curiosrc/seal/poller.go +++ b/curiosrc/seal/poller.go @@ -21,7 +21,8 @@ var log = logging.Logger("lpseal") const ( pollerSDR = iota - pollerTrees + pollerTreeD + pollerTreeRC pollerPrecommitMsg pollerPoRep pollerCommitMsg @@ -154,7 +155,8 @@ func (s *SealPoller) poll(ctx context.Context) error { } s.pollStartSDR(ctx, task) - s.pollStartSDRTrees(ctx, task) + s.pollStartSDRTreeD(ctx, task) + s.pollStartSDRTreeRC(ctx, task) s.pollStartPrecommitMsg(ctx, task) s.mustPoll(s.pollPrecommitMsgLanded(ctx, task)) s.pollStartPoRep(ctx, task, ts) @@ -187,14 +189,31 @@ func (t pollTask) afterSDR() bool { return t.AfterSDR } -func (s *SealPoller) pollStartSDRTrees(ctx context.Context, task pollTask) { - if !task.AfterTreeD && !task.AfterTreeC && !task.AfterTreeR && - task.TaskTreeD == nil && task.TaskTreeC == nil && task.TaskTreeR == nil && - s.pollers[pollerTrees].IsSet() && task.AfterSDR { +func (s *SealPoller) pollStartSDRTreeD(ctx context.Context, task pollTask) { + if !task.AfterTreeD && task.TaskTreeD == nil && s.pollers[pollerTreeD].IsSet() && task.afterSDR() { + s.pollers[pollerTreeD].Val(ctx)(func(id harmonytask.TaskID, tx *harmonydb.Tx) (shouldCommit bool, seriousError error) { + n, err := tx.Exec(`UPDATE sectors_sdr_pipeline SET task_id_tree_d = $1 WHERE sp_id = $2 AND sector_number = $3 AND after_sdr = TRUE AND task_id_tree_d IS NULL`, id, task.SpID, task.SectorNumber) + if err != nil { + return false, xerrors.Errorf("update sectors_sdr_pipeline: %w", err) + } + if n != 1 { + return false, xerrors.Errorf("expected to update 1 row, updated %d", n) + } + + return true, nil + }) + } +} + +func (t pollTask) afterTreeD() bool { + return t.AfterTreeD && t.afterSDR() +} - s.pollers[pollerTrees].Val(ctx)(func(id harmonytask.TaskID, tx *harmonydb.Tx) (shouldCommit bool, seriousError error) { - n, err := tx.Exec(`UPDATE sectors_sdr_pipeline SET task_id_tree_d = $1, task_id_tree_c = $1, task_id_tree_r = $1 - WHERE sp_id = $2 AND sector_number = $3 AND after_sdr = TRUE AND task_id_tree_d IS NULL AND task_id_tree_c IS NULL AND task_id_tree_r IS NULL`, id, task.SpID, task.SectorNumber) +func (s *SealPoller) pollStartSDRTreeRC(ctx context.Context, task pollTask) { + if !task.AfterTreeC && !task.AfterTreeR && task.TaskTreeC == nil && task.TaskTreeR == nil && s.pollers[pollerTreeRC].IsSet() && task.afterTreeD() { + s.pollers[pollerTreeRC].Val(ctx)(func(id harmonytask.TaskID, tx *harmonydb.Tx) (shouldCommit bool, seriousError error) { + n, err := tx.Exec(`UPDATE sectors_sdr_pipeline SET task_id_tree_c = $1, task_id_tree_r = $1 + WHERE sp_id = $2 AND sector_number = $3 AND after_tree_d = TRUE AND task_id_tree_c IS NULL AND task_id_tree_r IS NULL`, id, task.SpID, task.SectorNumber) if err != nil { return false, xerrors.Errorf("update sectors_sdr_pipeline: %w", err) } @@ -207,12 +226,12 @@ func (s *SealPoller) pollStartSDRTrees(ctx context.Context, task pollTask) { } } -func (t pollTask) afterTrees() bool { - return t.AfterTreeD && t.AfterTreeC && t.AfterTreeR && t.afterSDR() +func (t pollTask) afterTreeRC() bool { + return t.AfterTreeC && t.AfterTreeR && t.afterTreeD() } func (t pollTask) afterPrecommitMsg() bool { - return t.AfterPrecommitMsg && t.afterTrees() + return t.AfterPrecommitMsg && t.afterTreeRC() } func (t pollTask) afterPrecommitMsgSuccess() bool { diff --git a/curiosrc/seal/poller_precommit_msg.go b/curiosrc/seal/poller_precommit_msg.go index 4372cbb9223..42986499f61 100644 --- a/curiosrc/seal/poller_precommit_msg.go +++ b/curiosrc/seal/poller_precommit_msg.go @@ -16,7 +16,7 @@ import ( ) func (s *SealPoller) pollStartPrecommitMsg(ctx context.Context, task pollTask) { - if task.TaskPrecommitMsg == nil && !task.AfterPrecommitMsg && task.afterTrees() && s.pollers[pollerPrecommitMsg].IsSet() { + if task.TaskPrecommitMsg == nil && !task.AfterPrecommitMsg && task.afterTreeRC() && s.pollers[pollerPrecommitMsg].IsSet() { s.pollers[pollerPrecommitMsg].Val(ctx)(func(id harmonytask.TaskID, tx *harmonydb.Tx) (shouldCommit bool, seriousError error) { n, err := tx.Exec(`UPDATE sectors_sdr_pipeline SET task_id_precommit_msg = $1 WHERE sp_id = $2 AND sector_number = $3 AND task_id_precommit_msg IS NULL AND after_tree_r = TRUE AND after_tree_d = TRUE`, id, task.SpID, task.SectorNumber) if err != nil { diff --git a/curiosrc/seal/task_movestorage.go b/curiosrc/seal/task_movestorage.go index 6037a390dc7..dab89958236 100644 --- a/curiosrc/seal/task_movestorage.go +++ b/curiosrc/seal/task_movestorage.go @@ -11,6 +11,7 @@ import ( "github.com/filecoin-project/lotus/lib/harmony/harmonydb" "github.com/filecoin-project/lotus/lib/harmony/harmonytask" "github.com/filecoin-project/lotus/lib/harmony/resources" + "github.com/filecoin-project/lotus/storage/paths" "github.com/filecoin-project/lotus/storage/sealer/storiface" ) @@ -148,7 +149,7 @@ func (m *MoveStorageTask) TypeDetails() harmonytask.TaskTypeDetails { Cpu: 1, Gpu: 0, Ram: 128 << 20, - Storage: m.sc.Storage(m.taskToSector, storiface.FTNone, storiface.FTCache|storiface.FTSealed|storiface.FTUnsealed, ssize, storiface.PathStorage), + Storage: m.sc.Storage(m.taskToSector, storiface.FTNone, storiface.FTCache|storiface.FTSealed|storiface.FTUnsealed, ssize, storiface.PathStorage, paths.MinFreeStoragePercentage), }, MaxFailures: 10, } 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/curiosrc/seal/task_sdr.go b/curiosrc/seal/task_sdr.go index 4c1164e0581..0a3aebcd4a4 100644 --- a/curiosrc/seal/task_sdr.go +++ b/curiosrc/seal/task_sdr.go @@ -20,6 +20,7 @@ import ( "github.com/filecoin-project/lotus/lib/harmony/harmonydb" "github.com/filecoin-project/lotus/lib/harmony/harmonytask" "github.com/filecoin-project/lotus/lib/harmony/resources" + "github.com/filecoin-project/lotus/storage/paths" "github.com/filecoin-project/lotus/storage/sealer/storiface" ) @@ -204,7 +205,7 @@ func (s *SDRTask) TypeDetails() harmonytask.TaskTypeDetails { Cpu: 4, // todo multicore sdr Gpu: 0, Ram: 54 << 30, - Storage: s.sc.Storage(s.taskToSector, storiface.FTCache, storiface.FTNone, ssize, storiface.PathSealing), + Storage: s.sc.Storage(s.taskToSector, storiface.FTCache, storiface.FTNone, ssize, storiface.PathSealing, paths.MinFreeStoragePercentage), }, MaxFailures: 2, Follows: nil, diff --git a/curiosrc/seal/task_trees.go b/curiosrc/seal/task_treed.go similarity index 82% rename from curiosrc/seal/task_trees.go rename to curiosrc/seal/task_treed.go index 7994c354aad..7b31e12fb52 100644 --- a/curiosrc/seal/task_trees.go +++ b/curiosrc/seal/task_treed.go @@ -23,7 +23,7 @@ import ( "github.com/filecoin-project/lotus/storage/sealer/storiface" ) -type TreesTask struct { +type TreeDTask struct { sp *SealPoller db *harmonydb.DB sc *ffi.SealCalls @@ -31,8 +31,54 @@ type TreesTask struct { max int } -func NewTreesTask(sp *SealPoller, db *harmonydb.DB, sc *ffi.SealCalls, maxTrees int) *TreesTask { - return &TreesTask{ +func (t *TreeDTask) CanAccept(ids []harmonytask.TaskID, engine *harmonytask.TaskEngine) (*harmonytask.TaskID, error) { + if engine.Resources().Gpu > 0 { + return &ids[0], nil + } + return nil, nil +} + +func (t *TreeDTask) TypeDetails() harmonytask.TaskTypeDetails { + ssize := abi.SectorSize(32 << 30) // todo task details needs taskID to get correct sector size + if isDevnet { + ssize = abi.SectorSize(2 << 20) + } + + return harmonytask.TaskTypeDetails{ + Max: t.max, + Name: "TreeD", + Cost: resources.Resources{ + Cpu: 1, + Ram: 1 << 30, + Gpu: 0, + Storage: t.sc.Storage(t.taskToSector, storiface.FTNone, storiface.FTCache, ssize, storiface.PathSealing, 1.0), + }, + MaxFailures: 3, + Follows: nil, + } +} + +func (t *TreeDTask) taskToSector(id harmonytask.TaskID) (ffi.SectorRef, error) { + var refs []ffi.SectorRef + + err := t.db.Select(context.Background(), &refs, `SELECT sp_id, sector_number, reg_seal_proof FROM sectors_sdr_pipeline WHERE task_id_tree_d = $1`, id) + if err != nil { + return ffi.SectorRef{}, xerrors.Errorf("getting sector ref: %w", err) + } + + if len(refs) != 1 { + return ffi.SectorRef{}, xerrors.Errorf("expected 1 sector ref, got %d", len(refs)) + } + + return refs[0], nil +} + +func (t *TreeDTask) Adder(taskFunc harmonytask.AddTaskFunc) { + t.sp.pollers[pollerTreeD].Set(taskFunc) +} + +func NewTreeDTask(sp *SealPoller, db *harmonydb.DB, sc *ffi.SealCalls, maxTrees int) *TreeDTask { + return &TreeDTask{ sp: sp, db: db, sc: sc, @@ -41,7 +87,7 @@ func NewTreesTask(sp *SealPoller, db *harmonydb.DB, sc *ffi.SealCalls, maxTrees } } -func (t *TreesTask) Do(taskID harmonytask.TaskID, stillOwned func() bool) (done bool, err error) { +func (t *TreeDTask) Do(taskID harmonytask.TaskID, stillOwned func() bool) (done bool, err error) { ctx := context.Background() var sectorParamsArr []struct { @@ -53,7 +99,7 @@ func (t *TreesTask) Do(taskID harmonytask.TaskID, stillOwned func() bool) (done err = t.db.Select(ctx, §orParamsArr, ` SELECT sp_id, sector_number, reg_seal_proof FROM sectors_sdr_pipeline - WHERE task_id_tree_r = $1 AND task_id_tree_c = $1 AND task_id_tree_d = $1`, taskID) + WHERE task_id_tree_d = $1`, taskID) if err != nil { return false, xerrors.Errorf("getting sector params: %w", err) } @@ -63,6 +109,21 @@ func (t *TreesTask) Do(taskID harmonytask.TaskID, stillOwned func() bool) (done } sectorParams := sectorParamsArr[0] + sref := storiface.SectorRef{ + ID: abi.SectorID{ + Miner: abi.ActorID(sectorParams.SpID), + Number: abi.SectorNumber(sectorParams.SectorNumber), + }, + ProofType: sectorParams.RegSealProof, + } + + // Fetch the Sector to local storage + fsPaths, pathIds, release, err := t.sc.PreFetch(ctx, sref, &taskID) + if err != nil { + return false, xerrors.Errorf("failed to prefetch sectors: %w", err) + } + defer release() + var pieces []struct { PieceIndex int64 `db:"piece_index"` PieceCID string `db:"piece_cid"` @@ -178,82 +239,25 @@ func (t *TreesTask) Do(taskID harmonytask.TaskID, stillOwned func() bool) (done unpaddedData = false // nullreader includes fr32 zero bits } - sref := storiface.SectorRef{ - ID: abi.SectorID{ - Miner: abi.ActorID(sectorParams.SpID), - Number: abi.SectorNumber(sectorParams.SectorNumber), - }, - ProofType: sectorParams.RegSealProof, - } - - // D / R / C - sealed, unsealed, err := t.sc.TreeDRC(ctx, &taskID, sref, commd, abi.PaddedPieceSize(ssize), dataReader, unpaddedData) + // Generate Tree D + err = t.sc.TreeD(ctx, sref, commd, abi.PaddedPieceSize(ssize), dataReader, unpaddedData, fsPaths, pathIds) if err != nil { - return false, xerrors.Errorf("computing tree d, r and c: %w", err) + return false, xerrors.Errorf("failed to generate TreeD: %w", err) } - // todo synth porep - - // todo porep challenge check - n, err := t.db.Exec(ctx, `UPDATE sectors_sdr_pipeline - SET after_tree_r = true, after_tree_c = true, after_tree_d = true, tree_r_cid = $3, tree_d_cid = $4 - WHERE sp_id = $1 AND sector_number = $2`, - sectorParams.SpID, sectorParams.SectorNumber, sealed, unsealed) + SET after_tree_d = true, tree_d_cid = $3 WHERE sp_id = $1 AND sector_number = $2`, + sectorParams.SpID, sectorParams.SectorNumber, commd) if err != nil { - return false, xerrors.Errorf("store sdr-trees success: updating pipeline: %w", err) + return false, xerrors.Errorf("store TreeD success: updating pipeline: %w", err) } if n != 1 { - return false, xerrors.Errorf("store sdr-trees success: updated %d rows", n) + return false, xerrors.Errorf("store TreeD success: updated %d rows", n) } return true, nil } -func (t *TreesTask) CanAccept(ids []harmonytask.TaskID, engine *harmonytask.TaskEngine) (*harmonytask.TaskID, error) { - id := ids[0] - return &id, nil -} - -func (t *TreesTask) TypeDetails() harmonytask.TaskTypeDetails { - ssize := abi.SectorSize(32 << 30) // todo task details needs taskID to get correct sector size - if isDevnet { - ssize = abi.SectorSize(2 << 20) - } - - return harmonytask.TaskTypeDetails{ - Max: t.max, - Name: "SDRTrees", - Cost: resources.Resources{ - Cpu: 1, - Gpu: 1, - Ram: 8000 << 20, // todo - Storage: t.sc.Storage(t.taskToSector, storiface.FTSealed, storiface.FTCache, ssize, storiface.PathSealing), - }, - MaxFailures: 3, - Follows: nil, - } -} - -func (t *TreesTask) Adder(taskFunc harmonytask.AddTaskFunc) { - t.sp.pollers[pollerTrees].Set(taskFunc) -} - -func (t *TreesTask) taskToSector(id harmonytask.TaskID) (ffi.SectorRef, error) { - var refs []ffi.SectorRef - - err := t.db.Select(context.Background(), &refs, `SELECT sp_id, sector_number, reg_seal_proof FROM sectors_sdr_pipeline WHERE task_id_tree_r = $1`, id) - if err != nil { - return ffi.SectorRef{}, xerrors.Errorf("getting sector ref: %w", err) - } - - if len(refs) != 1 { - return ffi.SectorRef{}, xerrors.Errorf("expected 1 sector ref, got %d", len(refs)) - } - - return refs[0], nil -} - type UrlPieceReader struct { Url string RawSize int64 // the exact number of bytes read, if we read more or less that's an error @@ -323,4 +327,4 @@ func (u *UrlPieceReader) Close() error { return nil } -var _ harmonytask.TaskInterface = &TreesTask{} +var _ harmonytask.TaskInterface = &TreeDTask{} diff --git a/curiosrc/seal/task_trees_test.go b/curiosrc/seal/task_treed_test.go similarity index 100% rename from curiosrc/seal/task_trees_test.go rename to curiosrc/seal/task_treed_test.go diff --git a/curiosrc/seal/task_treerc.go b/curiosrc/seal/task_treerc.go new file mode 100644 index 00000000000..02cf0350e03 --- /dev/null +++ b/curiosrc/seal/task_treerc.go @@ -0,0 +1,190 @@ +package seal + +import ( + "context" + + "github.com/ipfs/go-cid" + "golang.org/x/xerrors" + + "github.com/filecoin-project/go-state-types/abi" + + "github.com/filecoin-project/lotus/curiosrc/ffi" + "github.com/filecoin-project/lotus/lib/harmony/harmonydb" + "github.com/filecoin-project/lotus/lib/harmony/harmonytask" + "github.com/filecoin-project/lotus/lib/harmony/resources" + "github.com/filecoin-project/lotus/storage/paths" + "github.com/filecoin-project/lotus/storage/sealer/storiface" +) + +type TreeRCTask struct { + sp *SealPoller + db *harmonydb.DB + sc *ffi.SealCalls + + max int +} + +func NewTreeRCTask(sp *SealPoller, db *harmonydb.DB, sc *ffi.SealCalls, maxTrees int) *TreeRCTask { + return &TreeRCTask{ + sp: sp, + db: db, + sc: sc, + + max: maxTrees, + } +} + +func (t *TreeRCTask) Do(taskID harmonytask.TaskID, stillOwned func() bool) (done bool, err error) { + ctx := context.Background() + + var sectorParamsArr []struct { + SpID int64 `db:"sp_id"` + SectorNumber int64 `db:"sector_number"` + RegSealProof abi.RegisteredSealProof `db:"reg_seal_proof"` + CommD string `db:"tree_d_cid"` + } + + err = t.db.Select(ctx, §orParamsArr, ` + SELECT sp_id, sector_number, reg_seal_proof, tree_d_cid + FROM sectors_sdr_pipeline + WHERE task_id_tree_c = $1 AND task_id_tree_r = $1`, taskID) + if err != nil { + return false, xerrors.Errorf("getting sector params: %w", err) + } + + if len(sectorParamsArr) != 1 { + return false, xerrors.Errorf("expected 1 sector params, got %d", len(sectorParamsArr)) + } + sectorParams := sectorParamsArr[0] + + commd, err := cid.Parse(sectorParams.CommD) + if err != nil { + return false, xerrors.Errorf("parsing unsealed CID: %w", err) + } + + sref := storiface.SectorRef{ + ID: abi.SectorID{ + Miner: abi.ActorID(sectorParams.SpID), + Number: abi.SectorNumber(sectorParams.SectorNumber), + }, + ProofType: sectorParams.RegSealProof, + } + + // R / C + sealed, _, err := t.sc.TreeRC(ctx, &taskID, sref, commd) + if err != nil { + return false, xerrors.Errorf("computing tree r and c: %w", err) + } + + // todo synth porep + + // todo porep challenge check + + n, err := t.db.Exec(ctx, `UPDATE sectors_sdr_pipeline + SET after_tree_r = true, after_tree_c = true, tree_r_cid = $3 + WHERE sp_id = $1 AND sector_number = $2`, + sectorParams.SpID, sectorParams.SectorNumber, sealed) + if err != nil { + return false, xerrors.Errorf("store sdr-trees success: updating pipeline: %w", err) + } + if n != 1 { + return false, xerrors.Errorf("store sdr-trees success: updated %d rows", n) + } + + return true, nil +} + +func (t *TreeRCTask) CanAccept(ids []harmonytask.TaskID, engine *harmonytask.TaskEngine) (*harmonytask.TaskID, error) { + var tasks []struct { + TaskID harmonytask.TaskID `db:"task_id_tree_c"` + SpID int64 `db:"sp_id"` + SectorNumber int64 `db:"sector_number"` + StorageID string `db:"storage_id"` + } + + if storiface.FTCache != 4 { + panic("storiface.FTCache != 4") + } + + ctx := context.Background() + + indIDs := make([]int64, len(ids)) + for i, id := range ids { + indIDs[i] = int64(id) + } + + err := t.db.Select(ctx, &tasks, ` + SELECT p.task_id_tree_c, p.sp_id, p.sector_number, l.storage_id FROM sectors_sdr_pipeline p + INNER JOIN sector_location l ON p.sp_id = l.miner_id AND p.sector_number = l.sector_num + WHERE task_id_tree_r = ANY ($1) AND l.sector_filetype = 4 +`, indIDs) + if err != nil { + return nil, xerrors.Errorf("getting tasks: %w", err) + } + + ls, err := t.sc.LocalStorage(ctx) + if err != nil { + return nil, xerrors.Errorf("getting local storage: %w", err) + } + + acceptables := map[harmonytask.TaskID]bool{} + + for _, t := range ids { + acceptables[t] = true + } + + for _, t := range tasks { + if _, ok := acceptables[t.TaskID]; !ok { + continue + } + + for _, l := range ls { + if string(l.ID) == t.StorageID { + return &t.TaskID, nil + } + } + } + + return nil, nil +} + +func (t *TreeRCTask) TypeDetails() harmonytask.TaskTypeDetails { + ssize := abi.SectorSize(32 << 30) // todo task details needs taskID to get correct sector size + if isDevnet { + ssize = abi.SectorSize(2 << 20) + } + + return harmonytask.TaskTypeDetails{ + Max: t.max, + Name: "TreeRC", + Cost: resources.Resources{ + Cpu: 1, + Gpu: 1, + Ram: 8 << 30, + Storage: t.sc.Storage(t.taskToSector, storiface.FTSealed, storiface.FTCache, ssize, storiface.PathSealing, paths.MinFreeStoragePercentage), + }, + MaxFailures: 3, + Follows: nil, + } +} + +func (t *TreeRCTask) Adder(taskFunc harmonytask.AddTaskFunc) { + t.sp.pollers[pollerTreeRC].Set(taskFunc) +} + +func (t *TreeRCTask) taskToSector(id harmonytask.TaskID) (ffi.SectorRef, error) { + var refs []ffi.SectorRef + + err := t.db.Select(context.Background(), &refs, `SELECT sp_id, sector_number, reg_seal_proof FROM sectors_sdr_pipeline WHERE task_id_tree_r = $1`, id) + if err != nil { + return ffi.SectorRef{}, xerrors.Errorf("getting sector ref: %w", err) + } + + if len(refs) != 1 { + return ffi.SectorRef{}, xerrors.Errorf("expected 1 sector ref, got %d", len(refs)) + } + + return refs[0], nil +} + +var _ harmonytask.TaskInterface = &TreeRCTask{} diff --git a/curiosrc/web/hapi/simpleinfo.go b/curiosrc/web/hapi/simpleinfo.go index 287e11233fd..11877db157e 100644 --- a/curiosrc/web/hapi/simpleinfo.go +++ b/curiosrc/web/hapi/simpleinfo.go @@ -21,6 +21,7 @@ import ( "github.com/filecoin-project/lotus/api/v1api" "github.com/filecoin-project/lotus/chain/actors/adt" + "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/lib/harmony/harmonydb" "github.com/filecoin-project/lotus/lib/must" "github.com/filecoin-project/lotus/storage/paths" @@ -310,6 +311,96 @@ func (a *app) sectorInfo(w http.ResponseWriter, r *http.Request) { } + // Pieces + type sectorPieceMeta struct { + PieceIndex int64 `db:"piece_index"` + PieceCid string `db:"piece_cid"` + PieceSize int64 `db:"piece_size"` + + DataUrl string `db:"data_url"` + DataRawSize int64 `db:"data_raw_size"` + DeleteOnFinalize bool `db:"data_delete_on_finalize"` + + F05PublishCid *string `db:"f05_publish_cid"` + F05DealID *int64 `db:"f05_deal_id"` + + DDOPam *string `db:"direct_piece_activation_manifest"` + + // display + StrPieceSize string `db:"-"` + StrDataRawSize string `db:"-"` + + // piece park + IsParkedPiece bool `db:"-"` + IsParkedPieceFound bool `db:"-"` + PieceParkID int64 `db:"-"` + PieceParkDataUrl string `db:"-"` + PieceParkCreatedAt time.Time `db:"-"` + PieceParkComplete bool `db:"-"` + PieceParkTaskID *int64 `db:"-"` + PieceParkCleanupTaskID *int64 `db:"-"` + } + var pieces []sectorPieceMeta + + err = a.db.Select(ctx, &pieces, `SELECT piece_index, piece_cid, piece_size, + data_url, data_raw_size, data_delete_on_finalize, + f05_publish_cid, f05_deal_id, direct_piece_activation_manifest FROM sectors_sdr_initial_pieces WHERE sp_id = $1 AND sector_number = $2`, spid, intid) + if err != nil { + http.Error(w, xerrors.Errorf("failed to fetch sector pieces: %w", err).Error(), http.StatusInternalServerError) + return + } + + for i := range pieces { + pieces[i].StrPieceSize = types.SizeStr(types.NewInt(uint64(pieces[i].PieceSize))) + pieces[i].StrDataRawSize = types.SizeStr(types.NewInt(uint64(pieces[i].DataRawSize))) + + id, isPiecePark := strings.CutPrefix(pieces[i].DataUrl, "pieceref:") + if !isPiecePark { + continue + } + + intID, err := strconv.ParseInt(id, 10, 64) + if err != nil { + log.Errorw("failed to parse piece park id", "id", id, "error", err) + continue + } + + var parkedPiece []struct { + // parked_piece_refs + PieceID int64 `db:"piece_id"` + DataUrl string `db:"data_url"` + + // parked_pieces + CreatedAt time.Time `db:"created_at"` + Complete bool `db:"complete"` + ParkTaskID *int64 `db:"task_id"` + CleanupTaskID *int64 `db:"cleanup_task_id"` + } + + err = a.db.Select(ctx, &parkedPiece, `SELECT ppr.piece_id, ppr.data_url, pp.created_at, pp.complete, pp.task_id, pp.cleanup_task_id FROM parked_piece_refs ppr + INNER JOIN parked_pieces pp ON pp.id = ppr.piece_id + WHERE ppr.ref_id = $1`, intID) + if err != nil { + http.Error(w, xerrors.Errorf("failed to fetch parked piece: %w", err).Error(), http.StatusInternalServerError) + return + } + + if len(parkedPiece) == 0 { + pieces[i].IsParkedPieceFound = false + continue + } + + pieces[i].IsParkedPieceFound = true + pieces[i].IsParkedPiece = true + + pieces[i].PieceParkID = parkedPiece[0].PieceID + pieces[i].PieceParkDataUrl = parkedPiece[0].DataUrl + pieces[i].PieceParkCreatedAt = parkedPiece[0].CreatedAt.Local() + pieces[i].PieceParkComplete = parkedPiece[0].Complete + pieces[i].PieceParkTaskID = parkedPiece[0].ParkTaskID + pieces[i].PieceParkCleanupTaskID = parkedPiece[0].CleanupTaskID + } + // TaskIDs taskIDs := map[int64]struct{}{} var htasks []taskSummary @@ -362,6 +453,7 @@ func (a *app) sectorInfo(w http.ResponseWriter, r *http.Request) { SectorNumber int64 PipelinePoRep sectorListEntry + Pieces []sectorPieceMeta Locations []locationTable Tasks []taskSummary }{ @@ -377,6 +469,7 @@ func (a *app) sectorInfo(w http.ResponseWriter, r *http.Request) { ChainFaulty: must.One(mbf.faulty.IsSet(uint64(task.SectorNumber))), }, + Pieces: pieces, Locations: locs, Tasks: htasks, } diff --git a/curiosrc/web/hapi/web/sector_info.gohtml b/curiosrc/web/hapi/web/sector_info.gohtml index afa96a9234a..49c6fabb35f 100644 --- a/curiosrc/web/hapi/web/sector_info.gohtml +++ b/curiosrc/web/hapi/web/sector_info.gohtml @@ -4,6 +4,54 @@
Piece Index | +Piece CID | +Piece Size | +Data URL | +Data Raw Size | +Delete On Finalize | +F05 Publish CID | +F05 Deal ID | +Direct Piece Activation Manifest | + +PiecePark ID | +PP URL | +PP Created At | +PP Complete | +PP Cleanup Task | +|||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{{.PieceIndex}} | +{{.PieceCid}} | +{{.PieceSize}} | +{{.DataUrl}} | +{{.DataRawSize}} | +{{.DeleteOnFinalize}} | +{{.F05PublishCid}} | +{{.F05DealID}} | +{{.DDOPam}} | + {{if .IsParkedPiece}} +{{.PieceParkID}} | +{{.PieceParkDataUrl}} | +{{.PieceParkCreatedAt}} | +{{.PieceParkComplete}} | +{{.PieceParkCleanupTaskID}} | + {{else}} +{{if not .IsParkedPieceFound}}ERR:RefNotFound{{end}} | ++ | + | + | + {{end}} + |