From 5861704fc5f3cc986b033a5f6493558806b9cc84 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Wed, 19 Jun 2024 16:39:29 +0200 Subject: [PATCH 01/32] F3 WIP Signed-off-by: Jakub Sztandera --- chain/lf3/ec.go | 161 ++++++++++++++++++++++++++++++++++++ chain/lf3/f3.go | 82 ++++++++++++++++++ chain/lf3/signer.go | 35 ++++++++ go.mod | 16 ++-- go.sum | 26 +++--- node/builder.go | 2 + node/builder_chain.go | 2 + node/modules/lp2p/pubsub.go | 2 + 8 files changed, 308 insertions(+), 18 deletions(-) create mode 100644 chain/lf3/ec.go create mode 100644 chain/lf3/f3.go create mode 100644 chain/lf3/signer.go diff --git a/chain/lf3/ec.go b/chain/lf3/ec.go new file mode 100644 index 00000000000..14b555fd8cb --- /dev/null +++ b/chain/lf3/ec.go @@ -0,0 +1,161 @@ +package lf3 + +import ( + "context" + "sort" + "time" + + "github.com/filecoin-project/go-address" + "github.com/filecoin-project/go-f3" + "github.com/filecoin-project/go-f3/gpbft" + "github.com/filecoin-project/go-state-types/abi" + "github.com/filecoin-project/go-state-types/big" + "github.com/filecoin-project/lotus/chain/actors/builtin/power" + "github.com/filecoin-project/lotus/chain/stmgr" + "github.com/filecoin-project/lotus/chain/store" + "github.com/filecoin-project/lotus/chain/types" + "golang.org/x/xerrors" +) + +type ecWrapper struct { + ChainStore *store.ChainStore + StateManager *stmgr.StateManager + Manifest f3.Manifest +} + +type tsWrapper struct { + inner *types.TipSet +} + +func (ts *tsWrapper) Key() gpbft.TipSetKey { + return ts.inner.Key().Bytes() +} + +func (ts *tsWrapper) Beacon() []byte { + // TOOD: verify if correct + return ts.inner.MinTicket().VRFProof +} + +func (ts *tsWrapper) Epoch() int64 { + return int64(ts.inner.Height()) +} + +func (ts *tsWrapper) Timestamp() time.Time { + return time.Unix(int64(ts.inner.Blocks()[0].Timestamp), 0) +} + +func wrapTS(ts *types.TipSet) f3.TipSet { + if ts == nil { + return nil + } + return &tsWrapper{ts} +} + +// GetTipsetByEpoch should return a tipset before the one requested if the requested +// tipset does not exist due to null epochs +func (ec *ecWrapper) GetTipsetByEpoch(ctx context.Context, epoch int64) (f3.TipSet, error) { + ts, err := ec.ChainStore.GetTipsetByHeight(ctx, abi.ChainEpoch(epoch), nil, true) + if err != nil { + return nil, xerrors.Errorf("getting tipset by height: %w", err) + } + return wrapTS(ts), nil +} + +func (ec *ecWrapper) GetTipset(ctx context.Context, tsk gpbft.TipSetKey) (f3.TipSet, error) { + tskLotus, err := types.TipSetKeyFromBytes([]byte(tsk)) + if err != nil { + return nil, xerrors.Errorf("decoding tsk: %w", err) + } + + ts, err := ec.ChainStore.GetTipSetFromKey(ctx, tskLotus) + if err != nil { + return nil, xerrors.Errorf("getting tipset by key: %w", err) + } + + return wrapTS(ts), nil +} + +func (ec *ecWrapper) GetHead(_ context.Context) (f3.TipSet, error) { + return wrapTS(ec.ChainStore.GetHeaviestTipSet()), nil +} + +func (ec *ecWrapper) GetParent(ctx context.Context, tsF3 f3.TipSet) (f3.TipSet, error) { + var ts *types.TipSet + if tsW, ok := tsF3.(*tsWrapper); ok { + ts = tsW.inner + } else { + tskLotus, err := types.TipSetKeyFromBytes([]byte(tsF3.Key())) + if err != nil { + return nil, xerrors.Errorf("decoding tsk: %w", err) + } + ts, err = ec.ChainStore.GetTipSetFromKey(ctx, tskLotus) + if err != nil { + return nil, xerrors.Errorf("getting tipset by key for get parent: %w", err) + } + } + parentTs, err := ec.ChainStore.GetTipSetFromKey(ctx, ts.Parents()) + if err != nil { + return nil, xerrors.Errorf("getting parent tipset: %w", err) + } + return wrapTS(parentTs), nil +} + +func (ec *ecWrapper) GetPowerTable(ctx context.Context, tskF3 gpbft.TipSetKey) (gpbft.PowerEntries, error) { + tskLotus, err := types.TipSetKeyFromBytes([]byte(tskF3)) + if err != nil { + return nil, xerrors.Errorf("decoding tsk: %w", err) + } + ts, err := ec.ChainStore.GetTipSetFromKey(ctx, tskLotus) + if err != nil { + return nil, xerrors.Errorf("getting tipset by key for get parent: %w", err) + } + log.Infof("collecting power table for: %d", ts.Height()) + stCid := ts.ParentState() + + sm := ec.StateManager + + powerAct, err := sm.LoadActor(ctx, power.Address, ts) + powerState, err := power.Load(ec.ChainStore.ActorStore(ctx), powerAct) + + var powerEntries gpbft.PowerEntries + err = powerState.ForEachClaim(func(miner address.Address, claim power.Claim) error { + if claim.QualityAdjPower.LessThanEqual(big.Zero()) { + return nil + } + + // TODO: optimize + ok, err := powerState.MinerNominalPowerMeetsConsensusMinimum(miner) + if err != nil { + return xerrors.Errorf("checking consensus minimums: %w", err) + } + if !ok { + return nil + } + + id, err := address.IDFromAddress(miner) + if err != nil { + return xerrors.Errorf("transforming address to ID: %w", err) + } + + pe := gpbft.PowerEntry{ + ID: gpbft.ActorID(id), + Power: claim.QualityAdjPower.Int, + } + waddr, err := stmgr.GetMinerWorkerRaw(ctx, sm, stCid, miner) + if err != nil { + return xerrors.Errorf("GetMinerWorkerRaw failed: %w", err) + } + if waddr.Protocol() != address.BLS { + return xerrors.Errorf("wrong type of worker address") + } + pe.PubKey = gpbft.PubKey(waddr.Payload()) + powerEntries = append(powerEntries, pe) + return nil + }) + if err != nil { + return nil, xerrors.Errorf("collecting the power table: %w", err) + } + + sort.Sort(powerEntries) + return powerEntries, nil +} diff --git a/chain/lf3/f3.go b/chain/lf3/f3.go new file mode 100644 index 00000000000..5876e472f05 --- /dev/null +++ b/chain/lf3/f3.go @@ -0,0 +1,82 @@ +package lf3 + +import ( + "context" + "time" + + "github.com/filecoin-project/go-f3" + "github.com/filecoin-project/go-f3/blssig" + "github.com/filecoin-project/go-f3/gpbft" + "github.com/filecoin-project/lotus/api" + "github.com/filecoin-project/lotus/build" + "github.com/filecoin-project/lotus/chain/stmgr" + "github.com/filecoin-project/lotus/chain/store" + "github.com/filecoin-project/lotus/node/modules/dtypes" + "github.com/ipfs/go-datastore" + "github.com/ipfs/go-datastore/namespace" + logging "github.com/ipfs/go-log/v2" + pubsub "github.com/libp2p/go-libp2p-pubsub" + "github.com/libp2p/go-libp2p/core/host" + "go.uber.org/fx" + "golang.org/x/xerrors" +) + +type F3 struct { + f3 *f3.F3 +} + +type F3Params struct { + fx.In + + NetworkName dtypes.NetworkName + PubSub *pubsub.PubSub + Host host.Host + ChainStore *store.ChainStore + StateManager *stmgr.StateManager + Datastore dtypes.MetadataDS + Wallet api.Wallet +} + +var log = logging.Logger("f3") + +func New(lc fx.Lifecycle, params F3Params) (*F3, error) { + logging.SetLogLevel("f3", "DEBUG") + manifest := f3.LocalnetManifest() + manifest.NetworkName = gpbft.NetworkName(params.NetworkName) + manifest.ECDelay = time.Duration(build.BlockDelaySecs) * time.Second + manifest.ECPeriod = manifest.ECDelay + manifest.BootstrapEpoch = 210 + manifest.ECFinality = 200 + ds := namespace.Wrap(params.Datastore, datastore.NewKey("/f3")) + ec := &ecWrapper{ + ChainStore: params.ChainStore, + StateManager: params.StateManager, + Manifest: manifest, + } + verif := blssig.VerifierWithKeyOnG1() + module, err := f3.New(context.TODO(), 1000 /*TODO expose signing*/, manifest, ds, + params.Host, params.PubSub, &signer{params.Wallet}, verif, ec, log) + + if err != nil { + return nil, xerrors.Errorf("creating F3: %w", err) + } + + var liftimeContext context.Context + var cancel func() + lc.Append(fx.StartStopHook( + func(ctx context.Context) { + liftimeContext, cancel = context.WithCancel(ctx) + go func() { + err := module.Run(0, liftimeContext) + if err != nil { + log.Errorf("running f3: %+v", err) + } + }() + }, func() { + cancel() + })) + + return &F3{ + f3: module, + }, nil +} diff --git a/chain/lf3/signer.go b/chain/lf3/signer.go new file mode 100644 index 00000000000..6dc3d361c1e --- /dev/null +++ b/chain/lf3/signer.go @@ -0,0 +1,35 @@ +package lf3 + +import ( + "context" + + "github.com/filecoin-project/go-address" + "github.com/filecoin-project/go-f3/gpbft" + "github.com/filecoin-project/lotus/api" + "golang.org/x/xerrors" +) + +type signer struct { + wallet api.Wallet +} + +// Signs a message with the secret key corresponding to a public key. +func (s *signer) Sign(sender gpbft.PubKey, msg []byte) ([]byte, error) { + addr, err := address.NewBLSAddress(sender) + if err != nil { + return nil, xerrors.Errorf("converting pubkey to address: %w", err) + } + sig, err := s.wallet.WalletSign(context.TODO(), addr, msg, api.MsgMeta{Type: api.MTUnknown}) + if err != nil { + return nil, xerrors.Errorf("error while signing: %w", err) + } + return sig.Data, nil +} + +// MarshalPayloadForSigning marshals the given payload into the bytes that should be signed. +// This should usually call `Payload.MarshalForSigning(NetworkName)` except when testing as +// that method is slow (computes a merkle tree that's necessary for testing). +// Implementations must be safe for concurrent use. +func (s *signer) MarshalPayloadForSigning(nn gpbft.NetworkName, p *gpbft.Payload) []byte { + return p.MarshalForSigning(nn) +} diff --git a/go.mod b/go.mod index 08d462377d7..d398be2aca2 100644 --- a/go.mod +++ b/go.mod @@ -10,9 +10,11 @@ replace github.com/filecoin-project/filecoin-ffi => ./extern/filecoin-ffi // pro replace github.com/filecoin-project/test-vectors => ./extern/test-vectors // provided via a git submodule +replace github.com/filecoin-project/go-f3 => ../go-f3 + require ( contrib.go.opencensus.io/exporter/prometheus v0.4.2 - github.com/BurntSushi/toml v1.3.0 + github.com/BurntSushi/toml v1.3.2 github.com/DataDog/zstd v1.4.5 github.com/GeertJohan/go.rice v1.0.3 github.com/Gurpartap/async v0.0.0-20180927173644-4f7f499dd9ee @@ -26,7 +28,7 @@ require ( github.com/dgraph-io/badger/v2 v2.2007.4 github.com/docker/go-units v0.5.0 github.com/drand/drand v1.5.11 - github.com/drand/kyber v1.3.0 + github.com/drand/kyber v1.3.1 github.com/dustin/go-humanize v1.0.1 github.com/elastic/go-elasticsearch/v7 v7.14.0 github.com/elastic/go-sysinfo v1.7.0 @@ -41,6 +43,7 @@ require ( github.com/filecoin-project/go-commp-utils v0.1.3 github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082a837 github.com/filecoin-project/go-crypto v0.0.1 + github.com/filecoin-project/go-f3 v0.0.0-20240619112353-e4ef2ea3078f github.com/filecoin-project/go-fil-commcid v0.1.0 github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0 github.com/filecoin-project/go-jsonrpc v0.3.2 @@ -102,7 +105,7 @@ require ( github.com/klauspost/compress v1.17.8 github.com/koalacxr/quantile v0.0.1 github.com/libp2p/go-buffer-pool v0.1.0 - github.com/libp2p/go-libp2p v0.34.1 + github.com/libp2p/go-libp2p v0.35.0 github.com/libp2p/go-libp2p-kad-dht v0.25.2 github.com/libp2p/go-libp2p-pubsub v0.11.0 github.com/libp2p/go-libp2p-record v0.2.0 @@ -130,7 +133,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 github.com/triplewz/poseidon v0.0.0-20230828015038-79d8165c88ed - github.com/urfave/cli/v2 v2.25.5 + github.com/urfave/cli/v2 v2.27.2 github.com/whyrusleeping/bencher v0.0.0-20190829221104-bb6607aa8bba github.com/whyrusleeping/cbor-gen v0.1.1 github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 @@ -163,6 +166,7 @@ require ( require ( github.com/GeertJohan/go.incremental v1.0.0 // indirect github.com/Jorropo/jsync v1.0.1 // indirect + github.com/Kubuxu/go-broadcast v0.0.0-20240212204713-7007a1e29a19 // indirect github.com/PuerkitoBio/purell v1.1.1 // indirect github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect github.com/StackExchange/wmi v1.2.1 // indirect @@ -174,7 +178,7 @@ require ( github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cilium/ebpf v0.9.1 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/crackcomm/go-gitignore v0.0.0-20231225121904-e25f5bc08668 // indirect github.com/cskr/pubsub v1.0.2 // indirect github.com/daaku/go.zipexe v1.0.2 // indirect @@ -311,7 +315,7 @@ require ( github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect github.com/zondax/hid v0.9.2 // indirect github.com/zondax/ledger-go v0.14.3 // indirect go.opentelemetry.io/otel/metric v1.26.0 // indirect diff --git a/go.sum b/go.sum index d1d53543052..190abad11f4 100644 --- a/go.sum +++ b/go.sum @@ -44,8 +44,8 @@ github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOv github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 h1:cTp8I5+VIoKjsnZuH8vjyaysT/ses3EvZeaV/1UkF2M= github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.3.0 h1:Ws8e5YmnrGEHzZEzg0YvK/7COGYtTC5PbaH9oSSbgfA= -github.com/BurntSushi/toml v1.3.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= @@ -58,6 +58,8 @@ github.com/Gurpartap/async v0.0.0-20180927173644-4f7f499dd9ee h1:8doiS7ib3zi6/K1 github.com/Gurpartap/async v0.0.0-20180927173644-4f7f499dd9ee/go.mod h1:W0GbEAA4uFNYOGG2cJpmFJ04E6SD1NLELPYZB57/7AY= github.com/Jorropo/jsync v1.0.1 h1:6HgRolFZnsdfzRUj+ImB9og1JYOxQoReSywkHOGSaUU= github.com/Jorropo/jsync v1.0.1/go.mod h1:jCOZj3vrBCri3bSU3ErUYvevKlnbssrXeCivybS5ABQ= +github.com/Kubuxu/go-broadcast v0.0.0-20240212204713-7007a1e29a19 h1:bsIcfR08tLQBbFeSkx6KLkwgfAk6JPnfbMjIqN1QxJc= +github.com/Kubuxu/go-broadcast v0.0.0-20240212204713-7007a1e29a19/go.mod h1:5LOj/fF3Oc/cvJqzDiyfx4XwtBPRWUYEz+V+b13sH5U= github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= github.com/Kubuxu/imtui v0.0.0-20210401140320-41663d68d0fa h1:1PPxEyGdIGVkX/kqMvLJ95a1dGS1Sz7tpNEgehEYYt0= github.com/Kubuxu/imtui v0.0.0-20210401140320-41663d68d0fa/go.mod h1:WUmMvh9wMtqj1Xhf1hf3kp9RvL+y6odtdYxpyZjb90U= @@ -171,8 +173,8 @@ github.com/corpix/uarand v0.1.1/go.mod h1:SFKZvkcRoLqVRFZ4u25xPmp6m9ktANfbpXZ7SJ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crackcomm/go-gitignore v0.0.0-20231225121904-e25f5bc08668 h1:ZFUue+PNxmHlu7pYv+IYMtqlaO/0VwaGEqKepZf9JpA= github.com/crackcomm/go-gitignore v0.0.0-20231225121904-e25f5bc08668/go.mod h1:p1d6YEZWvFzEh4KLyvBcVSnrfNDDvK2zfK/4x2v/4pE= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -212,8 +214,8 @@ github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4 github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/drand/drand v1.5.11 h1:7sskUTCsX2lgFiWdGvPh3/P0ZDQKi1lCtI7RQKK010k= github.com/drand/drand v1.5.11/go.mod h1:TvJjCJ/s4Usn4pKRpDC0N1QaCwSt3YC8fRqhZdpOUU0= -github.com/drand/kyber v1.3.0 h1:TVd7+xoRgKQ4Ck1viNLPFy6IWhuZM36Bq6zDXD8Asls= -github.com/drand/kyber v1.3.0/go.mod h1:f+mNHjiGT++CuueBrpeMhFNdKZAsy0tu03bKq9D5LPA= +github.com/drand/kyber v1.3.1 h1:E0p6M3II+loMVwTlAp5zu4+GGZFNiRfq02qZxzw2T+Y= +github.com/drand/kyber v1.3.1/go.mod h1:f+mNHjiGT++CuueBrpeMhFNdKZAsy0tu03bKq9D5LPA= github.com/drand/kyber-bls12381 v0.3.1 h1:KWb8l/zYTP5yrvKTgvhOrk2eNPscbMiUOIeWBnmUxGo= github.com/drand/kyber-bls12381 v0.3.1/go.mod h1:H4y9bLPu7KZA/1efDg+jtJ7emKx+ro3PU7/jWUVt140= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -820,8 +822,8 @@ github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFG github.com/libp2p/go-flow-metrics v0.1.0/go.mod h1:4Xi8MX8wj5aWNDAZttg6UPmc0ZrnFNsMtpsYUClFtro= github.com/libp2p/go-libp2p v0.1.0/go.mod h1:6D/2OBauqLUoqcADOJpn9WbKqvaM07tDw68qHM0BxUM= github.com/libp2p/go-libp2p v0.1.1/go.mod h1:I00BRo1UuUSdpuc8Q2mN7yDF/oTUTRAX6JWpTiK9Rp8= -github.com/libp2p/go-libp2p v0.34.1 h1:fxn9vyLo7vJcXQRNvdRbyPjbzuQgi2UiqC8hEbn8a18= -github.com/libp2p/go-libp2p v0.34.1/go.mod h1:snyJQix4ET6Tj+LeI0VPjjxTtdWpeOhYt5lEY0KirkQ= +github.com/libp2p/go-libp2p v0.35.0 h1:1xS1Bkr9X7GtdvV6ntLnDV9xB1kNjHK1lZ0eaO6gnhc= +github.com/libp2p/go-libp2p v0.35.0/go.mod h1:snyJQix4ET6Tj+LeI0VPjjxTtdWpeOhYt5lEY0KirkQ= github.com/libp2p/go-libp2p-asn-util v0.4.1 h1:xqL7++IKD9TBFMgnLPZR6/6iYhawHKHl950SO9L6n94= github.com/libp2p/go-libp2p-asn-util v0.4.1/go.mod h1:d/NI6XZ9qxw67b4e+NgpQexCIiFYJjErASrYW4PFDN8= github.com/libp2p/go-libp2p-autonat v0.1.0/go.mod h1:1tLf2yXxiE/oKGtDwPYWTSYG3PtvYlJmg7NeVtPRqH8= @@ -1286,8 +1288,8 @@ github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6 github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.10/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.25.5 h1:d0NIAyhh5shGscroL7ek/Ya9QYQE0KNabJgiUinIQkc= -github.com/urfave/cli/v2 v2.25.5/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc= +github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= +github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.0.1 h1:tY9CJiPnMXf1ERmG2EyK7gNUd+c6RKGD0IfU8WdUSz8= @@ -1347,8 +1349,8 @@ github.com/xorcare/golden v0.6.0/go.mod h1:7T39/ZMvaSEZlBPoYfVFmsBLmUl3uz9IuzWj/ github.com/xorcare/golden v0.6.1-0.20191112154924-b87f686d7542 h1:oWgZJmC1DorFZDpfMfWg7xk29yEOZiXmo/wZl+utTI8= github.com/xorcare/golden v0.6.1-0.20191112154924-b87f686d7542/go.mod h1:7T39/ZMvaSEZlBPoYfVFmsBLmUl3uz9IuzWj/U6FtvQ= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 h1:+qGGcbkzsfDQNPPe9UDgpxAWQrhbbBXOYJFQDq/dtJw= +github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913/go.mod h1:4aEEwZQutDLsQv2Deui4iYQ6DWTxR14g6m8Wv88+Xqk= github.com/yugabyte/pgx/v5 v5.5.3-yb-2 h1:SDk2waZb2o6dSLYqk+vq0Ur2jnIv+X2A+P+QPR1UThU= github.com/yugabyte/pgx/v5 v5.5.3-yb-2/go.mod h1:2SxizGfDY7UDCRTtbI/xd98C/oGN7S/3YoGF8l9gx/c= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= diff --git a/node/builder.go b/node/builder.go index 2ea9dcac55c..dfff37d766a 100644 --- a/node/builder.go +++ b/node/builder.go @@ -128,6 +128,8 @@ const ( StoreEventsKey + F3Key + _nInvokes // keep this last ) diff --git a/node/builder_chain.go b/node/builder_chain.go index b273a168cc1..12cc1ea3ca0 100644 --- a/node/builder_chain.go +++ b/node/builder_chain.go @@ -17,6 +17,7 @@ import ( "github.com/filecoin-project/lotus/chain/exchange" "github.com/filecoin-project/lotus/chain/gen/slashfilter" "github.com/filecoin-project/lotus/chain/index" + "github.com/filecoin-project/lotus/chain/lf3" "github.com/filecoin-project/lotus/chain/market" "github.com/filecoin-project/lotus/chain/messagepool" "github.com/filecoin-project/lotus/chain/messagesigner" @@ -148,6 +149,7 @@ var ChainNode = Options( Override(RunPeerMgrKey, modules.RunPeerMgr), Override(HandleIncomingMessagesKey, modules.HandleIncomingMessages), Override(HandleIncomingBlocksKey, modules.HandleIncomingBlocks), + Override(F3Key, lf3.New), ), ) diff --git a/node/modules/lp2p/pubsub.go b/node/modules/lp2p/pubsub.go index 408ab17a63e..f540a642428 100644 --- a/node/modules/lp2p/pubsub.go +++ b/node/modules/lp2p/pubsub.go @@ -16,6 +16,7 @@ import ( "go.uber.org/fx" "golang.org/x/xerrors" + "github.com/filecoin-project/go-f3/gpbft" "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/metrics" "github.com/filecoin-project/lotus/node/config" @@ -377,6 +378,7 @@ func GossipSub(in GossipIn) (service *pubsub.PubSub, err error) { build.BlocksTopic(in.Nn), build.MessagesTopic(in.Nn), build.IndexerIngestTopic(in.Nn), + gpbft.NetworkName(in.Nn).PubSubTopic(), } allowTopics = append(allowTopics, drandTopics...) options = append(options, From 3c2f783fe8063f1356f7c5be720d3e2f4de65239 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Sat, 22 Jun 2024 04:41:06 +0200 Subject: [PATCH 02/32] Expose F3Participate API, general cleanup Signed-off-by: Jakub Sztandera --- api/api_full.go | 6 + api/mocks/mock_full.go | 14 + api/proxy_gen.go | 13 + build/openrpc/full.json | 478 +++++++++++--------- build/openrpc/gateway.json | 198 ++++---- build/openrpc/miner.json | 176 +++---- build/openrpc/worker.json | 74 +-- chain/lf3/ec.go | 24 +- chain/lf3/f3.go | 80 +++- chain/lf3/signer.go | 4 +- documentation/en/api-v1-unstable-methods.md | 22 + go.mod | 2 +- go.sum | 4 +- node/builder.go | 3 +- node/builder_chain.go | 4 +- node/builder_miner.go | 1 + node/impl/full.go | 2 + node/modules/lp2p/pubsub.go | 1 + node/modules/storageminer.go | 12 + 19 files changed, 647 insertions(+), 471 deletions(-) diff --git a/api/api_full.go b/api/api_full.go index 5d2f6d4176e..eed0e1fdc9f 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -859,6 +859,12 @@ type FullNode interface { // Note: this API is only available via websocket connections. // This is an EXPERIMENTAL API and may be subject to change. SubscribeActorEventsRaw(ctx context.Context, filter *types.ActorEventFilter) (<-chan *types.ActorEvent, error) //perm:read + + // F3Participate should be called by a miner node to particpate in signing F3 consensus. + // The address should be of type ID + // This API call won't exit until the caller terminates it. + // It is recommended to call this API through websocket connection. + F3Participate(ctx context.Context, minerID address.Address) error //perm:admin } // reverse interface to the client, called after EthSubscribe diff --git a/api/mocks/mock_full.go b/api/mocks/mock_full.go index b15eea34111..17eff12980b 100644 --- a/api/mocks/mock_full.go +++ b/api/mocks/mock_full.go @@ -1152,6 +1152,20 @@ func (mr *MockFullNodeMockRecorder) EthUnsubscribe(arg0, arg1 interface{}) *gomo return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthUnsubscribe", reflect.TypeOf((*MockFullNode)(nil).EthUnsubscribe), arg0, arg1) } +// F3Participate mocks base method. +func (m *MockFullNode) F3Participate(arg0 context.Context, arg1 address.Address) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "F3Participate", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// F3Participate indicates an expected call of F3Participate. +func (mr *MockFullNodeMockRecorder) F3Participate(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "F3Participate", reflect.TypeOf((*MockFullNode)(nil).F3Participate), arg0, arg1) +} + // FilecoinAddressToEthAddress mocks base method. func (m *MockFullNode) FilecoinAddressToEthAddress(arg0 context.Context, arg1 address.Address) (ethtypes.EthAddress, error) { m.ctrl.T.Helper() diff --git a/api/proxy_gen.go b/api/proxy_gen.go index 1881a6f9dac..70e0a7bc2be 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -249,6 +249,8 @@ type FullNodeMethods struct { EthUnsubscribe func(p0 context.Context, p1 ethtypes.EthSubscriptionID) (bool, error) `perm:"read"` + F3Participate func(p0 context.Context, p1 address.Address) error `perm:"admin"` + FilecoinAddressToEthAddress func(p0 context.Context, p1 address.Address) (ethtypes.EthAddress, error) `perm:"read"` GasEstimateFeeCap func(p0 context.Context, p1 *types.Message, p2 int64, p3 types.TipSetKey) (types.BigInt, error) `perm:"read"` @@ -2063,6 +2065,17 @@ func (s *FullNodeStub) EthUnsubscribe(p0 context.Context, p1 ethtypes.EthSubscri return false, ErrNotSupported } +func (s *FullNodeStruct) F3Participate(p0 context.Context, p1 address.Address) error { + if s.Internal.F3Participate == nil { + return ErrNotSupported + } + return s.Internal.F3Participate(p0, p1) +} + +func (s *FullNodeStub) F3Participate(p0 context.Context, p1 address.Address) error { + return ErrNotSupported +} + func (s *FullNodeStruct) FilecoinAddressToEthAddress(p0 context.Context, p1 address.Address) (ethtypes.EthAddress, error) { if s.Internal.FilecoinAddressToEthAddress == nil { return *new(ethtypes.EthAddress), ErrNotSupported diff --git a/build/openrpc/full.json b/build/openrpc/full.json index e5dd67d09cc..d483d269072 100644 --- a/build/openrpc/full.json +++ b/build/openrpc/full.json @@ -37,7 +37,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1307" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1309" } }, { @@ -60,7 +60,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1318" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1320" } }, { @@ -103,7 +103,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1329" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1331" } }, { @@ -214,7 +214,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1351" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1353" } }, { @@ -454,7 +454,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1362" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1364" } }, { @@ -685,7 +685,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1373" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1375" } }, { @@ -784,7 +784,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1384" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1386" } }, { @@ -816,7 +816,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1395" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1397" } }, { @@ -922,7 +922,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1406" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1408" } }, { @@ -1019,7 +1019,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1417" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1419" } }, { @@ -1078,7 +1078,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1428" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1430" } }, { @@ -1171,7 +1171,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1439" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1441" } }, { @@ -1255,7 +1255,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1450" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1452" } }, { @@ -1355,7 +1355,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1461" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1463" } }, { @@ -1411,7 +1411,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1472" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1474" } }, { @@ -1484,7 +1484,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1483" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1485" } }, { @@ -1557,7 +1557,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1494" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1496" } }, { @@ -1604,7 +1604,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1505" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1507" } }, { @@ -1636,7 +1636,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1516" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1518" } }, { @@ -1691,7 +1691,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1527" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1529" } }, { @@ -1743,7 +1743,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1549" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1551" } }, { @@ -1780,7 +1780,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1560" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1562" } }, { @@ -1827,7 +1827,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1571" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1573" } }, { @@ -1874,7 +1874,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1582" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1584" } }, { @@ -1954,7 +1954,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1593" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1595" } }, { @@ -2006,7 +2006,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1604" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1606" } }, { @@ -2045,7 +2045,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1615" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1617" } }, { @@ -2092,7 +2092,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1626" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1628" } }, { @@ -2147,7 +2147,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1637" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1639" } }, { @@ -2176,7 +2176,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1648" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1650" } }, { @@ -2313,7 +2313,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1659" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1661" } }, { @@ -2342,7 +2342,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1670" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1672" } }, { @@ -2396,7 +2396,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1681" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1683" } }, { @@ -2487,7 +2487,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1692" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1694" } }, { @@ -2515,7 +2515,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1703" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1705" } }, { @@ -2605,7 +2605,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1714" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1716" } }, { @@ -2861,7 +2861,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1725" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1727" } }, { @@ -3106,7 +3106,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1736" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1738" } }, { @@ -3162,7 +3162,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1747" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1749" } }, { @@ -3209,7 +3209,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1758" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1760" } }, { @@ -3307,7 +3307,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1769" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1771" } }, { @@ -3373,7 +3373,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1780" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1782" } }, { @@ -3439,7 +3439,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1791" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1793" } }, { @@ -3548,7 +3548,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1802" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1804" } }, { @@ -3606,7 +3606,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1813" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1815" } }, { @@ -3728,7 +3728,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1824" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1826" } }, { @@ -3937,7 +3937,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1835" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1837" } }, { @@ -4137,7 +4137,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1846" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1848" } }, { @@ -4329,7 +4329,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1857" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1859" } }, { @@ -4538,7 +4538,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1868" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1870" } }, { @@ -4629,7 +4629,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1879" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1881" } }, { @@ -4687,7 +4687,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1890" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1892" } }, { @@ -4945,7 +4945,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1901" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1903" } }, { @@ -5220,7 +5220,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1912" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1914" } }, { @@ -5248,7 +5248,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1923" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1925" } }, { @@ -5286,7 +5286,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1934" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1936" } }, { @@ -5394,7 +5394,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1945" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1947" } }, { @@ -5432,7 +5432,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1956" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1958" } }, { @@ -5461,7 +5461,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1967" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1969" } }, { @@ -5524,7 +5524,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1978" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1980" } }, { @@ -5587,7 +5587,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1989" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1991" } }, { @@ -5632,7 +5632,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2000" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2002" } }, { @@ -5754,7 +5754,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2011" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2013" } }, { @@ -5909,7 +5909,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2022" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2024" } }, { @@ -6031,7 +6031,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2033" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2035" } }, { @@ -6085,7 +6085,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2044" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2046" } }, { @@ -6139,7 +6139,47 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2055" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2057" + } + }, + { + "name": "Filecoin.F3Participate", + "description": "```go\nfunc (s *FullNodeStruct) F3Participate(p0 context.Context, p1 address.Address) error {\n\tif s.Internal.F3Participate == nil {\n\t\treturn ErrNotSupported\n\t}\n\treturn s.Internal.F3Participate(p0, p1)\n}\n```", + "summary": "F3Participate should be called by a miner node to particpate in signing F3 consensus.\nThe address should be of type ID\nThis API call won't exit until the caller terminates it.\n", + "paramStructure": "by-position", + "params": [ + { + "name": "p1", + "description": "address.Address", + "summary": "", + "schema": { + "examples": [ + "f01234" + ], + "additionalProperties": false, + "type": [ + "object" + ] + }, + "required": true, + "deprecated": false + } + ], + "result": { + "name": "Null", + "description": "Null", + "schema": { + "type": [ + "null" + ] + }, + "required": true, + "deprecated": false + }, + "deprecated": false, + "externalDocs": { + "description": "Github remote link", + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2068" } }, { @@ -6194,7 +6234,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2066" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2079" } }, { @@ -6337,7 +6377,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2077" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2090" } }, { @@ -6464,7 +6504,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2088" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2101" } }, { @@ -6566,7 +6606,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2099" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2112" } }, { @@ -6789,7 +6829,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2110" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2123" } }, { @@ -6972,7 +7012,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2121" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2134" } }, { @@ -7052,7 +7092,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2132" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2145" } }, { @@ -7097,7 +7137,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2143" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2156" } }, { @@ -7153,7 +7193,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2154" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2167" } }, { @@ -7233,7 +7273,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2165" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2178" } }, { @@ -7313,7 +7353,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2176" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2189" } }, { @@ -7798,7 +7838,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2187" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2200" } }, { @@ -7992,7 +8032,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2198" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2211" } }, { @@ -8147,7 +8187,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2209" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2222" } }, { @@ -8396,7 +8436,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2220" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2233" } }, { @@ -8551,7 +8591,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2231" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2244" } }, { @@ -8728,7 +8768,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2242" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2255" } }, { @@ -8826,7 +8866,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2253" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2266" } }, { @@ -8991,7 +9031,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2264" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2277" } }, { @@ -9030,7 +9070,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2275" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2288" } }, { @@ -9095,7 +9135,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2286" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2299" } }, { @@ -9141,7 +9181,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2297" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2310" } }, { @@ -9291,7 +9331,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2308" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2321" } }, { @@ -9428,7 +9468,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2319" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2332" } }, { @@ -9659,7 +9699,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2330" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2343" } }, { @@ -9796,7 +9836,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2341" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2354" } }, { @@ -9961,7 +10001,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2352" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2365" } }, { @@ -10038,7 +10078,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2363" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2376" } }, { @@ -10233,7 +10273,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2385" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2398" } }, { @@ -10412,7 +10452,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2396" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2409" } }, { @@ -10574,7 +10614,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2407" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2420" } }, { @@ -10722,7 +10762,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2418" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2431" } }, { @@ -10950,7 +10990,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2429" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2442" } }, { @@ -11098,7 +11138,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2440" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2453" } }, { @@ -11310,7 +11350,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2451" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2464" } }, { @@ -11516,7 +11556,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2462" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2475" } }, { @@ -11584,7 +11624,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2473" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2486" } }, { @@ -11701,7 +11741,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2484" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2497" } }, { @@ -11792,7 +11832,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2495" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2508" } }, { @@ -11878,7 +11918,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2506" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2519" } }, { @@ -12073,7 +12113,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2517" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2530" } }, { @@ -12235,7 +12275,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2528" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2541" } }, { @@ -12431,7 +12471,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2539" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2552" } }, { @@ -12611,7 +12651,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2550" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2563" } }, { @@ -12774,7 +12814,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2561" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2574" } }, { @@ -12801,7 +12841,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2572" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2585" } }, { @@ -12828,7 +12868,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2583" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2596" } }, { @@ -12927,7 +12967,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2594" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2607" } }, { @@ -12973,7 +13013,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2605" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2618" } }, { @@ -13073,7 +13113,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2616" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2629" } }, { @@ -13189,7 +13229,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2627" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2640" } }, { @@ -13237,7 +13277,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2638" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2651" } }, { @@ -13329,7 +13369,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2649" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2662" } }, { @@ -13444,7 +13484,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2660" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2673" } }, { @@ -13492,7 +13532,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2671" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2684" } }, { @@ -13529,7 +13569,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2682" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2695" } }, { @@ -13801,7 +13841,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2693" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2706" } }, { @@ -13849,7 +13889,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2704" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2717" } }, { @@ -13907,7 +13947,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2715" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2728" } }, { @@ -14112,7 +14152,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2726" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2739" } }, { @@ -14315,7 +14355,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2737" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2750" } }, { @@ -14484,7 +14524,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2748" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2761" } }, { @@ -14688,7 +14728,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2759" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2772" } }, { @@ -14855,7 +14895,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2770" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2783" } }, { @@ -15062,7 +15102,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2781" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2794" } }, { @@ -15130,7 +15170,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2792" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2805" } }, { @@ -15182,7 +15222,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2803" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2816" } }, { @@ -15231,7 +15271,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2814" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2827" } }, { @@ -15322,7 +15362,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2825" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2838" } }, { @@ -15828,7 +15868,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2836" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2849" } }, { @@ -15934,7 +15974,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2847" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2860" } }, { @@ -15986,7 +16026,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2858" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2871" } }, { @@ -16538,7 +16578,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2869" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2882" } }, { @@ -16652,7 +16692,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2880" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2893" } }, { @@ -16749,7 +16789,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2891" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2904" } }, { @@ -16849,7 +16889,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2902" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2915" } }, { @@ -16937,7 +16977,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2913" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2926" } }, { @@ -17037,7 +17077,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2924" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2937" } }, { @@ -17124,7 +17164,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2935" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2948" } }, { @@ -17215,7 +17255,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2946" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2959" } }, { @@ -17340,7 +17380,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2957" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2970" } }, { @@ -17449,7 +17489,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2968" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2981" } }, { @@ -17519,7 +17559,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2979" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2992" } }, { @@ -17622,7 +17662,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2990" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3003" } }, { @@ -17683,7 +17723,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3001" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3014" } }, { @@ -17813,7 +17853,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3012" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3025" } }, { @@ -17920,7 +17960,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3023" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3036" } }, { @@ -18134,7 +18174,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3034" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3047" } }, { @@ -18211,7 +18251,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3045" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3058" } }, { @@ -18288,7 +18328,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3056" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3069" } }, { @@ -18397,7 +18437,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3067" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3080" } }, { @@ -18506,7 +18546,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3078" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3091" } }, { @@ -18567,7 +18607,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3089" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3102" } }, { @@ -18677,7 +18717,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3100" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3113" } }, { @@ -18738,7 +18778,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3111" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3124" } }, { @@ -18806,7 +18846,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3122" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3135" } }, { @@ -18874,7 +18914,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3133" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3146" } }, { @@ -18955,7 +18995,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3144" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3157" } }, { @@ -19109,7 +19149,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3155" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3168" } }, { @@ -19181,7 +19221,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3166" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3179" } }, { @@ -19345,7 +19385,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3177" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3190" } }, { @@ -19510,7 +19550,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3188" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3201" } }, { @@ -19580,7 +19620,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3199" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3212" } }, { @@ -19648,7 +19688,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3210" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3223" } }, { @@ -19741,7 +19781,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3221" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3234" } }, { @@ -19812,7 +19852,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3232" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3245" } }, { @@ -20013,7 +20053,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3243" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3256" } }, { @@ -20145,7 +20185,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3254" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3267" } }, { @@ -20282,7 +20322,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3265" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3278" } }, { @@ -20393,7 +20433,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3276" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3289" } }, { @@ -20525,7 +20565,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3287" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3300" } }, { @@ -20656,7 +20696,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3298" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3311" } }, { @@ -20727,7 +20767,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3309" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3322" } }, { @@ -20811,7 +20851,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3320" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3333" } }, { @@ -20897,7 +20937,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3331" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3344" } }, { @@ -21080,7 +21120,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3342" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3355" } }, { @@ -21107,7 +21147,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3353" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3366" } }, { @@ -21160,7 +21200,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3364" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3377" } }, { @@ -21248,7 +21288,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3375" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3388" } }, { @@ -21699,7 +21739,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3386" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3399" } }, { @@ -21866,7 +21906,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3397" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3410" } }, { @@ -21964,7 +22004,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3408" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3421" } }, { @@ -22137,7 +22177,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3419" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3432" } }, { @@ -22235,7 +22275,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3430" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3443" } }, { @@ -22386,7 +22426,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3441" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3454" } }, { @@ -22471,7 +22511,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3452" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3465" } }, { @@ -22539,7 +22579,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3463" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3476" } }, { @@ -22591,7 +22631,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3474" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3487" } }, { @@ -22659,7 +22699,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3485" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3498" } }, { @@ -22820,7 +22860,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3496" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3509" } }, { @@ -22867,7 +22907,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3518" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3531" } }, { @@ -22914,7 +22954,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3529" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3542" } }, { @@ -22957,7 +22997,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3551" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3564" } }, { @@ -23053,7 +23093,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3562" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3575" } }, { @@ -23319,7 +23359,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3573" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3586" } }, { @@ -23342,7 +23382,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3584" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3597" } }, { @@ -23385,7 +23425,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3595" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3608" } }, { @@ -23436,7 +23476,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3606" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3619" } }, { @@ -23481,7 +23521,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3617" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3630" } }, { @@ -23509,7 +23549,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3628" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3641" } }, { @@ -23549,7 +23589,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3639" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3652" } }, { @@ -23608,7 +23648,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3650" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3663" } }, { @@ -23652,7 +23692,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3661" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3674" } }, { @@ -23711,7 +23751,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3672" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3685" } }, { @@ -23748,7 +23788,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3683" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3696" } }, { @@ -23792,7 +23832,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3694" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3707" } }, { @@ -23832,7 +23872,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3705" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3718" } }, { @@ -23907,7 +23947,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3716" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3729" } }, { @@ -24115,7 +24155,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3727" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3740" } }, { @@ -24159,7 +24199,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3738" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3751" } }, { @@ -24249,7 +24289,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3749" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3762" } }, { @@ -24276,7 +24316,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3760" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3773" } } ] diff --git a/build/openrpc/gateway.json b/build/openrpc/gateway.json index da9cc2d57ec..5da902b4a4b 100644 --- a/build/openrpc/gateway.json +++ b/build/openrpc/gateway.json @@ -242,7 +242,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3771" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3784" } }, { @@ -473,7 +473,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3782" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3795" } }, { @@ -572,7 +572,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3793" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3806" } }, { @@ -604,7 +604,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3804" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3817" } }, { @@ -710,7 +710,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3815" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3828" } }, { @@ -803,7 +803,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3826" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3839" } }, { @@ -887,7 +887,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3837" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3850" } }, { @@ -987,7 +987,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3848" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3861" } }, { @@ -1043,7 +1043,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3859" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3872" } }, { @@ -1116,7 +1116,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3870" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3883" } }, { @@ -1189,7 +1189,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3881" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3894" } }, { @@ -1236,7 +1236,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3892" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3905" } }, { @@ -1268,7 +1268,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3903" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3916" } }, { @@ -1305,7 +1305,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3925" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3938" } }, { @@ -1352,7 +1352,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3936" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3949" } }, { @@ -1392,7 +1392,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3947" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3960" } }, { @@ -1439,7 +1439,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3958" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3971" } }, { @@ -1494,7 +1494,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3969" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3982" } }, { @@ -1523,7 +1523,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3980" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3993" } }, { @@ -1660,7 +1660,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3991" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4004" } }, { @@ -1689,7 +1689,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4002" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4015" } }, { @@ -1743,7 +1743,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4013" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4026" } }, { @@ -1834,7 +1834,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4024" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4037" } }, { @@ -1862,7 +1862,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4035" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4048" } }, { @@ -1952,7 +1952,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4046" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4059" } }, { @@ -2208,7 +2208,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4057" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4070" } }, { @@ -2453,7 +2453,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4068" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4081" } }, { @@ -2509,7 +2509,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4079" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4092" } }, { @@ -2556,7 +2556,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4090" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4103" } }, { @@ -2654,7 +2654,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4101" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4114" } }, { @@ -2720,7 +2720,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4112" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4125" } }, { @@ -2786,7 +2786,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4123" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4136" } }, { @@ -2895,7 +2895,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4134" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4147" } }, { @@ -2953,7 +2953,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4145" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4158" } }, { @@ -3075,7 +3075,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4156" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4169" } }, { @@ -3267,7 +3267,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4167" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4180" } }, { @@ -3476,7 +3476,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4178" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4191" } }, { @@ -3567,7 +3567,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4189" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4202" } }, { @@ -3625,7 +3625,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4200" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4213" } }, { @@ -3883,7 +3883,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4211" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4224" } }, { @@ -4158,7 +4158,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4222" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4235" } }, { @@ -4186,7 +4186,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4233" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4246" } }, { @@ -4224,7 +4224,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4244" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4257" } }, { @@ -4332,7 +4332,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4255" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4268" } }, { @@ -4370,7 +4370,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4266" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4279" } }, { @@ -4399,7 +4399,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4277" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4290" } }, { @@ -4462,7 +4462,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4288" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4301" } }, { @@ -4525,7 +4525,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4299" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4312" } }, { @@ -4570,7 +4570,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4310" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4323" } }, { @@ -4692,7 +4692,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4321" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4334" } }, { @@ -4847,7 +4847,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4332" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4345" } }, { @@ -4969,7 +4969,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4343" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4356" } }, { @@ -5023,7 +5023,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4354" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4367" } }, { @@ -5077,7 +5077,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4365" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4378" } }, { @@ -5132,7 +5132,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4376" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4389" } }, { @@ -5234,7 +5234,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4387" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4400" } }, { @@ -5457,7 +5457,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4398" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4411" } }, { @@ -5640,7 +5640,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4409" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4422" } }, { @@ -5834,7 +5834,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4420" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4433" } }, { @@ -5880,7 +5880,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4431" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4444" } }, { @@ -6030,7 +6030,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4442" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4455" } }, { @@ -6167,7 +6167,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4453" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4466" } }, { @@ -6235,7 +6235,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4464" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4477" } }, { @@ -6352,7 +6352,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4475" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4488" } }, { @@ -6443,7 +6443,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4486" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4499" } }, { @@ -6529,7 +6529,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4497" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4510" } }, { @@ -6556,7 +6556,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4508" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4521" } }, { @@ -6583,7 +6583,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4519" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4532" } }, { @@ -6651,7 +6651,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4530" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4543" } }, { @@ -7157,7 +7157,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4541" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4554" } }, { @@ -7254,7 +7254,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4552" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4565" } }, { @@ -7354,7 +7354,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4563" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4576" } }, { @@ -7454,7 +7454,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4574" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4587" } }, { @@ -7579,7 +7579,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4585" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4598" } }, { @@ -7688,7 +7688,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4596" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4609" } }, { @@ -7791,7 +7791,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4607" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4620" } }, { @@ -7921,7 +7921,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4618" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4631" } }, { @@ -8028,7 +8028,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4629" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4642" } }, { @@ -8089,7 +8089,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4640" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4653" } }, { @@ -8157,7 +8157,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4651" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4664" } }, { @@ -8238,7 +8238,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4662" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4675" } }, { @@ -8402,7 +8402,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4673" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4686" } }, { @@ -8495,7 +8495,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4684" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4697" } }, { @@ -8696,7 +8696,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4695" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4708" } }, { @@ -8807,7 +8807,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4706" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4719" } }, { @@ -8938,7 +8938,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4717" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4730" } }, { @@ -9024,7 +9024,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4728" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4741" } }, { @@ -9051,7 +9051,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4739" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4752" } }, { @@ -9104,7 +9104,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4750" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4763" } }, { @@ -9192,7 +9192,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4761" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4774" } }, { @@ -9643,7 +9643,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4772" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4785" } }, { @@ -9810,7 +9810,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4783" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4796" } }, { @@ -9983,7 +9983,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4794" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4807" } }, { @@ -10051,7 +10051,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4805" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4818" } }, { @@ -10119,7 +10119,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4816" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4829" } }, { @@ -10280,7 +10280,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4827" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4840" } }, { @@ -10325,7 +10325,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4849" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4862" } }, { @@ -10370,7 +10370,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4860" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4873" } }, { @@ -10397,7 +10397,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4871" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4884" } } ] diff --git a/build/openrpc/miner.json b/build/openrpc/miner.json index 31cb403d560..6ecde3499eb 100644 --- a/build/openrpc/miner.json +++ b/build/openrpc/miner.json @@ -30,7 +30,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5157" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5170" } }, { @@ -109,7 +109,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5168" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5181" } }, { @@ -155,7 +155,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5179" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5192" } }, { @@ -203,7 +203,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5190" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5203" } }, { @@ -251,7 +251,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5201" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5214" } }, { @@ -354,7 +354,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5212" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5225" } }, { @@ -428,7 +428,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5223" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5236" } }, { @@ -591,7 +591,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5234" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5247" } }, { @@ -742,7 +742,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5245" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5258" } }, { @@ -781,7 +781,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5256" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5269" } }, { @@ -913,7 +913,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5267" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5280" } }, { @@ -945,7 +945,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5278" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5291" } }, { @@ -986,7 +986,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5289" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5302" } }, { @@ -1054,7 +1054,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5300" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5313" } }, { @@ -1185,7 +1185,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5311" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5324" } }, { @@ -1316,7 +1316,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5322" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5335" } }, { @@ -1416,7 +1416,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5333" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5346" } }, { @@ -1516,7 +1516,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5344" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5357" } }, { @@ -1616,7 +1616,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5355" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5368" } }, { @@ -1716,7 +1716,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5366" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5379" } }, { @@ -1816,7 +1816,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5377" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5390" } }, { @@ -1916,7 +1916,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5388" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5401" } }, { @@ -2040,7 +2040,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5399" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5412" } }, { @@ -2164,7 +2164,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5410" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5423" } }, { @@ -2279,7 +2279,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5421" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5434" } }, { @@ -2379,7 +2379,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5432" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5445" } }, { @@ -2512,7 +2512,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5443" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5456" } }, { @@ -2636,7 +2636,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5454" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5467" } }, { @@ -2760,7 +2760,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5465" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5478" } }, { @@ -2884,7 +2884,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5476" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5489" } }, { @@ -3017,7 +3017,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5487" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5500" } }, { @@ -3117,7 +3117,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5498" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5511" } }, { @@ -3157,7 +3157,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5509" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5522" } }, { @@ -3229,7 +3229,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5520" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5533" } }, { @@ -3279,7 +3279,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5531" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5544" } }, { @@ -3323,7 +3323,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5542" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5555" } }, { @@ -3364,7 +3364,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5553" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5566" } }, { @@ -3608,7 +3608,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5564" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5577" } }, { @@ -3682,7 +3682,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5575" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5588" } }, { @@ -3732,7 +3732,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5586" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5599" } }, { @@ -3761,7 +3761,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5597" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5610" } }, { @@ -3790,7 +3790,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5608" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5621" } }, { @@ -3846,7 +3846,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5619" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5632" } }, { @@ -3869,7 +3869,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5630" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5643" } }, { @@ -3929,7 +3929,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5641" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5654" } }, { @@ -3968,7 +3968,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5652" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5665" } }, { @@ -4008,7 +4008,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5663" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5676" } }, { @@ -4081,7 +4081,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5674" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5687" } }, { @@ -4145,7 +4145,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5685" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5698" } }, { @@ -4208,7 +4208,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5696" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5709" } }, { @@ -4258,7 +4258,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5707" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5720" } }, { @@ -4817,7 +4817,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5718" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5731" } }, { @@ -4858,7 +4858,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5729" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5742" } }, { @@ -4899,7 +4899,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5740" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5753" } }, { @@ -4940,7 +4940,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5751" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5764" } }, { @@ -4981,7 +4981,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5762" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5775" } }, { @@ -5022,7 +5022,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5773" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5786" } }, { @@ -5053,7 +5053,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5784" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5797" } }, { @@ -5103,7 +5103,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5795" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5808" } }, { @@ -5144,7 +5144,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5806" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5819" } }, { @@ -5183,7 +5183,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5817" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5830" } }, { @@ -5247,7 +5247,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5828" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5841" } }, { @@ -5305,7 +5305,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5839" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5852" } }, { @@ -5752,7 +5752,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5850" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5863" } }, { @@ -5788,7 +5788,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5861" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5874" } }, { @@ -5931,7 +5931,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5872" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5885" } }, { @@ -5987,7 +5987,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5883" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5896" } }, { @@ -6026,7 +6026,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5894" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5907" } }, { @@ -6203,7 +6203,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5905" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5918" } }, { @@ -6255,7 +6255,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5916" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5929" } }, { @@ -6447,7 +6447,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5927" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5940" } }, { @@ -6547,7 +6547,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5938" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5951" } }, { @@ -6601,7 +6601,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5949" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5962" } }, { @@ -6640,7 +6640,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5960" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5973" } }, { @@ -6725,7 +6725,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5971" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5984" } }, { @@ -6919,7 +6919,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5982" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5995" } }, { @@ -7017,7 +7017,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5993" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6006" } }, { @@ -7149,7 +7149,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6004" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6017" } }, { @@ -7203,7 +7203,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6015" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6028" } }, { @@ -7237,7 +7237,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6026" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6039" } }, { @@ -7324,7 +7324,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6037" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6050" } }, { @@ -7378,7 +7378,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6048" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6061" } }, { @@ -7478,7 +7478,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6059" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6072" } }, { @@ -7555,7 +7555,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6070" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6083" } }, { @@ -7646,7 +7646,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6081" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6094" } }, { @@ -7685,7 +7685,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6092" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6105" } }, { @@ -7801,7 +7801,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6103" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6116" } }, { @@ -9901,7 +9901,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6114" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6127" } } ] diff --git a/build/openrpc/worker.json b/build/openrpc/worker.json index 9f0bc1cccbf..ff31977551e 100644 --- a/build/openrpc/worker.json +++ b/build/openrpc/worker.json @@ -161,7 +161,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6202" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6215" } }, { @@ -252,7 +252,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6213" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6226" } }, { @@ -420,7 +420,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6224" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6237" } }, { @@ -447,7 +447,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6235" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6248" } }, { @@ -597,7 +597,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6246" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6259" } }, { @@ -700,7 +700,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6257" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6270" } }, { @@ -803,7 +803,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6268" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6281" } }, { @@ -925,7 +925,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6279" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6292" } }, { @@ -1135,7 +1135,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6290" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6303" } }, { @@ -1306,7 +1306,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6301" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6314" } }, { @@ -3350,7 +3350,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6312" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6325" } }, { @@ -3470,7 +3470,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6323" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6336" } }, { @@ -3531,7 +3531,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6334" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6347" } }, { @@ -3569,7 +3569,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6345" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6358" } }, { @@ -3729,7 +3729,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6356" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6369" } }, { @@ -3913,7 +3913,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6367" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6380" } }, { @@ -4054,7 +4054,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6378" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6391" } }, { @@ -4107,7 +4107,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6389" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6402" } }, { @@ -4250,7 +4250,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6400" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6413" } }, { @@ -4474,7 +4474,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6411" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6424" } }, { @@ -4601,7 +4601,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6422" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6435" } }, { @@ -4768,7 +4768,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6433" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6446" } }, { @@ -4895,7 +4895,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6444" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6457" } }, { @@ -4933,7 +4933,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6455" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6468" } }, { @@ -4972,7 +4972,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6466" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6479" } }, { @@ -4995,7 +4995,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6477" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6490" } }, { @@ -5034,7 +5034,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6488" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6501" } }, { @@ -5057,7 +5057,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6499" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6512" } }, { @@ -5096,7 +5096,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6510" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6523" } }, { @@ -5130,7 +5130,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6521" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6534" } }, { @@ -5184,7 +5184,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6532" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6545" } }, { @@ -5223,7 +5223,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6543" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6556" } }, { @@ -5262,7 +5262,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6554" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6567" } }, { @@ -5297,7 +5297,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6565" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6578" } }, { @@ -5477,7 +5477,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6576" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6589" } }, { @@ -5506,7 +5506,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6587" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6600" } }, { @@ -5529,7 +5529,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6598" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6611" } } ] diff --git a/chain/lf3/ec.go b/chain/lf3/ec.go index 14b555fd8cb..e0109f72d74 100644 --- a/chain/lf3/ec.go +++ b/chain/lf3/ec.go @@ -5,16 +5,18 @@ import ( "sort" "time" + "golang.org/x/xerrors" + "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-f3" "github.com/filecoin-project/go-f3/gpbft" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" + "github.com/filecoin-project/lotus/chain/actors/builtin/power" "github.com/filecoin-project/lotus/chain/stmgr" "github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/chain/types" - "golang.org/x/xerrors" ) type ecWrapper struct { @@ -32,8 +34,9 @@ func (ts *tsWrapper) Key() gpbft.TipSetKey { } func (ts *tsWrapper) Beacon() []byte { - // TOOD: verify if correct - return ts.inner.MinTicket().VRFProof + // TODO: verify if correct + entries := ts.inner.Blocks()[0].BeaconEntries + return entries[len(entries)-1].Data } func (ts *tsWrapper) Epoch() int64 { @@ -62,7 +65,7 @@ func (ec *ecWrapper) GetTipsetByEpoch(ctx context.Context, epoch int64) (f3.TipS } func (ec *ecWrapper) GetTipset(ctx context.Context, tsk gpbft.TipSetKey) (f3.TipSet, error) { - tskLotus, err := types.TipSetKeyFromBytes([]byte(tsk)) + tskLotus, err := types.TipSetKeyFromBytes(tsk) if err != nil { return nil, xerrors.Errorf("decoding tsk: %w", err) } @@ -84,7 +87,7 @@ func (ec *ecWrapper) GetParent(ctx context.Context, tsF3 f3.TipSet) (f3.TipSet, if tsW, ok := tsF3.(*tsWrapper); ok { ts = tsW.inner } else { - tskLotus, err := types.TipSetKeyFromBytes([]byte(tsF3.Key())) + tskLotus, err := types.TipSetKeyFromBytes(tsF3.Key()) if err != nil { return nil, xerrors.Errorf("decoding tsk: %w", err) } @@ -101,7 +104,7 @@ func (ec *ecWrapper) GetParent(ctx context.Context, tsF3 f3.TipSet) (f3.TipSet, } func (ec *ecWrapper) GetPowerTable(ctx context.Context, tskF3 gpbft.TipSetKey) (gpbft.PowerEntries, error) { - tskLotus, err := types.TipSetKeyFromBytes([]byte(tskF3)) + tskLotus, err := types.TipSetKeyFromBytes(tskF3) if err != nil { return nil, xerrors.Errorf("decoding tsk: %w", err) } @@ -109,13 +112,20 @@ func (ec *ecWrapper) GetPowerTable(ctx context.Context, tskF3 gpbft.TipSetKey) ( if err != nil { return nil, xerrors.Errorf("getting tipset by key for get parent: %w", err) } - log.Infof("collecting power table for: %d", ts.Height()) + //log.Infof("collecting power table for: %d", ts.Height()) stCid := ts.ParentState() sm := ec.StateManager powerAct, err := sm.LoadActor(ctx, power.Address, ts) + if err != nil { + return nil, xerrors.Errorf("loading power actor: %w", err) + } + powerState, err := power.Load(ec.ChainStore.ActorStore(ctx), powerAct) + if err != nil { + return nil, xerrors.Errorf("loading power actor state: %w", err) + } var powerEntries gpbft.PowerEntries err = powerState.ForEachClaim(func(miner address.Address, claim power.Claim) error { diff --git a/chain/lf3/f3.go b/chain/lf3/f3.go index 5876e472f05..767e35604fe 100644 --- a/chain/lf3/f3.go +++ b/chain/lf3/f3.go @@ -4,25 +4,30 @@ import ( "context" "time" + "github.com/ipfs/go-datastore" + "github.com/ipfs/go-datastore/namespace" + logging "github.com/ipfs/go-log/v2" + pubsub "github.com/libp2p/go-libp2p-pubsub" + "github.com/libp2p/go-libp2p/core/host" + "go.uber.org/fx" + "golang.org/x/xerrors" + + "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-f3" "github.com/filecoin-project/go-f3/blssig" "github.com/filecoin-project/go-f3/gpbft" + "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/stmgr" "github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/node/modules/dtypes" - "github.com/ipfs/go-datastore" - "github.com/ipfs/go-datastore/namespace" - logging "github.com/ipfs/go-log/v2" - pubsub "github.com/libp2p/go-libp2p-pubsub" - "github.com/libp2p/go-libp2p/core/host" - "go.uber.org/fx" - "golang.org/x/xerrors" ) type F3 struct { - f3 *f3.F3 + inner *f3.F3 + + signer gpbft.Signer } type F3Params struct { @@ -40,7 +45,7 @@ type F3Params struct { var log = logging.Logger("f3") func New(lc fx.Lifecycle, params F3Params) (*F3, error) { - logging.SetLogLevel("f3", "DEBUG") + _ = logging.SetLogLevel("f3", "DEBUG") manifest := f3.LocalnetManifest() manifest.NetworkName = gpbft.NetworkName(params.NetworkName) manifest.ECDelay = time.Duration(build.BlockDelaySecs) * time.Second @@ -54,20 +59,26 @@ func New(lc fx.Lifecycle, params F3Params) (*F3, error) { Manifest: manifest, } verif := blssig.VerifierWithKeyOnG1() + module, err := f3.New(context.TODO(), 1000 /*TODO expose signing*/, manifest, ds, - params.Host, params.PubSub, &signer{params.Wallet}, verif, ec, log) + params.Host, params.PubSub, verif, ec, log, nil) if err != nil { return nil, xerrors.Errorf("creating F3: %w", err) } + fff := &F3{ + inner: module, + signer: &signer{params.Wallet}, + } + var liftimeContext context.Context var cancel func() lc.Append(fx.StartStopHook( func(ctx context.Context) { liftimeContext, cancel = context.WithCancel(ctx) go func() { - err := module.Run(0, liftimeContext) + err := fff.inner.Run(liftimeContext) if err != nil { log.Errorf("running f3: %+v", err) } @@ -76,7 +87,48 @@ func New(lc fx.Lifecycle, params F3Params) (*F3, error) { cancel() })) - return &F3{ - f3: module, - }, nil + return fff, nil +} + +func (fff *F3) F3Participate(ctx context.Context, miner address.Address) error { + actorID, err := address.IDFromAddress(miner) + if err != nil { + return xerrors.Errorf("miner address in F3Participate not of ID type: %w", err) + } + + for { + select { + case <-ctx.Done(): + return nil + default: + } + + ch := make(chan *gpbft.MessageBuilder, 4) + fff.inner.SubscribeForMessagesToSign(ch) + inner: + for { + select { + case mb, ok := <-ch: + if !ok { + // the broadcast bus kicked us out + log.Infof("lost message bus subscription, retrying") + break inner + } + signatureBuilder, err := mb.PrepareSigningInputs(gpbft.ActorID(actorID)) + if err != nil { + log.Errorf("preparing signing inputs: %+v", err) + } + // signatureBuilder can be sent over RPC + payloadSig, vrfSig, err := signatureBuilder.Sign(fff.signer) + if err != nil { + log.Errorf("signing message: %+v", err) + } + // signatureBuilder and signatures can be returned back over RPC + fff.inner.Broadcast(ctx, signatureBuilder, payloadSig, vrfSig) + case <-ctx.Done(): + return nil + } + } + + } } diff --git a/chain/lf3/signer.go b/chain/lf3/signer.go index 6dc3d361c1e..ef6b748455d 100644 --- a/chain/lf3/signer.go +++ b/chain/lf3/signer.go @@ -3,10 +3,12 @@ package lf3 import ( "context" + "golang.org/x/xerrors" + "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-f3/gpbft" + "github.com/filecoin-project/lotus/api" - "golang.org/x/xerrors" ) type signer struct { diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index b9ba51cb355..74fb69f6ae7 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -80,6 +80,8 @@ * [EthTraceTransaction](#EthTraceTransaction) * [EthUninstallFilter](#EthUninstallFilter) * [EthUnsubscribe](#EthUnsubscribe) +* [F3](#F3) + * [F3Participate](#F3Participate) * [Filecoin](#Filecoin) * [FilecoinAddressToEthAddress](#FilecoinAddressToEthAddress) * [Gas](#Gas) @@ -2162,6 +2164,26 @@ Inputs: Response: `true` +## F3 + + +### F3Participate +F3Participate should be called by a miner node to particpate in signing F3 consensus. +The address should be of type ID +This API call won't exit until the caller terminates it. + + +Perms: admin + +Inputs: +```json +[ + "f01234" +] +``` + +Response: `{}` + ## Filecoin diff --git a/go.mod b/go.mod index d398be2aca2..b1eb67e66a4 100644 --- a/go.mod +++ b/go.mod @@ -166,7 +166,7 @@ require ( require ( github.com/GeertJohan/go.incremental v1.0.0 // indirect github.com/Jorropo/jsync v1.0.1 // indirect - github.com/Kubuxu/go-broadcast v0.0.0-20240212204713-7007a1e29a19 // indirect + github.com/Kubuxu/go-broadcast v0.0.0-20240621161059-1a8c90734cd6 // indirect github.com/PuerkitoBio/purell v1.1.1 // indirect github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect github.com/StackExchange/wmi v1.2.1 // indirect diff --git a/go.sum b/go.sum index 190abad11f4..9bfb7604c00 100644 --- a/go.sum +++ b/go.sum @@ -58,8 +58,8 @@ github.com/Gurpartap/async v0.0.0-20180927173644-4f7f499dd9ee h1:8doiS7ib3zi6/K1 github.com/Gurpartap/async v0.0.0-20180927173644-4f7f499dd9ee/go.mod h1:W0GbEAA4uFNYOGG2cJpmFJ04E6SD1NLELPYZB57/7AY= github.com/Jorropo/jsync v1.0.1 h1:6HgRolFZnsdfzRUj+ImB9og1JYOxQoReSywkHOGSaUU= github.com/Jorropo/jsync v1.0.1/go.mod h1:jCOZj3vrBCri3bSU3ErUYvevKlnbssrXeCivybS5ABQ= -github.com/Kubuxu/go-broadcast v0.0.0-20240212204713-7007a1e29a19 h1:bsIcfR08tLQBbFeSkx6KLkwgfAk6JPnfbMjIqN1QxJc= -github.com/Kubuxu/go-broadcast v0.0.0-20240212204713-7007a1e29a19/go.mod h1:5LOj/fF3Oc/cvJqzDiyfx4XwtBPRWUYEz+V+b13sH5U= +github.com/Kubuxu/go-broadcast v0.0.0-20240621161059-1a8c90734cd6 h1:yh2/1fz3ajTaeKskSWxtSBNScdRZfQ/A5nyd9+64T6M= +github.com/Kubuxu/go-broadcast v0.0.0-20240621161059-1a8c90734cd6/go.mod h1:5LOj/fF3Oc/cvJqzDiyfx4XwtBPRWUYEz+V+b13sH5U= github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= github.com/Kubuxu/imtui v0.0.0-20210401140320-41663d68d0fa h1:1PPxEyGdIGVkX/kqMvLJ95a1dGS1Sz7tpNEgehEYYt0= github.com/Kubuxu/imtui v0.0.0-20210401140320-41663d68d0fa/go.mod h1:WUmMvh9wMtqj1Xhf1hf3kp9RvL+y6odtdYxpyZjb90U= diff --git a/node/builder.go b/node/builder.go index dfff37d766a..8fb29c249fa 100644 --- a/node/builder.go +++ b/node/builder.go @@ -114,6 +114,7 @@ const ( HandleDealsKey HandleRetrievalKey RunSectorServiceKey + F3Participation // daemon ExtractApiKey @@ -128,8 +129,6 @@ const ( StoreEventsKey - F3Key - _nInvokes // keep this last ) diff --git a/node/builder_chain.go b/node/builder_chain.go index 12cc1ea3ca0..7ef537965f5 100644 --- a/node/builder_chain.go +++ b/node/builder_chain.go @@ -149,8 +149,10 @@ var ChainNode = Options( Override(RunPeerMgrKey, modules.RunPeerMgr), Override(HandleIncomingMessagesKey, modules.HandleIncomingMessages), Override(HandleIncomingBlocksKey, modules.HandleIncomingBlocks), - Override(F3Key, lf3.New), + //Override(F3Key, lf3.New), ), + + Override(new(*lf3.F3), lf3.New), ) func ConfigFullNode(c interface{}) Option { diff --git a/node/builder_miner.go b/node/builder_miner.go index fddec7785cc..b39ae02c7af 100644 --- a/node/builder_miner.go +++ b/node/builder_miner.go @@ -141,6 +141,7 @@ func ConfigStorageMiner(c interface{}) Option { Override(new(config.HarmonyDB), cfg.HarmonyDB), Override(new(harmonydb.ITestID), harmonydb.ITestID("")), Override(new(*ctladdr.AddressSelector), modules.AddressSelector(&cfg.Addresses)), + Override(F3Participation, modules.F3Participation), ) } diff --git a/node/impl/full.go b/node/impl/full.go index aef7a75cb2a..4fba6f0ee1d 100644 --- a/node/impl/full.go +++ b/node/impl/full.go @@ -9,6 +9,7 @@ import ( "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" + "github.com/filecoin-project/lotus/chain/lf3" "github.com/filecoin-project/lotus/node/impl/common" "github.com/filecoin-project/lotus/node/impl/full" "github.com/filecoin-project/lotus/node/impl/market" @@ -34,6 +35,7 @@ type FullNodeAPI struct { full.SyncAPI full.EthAPI full.ActorEventsAPI + *lf3.F3 DS dtypes.MetadataDS NetworkName dtypes.NetworkName diff --git a/node/modules/lp2p/pubsub.go b/node/modules/lp2p/pubsub.go index f540a642428..9ce16fb5ec2 100644 --- a/node/modules/lp2p/pubsub.go +++ b/node/modules/lp2p/pubsub.go @@ -17,6 +17,7 @@ import ( "golang.org/x/xerrors" "github.com/filecoin-project/go-f3/gpbft" + "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/metrics" "github.com/filecoin-project/lotus/node/config" diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index 01f293b8f4a..1f447e2f7b2 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -351,6 +351,18 @@ func SectorStorage(mctx helpers.MetricsCtx, lc fx.Lifecycle, lstor *paths.Local, return sst, nil } +func F3Participation(mctx helpers.MetricsCtx, lc fx.Lifecycle, api v1api.FullNode, minerAddress dtypes.MinerAddress) error { + ctx := helpers.LifecycleCtx(mctx, lc) + go func() { + err := api.F3Participate(ctx, address.Address(minerAddress)) + if err != nil && !errors.Is(err, context.Canceled) { + // TODO: retry logic? + log.Errorf("error while participating in F3") + } + }() + return nil +} + func StorageAuth(ctx helpers.MetricsCtx, ca v0api.Common) (sealer.StorageAuth, error) { token, err := ca.AuthNew(ctx, []auth.Permission{"admin"}) if err != nil { From 10660a00a356a409976e9bc79a059db80f6b4a0e Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Sat, 22 Jun 2024 04:52:31 +0200 Subject: [PATCH 03/32] Remove replace directive Signed-off-by: Jakub Sztandera --- go.mod | 4 +--- go.sum | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b1eb67e66a4..e6885abad78 100644 --- a/go.mod +++ b/go.mod @@ -10,8 +10,6 @@ replace github.com/filecoin-project/filecoin-ffi => ./extern/filecoin-ffi // pro replace github.com/filecoin-project/test-vectors => ./extern/test-vectors // provided via a git submodule -replace github.com/filecoin-project/go-f3 => ../go-f3 - require ( contrib.go.opencensus.io/exporter/prometheus v0.4.2 github.com/BurntSushi/toml v1.3.2 @@ -43,7 +41,7 @@ require ( github.com/filecoin-project/go-commp-utils v0.1.3 github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082a837 github.com/filecoin-project/go-crypto v0.0.1 - github.com/filecoin-project/go-f3 v0.0.0-20240619112353-e4ef2ea3078f + github.com/filecoin-project/go-f3 v0.0.0-20240622021508-dd16c861657a github.com/filecoin-project/go-fil-commcid v0.1.0 github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0 github.com/filecoin-project/go-jsonrpc v0.3.2 diff --git a/go.sum b/go.sum index 9bfb7604c00..fa9aa2edee4 100644 --- a/go.sum +++ b/go.sum @@ -270,6 +270,8 @@ github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082 github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= github.com/filecoin-project/go-crypto v0.0.1 h1:AcvpSGGCgjaY8y1az6AMfKQWreF/pWO2JJGLl6gCq6o= github.com/filecoin-project/go-crypto v0.0.1/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= +github.com/filecoin-project/go-f3 v0.0.0-20240622021508-dd16c861657a h1:a3N1tUAy6zdnOVPmUJi18xcHrBaHU5GF9Eyp/Ax/48M= +github.com/filecoin-project/go-f3 v0.0.0-20240622021508-dd16c861657a/go.mod h1:7QECPmRY0BrLlNbtU606XgnmxBwSdzloxatYgOG63bs= github.com/filecoin-project/go-fil-commcid v0.0.0-20201016201715-d41df56b4f6a/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= github.com/filecoin-project/go-fil-commcid v0.1.0 h1:3R4ds1A9r6cr8mvZBfMYxTS88OqLYEo6roi+GiIeOh8= github.com/filecoin-project/go-fil-commcid v0.1.0/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= From 128f47b80ae1e8626623af75c76a0e3bb2823acc Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Sat, 22 Jun 2024 04:58:55 +0200 Subject: [PATCH 04/32] Skip to the end of the loop in case of broadcast failures , Signed-off-by: Jakub Sztandera --- chain/lf3/f3.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/chain/lf3/f3.go b/chain/lf3/f3.go index 767e35604fe..c1246c65e72 100644 --- a/chain/lf3/f3.go +++ b/chain/lf3/f3.go @@ -117,11 +117,13 @@ func (fff *F3) F3Participate(ctx context.Context, miner address.Address) error { signatureBuilder, err := mb.PrepareSigningInputs(gpbft.ActorID(actorID)) if err != nil { log.Errorf("preparing signing inputs: %+v", err) + continue inner } // signatureBuilder can be sent over RPC payloadSig, vrfSig, err := signatureBuilder.Sign(fff.signer) if err != nil { log.Errorf("signing message: %+v", err) + continue inner } // signatureBuilder and signatures can be returned back over RPC fff.inner.Broadcast(ctx, signatureBuilder, payloadSig, vrfSig) From 12b1a5e69610d2babff9c402ef09784a90845438 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Sat, 22 Jun 2024 05:04:48 +0200 Subject: [PATCH 05/32] make gen Signed-off-by: Jakub Sztandera --- build/openrpc/full.json | 2 +- documentation/en/api-v1-unstable-methods.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/build/openrpc/full.json b/build/openrpc/full.json index d483d269072..02a35f6c896 100644 --- a/build/openrpc/full.json +++ b/build/openrpc/full.json @@ -6145,7 +6145,7 @@ { "name": "Filecoin.F3Participate", "description": "```go\nfunc (s *FullNodeStruct) F3Participate(p0 context.Context, p1 address.Address) error {\n\tif s.Internal.F3Participate == nil {\n\t\treturn ErrNotSupported\n\t}\n\treturn s.Internal.F3Participate(p0, p1)\n}\n```", - "summary": "F3Participate should be called by a miner node to particpate in signing F3 consensus.\nThe address should be of type ID\nThis API call won't exit until the caller terminates it.\n", + "summary": "F3Participate should be called by a miner node to particpate in signing F3 consensus.\nThe address should be of type ID\nThis API call won't exit until the caller terminates it.\nIt is recommended to call this API through websocket connection.\n", "paramStructure": "by-position", "params": [ { diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index 74fb69f6ae7..8ec1e7df2e2 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -2171,6 +2171,7 @@ Response: `true` F3Participate should be called by a miner node to particpate in signing F3 consensus. The address should be of type ID This API call won't exit until the caller terminates it. +It is recommended to call this API through websocket connection. Perms: admin From 68a5e6eefec5d3f7c4109736c9740b5ca6781ba8 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Sat, 22 Jun 2024 05:15:52 +0200 Subject: [PATCH 06/32] Don't upgrade urfave/cli Signed-off-by: Jakub Sztandera --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index e6885abad78..242f0c2c5be 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( github.com/filecoin-project/go-commp-utils v0.1.3 github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082a837 github.com/filecoin-project/go-crypto v0.0.1 - github.com/filecoin-project/go-f3 v0.0.0-20240622021508-dd16c861657a + github.com/filecoin-project/go-f3 v0.0.0-20240622031408-48dd6ac30d75 github.com/filecoin-project/go-fil-commcid v0.1.0 github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0 github.com/filecoin-project/go-jsonrpc v0.3.2 @@ -131,7 +131,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 github.com/triplewz/poseidon v0.0.0-20230828015038-79d8165c88ed - github.com/urfave/cli/v2 v2.27.2 + github.com/urfave/cli/v2 v2.25.5 github.com/whyrusleeping/bencher v0.0.0-20190829221104-bb6607aa8bba github.com/whyrusleeping/cbor-gen v0.1.1 github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 diff --git a/go.sum b/go.sum index fa9aa2edee4..d7c41be7a8e 100644 --- a/go.sum +++ b/go.sum @@ -270,8 +270,8 @@ github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082 github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= github.com/filecoin-project/go-crypto v0.0.1 h1:AcvpSGGCgjaY8y1az6AMfKQWreF/pWO2JJGLl6gCq6o= github.com/filecoin-project/go-crypto v0.0.1/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= -github.com/filecoin-project/go-f3 v0.0.0-20240622021508-dd16c861657a h1:a3N1tUAy6zdnOVPmUJi18xcHrBaHU5GF9Eyp/Ax/48M= -github.com/filecoin-project/go-f3 v0.0.0-20240622021508-dd16c861657a/go.mod h1:7QECPmRY0BrLlNbtU606XgnmxBwSdzloxatYgOG63bs= +github.com/filecoin-project/go-f3 v0.0.0-20240622031408-48dd6ac30d75 h1:E9oKU5u7GB6T49984iG5Uuy8aG7NmBDQxwlqP44AXSA= +github.com/filecoin-project/go-f3 v0.0.0-20240622031408-48dd6ac30d75/go.mod h1:Wry0mNa8z767TBHb7N0cVb+9j00KsHbD2pzsC3li4R8= github.com/filecoin-project/go-fil-commcid v0.0.0-20201016201715-d41df56b4f6a/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= github.com/filecoin-project/go-fil-commcid v0.1.0 h1:3R4ds1A9r6cr8mvZBfMYxTS88OqLYEo6roi+GiIeOh8= github.com/filecoin-project/go-fil-commcid v0.1.0/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= @@ -1290,8 +1290,8 @@ github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6 github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.10/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.27.2 h1:6e0H+AkS+zDckwPCUrZkKX38mRaau4nL2uipkJpbkcI= -github.com/urfave/cli/v2 v2.27.2/go.mod h1:g0+79LmHHATl7DAcHO99smiR/T7uGLw84w8Y42x+4eM= +github.com/urfave/cli/v2 v2.25.5 h1:d0NIAyhh5shGscroL7ek/Ya9QYQE0KNabJgiUinIQkc= +github.com/urfave/cli/v2 v2.25.5/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.0.1 h1:tY9CJiPnMXf1ERmG2EyK7gNUd+c6RKGD0IfU8WdUSz8= From 0b303caa4d28e4b5fd0afa4aa79cb25af8cc5b50 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Mon, 24 Jun 2024 04:22:08 +0200 Subject: [PATCH 07/32] Add F3GetCertificate and F3GetLatestCertificate Signed-off-by: Jakub Sztandera --- api/api_full.go | 12 +- api/docgen/docgen.go | 2 + api/mocks/mock_full.go | 38 +- api/proxy_gen.go | 37 +- build/openrpc/full.json | 780 ++++++++++++++------ build/openrpc/gateway.json | 198 ++--- build/openrpc/miner.json | 176 ++--- build/openrpc/worker.json | 74 +- chain/lf3/ec.go | 4 +- chain/lf3/f3.go | 27 +- documentation/en/api-v1-unstable-methods.md | 128 +++- go.mod | 2 +- go.sum | 4 +- node/impl/full.go | 3 +- node/impl/full/f3.go | 41 + node/modules/storageminer.go | 15 +- 16 files changed, 1048 insertions(+), 493 deletions(-) create mode 100644 node/impl/full/f3.go diff --git a/api/api_full.go b/api/api_full.go index eed0e1fdc9f..90cd950123f 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -11,6 +11,7 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-bitfield" + "github.com/filecoin-project/go-f3/certs" "github.com/filecoin-project/go-jsonrpc" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" @@ -862,9 +863,14 @@ type FullNode interface { // F3Participate should be called by a miner node to particpate in signing F3 consensus. // The address should be of type ID - // This API call won't exit until the caller terminates it. - // It is recommended to call this API through websocket connection. - F3Participate(ctx context.Context, minerID address.Address) error //perm:admin + // F3Participate can only be used through websocket connection + // The returned channel will never be closed by the F3 + // If it is closed without the context being cancelled, the caller should retry. + F3Participate(ctx context.Context, minerID address.Address) (<-chan error, error) //perm:admin + // F3GetCertificate returns a finality certificate at given instance number + F3GetCertificate(ctx context.Context, instance uint64) (*certs.FinalityCertificate, error) //perm:read + // F3GetLatestCertificate returns the latest finality certificate + F3GetLatestCertificate(ctx context.Context) (*certs.FinalityCertificate, error) //perm:read } // reverse interface to the client, called after EthSubscribe diff --git a/api/docgen/docgen.go b/api/docgen/docgen.go index cba7bb6b5b3..ef43828d4c6 100644 --- a/api/docgen/docgen.go +++ b/api/docgen/docgen.go @@ -25,6 +25,7 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-bitfield" + "github.com/filecoin-project/go-f3/certs" "github.com/filecoin-project/go-jsonrpc/auth" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" @@ -399,6 +400,7 @@ func init() { FromHeight: epochPtr(1010), ToHeight: epochPtr(1020), }) + addExample(&certs.FinalityCertificate{}) } func GetAPIType(name, pkg string) (i interface{}, t reflect.Type, permStruct []reflect.Type) { diff --git a/api/mocks/mock_full.go b/api/mocks/mock_full.go index 17eff12980b..3b4b726338d 100644 --- a/api/mocks/mock_full.go +++ b/api/mocks/mock_full.go @@ -21,6 +21,7 @@ import ( address "github.com/filecoin-project/go-address" bitfield "github.com/filecoin-project/go-bitfield" + certs "github.com/filecoin-project/go-f3/certs" jsonrpc "github.com/filecoin-project/go-jsonrpc" auth "github.com/filecoin-project/go-jsonrpc/auth" abi "github.com/filecoin-project/go-state-types/abi" @@ -1152,12 +1153,43 @@ func (mr *MockFullNodeMockRecorder) EthUnsubscribe(arg0, arg1 interface{}) *gomo return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EthUnsubscribe", reflect.TypeOf((*MockFullNode)(nil).EthUnsubscribe), arg0, arg1) } +// F3GetCertificate mocks base method. +func (m *MockFullNode) F3GetCertificate(arg0 context.Context, arg1 uint64) (*certs.FinalityCertificate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "F3GetCertificate", arg0, arg1) + ret0, _ := ret[0].(*certs.FinalityCertificate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// F3GetCertificate indicates an expected call of F3GetCertificate. +func (mr *MockFullNodeMockRecorder) F3GetCertificate(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "F3GetCertificate", reflect.TypeOf((*MockFullNode)(nil).F3GetCertificate), arg0, arg1) +} + +// F3GetLatestCertificate mocks base method. +func (m *MockFullNode) F3GetLatestCertificate(arg0 context.Context) (*certs.FinalityCertificate, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "F3GetLatestCertificate", arg0) + ret0, _ := ret[0].(*certs.FinalityCertificate) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// F3GetLatestCertificate indicates an expected call of F3GetLatestCertificate. +func (mr *MockFullNodeMockRecorder) F3GetLatestCertificate(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "F3GetLatestCertificate", reflect.TypeOf((*MockFullNode)(nil).F3GetLatestCertificate), arg0) +} + // F3Participate mocks base method. -func (m *MockFullNode) F3Participate(arg0 context.Context, arg1 address.Address) error { +func (m *MockFullNode) F3Participate(arg0 context.Context, arg1 address.Address) (<-chan error, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "F3Participate", arg0, arg1) - ret0, _ := ret[0].(error) - return ret0 + ret0, _ := ret[0].(<-chan error) + ret1, _ := ret[1].(error) + return ret0, ret1 } // F3Participate indicates an expected call of F3Participate. diff --git a/api/proxy_gen.go b/api/proxy_gen.go index 70e0a7bc2be..438ef29cf97 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -18,6 +18,7 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-bitfield" + "github.com/filecoin-project/go-f3/certs" "github.com/filecoin-project/go-jsonrpc" "github.com/filecoin-project/go-jsonrpc/auth" "github.com/filecoin-project/go-state-types/abi" @@ -249,7 +250,11 @@ type FullNodeMethods struct { EthUnsubscribe func(p0 context.Context, p1 ethtypes.EthSubscriptionID) (bool, error) `perm:"read"` - F3Participate func(p0 context.Context, p1 address.Address) error `perm:"admin"` + F3GetCertificate func(p0 context.Context, p1 uint64) (*certs.FinalityCertificate, error) `perm:"read"` + + F3GetLatestCertificate func(p0 context.Context) (*certs.FinalityCertificate, error) `perm:"read"` + + F3Participate func(p0 context.Context, p1 address.Address) (<-chan error, error) `perm:"admin"` FilecoinAddressToEthAddress func(p0 context.Context, p1 address.Address) (ethtypes.EthAddress, error) `perm:"read"` @@ -2065,15 +2070,37 @@ func (s *FullNodeStub) EthUnsubscribe(p0 context.Context, p1 ethtypes.EthSubscri return false, ErrNotSupported } -func (s *FullNodeStruct) F3Participate(p0 context.Context, p1 address.Address) error { +func (s *FullNodeStruct) F3GetCertificate(p0 context.Context, p1 uint64) (*certs.FinalityCertificate, error) { + if s.Internal.F3GetCertificate == nil { + return nil, ErrNotSupported + } + return s.Internal.F3GetCertificate(p0, p1) +} + +func (s *FullNodeStub) F3GetCertificate(p0 context.Context, p1 uint64) (*certs.FinalityCertificate, error) { + return nil, ErrNotSupported +} + +func (s *FullNodeStruct) F3GetLatestCertificate(p0 context.Context) (*certs.FinalityCertificate, error) { + if s.Internal.F3GetLatestCertificate == nil { + return nil, ErrNotSupported + } + return s.Internal.F3GetLatestCertificate(p0) +} + +func (s *FullNodeStub) F3GetLatestCertificate(p0 context.Context) (*certs.FinalityCertificate, error) { + return nil, ErrNotSupported +} + +func (s *FullNodeStruct) F3Participate(p0 context.Context, p1 address.Address) (<-chan error, error) { if s.Internal.F3Participate == nil { - return ErrNotSupported + return nil, ErrNotSupported } return s.Internal.F3Participate(p0, p1) } -func (s *FullNodeStub) F3Participate(p0 context.Context, p1 address.Address) error { - return ErrNotSupported +func (s *FullNodeStub) F3Participate(p0 context.Context, p1 address.Address) (<-chan error, error) { + return nil, ErrNotSupported } func (s *FullNodeStruct) FilecoinAddressToEthAddress(p0 context.Context, p1 address.Address) (ethtypes.EthAddress, error) { diff --git a/build/openrpc/full.json b/build/openrpc/full.json index 02a35f6c896..2c9c4c90b8b 100644 --- a/build/openrpc/full.json +++ b/build/openrpc/full.json @@ -37,7 +37,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1309" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1314" } }, { @@ -60,7 +60,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1320" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1325" } }, { @@ -103,7 +103,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1331" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1336" } }, { @@ -214,7 +214,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1353" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1358" } }, { @@ -454,7 +454,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1364" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1369" } }, { @@ -685,7 +685,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1375" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1380" } }, { @@ -784,7 +784,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1386" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1391" } }, { @@ -816,7 +816,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1397" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1402" } }, { @@ -922,7 +922,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1408" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1413" } }, { @@ -1019,7 +1019,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1419" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1424" } }, { @@ -1078,7 +1078,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1430" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1435" } }, { @@ -1171,7 +1171,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1441" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1446" } }, { @@ -1255,7 +1255,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1452" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1457" } }, { @@ -1355,7 +1355,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1463" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1468" } }, { @@ -1411,7 +1411,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1474" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1479" } }, { @@ -1484,7 +1484,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1485" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1490" } }, { @@ -1557,7 +1557,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1496" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1501" } }, { @@ -1604,7 +1604,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1507" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1512" } }, { @@ -1636,7 +1636,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1518" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1523" } }, { @@ -1691,7 +1691,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1529" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1534" } }, { @@ -1743,7 +1743,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1551" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1556" } }, { @@ -1780,7 +1780,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1562" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1567" } }, { @@ -1827,7 +1827,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1573" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1578" } }, { @@ -1874,7 +1874,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1584" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1589" } }, { @@ -1954,7 +1954,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1595" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1600" } }, { @@ -2006,7 +2006,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1606" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1611" } }, { @@ -2045,7 +2045,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1617" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1622" } }, { @@ -2092,7 +2092,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1628" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1633" } }, { @@ -2147,7 +2147,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1639" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1644" } }, { @@ -2176,7 +2176,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1650" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1655" } }, { @@ -2313,7 +2313,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1661" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1666" } }, { @@ -2342,7 +2342,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1672" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1677" } }, { @@ -2396,7 +2396,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1683" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1688" } }, { @@ -2487,7 +2487,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1694" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1699" } }, { @@ -2515,7 +2515,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1705" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1710" } }, { @@ -2605,7 +2605,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1716" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1721" } }, { @@ -2861,7 +2861,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1727" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1732" } }, { @@ -3106,7 +3106,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1738" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1743" } }, { @@ -3162,7 +3162,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1749" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1754" } }, { @@ -3209,7 +3209,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1760" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1765" } }, { @@ -3307,7 +3307,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1771" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1776" } }, { @@ -3373,7 +3373,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1782" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1787" } }, { @@ -3439,7 +3439,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1793" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1798" } }, { @@ -3548,7 +3548,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1804" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1809" } }, { @@ -3606,7 +3606,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1815" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1820" } }, { @@ -3728,7 +3728,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1826" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1831" } }, { @@ -3937,7 +3937,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1837" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1842" } }, { @@ -4137,7 +4137,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1848" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1853" } }, { @@ -4329,7 +4329,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1859" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1864" } }, { @@ -4538,7 +4538,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1870" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1875" } }, { @@ -4629,7 +4629,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1881" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1886" } }, { @@ -4687,7 +4687,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1892" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1897" } }, { @@ -4945,7 +4945,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1903" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1908" } }, { @@ -5220,7 +5220,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1914" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1919" } }, { @@ -5248,7 +5248,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1925" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1930" } }, { @@ -5286,7 +5286,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1936" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1941" } }, { @@ -5394,7 +5394,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1947" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1952" } }, { @@ -5432,7 +5432,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1958" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1963" } }, { @@ -5461,7 +5461,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1969" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1974" } }, { @@ -5524,7 +5524,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1980" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1985" } }, { @@ -5587,7 +5587,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1991" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L1996" } }, { @@ -5632,7 +5632,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2002" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2007" } }, { @@ -5754,7 +5754,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2013" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2018" } }, { @@ -5909,7 +5909,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2024" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2029" } }, { @@ -6031,7 +6031,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2035" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2040" } }, { @@ -6085,7 +6085,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2046" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2051" } }, { @@ -6139,26 +6139,27 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2057" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2062" } }, { - "name": "Filecoin.F3Participate", - "description": "```go\nfunc (s *FullNodeStruct) F3Participate(p0 context.Context, p1 address.Address) error {\n\tif s.Internal.F3Participate == nil {\n\t\treturn ErrNotSupported\n\t}\n\treturn s.Internal.F3Participate(p0, p1)\n}\n```", - "summary": "F3Participate should be called by a miner node to particpate in signing F3 consensus.\nThe address should be of type ID\nThis API call won't exit until the caller terminates it.\nIt is recommended to call this API through websocket connection.\n", + "name": "Filecoin.F3GetCertificate", + "description": "```go\nfunc (s *FullNodeStruct) F3GetCertificate(p0 context.Context, p1 uint64) (*certs.FinalityCertificate, error) {\n\tif s.Internal.F3GetCertificate == nil {\n\t\treturn nil, ErrNotSupported\n\t}\n\treturn s.Internal.F3GetCertificate(p0, p1)\n}\n```", + "summary": "F3GetCertificate returns a finality certificate at given instance number\n", "paramStructure": "by-position", "params": [ { "name": "p1", - "description": "address.Address", + "description": "uint64", "summary": "", "schema": { + "title": "number", + "description": "Number is a number", "examples": [ - "f01234" + 42 ], - "additionalProperties": false, "type": [ - "object" + "number" ] }, "required": true, @@ -6166,11 +6167,330 @@ } ], "result": { - "name": "Null", - "description": "Null", + "name": "*certs.FinalityCertificate", + "description": "*certs.FinalityCertificate", + "summary": "", "schema": { + "examples": [ + { + "GPBFTInstance": 0, + "ECChain": null, + "SupplementalData": { + "Commitments": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "PowerTable": null + }, + "Signers": [ + 0 + ], + "Signature": null, + "PowerTableDelta": null + } + ], + "additionalProperties": false, + "properties": { + "ECChain": { + "items": { + "additionalProperties": false, + "properties": { + "Commitments": { + "items": { + "description": "Number is a number", + "title": "number", + "type": "number" + }, + "maxItems": 32, + "minItems": 32, + "type": "array" + }, + "Epoch": { + "title": "number", + "type": "number" + }, + "Key": { + "media": { + "binaryEncoding": "base64" + }, + "type": "string" + }, + "PowerTable": { + "media": { + "binaryEncoding": "base64" + }, + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "GPBFTInstance": { + "title": "number", + "type": "number" + }, + "PowerTableDelta": { + "items": { + "additionalProperties": false, + "properties": { + "ParticipantID": { + "title": "number", + "type": "number" + }, + "PowerDelta": { + "additionalProperties": false, + "type": "object" + }, + "SigningKey": { + "items": { + "description": "Number is a number", + "title": "number", + "type": "number" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "Signature": { + "media": { + "binaryEncoding": "base64" + }, + "type": "string" + }, + "Signers": { + "additionalProperties": false, + "type": "object" + }, + "SupplementalData": { + "additionalProperties": false, + "properties": { + "Commitments": { + "items": { + "description": "Number is a number", + "title": "number", + "type": "number" + }, + "maxItems": 32, + "minItems": 32, + "type": "array" + }, + "PowerTable": { + "media": { + "binaryEncoding": "base64" + }, + "type": "string" + } + }, + "type": "object" + } + }, "type": [ - "null" + "object" + ] + }, + "required": true, + "deprecated": false + }, + "deprecated": false, + "externalDocs": { + "description": "Github remote link", + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2073" + } + }, + { + "name": "Filecoin.F3GetLatestCertificate", + "description": "```go\nfunc (s *FullNodeStruct) F3GetLatestCertificate(p0 context.Context) (*certs.FinalityCertificate, error) {\n\tif s.Internal.F3GetLatestCertificate == nil {\n\t\treturn nil, ErrNotSupported\n\t}\n\treturn s.Internal.F3GetLatestCertificate(p0)\n}\n```", + "summary": "F3GetLatestCertificate returns the latest finality certificate\n", + "paramStructure": "by-position", + "params": [], + "result": { + "name": "*certs.FinalityCertificate", + "description": "*certs.FinalityCertificate", + "summary": "", + "schema": { + "examples": [ + { + "GPBFTInstance": 0, + "ECChain": null, + "SupplementalData": { + "Commitments": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "PowerTable": null + }, + "Signers": [ + 0 + ], + "Signature": null, + "PowerTableDelta": null + } + ], + "additionalProperties": false, + "properties": { + "ECChain": { + "items": { + "additionalProperties": false, + "properties": { + "Commitments": { + "items": { + "description": "Number is a number", + "title": "number", + "type": "number" + }, + "maxItems": 32, + "minItems": 32, + "type": "array" + }, + "Epoch": { + "title": "number", + "type": "number" + }, + "Key": { + "media": { + "binaryEncoding": "base64" + }, + "type": "string" + }, + "PowerTable": { + "media": { + "binaryEncoding": "base64" + }, + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "GPBFTInstance": { + "title": "number", + "type": "number" + }, + "PowerTableDelta": { + "items": { + "additionalProperties": false, + "properties": { + "ParticipantID": { + "title": "number", + "type": "number" + }, + "PowerDelta": { + "additionalProperties": false, + "type": "object" + }, + "SigningKey": { + "items": { + "description": "Number is a number", + "title": "number", + "type": "number" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "Signature": { + "media": { + "binaryEncoding": "base64" + }, + "type": "string" + }, + "Signers": { + "additionalProperties": false, + "type": "object" + }, + "SupplementalData": { + "additionalProperties": false, + "properties": { + "Commitments": { + "items": { + "description": "Number is a number", + "title": "number", + "type": "number" + }, + "maxItems": 32, + "minItems": 32, + "type": "array" + }, + "PowerTable": { + "media": { + "binaryEncoding": "base64" + }, + "type": "string" + } + }, + "type": "object" + } + }, + "type": [ + "object" ] }, "required": true, @@ -6179,7 +6499,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2068" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2084" } }, { @@ -6234,7 +6554,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2079" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2106" } }, { @@ -6377,7 +6697,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2090" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2117" } }, { @@ -6504,7 +6824,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2101" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2128" } }, { @@ -6606,7 +6926,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2112" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2139" } }, { @@ -6829,7 +7149,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2123" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2150" } }, { @@ -7012,7 +7332,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2134" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2161" } }, { @@ -7092,7 +7412,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2145" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2172" } }, { @@ -7137,7 +7457,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2156" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2183" } }, { @@ -7193,7 +7513,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2167" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2194" } }, { @@ -7273,7 +7593,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2178" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2205" } }, { @@ -7353,7 +7673,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2189" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2216" } }, { @@ -7838,7 +8158,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2200" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2227" } }, { @@ -8032,7 +8352,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2211" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2238" } }, { @@ -8187,7 +8507,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2222" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2249" } }, { @@ -8436,7 +8756,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2233" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2260" } }, { @@ -8591,7 +8911,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2244" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2271" } }, { @@ -8768,7 +9088,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2255" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2282" } }, { @@ -8866,7 +9186,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2266" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2293" } }, { @@ -9031,7 +9351,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2277" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2304" } }, { @@ -9070,7 +9390,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2288" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2315" } }, { @@ -9135,7 +9455,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2299" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2326" } }, { @@ -9181,7 +9501,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2310" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2337" } }, { @@ -9331,7 +9651,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2321" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2348" } }, { @@ -9468,7 +9788,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2332" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2359" } }, { @@ -9699,7 +10019,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2343" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2370" } }, { @@ -9836,7 +10156,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2354" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2381" } }, { @@ -10001,7 +10321,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2365" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2392" } }, { @@ -10078,7 +10398,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2376" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2403" } }, { @@ -10273,7 +10593,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2398" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2425" } }, { @@ -10452,7 +10772,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2409" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2436" } }, { @@ -10614,7 +10934,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2420" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2447" } }, { @@ -10762,7 +11082,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2431" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2458" } }, { @@ -10990,7 +11310,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2442" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2469" } }, { @@ -11138,7 +11458,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2453" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2480" } }, { @@ -11350,7 +11670,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2464" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2491" } }, { @@ -11556,7 +11876,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2475" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2502" } }, { @@ -11624,7 +11944,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2486" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2513" } }, { @@ -11741,7 +12061,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2497" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2524" } }, { @@ -11832,7 +12152,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2508" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2535" } }, { @@ -11918,7 +12238,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2519" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2546" } }, { @@ -12113,7 +12433,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2530" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2557" } }, { @@ -12275,7 +12595,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2541" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2568" } }, { @@ -12471,7 +12791,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2552" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2579" } }, { @@ -12651,7 +12971,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2563" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2590" } }, { @@ -12814,7 +13134,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2574" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2601" } }, { @@ -12841,7 +13161,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2585" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2612" } }, { @@ -12868,7 +13188,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2596" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2623" } }, { @@ -12967,7 +13287,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2607" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2634" } }, { @@ -13013,7 +13333,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2618" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2645" } }, { @@ -13113,7 +13433,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2629" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2656" } }, { @@ -13229,7 +13549,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2640" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2667" } }, { @@ -13277,7 +13597,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2651" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2678" } }, { @@ -13369,7 +13689,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2662" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2689" } }, { @@ -13484,7 +13804,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2673" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2700" } }, { @@ -13532,7 +13852,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2684" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2711" } }, { @@ -13569,7 +13889,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2695" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2722" } }, { @@ -13841,7 +14161,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2706" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2733" } }, { @@ -13889,7 +14209,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2717" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2744" } }, { @@ -13947,7 +14267,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2728" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2755" } }, { @@ -14152,7 +14472,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2739" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2766" } }, { @@ -14355,7 +14675,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2750" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2777" } }, { @@ -14524,7 +14844,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2761" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2788" } }, { @@ -14728,7 +15048,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2772" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2799" } }, { @@ -14895,7 +15215,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2783" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2810" } }, { @@ -15102,7 +15422,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2794" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2821" } }, { @@ -15170,7 +15490,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2805" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2832" } }, { @@ -15222,7 +15542,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2816" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2843" } }, { @@ -15271,7 +15591,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2827" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2854" } }, { @@ -15362,7 +15682,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2838" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2865" } }, { @@ -15868,7 +16188,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2849" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2876" } }, { @@ -15974,7 +16294,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2860" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2887" } }, { @@ -16026,7 +16346,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2871" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2898" } }, { @@ -16578,7 +16898,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2882" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2909" } }, { @@ -16692,7 +17012,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2893" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2920" } }, { @@ -16789,7 +17109,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2904" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2931" } }, { @@ -16889,7 +17209,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2915" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2942" } }, { @@ -16977,7 +17297,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2926" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2953" } }, { @@ -17077,7 +17397,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2937" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2964" } }, { @@ -17164,7 +17484,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2948" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2975" } }, { @@ -17255,7 +17575,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2959" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2986" } }, { @@ -17380,7 +17700,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2970" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2997" } }, { @@ -17489,7 +17809,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2981" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3008" } }, { @@ -17559,7 +17879,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L2992" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3019" } }, { @@ -17662,7 +17982,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3003" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3030" } }, { @@ -17723,7 +18043,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3014" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3041" } }, { @@ -17853,7 +18173,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3025" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3052" } }, { @@ -17960,7 +18280,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3036" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3063" } }, { @@ -18174,7 +18494,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3047" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3074" } }, { @@ -18251,7 +18571,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3058" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3085" } }, { @@ -18328,7 +18648,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3069" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3096" } }, { @@ -18437,7 +18757,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3080" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3107" } }, { @@ -18546,7 +18866,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3091" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3118" } }, { @@ -18607,7 +18927,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3102" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3129" } }, { @@ -18717,7 +19037,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3113" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3140" } }, { @@ -18778,7 +19098,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3124" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3151" } }, { @@ -18846,7 +19166,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3135" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3162" } }, { @@ -18914,7 +19234,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3146" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3173" } }, { @@ -18995,7 +19315,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3157" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3184" } }, { @@ -19149,7 +19469,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3168" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3195" } }, { @@ -19221,7 +19541,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3179" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3206" } }, { @@ -19385,7 +19705,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3190" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3217" } }, { @@ -19550,7 +19870,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3201" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3228" } }, { @@ -19620,7 +19940,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3212" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3239" } }, { @@ -19688,7 +20008,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3223" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3250" } }, { @@ -19781,7 +20101,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3234" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3261" } }, { @@ -19852,7 +20172,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3245" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3272" } }, { @@ -20053,7 +20373,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3256" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3283" } }, { @@ -20185,7 +20505,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3267" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3294" } }, { @@ -20322,7 +20642,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3278" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3305" } }, { @@ -20433,7 +20753,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3289" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3316" } }, { @@ -20565,7 +20885,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3300" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3327" } }, { @@ -20696,7 +21016,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3311" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3338" } }, { @@ -20767,7 +21087,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3322" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3349" } }, { @@ -20851,7 +21171,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3333" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3360" } }, { @@ -20937,7 +21257,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3344" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3371" } }, { @@ -21120,7 +21440,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3355" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3382" } }, { @@ -21147,7 +21467,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3366" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3393" } }, { @@ -21200,7 +21520,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3377" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3404" } }, { @@ -21288,7 +21608,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3388" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3415" } }, { @@ -21739,7 +22059,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3399" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3426" } }, { @@ -21906,7 +22226,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3410" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3437" } }, { @@ -22004,7 +22324,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3421" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3448" } }, { @@ -22177,7 +22497,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3432" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3459" } }, { @@ -22275,7 +22595,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3443" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3470" } }, { @@ -22426,7 +22746,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3454" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3481" } }, { @@ -22511,7 +22831,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3465" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3492" } }, { @@ -22579,7 +22899,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3476" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3503" } }, { @@ -22631,7 +22951,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3487" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3514" } }, { @@ -22699,7 +23019,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3498" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3525" } }, { @@ -22860,7 +23180,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3509" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3536" } }, { @@ -22907,7 +23227,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3531" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3558" } }, { @@ -22954,7 +23274,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3542" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3569" } }, { @@ -22997,7 +23317,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3564" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3591" } }, { @@ -23093,7 +23413,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3575" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3602" } }, { @@ -23359,7 +23679,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3586" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3613" } }, { @@ -23382,7 +23702,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3597" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3624" } }, { @@ -23425,7 +23745,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3608" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3635" } }, { @@ -23476,7 +23796,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3619" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3646" } }, { @@ -23521,7 +23841,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3630" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3657" } }, { @@ -23549,7 +23869,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3641" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3668" } }, { @@ -23589,7 +23909,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3652" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3679" } }, { @@ -23648,7 +23968,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3663" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3690" } }, { @@ -23692,7 +24012,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3674" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3701" } }, { @@ -23751,7 +24071,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3685" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3712" } }, { @@ -23788,7 +24108,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3696" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3723" } }, { @@ -23832,7 +24152,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3707" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3734" } }, { @@ -23872,7 +24192,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3718" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3745" } }, { @@ -23947,7 +24267,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3729" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3756" } }, { @@ -24155,7 +24475,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3740" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3767" } }, { @@ -24199,7 +24519,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3751" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3778" } }, { @@ -24289,7 +24609,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3762" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3789" } }, { @@ -24316,7 +24636,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3773" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3800" } } ] diff --git a/build/openrpc/gateway.json b/build/openrpc/gateway.json index 5da902b4a4b..ac2c9e5ba76 100644 --- a/build/openrpc/gateway.json +++ b/build/openrpc/gateway.json @@ -242,7 +242,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3784" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3811" } }, { @@ -473,7 +473,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3795" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3822" } }, { @@ -572,7 +572,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3806" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3833" } }, { @@ -604,7 +604,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3817" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3844" } }, { @@ -710,7 +710,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3828" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3855" } }, { @@ -803,7 +803,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3839" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3866" } }, { @@ -887,7 +887,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3850" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3877" } }, { @@ -987,7 +987,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3861" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3888" } }, { @@ -1043,7 +1043,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3872" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3899" } }, { @@ -1116,7 +1116,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3883" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3910" } }, { @@ -1189,7 +1189,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3894" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3921" } }, { @@ -1236,7 +1236,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3905" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3932" } }, { @@ -1268,7 +1268,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3916" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3943" } }, { @@ -1305,7 +1305,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3938" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3965" } }, { @@ -1352,7 +1352,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3949" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3976" } }, { @@ -1392,7 +1392,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3960" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3987" } }, { @@ -1439,7 +1439,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3971" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3998" } }, { @@ -1494,7 +1494,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3982" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4009" } }, { @@ -1523,7 +1523,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L3993" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4020" } }, { @@ -1660,7 +1660,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4004" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4031" } }, { @@ -1689,7 +1689,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4015" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4042" } }, { @@ -1743,7 +1743,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4026" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4053" } }, { @@ -1834,7 +1834,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4037" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4064" } }, { @@ -1862,7 +1862,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4048" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4075" } }, { @@ -1952,7 +1952,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4059" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4086" } }, { @@ -2208,7 +2208,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4070" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4097" } }, { @@ -2453,7 +2453,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4081" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4108" } }, { @@ -2509,7 +2509,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4092" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4119" } }, { @@ -2556,7 +2556,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4103" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4130" } }, { @@ -2654,7 +2654,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4114" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4141" } }, { @@ -2720,7 +2720,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4125" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4152" } }, { @@ -2786,7 +2786,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4136" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4163" } }, { @@ -2895,7 +2895,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4147" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4174" } }, { @@ -2953,7 +2953,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4158" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4185" } }, { @@ -3075,7 +3075,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4169" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4196" } }, { @@ -3267,7 +3267,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4180" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4207" } }, { @@ -3476,7 +3476,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4191" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4218" } }, { @@ -3567,7 +3567,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4202" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4229" } }, { @@ -3625,7 +3625,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4213" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4240" } }, { @@ -3883,7 +3883,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4224" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4251" } }, { @@ -4158,7 +4158,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4235" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4262" } }, { @@ -4186,7 +4186,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4246" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4273" } }, { @@ -4224,7 +4224,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4257" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4284" } }, { @@ -4332,7 +4332,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4268" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4295" } }, { @@ -4370,7 +4370,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4279" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4306" } }, { @@ -4399,7 +4399,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4290" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4317" } }, { @@ -4462,7 +4462,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4301" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4328" } }, { @@ -4525,7 +4525,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4312" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4339" } }, { @@ -4570,7 +4570,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4323" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4350" } }, { @@ -4692,7 +4692,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4334" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4361" } }, { @@ -4847,7 +4847,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4345" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4372" } }, { @@ -4969,7 +4969,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4356" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4383" } }, { @@ -5023,7 +5023,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4367" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4394" } }, { @@ -5077,7 +5077,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4378" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4405" } }, { @@ -5132,7 +5132,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4389" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4416" } }, { @@ -5234,7 +5234,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4400" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4427" } }, { @@ -5457,7 +5457,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4411" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4438" } }, { @@ -5640,7 +5640,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4422" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4449" } }, { @@ -5834,7 +5834,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4433" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4460" } }, { @@ -5880,7 +5880,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4444" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4471" } }, { @@ -6030,7 +6030,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4455" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4482" } }, { @@ -6167,7 +6167,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4466" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4493" } }, { @@ -6235,7 +6235,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4477" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4504" } }, { @@ -6352,7 +6352,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4488" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4515" } }, { @@ -6443,7 +6443,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4499" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4526" } }, { @@ -6529,7 +6529,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4510" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4537" } }, { @@ -6556,7 +6556,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4521" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4548" } }, { @@ -6583,7 +6583,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4532" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4559" } }, { @@ -6651,7 +6651,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4543" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4570" } }, { @@ -7157,7 +7157,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4554" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4581" } }, { @@ -7254,7 +7254,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4565" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4592" } }, { @@ -7354,7 +7354,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4576" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4603" } }, { @@ -7454,7 +7454,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4587" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4614" } }, { @@ -7579,7 +7579,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4598" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4625" } }, { @@ -7688,7 +7688,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4609" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4636" } }, { @@ -7791,7 +7791,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4620" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4647" } }, { @@ -7921,7 +7921,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4631" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4658" } }, { @@ -8028,7 +8028,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4642" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4669" } }, { @@ -8089,7 +8089,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4653" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4680" } }, { @@ -8157,7 +8157,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4664" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4691" } }, { @@ -8238,7 +8238,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4675" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4702" } }, { @@ -8402,7 +8402,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4686" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4713" } }, { @@ -8495,7 +8495,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4697" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4724" } }, { @@ -8696,7 +8696,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4708" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4735" } }, { @@ -8807,7 +8807,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4719" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4746" } }, { @@ -8938,7 +8938,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4730" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4757" } }, { @@ -9024,7 +9024,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4741" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4768" } }, { @@ -9051,7 +9051,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4752" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4779" } }, { @@ -9104,7 +9104,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4763" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4790" } }, { @@ -9192,7 +9192,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4774" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4801" } }, { @@ -9643,7 +9643,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4785" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4812" } }, { @@ -9810,7 +9810,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4796" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4823" } }, { @@ -9983,7 +9983,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4807" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4834" } }, { @@ -10051,7 +10051,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4818" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4845" } }, { @@ -10119,7 +10119,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4829" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4856" } }, { @@ -10280,7 +10280,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4840" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4867" } }, { @@ -10325,7 +10325,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4862" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4889" } }, { @@ -10370,7 +10370,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4873" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4900" } }, { @@ -10397,7 +10397,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4884" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L4911" } } ] diff --git a/build/openrpc/miner.json b/build/openrpc/miner.json index 6ecde3499eb..4d26acef468 100644 --- a/build/openrpc/miner.json +++ b/build/openrpc/miner.json @@ -30,7 +30,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5170" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5197" } }, { @@ -109,7 +109,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5181" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5208" } }, { @@ -155,7 +155,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5192" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5219" } }, { @@ -203,7 +203,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5203" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5230" } }, { @@ -251,7 +251,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5214" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5241" } }, { @@ -354,7 +354,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5225" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5252" } }, { @@ -428,7 +428,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5236" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5263" } }, { @@ -591,7 +591,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5247" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5274" } }, { @@ -742,7 +742,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5258" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5285" } }, { @@ -781,7 +781,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5269" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5296" } }, { @@ -913,7 +913,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5280" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5307" } }, { @@ -945,7 +945,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5291" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5318" } }, { @@ -986,7 +986,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5302" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5329" } }, { @@ -1054,7 +1054,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5313" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5340" } }, { @@ -1185,7 +1185,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5324" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5351" } }, { @@ -1316,7 +1316,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5335" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5362" } }, { @@ -1416,7 +1416,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5346" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5373" } }, { @@ -1516,7 +1516,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5357" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5384" } }, { @@ -1616,7 +1616,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5368" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5395" } }, { @@ -1716,7 +1716,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5379" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5406" } }, { @@ -1816,7 +1816,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5390" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5417" } }, { @@ -1916,7 +1916,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5401" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5428" } }, { @@ -2040,7 +2040,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5412" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5439" } }, { @@ -2164,7 +2164,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5423" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5450" } }, { @@ -2279,7 +2279,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5434" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5461" } }, { @@ -2379,7 +2379,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5445" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5472" } }, { @@ -2512,7 +2512,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5456" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5483" } }, { @@ -2636,7 +2636,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5467" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5494" } }, { @@ -2760,7 +2760,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5478" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5505" } }, { @@ -2884,7 +2884,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5489" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5516" } }, { @@ -3017,7 +3017,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5500" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5527" } }, { @@ -3117,7 +3117,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5511" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5538" } }, { @@ -3157,7 +3157,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5522" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5549" } }, { @@ -3229,7 +3229,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5533" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5560" } }, { @@ -3279,7 +3279,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5544" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5571" } }, { @@ -3323,7 +3323,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5555" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5582" } }, { @@ -3364,7 +3364,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5566" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5593" } }, { @@ -3608,7 +3608,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5577" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5604" } }, { @@ -3682,7 +3682,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5588" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5615" } }, { @@ -3732,7 +3732,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5599" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5626" } }, { @@ -3761,7 +3761,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5610" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5637" } }, { @@ -3790,7 +3790,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5621" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5648" } }, { @@ -3846,7 +3846,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5632" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5659" } }, { @@ -3869,7 +3869,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5643" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5670" } }, { @@ -3929,7 +3929,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5654" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5681" } }, { @@ -3968,7 +3968,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5665" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5692" } }, { @@ -4008,7 +4008,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5676" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5703" } }, { @@ -4081,7 +4081,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5687" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5714" } }, { @@ -4145,7 +4145,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5698" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5725" } }, { @@ -4208,7 +4208,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5709" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5736" } }, { @@ -4258,7 +4258,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5720" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5747" } }, { @@ -4817,7 +4817,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5731" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5758" } }, { @@ -4858,7 +4858,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5742" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5769" } }, { @@ -4899,7 +4899,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5753" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5780" } }, { @@ -4940,7 +4940,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5764" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5791" } }, { @@ -4981,7 +4981,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5775" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5802" } }, { @@ -5022,7 +5022,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5786" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5813" } }, { @@ -5053,7 +5053,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5797" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5824" } }, { @@ -5103,7 +5103,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5808" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5835" } }, { @@ -5144,7 +5144,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5819" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5846" } }, { @@ -5183,7 +5183,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5830" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5857" } }, { @@ -5247,7 +5247,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5841" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5868" } }, { @@ -5305,7 +5305,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5852" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5879" } }, { @@ -5752,7 +5752,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5863" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5890" } }, { @@ -5788,7 +5788,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5874" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5901" } }, { @@ -5931,7 +5931,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5885" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5912" } }, { @@ -5987,7 +5987,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5896" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5923" } }, { @@ -6026,7 +6026,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5907" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5934" } }, { @@ -6203,7 +6203,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5918" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5945" } }, { @@ -6255,7 +6255,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5929" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5956" } }, { @@ -6447,7 +6447,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5940" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5967" } }, { @@ -6547,7 +6547,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5951" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5978" } }, { @@ -6601,7 +6601,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5962" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5989" } }, { @@ -6640,7 +6640,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5973" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6000" } }, { @@ -6725,7 +6725,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5984" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6011" } }, { @@ -6919,7 +6919,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L5995" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6022" } }, { @@ -7017,7 +7017,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6006" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6033" } }, { @@ -7149,7 +7149,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6017" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6044" } }, { @@ -7203,7 +7203,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6028" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6055" } }, { @@ -7237,7 +7237,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6039" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6066" } }, { @@ -7324,7 +7324,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6050" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6077" } }, { @@ -7378,7 +7378,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6061" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6088" } }, { @@ -7478,7 +7478,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6072" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6099" } }, { @@ -7555,7 +7555,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6083" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6110" } }, { @@ -7646,7 +7646,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6094" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6121" } }, { @@ -7685,7 +7685,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6105" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6132" } }, { @@ -7801,7 +7801,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6116" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6143" } }, { @@ -9901,7 +9901,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6127" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6154" } } ] diff --git a/build/openrpc/worker.json b/build/openrpc/worker.json index ff31977551e..4305712054b 100644 --- a/build/openrpc/worker.json +++ b/build/openrpc/worker.json @@ -161,7 +161,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6215" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6242" } }, { @@ -252,7 +252,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6226" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6253" } }, { @@ -420,7 +420,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6237" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6264" } }, { @@ -447,7 +447,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6248" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6275" } }, { @@ -597,7 +597,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6259" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6286" } }, { @@ -700,7 +700,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6270" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6297" } }, { @@ -803,7 +803,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6281" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6308" } }, { @@ -925,7 +925,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6292" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6319" } }, { @@ -1135,7 +1135,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6303" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6330" } }, { @@ -1306,7 +1306,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6314" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6341" } }, { @@ -3350,7 +3350,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6325" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6352" } }, { @@ -3470,7 +3470,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6336" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6363" } }, { @@ -3531,7 +3531,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6347" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6374" } }, { @@ -3569,7 +3569,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6358" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6385" } }, { @@ -3729,7 +3729,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6369" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6396" } }, { @@ -3913,7 +3913,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6380" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6407" } }, { @@ -4054,7 +4054,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6391" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6418" } }, { @@ -4107,7 +4107,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6402" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6429" } }, { @@ -4250,7 +4250,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6413" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6440" } }, { @@ -4474,7 +4474,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6424" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6451" } }, { @@ -4601,7 +4601,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6435" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6462" } }, { @@ -4768,7 +4768,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6446" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6473" } }, { @@ -4895,7 +4895,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6457" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6484" } }, { @@ -4933,7 +4933,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6468" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6495" } }, { @@ -4972,7 +4972,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6479" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6506" } }, { @@ -4995,7 +4995,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6490" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6517" } }, { @@ -5034,7 +5034,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6501" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6528" } }, { @@ -5057,7 +5057,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6512" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6539" } }, { @@ -5096,7 +5096,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6523" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6550" } }, { @@ -5130,7 +5130,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6534" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6561" } }, { @@ -5184,7 +5184,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6545" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6572" } }, { @@ -5223,7 +5223,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6556" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6583" } }, { @@ -5262,7 +5262,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6567" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6594" } }, { @@ -5297,7 +5297,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6578" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6605" } }, { @@ -5477,7 +5477,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6589" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6616" } }, { @@ -5506,7 +5506,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6600" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6627" } }, { @@ -5529,7 +5529,7 @@ "deprecated": false, "externalDocs": { "description": "Github remote link", - "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6611" + "url": "https://github.com/filecoin-project/lotus/blob/master/api/proxy_gen.go#L6638" } } ] diff --git a/chain/lf3/ec.go b/chain/lf3/ec.go index e0109f72d74..cfdfa790d6f 100644 --- a/chain/lf3/ec.go +++ b/chain/lf3/ec.go @@ -34,8 +34,10 @@ func (ts *tsWrapper) Key() gpbft.TipSetKey { } func (ts *tsWrapper) Beacon() []byte { - // TODO: verify if correct entries := ts.inner.Blocks()[0].BeaconEntries + if len(entries) == 0 { + return []byte{} + } return entries[len(entries)-1].Data } diff --git a/chain/lf3/f3.go b/chain/lf3/f3.go index c1246c65e72..3225b952bdc 100644 --- a/chain/lf3/f3.go +++ b/chain/lf3/f3.go @@ -12,7 +12,6 @@ import ( "go.uber.org/fx" "golang.org/x/xerrors" - "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-f3" "github.com/filecoin-project/go-f3/blssig" "github.com/filecoin-project/go-f3/gpbft" @@ -25,7 +24,7 @@ import ( ) type F3 struct { - inner *f3.F3 + Inner *f3.F3 signer gpbft.Signer } @@ -68,7 +67,7 @@ func New(lc fx.Lifecycle, params F3Params) (*F3, error) { } fff := &F3{ - inner: module, + Inner: module, signer: &signer{params.Wallet}, } @@ -78,7 +77,7 @@ func New(lc fx.Lifecycle, params F3Params) (*F3, error) { func(ctx context.Context) { liftimeContext, cancel = context.WithCancel(ctx) go func() { - err := fff.inner.Run(liftimeContext) + err := fff.Inner.Run(liftimeContext) if err != nil { log.Errorf("running f3: %+v", err) } @@ -90,11 +89,9 @@ func New(lc fx.Lifecycle, params F3Params) (*F3, error) { return fff, nil } -func (fff *F3) F3Participate(ctx context.Context, miner address.Address) error { - actorID, err := address.IDFromAddress(miner) - if err != nil { - return xerrors.Errorf("miner address in F3Participate not of ID type: %w", err) - } +// Participate runs the participation loop for givine minerID +// it is blocking +func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64) error { for { select { @@ -104,7 +101,7 @@ func (fff *F3) F3Participate(ctx context.Context, miner address.Address) error { } ch := make(chan *gpbft.MessageBuilder, 4) - fff.inner.SubscribeForMessagesToSign(ch) + fff.Inner.SubscribeForMessagesToSign(ch) inner: for { select { @@ -114,19 +111,17 @@ func (fff *F3) F3Participate(ctx context.Context, miner address.Address) error { log.Infof("lost message bus subscription, retrying") break inner } - signatureBuilder, err := mb.PrepareSigningInputs(gpbft.ActorID(actorID)) + signatureBuilder, err := mb.PrepareSigningInputs(gpbft.ActorID(minerIDAddress)) if err != nil { log.Errorf("preparing signing inputs: %+v", err) - continue inner + return err } - // signatureBuilder can be sent over RPC payloadSig, vrfSig, err := signatureBuilder.Sign(fff.signer) if err != nil { log.Errorf("signing message: %+v", err) - continue inner + return err } - // signatureBuilder and signatures can be returned back over RPC - fff.inner.Broadcast(ctx, signatureBuilder, payloadSig, vrfSig) + fff.Inner.Broadcast(ctx, signatureBuilder, payloadSig, vrfSig) case <-ctx.Done(): return nil } diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index 8ec1e7df2e2..b83fd1c0e6d 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -81,6 +81,8 @@ * [EthUninstallFilter](#EthUninstallFilter) * [EthUnsubscribe](#EthUnsubscribe) * [F3](#F3) + * [F3GetCertificate](#F3GetCertificate) + * [F3GetLatestCertificate](#F3GetLatestCertificate) * [F3Participate](#F3Participate) * [Filecoin](#Filecoin) * [FilecoinAddressToEthAddress](#FilecoinAddressToEthAddress) @@ -2167,11 +2169,133 @@ Response: `true` ## F3 +### F3GetCertificate +F3GetCertificate returns a finality certificate at given instance number + + +Perms: read + +Inputs: +```json +[ + 42 +] +``` + +Response: +```json +{ + "GPBFTInstance": 0, + "ECChain": null, + "SupplementalData": { + "Commitments": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "PowerTable": null + }, + "Signers": [ + 0 + ], + "Signature": null, + "PowerTableDelta": null +} +``` + +### F3GetLatestCertificate +F3GetLatestCertificate returns the latest finality certificate + + +Perms: read + +Inputs: `null` + +Response: +```json +{ + "GPBFTInstance": 0, + "ECChain": null, + "SupplementalData": { + "Commitments": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "PowerTable": null + }, + "Signers": [ + 0 + ], + "Signature": null, + "PowerTableDelta": null +} +``` + ### F3Participate F3Participate should be called by a miner node to particpate in signing F3 consensus. The address should be of type ID -This API call won't exit until the caller terminates it. -It is recommended to call this API through websocket connection. +F3Participate can only be used through websocket connection +The returned channel will never be closed by the F3 +If it is closed without the context being cancelled, the caller should retry. Perms: admin diff --git a/go.mod b/go.mod index 242f0c2c5be..ef70ec0a9b5 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( github.com/filecoin-project/go-commp-utils v0.1.3 github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082a837 github.com/filecoin-project/go-crypto v0.0.1 - github.com/filecoin-project/go-f3 v0.0.0-20240622031408-48dd6ac30d75 + github.com/filecoin-project/go-f3 v0.0.0-20240624015334-ee517df37076 github.com/filecoin-project/go-fil-commcid v0.1.0 github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0 github.com/filecoin-project/go-jsonrpc v0.3.2 diff --git a/go.sum b/go.sum index d7c41be7a8e..9d6f57b3031 100644 --- a/go.sum +++ b/go.sum @@ -270,8 +270,8 @@ github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082 github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= github.com/filecoin-project/go-crypto v0.0.1 h1:AcvpSGGCgjaY8y1az6AMfKQWreF/pWO2JJGLl6gCq6o= github.com/filecoin-project/go-crypto v0.0.1/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= -github.com/filecoin-project/go-f3 v0.0.0-20240622031408-48dd6ac30d75 h1:E9oKU5u7GB6T49984iG5Uuy8aG7NmBDQxwlqP44AXSA= -github.com/filecoin-project/go-f3 v0.0.0-20240622031408-48dd6ac30d75/go.mod h1:Wry0mNa8z767TBHb7N0cVb+9j00KsHbD2pzsC3li4R8= +github.com/filecoin-project/go-f3 v0.0.0-20240624015334-ee517df37076 h1:fe0hyya7+Y+M4VQeXyuBDokPQ4gHW01PHOnPBVdnlrg= +github.com/filecoin-project/go-f3 v0.0.0-20240624015334-ee517df37076/go.mod h1:Wry0mNa8z767TBHb7N0cVb+9j00KsHbD2pzsC3li4R8= github.com/filecoin-project/go-fil-commcid v0.0.0-20201016201715-d41df56b4f6a/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= github.com/filecoin-project/go-fil-commcid v0.1.0 h1:3R4ds1A9r6cr8mvZBfMYxTS88OqLYEo6roi+GiIeOh8= github.com/filecoin-project/go-fil-commcid v0.1.0/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= diff --git a/node/impl/full.go b/node/impl/full.go index 4fba6f0ee1d..cf8048eb3a4 100644 --- a/node/impl/full.go +++ b/node/impl/full.go @@ -9,7 +9,6 @@ import ( "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" - "github.com/filecoin-project/lotus/chain/lf3" "github.com/filecoin-project/lotus/node/impl/common" "github.com/filecoin-project/lotus/node/impl/full" "github.com/filecoin-project/lotus/node/impl/market" @@ -35,7 +34,7 @@ type FullNodeAPI struct { full.SyncAPI full.EthAPI full.ActorEventsAPI - *lf3.F3 + full.F3API DS dtypes.MetadataDS NetworkName dtypes.NetworkName diff --git a/node/impl/full/f3.go b/node/impl/full/f3.go new file mode 100644 index 00000000000..315df373f93 --- /dev/null +++ b/node/impl/full/f3.go @@ -0,0 +1,41 @@ +package full + +import ( + "context" + + "go.uber.org/fx" + "golang.org/x/xerrors" + + "github.com/filecoin-project/go-address" + "github.com/filecoin-project/go-f3/certs" + + "github.com/filecoin-project/lotus/chain/lf3" +) + +type F3API struct { + fx.In + + F3 *lf3.F3 +} + +func (f3api *F3API) F3Participate(ctx context.Context, miner address.Address) (<-chan error, error) { + actorID, err := address.IDFromAddress(miner) + if err != nil { + return nil, xerrors.Errorf("miner address in F3Participate not of ID type: %w", err) + } + ch := make(chan error, 1) + + go func() { + ch <- f3api.F3.Participate(ctx, actorID) + close(ch) + }() + return ch, nil +} + +func (f3api *F3API) F3GetCertificate(ctx context.Context, instance uint64) (*certs.FinalityCertificate, error) { + return f3api.F3.Inner.GetCert(ctx, instance) +} + +func (f3api *F3API) F3GetLatestCertificate(ctx context.Context) (*certs.FinalityCertificate, error) { + return f3api.F3.Inner.GetLatestCert(ctx) +} diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index 1f447e2f7b2..72a669e43a3 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -354,10 +354,17 @@ func SectorStorage(mctx helpers.MetricsCtx, lc fx.Lifecycle, lstor *paths.Local, func F3Participation(mctx helpers.MetricsCtx, lc fx.Lifecycle, api v1api.FullNode, minerAddress dtypes.MinerAddress) error { ctx := helpers.LifecycleCtx(mctx, lc) go func() { - err := api.F3Participate(ctx, address.Address(minerAddress)) - if err != nil && !errors.Is(err, context.Canceled) { - // TODO: retry logic? - log.Errorf("error while participating in F3") + for { + ch, err := api.F3Participate(ctx, address.Address(minerAddress)) + if errors.Is(err, context.Canceled) { + return + } else if err != nil { + log.Errorf("error while trying to participate in F3: %+v", err) + time.Sleep(1 * time.Second) + continue + } + <-ch + log.Warnf("F3Participate exited, retrying") } }() return nil From d3245a44dbe08c955da80c34ebaf0361a4ded6ac Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Mon, 24 Jun 2024 17:00:41 +0200 Subject: [PATCH 08/32] Cleanup, network params, change the behaviour of F3Participate Signed-off-by: Jakub Sztandera --- api/api_full.go | 3 ++ build/params_2k.go | 3 ++ build/params_butterfly.go | 3 ++ build/params_calibnet.go | 4 ++- build/params_interop.go | 3 ++ build/params_mainnet.go | 3 ++ build/params_testground.go | 8 +++-- chain/lf3/ec.go | 1 - chain/lf3/f3.go | 64 ++++++++++++++++++++++++------------ chain/lf3/signer.go | 3 +- go.mod | 1 + go.sum | 1 + node/builder_chain.go | 3 +- node/impl/full/f3.go | 29 +++++++++++++--- node/modules/storageminer.go | 24 +++++++++++--- 15 files changed, 115 insertions(+), 38 deletions(-) diff --git a/api/api_full.go b/api/api_full.go index 90cd950123f..7c8286ae9d7 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -866,6 +866,9 @@ type FullNode interface { // F3Participate can only be used through websocket connection // The returned channel will never be closed by the F3 // If it is closed without the context being cancelled, the caller should retry. + // The values rentured on the channel will inform the caller about participation + // Nil will be sent if participation succeeded, errors will be sent in case of errors + // The caller should not abort if an error is sent over the channel. F3Participate(ctx context.Context, minerID address.Address) (<-chan error, error) //perm:admin // F3GetCertificate returns a finality certificate at given instance number F3GetCertificate(ctx context.Context, instance uint64) (*certs.FinalityCertificate, error) //perm:read diff --git a/build/params_2k.go b/build/params_2k.go index f1907ae0bc3..956121d65bc 100644 --- a/build/params_2k.go +++ b/build/params_2k.go @@ -190,3 +190,6 @@ const BootstrapPeerThreshold = 1 const Eip155ChainId = 31415926 var WhitelistedBlock = cid.Undef + +const F3Enabled = true +const F3BootstrapEpoch abi.ChainEpoch = 1000 diff --git a/build/params_butterfly.go b/build/params_butterfly.go index ad2f8794661..da1703726c4 100644 --- a/build/params_butterfly.go +++ b/build/params_butterfly.go @@ -106,3 +106,6 @@ const BootstrapPeerThreshold = 2 const Eip155ChainId = 3141592 var WhitelistedBlock = cid.Undef + +const F3Enabled = true +const F3BootstrapEpoch abi.ChainEpoch = 1000 diff --git a/build/params_calibnet.go b/build/params_calibnet.go index bbcc253220c..a7bcc8dc899 100644 --- a/build/params_calibnet.go +++ b/build/params_calibnet.go @@ -135,7 +135,6 @@ func init() { } BuildType = BuildCalibnet - } const BlockDelaySecs = uint64(builtin2.EpochDurationSeconds) @@ -152,3 +151,6 @@ const BootstrapPeerThreshold = 4 const Eip155ChainId = 314159 var WhitelistedBlock = cid.Undef + +const F3Enabled = false +const F3BootstrapEpoch abi.ChainEpoch = 999999999999999 diff --git a/build/params_interop.go b/build/params_interop.go index b5259c34acf..0b61b1b826b 100644 --- a/build/params_interop.go +++ b/build/params_interop.go @@ -146,3 +146,6 @@ const BootstrapPeerThreshold = 2 const Eip155ChainId = 3141592 var WhitelistedBlock = cid.Undef + +const F3Enabled = true +const F3BootstrapEpoch abi.ChainEpoch = 1000 diff --git a/build/params_mainnet.go b/build/params_mainnet.go index e644ca1ba9b..fc825c209e4 100644 --- a/build/params_mainnet.go +++ b/build/params_mainnet.go @@ -168,3 +168,6 @@ const Eip155ChainId = 314 // WhitelistedBlock skips checks on message validity in this block to sidestep the zero-bls signature var WhitelistedBlock = MustParseCid("bafy2bzaceapyg2uyzk7vueh3xccxkuwbz3nxewjyguoxvhx77malc2lzn2ybi") + +const F3Enabled = false +const F3BootstrapEpoch abi.ChainEpoch = 999999999999999 diff --git a/build/params_testground.go b/build/params_testground.go index 3ba63409e91..7ed7e59b646 100644 --- a/build/params_testground.go +++ b/build/params_testground.go @@ -133,9 +133,11 @@ var ( Devnet = true ZeroAddress = MustParseAddress("f3yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaby2smx7a") - WhitelistedBlock = cid.Undef - BootstrappersFile = "" - GenesisFile = "" + WhitelistedBlock = cid.Undef + BootstrappersFile = "" + GenesisFile = "" + F3Enabled = false + F3BootstrapEpoch abi.ChainEpoch = -30 ) const Finality = policy.ChainFinality diff --git a/chain/lf3/ec.go b/chain/lf3/ec.go index cfdfa790d6f..9a273723f78 100644 --- a/chain/lf3/ec.go +++ b/chain/lf3/ec.go @@ -114,7 +114,6 @@ func (ec *ecWrapper) GetPowerTable(ctx context.Context, tskF3 gpbft.TipSetKey) ( if err != nil { return nil, xerrors.Errorf("getting tipset by key for get parent: %w", err) } - //log.Infof("collecting power table for: %d", ts.Height()) stCid := ts.ParentState() sm := ec.StateManager diff --git a/chain/lf3/f3.go b/chain/lf3/f3.go index 3225b952bdc..526dad437bd 100644 --- a/chain/lf3/f3.go +++ b/chain/lf3/f3.go @@ -2,6 +2,7 @@ package lf3 import ( "context" + "errors" "time" "github.com/ipfs/go-datastore" @@ -45,12 +46,14 @@ var log = logging.Logger("f3") func New(lc fx.Lifecycle, params F3Params) (*F3, error) { _ = logging.SetLogLevel("f3", "DEBUG") + manifest := f3.LocalnetManifest() manifest.NetworkName = gpbft.NetworkName(params.NetworkName) - manifest.ECDelay = time.Duration(build.BlockDelaySecs) * time.Second + manifest.ECDelay = 2 * time.Duration(build.BlockDelaySecs) * time.Second manifest.ECPeriod = manifest.ECDelay - manifest.BootstrapEpoch = 210 - manifest.ECFinality = 200 + manifest.BootstrapEpoch = int64(build.F3BootstrapEpoch) + manifest.ECFinality = int64(build.Finality) + ds := namespace.Wrap(params.Datastore, datastore.NewKey("/f3")) ec := &ecWrapper{ ChainStore: params.ChainStore, @@ -90,40 +93,59 @@ func New(lc fx.Lifecycle, params F3Params) (*F3, error) { } // Participate runs the participation loop for givine minerID -// it is blocking -func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64) error { +// It is blocking +func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh chan<- error) { + defer close(errCh) for { select { case <-ctx.Done(): - return nil + return default: } - ch := make(chan *gpbft.MessageBuilder, 4) - fff.Inner.SubscribeForMessagesToSign(ch) + // create channel for some buffer so we don't get dropped under high load + msgCh := make(chan *gpbft.MessageBuilder, 4) + // SubscribeForMessagesToSign will close the channel if it fills up + // so using the closer is not necessary, we can just drop it on the floor + _ = fff.Inner.SubscribeForMessagesToSign(msgCh) + + participateOnce := func(mb *gpbft.MessageBuilder) error { + signatureBuilder, err := mb.PrepareSigningInputs(gpbft.ActorID(minerIDAddress)) + if errors.Is(err, gpbft.ErrNoPower) { + // we don't have any power in F3, continue + log.Debug("no power to participate in F3: %+v", err) + return nil + } + if err != nil { + log.Errorf("preparing signing inputs: %+v", err) + return err + } + // if worker keys were stored not in the node, the signatureBuilder can be send there + // the sign can be called where the keys are stored and then + // {signatureBuilder, payloadSig, vrfSig} can be sent back to lotus for broadcast + payloadSig, vrfSig, err := signatureBuilder.Sign(fff.signer) + if err != nil { + log.Errorf("signing message: %+v", err) + return err + } + fff.Inner.Broadcast(ctx, signatureBuilder, payloadSig, vrfSig) + return nil + } + inner: for { select { - case mb, ok := <-ch: + case mb, ok := <-msgCh: if !ok { // the broadcast bus kicked us out log.Infof("lost message bus subscription, retrying") break inner } - signatureBuilder, err := mb.PrepareSigningInputs(gpbft.ActorID(minerIDAddress)) - if err != nil { - log.Errorf("preparing signing inputs: %+v", err) - return err - } - payloadSig, vrfSig, err := signatureBuilder.Sign(fff.signer) - if err != nil { - log.Errorf("signing message: %+v", err) - return err - } - fff.Inner.Broadcast(ctx, signatureBuilder, payloadSig, vrfSig) + + errCh <- participateOnce(mb) case <-ctx.Done(): - return nil + return } } diff --git a/chain/lf3/signer.go b/chain/lf3/signer.go index ef6b748455d..e78d1924eeb 100644 --- a/chain/lf3/signer.go +++ b/chain/lf3/signer.go @@ -15,7 +15,8 @@ type signer struct { wallet api.Wallet } -// Signs a message with the secret key corresponding to a public key. +// Sign signs a message with the private key corresponding to a public key. +// The the key must be known by the wallet and be of BLS type. func (s *signer) Sign(sender gpbft.PubKey, msg []byte) ([]byte, error) { addr, err := address.NewBLSAddress(sender) if err != nil { diff --git a/go.mod b/go.mod index ef70ec0a9b5..7dc73c0e5b8 100644 --- a/go.mod +++ b/go.mod @@ -99,6 +99,7 @@ require ( github.com/ipld/go-ipld-prime v0.21.0 github.com/ipni/go-libipni v0.0.8 github.com/jackc/pgerrcode v0.0.0-20240316143900-6e2875d9b438 + github.com/jpillora/backoff v1.0.0 github.com/kelseyhightower/envconfig v1.4.0 github.com/klauspost/compress v1.17.8 github.com/koalacxr/quantile v0.0.1 diff --git a/go.sum b/go.sum index 9d6f57b3031..e1ace140f89 100644 --- a/go.sum +++ b/go.sum @@ -753,6 +753,7 @@ github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/jrick/logrotate v1.0.0 h1:lQ1bL/n9mBNeIXoTUoYRlK4dHuNJVofX9oWqBtPnSzI= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= diff --git a/node/builder_chain.go b/node/builder_chain.go index 7ef537965f5..c42a59cc321 100644 --- a/node/builder_chain.go +++ b/node/builder_chain.go @@ -149,10 +149,9 @@ var ChainNode = Options( Override(RunPeerMgrKey, modules.RunPeerMgr), Override(HandleIncomingMessagesKey, modules.HandleIncomingMessages), Override(HandleIncomingBlocksKey, modules.HandleIncomingBlocks), - //Override(F3Key, lf3.New), ), - Override(new(*lf3.F3), lf3.New), + ApplyIf(build.F3Enabled, Override(new(*lf3.F3), lf3.New)), ) func ConfigFullNode(c interface{}) Option { diff --git a/node/impl/full/f3.go b/node/impl/full/f3.go index 315df373f93..80babb86a8a 100644 --- a/node/impl/full/f3.go +++ b/node/impl/full/f3.go @@ -2,6 +2,7 @@ package full import ( "context" + "errors" "go.uber.org/fx" "golang.org/x/xerrors" @@ -15,27 +16,45 @@ import ( type F3API struct { fx.In - F3 *lf3.F3 + F3 *lf3.F3 `optional:"true"` } +var ErrF3Disabled = errors.New("F3 is disabled") + func (f3api *F3API) F3Participate(ctx context.Context, miner address.Address) (<-chan error, error) { + // make channel with some buffere to avoid blocking under higher load + errCh := make(chan error, 4) + + if f3api.F3 == nil { + log.Infof("F3Participate called for %v, F3 is disabled", miner) + // we return a channel that will never be closed + return errCh, nil + } + + log.Infof("starting F3 participation for %v", miner) + actorID, err := address.IDFromAddress(miner) if err != nil { return nil, xerrors.Errorf("miner address in F3Participate not of ID type: %w", err) } - ch := make(chan error, 1) go func() { - ch <- f3api.F3.Participate(ctx, actorID) - close(ch) + // Participate takes control of closing the channel + f3api.F3.Participate(ctx, actorID, errCh) }() - return ch, nil + return errCh, nil } func (f3api *F3API) F3GetCertificate(ctx context.Context, instance uint64) (*certs.FinalityCertificate, error) { + if f3api.F3 == nil { + return nil, ErrF3Disabled + } return f3api.F3.Inner.GetCert(ctx, instance) } func (f3api *F3API) F3GetLatestCertificate(ctx context.Context) (*certs.FinalityCertificate, error) { + if f3api.F3 == nil { + return nil, ErrF3Disabled + } return f3api.F3.Inner.GetLatestCert(ctx) } diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index 72a669e43a3..f2226502b83 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -10,6 +10,7 @@ import ( "github.com/google/uuid" "github.com/ipfs/go-datastore" "github.com/ipfs/go-datastore/namespace" + "github.com/jpillora/backoff" "go.uber.org/fx" "go.uber.org/multierr" "golang.org/x/xerrors" @@ -353,18 +354,33 @@ func SectorStorage(mctx helpers.MetricsCtx, lc fx.Lifecycle, lstor *paths.Local, func F3Participation(mctx helpers.MetricsCtx, lc fx.Lifecycle, api v1api.FullNode, minerAddress dtypes.MinerAddress) error { ctx := helpers.LifecycleCtx(mctx, lc) + b := &backoff.Backoff{ + Min: 1 * time.Second, + Max: 1 * time.Minute, + Factor: 1.5, + Jitter: false, + } go func() { for { ch, err := api.F3Participate(ctx, address.Address(minerAddress)) + if errors.Is(err, context.Canceled) { return } else if err != nil { - log.Errorf("error while trying to participate in F3: %+v", err) - time.Sleep(1 * time.Second) + log.Errorf("while starting to participate in F3: %+v", err) + // use exponential backoff to avoid hotloop + time.Sleep(b.Duration()) continue } - <-ch - log.Warnf("F3Participate exited, retrying") + + for err := range ch { + // we have communication with F3 in lotus, reset the backoff + b.Reset() + if err != nil { + log.Warnf("participating in F3 encountered an error: %v", err) + } + } + log.Info("F3Participate exited, retrying") } }() return nil From bef79be7779e7e0a4ce774ae94525f838bcebca0 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Mon, 24 Jun 2024 17:02:16 +0200 Subject: [PATCH 09/32] Update to go-f3@main Signed-off-by: Jakub Sztandera --- chain/lf3/f3.go | 2 +- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/chain/lf3/f3.go b/chain/lf3/f3.go index 526dad437bd..ab42cd0b006 100644 --- a/chain/lf3/f3.go +++ b/chain/lf3/f3.go @@ -62,7 +62,7 @@ func New(lc fx.Lifecycle, params F3Params) (*F3, error) { } verif := blssig.VerifierWithKeyOnG1() - module, err := f3.New(context.TODO(), 1000 /*TODO expose signing*/, manifest, ds, + module, err := f3.New(context.TODO(), manifest, ds, params.Host, params.PubSub, verif, ec, log, nil) if err != nil { diff --git a/go.mod b/go.mod index 7dc73c0e5b8..17a173d3c24 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( github.com/filecoin-project/go-commp-utils v0.1.3 github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082a837 github.com/filecoin-project/go-crypto v0.0.1 - github.com/filecoin-project/go-f3 v0.0.0-20240624015334-ee517df37076 + github.com/filecoin-project/go-f3 v0.0.0-20240624141300-2ddf41033469 github.com/filecoin-project/go-fil-commcid v0.1.0 github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0 github.com/filecoin-project/go-jsonrpc v0.3.2 diff --git a/go.sum b/go.sum index e1ace140f89..6ad12166f47 100644 --- a/go.sum +++ b/go.sum @@ -270,8 +270,8 @@ github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082 github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= github.com/filecoin-project/go-crypto v0.0.1 h1:AcvpSGGCgjaY8y1az6AMfKQWreF/pWO2JJGLl6gCq6o= github.com/filecoin-project/go-crypto v0.0.1/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= -github.com/filecoin-project/go-f3 v0.0.0-20240624015334-ee517df37076 h1:fe0hyya7+Y+M4VQeXyuBDokPQ4gHW01PHOnPBVdnlrg= -github.com/filecoin-project/go-f3 v0.0.0-20240624015334-ee517df37076/go.mod h1:Wry0mNa8z767TBHb7N0cVb+9j00KsHbD2pzsC3li4R8= +github.com/filecoin-project/go-f3 v0.0.0-20240624141300-2ddf41033469 h1:ewQqwxSdESrnzUschk3T6ZH0Wm2/X0coV9Gctdebe7k= +github.com/filecoin-project/go-f3 v0.0.0-20240624141300-2ddf41033469/go.mod h1:Wry0mNa8z767TBHb7N0cVb+9j00KsHbD2pzsC3li4R8= github.com/filecoin-project/go-fil-commcid v0.0.0-20201016201715-d41df56b4f6a/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= github.com/filecoin-project/go-fil-commcid v0.1.0 h1:3R4ds1A9r6cr8mvZBfMYxTS88OqLYEo6roi+GiIeOh8= github.com/filecoin-project/go-fil-commcid v0.1.0/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= From 75a917e250d5ee021dc8e3ff0012e6fa54d4c685 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Mon, 24 Jun 2024 17:05:00 +0200 Subject: [PATCH 10/32] Add one more context guard Signed-off-by: Jakub Sztandera --- node/modules/storageminer.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index f2226502b83..de530b18adf 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -362,6 +362,9 @@ func F3Participation(mctx helpers.MetricsCtx, lc fx.Lifecycle, api v1api.FullNod } go func() { for { + if ctx.Err() != nil { + return + } ch, err := api.F3Participate(ctx, address.Address(minerAddress)) if errors.Is(err, context.Canceled) { @@ -381,6 +384,7 @@ func F3Participation(mctx helpers.MetricsCtx, lc fx.Lifecycle, api v1api.FullNod } } log.Info("F3Participate exited, retrying") + time.Sleep(b.Duration()) } }() return nil From c404a6df7b9782dc8f9eae9a458761b3767ab453 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Mon, 24 Jun 2024 17:14:37 +0200 Subject: [PATCH 11/32] Fix building Signed-off-by: Jakub Sztandera --- node/builder_chain.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/builder_chain.go b/node/builder_chain.go index c42a59cc321..9817adfbf6a 100644 --- a/node/builder_chain.go +++ b/node/builder_chain.go @@ -151,7 +151,7 @@ var ChainNode = Options( Override(HandleIncomingBlocksKey, modules.HandleIncomingBlocks), ), - ApplyIf(build.F3Enabled, Override(new(*lf3.F3), lf3.New)), + If(build.F3Enabled, Override(new(*lf3.F3), lf3.New)), ) func ConfigFullNode(c interface{}) Option { From 919ae0f497f5807b5855dda0b037b6857bfc3acb Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Mon, 24 Jun 2024 17:20:47 +0200 Subject: [PATCH 12/32] make gen Signed-off-by: Jakub Sztandera --- documentation/en/api-v1-unstable-methods.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index b83fd1c0e6d..de5407d6269 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -2296,6 +2296,9 @@ The address should be of type ID F3Participate can only be used through websocket connection The returned channel will never be closed by the F3 If it is closed without the context being cancelled, the caller should retry. +The values rentured on the channel will inform the caller about participation +Nil will be sent if participation succeeded, errors will be sent in case of errors +The caller should not abort if an error is sent over the channel. Perms: admin From 791621bec8aa01d2edb646228ffc60e57796fd86 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Mon, 24 Jun 2024 20:42:10 +0200 Subject: [PATCH 13/32] Add a log, don't start F3Participation if built without F3 Signed-off-by: Jakub Sztandera --- chain/lf3/f3.go | 8 ++++---- node/builder_miner.go | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/chain/lf3/f3.go b/chain/lf3/f3.go index ab42cd0b006..5fb43dee14d 100644 --- a/chain/lf3/f3.go +++ b/chain/lf3/f3.go @@ -22,6 +22,7 @@ import ( "github.com/filecoin-project/lotus/chain/stmgr" "github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/node/modules/dtypes" + "github.com/filecoin-project/lotus/node/modules/helpers" ) type F3 struct { @@ -44,9 +45,7 @@ type F3Params struct { var log = logging.Logger("f3") -func New(lc fx.Lifecycle, params F3Params) (*F3, error) { - _ = logging.SetLogLevel("f3", "DEBUG") - +func New(mctx helpers.MetricsCtx, lc fx.Lifecycle, params F3Params) (*F3, error) { manifest := f3.LocalnetManifest() manifest.NetworkName = gpbft.NetworkName(params.NetworkName) manifest.ECDelay = 2 * time.Duration(build.BlockDelaySecs) * time.Second @@ -62,7 +61,7 @@ func New(lc fx.Lifecycle, params F3Params) (*F3, error) { } verif := blssig.VerifierWithKeyOnG1() - module, err := f3.New(context.TODO(), manifest, ds, + module, err := f3.New(mctx, manifest, ds, params.Host, params.PubSub, verif, ec, log, nil) if err != nil { @@ -129,6 +128,7 @@ func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh cha log.Errorf("signing message: %+v", err) return err } + log.Infof("miner with id %d is sending message in F3", minerIDAddress) fff.Inner.Broadcast(ctx, signatureBuilder, payloadSig, vrfSig) return nil } diff --git a/node/builder_miner.go b/node/builder_miner.go index b39ae02c7af..b770d390c65 100644 --- a/node/builder_miner.go +++ b/node/builder_miner.go @@ -141,7 +141,7 @@ func ConfigStorageMiner(c interface{}) Option { Override(new(config.HarmonyDB), cfg.HarmonyDB), Override(new(harmonydb.ITestID), harmonydb.ITestID("")), Override(new(*ctladdr.AddressSelector), modules.AddressSelector(&cfg.Addresses)), - Override(F3Participation, modules.F3Participation), + If(build.F3Enabled, Override(F3Participation, modules.F3Participation)), ) } From 9a7f0f27b82e0e3f96447f96a1147b44e9836d76 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Mon, 24 Jun 2024 20:57:24 +0200 Subject: [PATCH 14/32] Resolve errors Signed-off-by: Jakub Sztandera --- api/api_full.go | 7 +++---- api/mocks/mock_full.go | 4 ++-- api/proxy_gen.go | 6 +++--- chain/lf3/f3.go | 10 ++++++++-- documentation/en/api-v1-unstable-methods.md | 7 +++---- node/impl/full/f3.go | 4 ++-- node/modules/storageminer.go | 2 +- 7 files changed, 22 insertions(+), 18 deletions(-) diff --git a/api/api_full.go b/api/api_full.go index 7c8286ae9d7..b71d975f434 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -866,10 +866,9 @@ type FullNode interface { // F3Participate can only be used through websocket connection // The returned channel will never be closed by the F3 // If it is closed without the context being cancelled, the caller should retry. - // The values rentured on the channel will inform the caller about participation - // Nil will be sent if participation succeeded, errors will be sent in case of errors - // The caller should not abort if an error is sent over the channel. - F3Participate(ctx context.Context, minerID address.Address) (<-chan error, error) //perm:admin + // The values returned on the channel will inform the caller about participation + // Empty strings will be sent if participation succeeded, non-empty strings explain possible errors. + F3Participate(ctx context.Context, minerID address.Address) (<-chan string, error) //perm:admin // F3GetCertificate returns a finality certificate at given instance number F3GetCertificate(ctx context.Context, instance uint64) (*certs.FinalityCertificate, error) //perm:read // F3GetLatestCertificate returns the latest finality certificate diff --git a/api/mocks/mock_full.go b/api/mocks/mock_full.go index 3b4b726338d..163dde8b1ad 100644 --- a/api/mocks/mock_full.go +++ b/api/mocks/mock_full.go @@ -1184,10 +1184,10 @@ func (mr *MockFullNodeMockRecorder) F3GetLatestCertificate(arg0 interface{}) *go } // F3Participate mocks base method. -func (m *MockFullNode) F3Participate(arg0 context.Context, arg1 address.Address) (<-chan error, error) { +func (m *MockFullNode) F3Participate(arg0 context.Context, arg1 address.Address) (<-chan string, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "F3Participate", arg0, arg1) - ret0, _ := ret[0].(<-chan error) + ret0, _ := ret[0].(<-chan string) ret1, _ := ret[1].(error) return ret0, ret1 } diff --git a/api/proxy_gen.go b/api/proxy_gen.go index 438ef29cf97..6657792f0c8 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -254,7 +254,7 @@ type FullNodeMethods struct { F3GetLatestCertificate func(p0 context.Context) (*certs.FinalityCertificate, error) `perm:"read"` - F3Participate func(p0 context.Context, p1 address.Address) (<-chan error, error) `perm:"admin"` + F3Participate func(p0 context.Context, p1 address.Address) (<-chan string, error) `perm:"admin"` FilecoinAddressToEthAddress func(p0 context.Context, p1 address.Address) (ethtypes.EthAddress, error) `perm:"read"` @@ -2092,14 +2092,14 @@ func (s *FullNodeStub) F3GetLatestCertificate(p0 context.Context) (*certs.Finali return nil, ErrNotSupported } -func (s *FullNodeStruct) F3Participate(p0 context.Context, p1 address.Address) (<-chan error, error) { +func (s *FullNodeStruct) F3Participate(p0 context.Context, p1 address.Address) (<-chan string, error) { if s.Internal.F3Participate == nil { return nil, ErrNotSupported } return s.Internal.F3Participate(p0, p1) } -func (s *FullNodeStub) F3Participate(p0 context.Context, p1 address.Address) (<-chan error, error) { +func (s *FullNodeStub) F3Participate(p0 context.Context, p1 address.Address) (<-chan string, error) { return nil, ErrNotSupported } diff --git a/chain/lf3/f3.go b/chain/lf3/f3.go index 5fb43dee14d..94af9d6e4ce 100644 --- a/chain/lf3/f3.go +++ b/chain/lf3/f3.go @@ -93,7 +93,7 @@ func New(mctx helpers.MetricsCtx, lc fx.Lifecycle, params F3Params) (*F3, error) // Participate runs the participation loop for givine minerID // It is blocking -func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh chan<- error) { +func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh chan<- string) { defer close(errCh) for { @@ -143,7 +143,13 @@ func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh cha break inner } - errCh <- participateOnce(mb) + err := participateOnce(mb) + if err != nil { + errCh <- err.Error() + } else { + errCh <- "" + } + case <-ctx.Done(): return } diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index de5407d6269..55fa58c3b15 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -2296,9 +2296,8 @@ The address should be of type ID F3Participate can only be used through websocket connection The returned channel will never be closed by the F3 If it is closed without the context being cancelled, the caller should retry. -The values rentured on the channel will inform the caller about participation -Nil will be sent if participation succeeded, errors will be sent in case of errors -The caller should not abort if an error is sent over the channel. +The values returned on the channel will inform the caller about participation +Empty strings will be sent if participation succeeded, non-empty strings explain possible errors. Perms: admin @@ -2310,7 +2309,7 @@ Inputs: ] ``` -Response: `{}` +Response: `"string value"` ## Filecoin diff --git a/node/impl/full/f3.go b/node/impl/full/f3.go index 80babb86a8a..98ac6c69b25 100644 --- a/node/impl/full/f3.go +++ b/node/impl/full/f3.go @@ -21,9 +21,9 @@ type F3API struct { var ErrF3Disabled = errors.New("F3 is disabled") -func (f3api *F3API) F3Participate(ctx context.Context, miner address.Address) (<-chan error, error) { +func (f3api *F3API) F3Participate(ctx context.Context, miner address.Address) (<-chan string, error) { // make channel with some buffere to avoid blocking under higher load - errCh := make(chan error, 4) + errCh := make(chan string, 4) if f3api.F3 == nil { log.Infof("F3Participate called for %v, F3 is disabled", miner) diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index de530b18adf..871784227eb 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -379,7 +379,7 @@ func F3Participation(mctx helpers.MetricsCtx, lc fx.Lifecycle, api v1api.FullNod for err := range ch { // we have communication with F3 in lotus, reset the backoff b.Reset() - if err != nil { + if err != "" { log.Warnf("participating in F3 encountered an error: %v", err) } } From 9689014c56989784bb0316ea225cfc1124ef7aaa Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Tue, 25 Jun 2024 16:17:44 +0200 Subject: [PATCH 15/32] Add additional checks for miner power Signed-off-by: Jakub Sztandera --- chain/lf3/ec.go | 48 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/chain/lf3/ec.go b/chain/lf3/ec.go index 9a273723f78..06db7f3b1a4 100644 --- a/chain/lf3/ec.go +++ b/chain/lf3/ec.go @@ -13,10 +13,12 @@ import ( "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/actors/builtin/power" "github.com/filecoin-project/lotus/chain/stmgr" "github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/chain/types" + "github.com/filecoin-project/lotus/chain/vm" ) type ecWrapper struct { @@ -114,13 +116,16 @@ func (ec *ecWrapper) GetPowerTable(ctx context.Context, tskF3 gpbft.TipSetKey) ( if err != nil { return nil, xerrors.Errorf("getting tipset by key for get parent: %w", err) } - stCid := ts.ParentState() sm := ec.StateManager - powerAct, err := sm.LoadActor(ctx, power.Address, ts) + state, err := sm.ParentState(ts) if err != nil { - return nil, xerrors.Errorf("loading power actor: %w", err) + return nil, xerrors.Errorf("loading the state tree: %w", err) + } + powerAct, err := state.GetActor(power.Address) + if err != nil { + return nil, xerrors.Errorf("getting the power actor: %w", err) } powerState, err := power.Load(ec.ChainStore.ActorStore(ctx), powerAct) @@ -129,13 +134,13 @@ func (ec *ecWrapper) GetPowerTable(ctx context.Context, tskF3 gpbft.TipSetKey) ( } var powerEntries gpbft.PowerEntries - err = powerState.ForEachClaim(func(miner address.Address, claim power.Claim) error { + err = powerState.ForEachClaim(func(minerAddr address.Address, claim power.Claim) error { if claim.QualityAdjPower.LessThanEqual(big.Zero()) { return nil } // TODO: optimize - ok, err := powerState.MinerNominalPowerMeetsConsensusMinimum(miner) + ok, err := powerState.MinerNominalPowerMeetsConsensusMinimum(minerAddr) if err != nil { return xerrors.Errorf("checking consensus minimums: %w", err) } @@ -143,7 +148,7 @@ func (ec *ecWrapper) GetPowerTable(ctx context.Context, tskF3 gpbft.TipSetKey) ( return nil } - id, err := address.IDFromAddress(miner) + id, err := address.IDFromAddress(minerAddr) if err != nil { return xerrors.Errorf("transforming address to ID: %w", err) } @@ -152,10 +157,37 @@ func (ec *ecWrapper) GetPowerTable(ctx context.Context, tskF3 gpbft.TipSetKey) ( ID: gpbft.ActorID(id), Power: claim.QualityAdjPower.Int, } - waddr, err := stmgr.GetMinerWorkerRaw(ctx, sm, stCid, miner) + + act, err := state.GetActor(minerAddr) + if err != nil { + return xerrors.Errorf("(get sset) failed to load miner actor: %w", err) + } + mstate, err := miner.Load(ec.ChainStore.ActorStore(ctx), act) + if err != nil { + return xerrors.Errorf("(get sset) failed to load miner actor state: %w", err) + } + + info, err := mstate.Info() + if err != nil { + return xerrors.Errorf("failed to load actor info: %w", err) + } + // check fee debt + if debt, err := mstate.FeeDebt(); err != nil { + return err + } else if !debt.IsZero() { + // fee debt don't add the miner to power table + return nil + } + // check consensus faults + if ts.Height() <= info.ConsensusFaultElapsed { + return nil + } + + waddr, err := vm.ResolveToDeterministicAddr(state, ec.ChainStore.ActorStore(ctx), info.Worker) if err != nil { - return xerrors.Errorf("GetMinerWorkerRaw failed: %w", err) + return xerrors.Errorf("resolve miner worker address: %w", err) } + if waddr.Protocol() != address.BLS { return xerrors.Errorf("wrong type of worker address") } From 12027887c0262991150b56dd3122b875965e13d7 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Wed, 26 Jun 2024 15:54:44 -0400 Subject: [PATCH 16/32] update go f3 --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 17a173d3c24..8ed96e343ac 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( github.com/filecoin-project/go-commp-utils v0.1.3 github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082a837 github.com/filecoin-project/go-crypto v0.0.1 - github.com/filecoin-project/go-f3 v0.0.0-20240624141300-2ddf41033469 + github.com/filecoin-project/go-f3 v0.0.1 github.com/filecoin-project/go-fil-commcid v0.1.0 github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0 github.com/filecoin-project/go-jsonrpc v0.3.2 diff --git a/go.sum b/go.sum index 6ad12166f47..693128b4489 100644 --- a/go.sum +++ b/go.sum @@ -270,8 +270,8 @@ github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082 github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= github.com/filecoin-project/go-crypto v0.0.1 h1:AcvpSGGCgjaY8y1az6AMfKQWreF/pWO2JJGLl6gCq6o= github.com/filecoin-project/go-crypto v0.0.1/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= -github.com/filecoin-project/go-f3 v0.0.0-20240624141300-2ddf41033469 h1:ewQqwxSdESrnzUschk3T6ZH0Wm2/X0coV9Gctdebe7k= -github.com/filecoin-project/go-f3 v0.0.0-20240624141300-2ddf41033469/go.mod h1:Wry0mNa8z767TBHb7N0cVb+9j00KsHbD2pzsC3li4R8= +github.com/filecoin-project/go-f3 v0.0.1 h1:S3+rpJ7Tt3ztK5NDQk/IFr5xAuy+le7/JUFrgjUjaCw= +github.com/filecoin-project/go-f3 v0.0.1/go.mod h1:Wry0mNa8z767TBHb7N0cVb+9j00KsHbD2pzsC3li4R8= github.com/filecoin-project/go-fil-commcid v0.0.0-20201016201715-d41df56b4f6a/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= github.com/filecoin-project/go-fil-commcid v0.1.0 h1:3R4ds1A9r6cr8mvZBfMYxTS88OqLYEo6roi+GiIeOh8= github.com/filecoin-project/go-fil-commcid v0.1.0/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= From 0f1e688636290b263ca29caa6c785f3f24f65926 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Wed, 26 Jun 2024 16:19:55 -0400 Subject: [PATCH 17/32] adjust testnet params --- build/params_2k.go | 2 +- build/params_butterfly.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/params_2k.go b/build/params_2k.go index 956121d65bc..28ae3269f46 100644 --- a/build/params_2k.go +++ b/build/params_2k.go @@ -192,4 +192,4 @@ const Eip155ChainId = 31415926 var WhitelistedBlock = cid.Undef const F3Enabled = true -const F3BootstrapEpoch abi.ChainEpoch = 1000 +const F3BootstrapEpoch abi.ChainEpoch = 100 diff --git a/build/params_butterfly.go b/build/params_butterfly.go index da1703726c4..6dac4cb895a 100644 --- a/build/params_butterfly.go +++ b/build/params_butterfly.go @@ -108,4 +108,4 @@ const Eip155ChainId = 3141592 var WhitelistedBlock = cid.Undef const F3Enabled = true -const F3BootstrapEpoch abi.ChainEpoch = 1000 +const F3BootstrapEpoch abi.ChainEpoch = 200 From 168e091fabfcfafba19e0a6eaa1536746b8e9a05 Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Thu, 27 Jun 2024 09:12:55 +0100 Subject: [PATCH 18/32] Signal explicitly with typed error when F3 is disabled --- node/impl/full/f3.go | 9 ++++----- node/modules/storageminer.go | 5 +++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/node/impl/full/f3.go b/node/impl/full/f3.go index 98ac6c69b25..aaa4a7a2e4b 100644 --- a/node/impl/full/f3.go +++ b/node/impl/full/f3.go @@ -19,18 +19,17 @@ type F3API struct { F3 *lf3.F3 `optional:"true"` } -var ErrF3Disabled = errors.New("F3 is disabled") +var ErrF3Disabled = errors.New("f3 is disabled") func (f3api *F3API) F3Participate(ctx context.Context, miner address.Address) (<-chan string, error) { - // make channel with some buffere to avoid blocking under higher load - errCh := make(chan string, 4) if f3api.F3 == nil { log.Infof("F3Participate called for %v, F3 is disabled", miner) - // we return a channel that will never be closed - return errCh, nil + return nil, ErrF3Disabled } + // Make channel with some buffer to avoid blocking under higher load. + errCh := make(chan string, 4) log.Infof("starting F3 participation for %v", miner) actorID, err := address.IDFromAddress(miner) diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index 871784227eb..5d159000dad 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -33,6 +33,7 @@ import ( "github.com/filecoin-project/lotus/journal" lotusminer "github.com/filecoin-project/lotus/miner" "github.com/filecoin-project/lotus/node/config" + "github.com/filecoin-project/lotus/node/impl/full" "github.com/filecoin-project/lotus/node/modules/dtypes" "github.com/filecoin-project/lotus/node/modules/helpers" "github.com/filecoin-project/lotus/node/repo" @@ -368,6 +369,10 @@ func F3Participation(mctx helpers.MetricsCtx, lc fx.Lifecycle, api v1api.FullNod ch, err := api.F3Participate(ctx, address.Address(minerAddress)) if errors.Is(err, context.Canceled) { + log.Errorf("Context cancelled while attampting F3 participation: %+v", err) + return + } else if errors.Is(err, full.ErrF3Disabled) { + log.Errorf("Cannot participate in F3 as it is disabled: %+v", err) return } else if err != nil { log.Errorf("while starting to participate in F3: %+v", err) From de6de9fb55ed99e75694065f0a0487760db25244 Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Thu, 27 Jun 2024 19:55:10 +0100 Subject: [PATCH 19/32] Remove redundant function wrapping Co-authored-by: Steven Allen --- node/impl/full/f3.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/node/impl/full/f3.go b/node/impl/full/f3.go index aaa4a7a2e4b..a78b61e4557 100644 --- a/node/impl/full/f3.go +++ b/node/impl/full/f3.go @@ -37,10 +37,8 @@ func (f3api *F3API) F3Participate(ctx context.Context, miner address.Address) (< return nil, xerrors.Errorf("miner address in F3Participate not of ID type: %w", err) } - go func() { - // Participate takes control of closing the channel - f3api.F3.Participate(ctx, actorID, errCh) - }() + // Participate takes control of closing the channel + go f3api.F3.Participate(ctx, actorID, errCh) return errCh, nil } From 7ba49e960a983de180e8de9403f62a21f43f3b1a Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Thu, 27 Jun 2024 20:44:52 +0100 Subject: [PATCH 20/32] Address first round of review comments --- build/params_calibnet.go | 2 +- build/params_mainnet.go | 2 +- build/params_testground.go | 2 +- chain/lf3/f3.go | 21 +++++++++++++----- node/impl/full/f3.go | 4 ++-- node/modules/storageminer.go | 43 ++++++++++++++++++++++-------------- 6 files changed, 46 insertions(+), 28 deletions(-) diff --git a/build/params_calibnet.go b/build/params_calibnet.go index a7bcc8dc899..ac174b2621a 100644 --- a/build/params_calibnet.go +++ b/build/params_calibnet.go @@ -153,4 +153,4 @@ const Eip155ChainId = 314159 var WhitelistedBlock = cid.Undef const F3Enabled = false -const F3BootstrapEpoch abi.ChainEpoch = 999999999999999 +const F3BootstrapEpoch abi.ChainEpoch = -1 diff --git a/build/params_mainnet.go b/build/params_mainnet.go index fc825c209e4..1ce58d13d25 100644 --- a/build/params_mainnet.go +++ b/build/params_mainnet.go @@ -170,4 +170,4 @@ const Eip155ChainId = 314 var WhitelistedBlock = MustParseCid("bafy2bzaceapyg2uyzk7vueh3xccxkuwbz3nxewjyguoxvhx77malc2lzn2ybi") const F3Enabled = false -const F3BootstrapEpoch abi.ChainEpoch = 999999999999999 +const F3BootstrapEpoch abi.ChainEpoch = -1 diff --git a/build/params_testground.go b/build/params_testground.go index 7ed7e59b646..8f3deb93773 100644 --- a/build/params_testground.go +++ b/build/params_testground.go @@ -137,7 +137,7 @@ var ( BootstrappersFile = "" GenesisFile = "" F3Enabled = false - F3BootstrapEpoch abi.ChainEpoch = -30 + F3BootstrapEpoch abi.ChainEpoch = -1 ) const Finality = policy.ChainFinality diff --git a/chain/lf3/f3.go b/chain/lf3/f3.go index 94af9d6e4ce..53899006535 100644 --- a/chain/lf3/f3.go +++ b/chain/lf3/f3.go @@ -15,6 +15,7 @@ import ( "github.com/filecoin-project/go-f3" "github.com/filecoin-project/go-f3/blssig" + "github.com/filecoin-project/go-f3/certs" "github.com/filecoin-project/go-f3/gpbft" "github.com/filecoin-project/lotus/api" @@ -26,7 +27,7 @@ import ( ) type F3 struct { - Inner *f3.F3 + inner *f3.F3 signer gpbft.Signer } @@ -69,7 +70,7 @@ func New(mctx helpers.MetricsCtx, lc fx.Lifecycle, params F3Params) (*F3, error) } fff := &F3{ - Inner: module, + inner: module, signer: &signer{params.Wallet}, } @@ -79,7 +80,7 @@ func New(mctx helpers.MetricsCtx, lc fx.Lifecycle, params F3Params) (*F3, error) func(ctx context.Context) { liftimeContext, cancel = context.WithCancel(ctx) go func() { - err := fff.Inner.Run(liftimeContext) + err := fff.inner.Run(liftimeContext) if err != nil { log.Errorf("running f3: %+v", err) } @@ -96,7 +97,7 @@ func New(mctx helpers.MetricsCtx, lc fx.Lifecycle, params F3Params) (*F3, error) func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh chan<- string) { defer close(errCh) - for { + for ctx.Err() == nil { select { case <-ctx.Done(): return @@ -107,7 +108,7 @@ func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh cha msgCh := make(chan *gpbft.MessageBuilder, 4) // SubscribeForMessagesToSign will close the channel if it fills up // so using the closer is not necessary, we can just drop it on the floor - _ = fff.Inner.SubscribeForMessagesToSign(msgCh) + _ = fff.inner.SubscribeForMessagesToSign(msgCh) participateOnce := func(mb *gpbft.MessageBuilder) error { signatureBuilder, err := mb.PrepareSigningInputs(gpbft.ActorID(minerIDAddress)) @@ -129,7 +130,7 @@ func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh cha return err } log.Infof("miner with id %d is sending message in F3", minerIDAddress) - fff.Inner.Broadcast(ctx, signatureBuilder, payloadSig, vrfSig) + fff.inner.Broadcast(ctx, signatureBuilder, payloadSig, vrfSig) return nil } @@ -157,3 +158,11 @@ func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh cha } } + +func (fff *F3) GetCert(ctx context.Context, instance uint64) (*certs.FinalityCertificate, error) { + return fff.inner.GetCert(ctx, instance) +} + +func (fff *F3) GetLatestCert(ctx context.Context) (*certs.FinalityCertificate, error) { + return fff.inner.GetLatestCert(ctx) +} diff --git a/node/impl/full/f3.go b/node/impl/full/f3.go index a78b61e4557..cff4b358d18 100644 --- a/node/impl/full/f3.go +++ b/node/impl/full/f3.go @@ -46,12 +46,12 @@ func (f3api *F3API) F3GetCertificate(ctx context.Context, instance uint64) (*cer if f3api.F3 == nil { return nil, ErrF3Disabled } - return f3api.F3.Inner.GetCert(ctx, instance) + return f3api.F3.GetCert(ctx, instance) } func (f3api *F3API) F3GetLatestCertificate(ctx context.Context) (*certs.FinalityCertificate, error) { if f3api.F3 == nil { return nil, ErrF3Disabled } - return f3api.F3.Inner.GetLatestCert(ctx) + return f3api.F3.GetLatestCert(ctx) } diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index 5d159000dad..4439863a42e 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -362,34 +362,43 @@ func F3Participation(mctx helpers.MetricsCtx, lc fx.Lifecycle, api v1api.FullNod Jitter: false, } go func() { - for { - if ctx.Err() != nil { - return + timer := time.NewTimer(0) + defer timer.Stop() + + // Backoff while obeying the context. + backoffWithContext := func() { + timer.Reset(b.Duration()) + select { + case <-ctx.Done(): + log.Errorf("Context is done while retrying F3 participation: %+v", ctx.Err()) + case <-timer.C: } - ch, err := api.F3Participate(ctx, address.Address(minerAddress)) + } - if errors.Is(err, context.Canceled) { + for ctx.Err() != nil { + switch ch, err := api.F3Participate(ctx, address.Address(minerAddress)); { + case errors.Is(err, context.Canceled): log.Errorf("Context cancelled while attampting F3 participation: %+v", err) return - } else if errors.Is(err, full.ErrF3Disabled) { + case errors.Is(err, full.ErrF3Disabled): log.Errorf("Cannot participate in F3 as it is disabled: %+v", err) return - } else if err != nil { + case err != nil: log.Errorf("while starting to participate in F3: %+v", err) // use exponential backoff to avoid hotloop - time.Sleep(b.Duration()) + backoffWithContext() continue - } - - for err := range ch { - // we have communication with F3 in lotus, reset the backoff - b.Reset() - if err != "" { - log.Warnf("participating in F3 encountered an error: %v", err) + default: + for err := range ch { + // we have communication with F3 in lotus, reset the backoff + b.Reset() + if err != "" { + log.Warnf("participating in F3 encountered an error: %v", err) + } } + log.Warn("F3Participate exited, retrying") + backoffWithContext() } - log.Info("F3Participate exited, retrying") - time.Sleep(b.Duration()) } }() return nil From f49d3516240aa815942d507b6d6f17e6fa5e3c87 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Thu, 27 Jun 2024 15:54:01 -0700 Subject: [PATCH 21/32] avoid double pointer indirection in f3 tipset wrapper --- chain/lf3/ec.go | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/chain/lf3/ec.go b/chain/lf3/ec.go index 06db7f3b1a4..7fdaf63f5bf 100644 --- a/chain/lf3/ec.go +++ b/chain/lf3/ec.go @@ -27,35 +27,37 @@ type ecWrapper struct { Manifest f3.Manifest } -type tsWrapper struct { - inner *types.TipSet +type f3TipSet types.TipSet + +func (ts *f3TipSet) cast() *types.TipSet { + return (*types.TipSet)(ts) } -func (ts *tsWrapper) Key() gpbft.TipSetKey { - return ts.inner.Key().Bytes() +func (ts *f3TipSet) Key() gpbft.TipSetKey { + return ts.cast().Key().Bytes() } -func (ts *tsWrapper) Beacon() []byte { - entries := ts.inner.Blocks()[0].BeaconEntries +func (ts *f3TipSet) Beacon() []byte { + entries := ts.cast().Blocks()[0].BeaconEntries if len(entries) == 0 { return []byte{} } return entries[len(entries)-1].Data } -func (ts *tsWrapper) Epoch() int64 { - return int64(ts.inner.Height()) +func (ts *f3TipSet) Epoch() int64 { + return int64(ts.cast().Height()) } -func (ts *tsWrapper) Timestamp() time.Time { - return time.Unix(int64(ts.inner.Blocks()[0].Timestamp), 0) +func (ts *f3TipSet) Timestamp() time.Time { + return time.Unix(int64(ts.cast().Blocks()[0].Timestamp), 0) } func wrapTS(ts *types.TipSet) f3.TipSet { if ts == nil { return nil } - return &tsWrapper{ts} + return (*f3TipSet)(ts) } // GetTipsetByEpoch should return a tipset before the one requested if the requested @@ -88,8 +90,8 @@ func (ec *ecWrapper) GetHead(_ context.Context) (f3.TipSet, error) { func (ec *ecWrapper) GetParent(ctx context.Context, tsF3 f3.TipSet) (f3.TipSet, error) { var ts *types.TipSet - if tsW, ok := tsF3.(*tsWrapper); ok { - ts = tsW.inner + if tsW, ok := tsF3.(*f3TipSet); ok { + ts = tsW.cast() } else { tskLotus, err := types.TipSetKeyFromBytes(tsF3.Key()) if err != nil { From 62f3383e0d582d13e34f5da3ce4457aaedb1a4d5 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Thu, 27 Jun 2024 16:23:51 -0700 Subject: [PATCH 22/32] f3: use the correct lifetime context --- chain/lf3/f3.go | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/chain/lf3/f3.go b/chain/lf3/f3.go index 53899006535..cf9e6ff8eed 100644 --- a/chain/lf3/f3.go +++ b/chain/lf3/f3.go @@ -74,20 +74,16 @@ func New(mctx helpers.MetricsCtx, lc fx.Lifecycle, params F3Params) (*F3, error) signer: &signer{params.Wallet}, } - var liftimeContext context.Context - var cancel func() + lCtx, cancel := context.WithCancel(mctx) lc.Append(fx.StartStopHook( - func(ctx context.Context) { - liftimeContext, cancel = context.WithCancel(ctx) + func() { go func() { - err := fff.inner.Run(liftimeContext) + err := fff.inner.Run(lCtx) if err != nil { log.Errorf("running f3: %+v", err) } }() - }, func() { - cancel() - })) + }, cancel)) return fff, nil } From f5c4ffab03ba51348b4c497c6ebbde4f8fd1e8b3 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Thu, 27 Jun 2024 16:24:01 -0700 Subject: [PATCH 23/32] simpler power comparison --- chain/lf3/ec.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chain/lf3/ec.go b/chain/lf3/ec.go index 7fdaf63f5bf..508e2092419 100644 --- a/chain/lf3/ec.go +++ b/chain/lf3/ec.go @@ -137,7 +137,7 @@ func (ec *ecWrapper) GetPowerTable(ctx context.Context, tskF3 gpbft.TipSetKey) ( var powerEntries gpbft.PowerEntries err = powerState.ForEachClaim(func(minerAddr address.Address, claim power.Claim) error { - if claim.QualityAdjPower.LessThanEqual(big.Zero()) { + if claim.QualityAdjPower.Sign() <= 0 { return nil } From 7f8a8bed3f77e921377135c975c7ab9df643b226 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Thu, 27 Jun 2024 16:29:00 -0700 Subject: [PATCH 24/32] nits and stuff --- chain/lf3/ec.go | 5 +---- chain/lf3/f3.go | 2 +- node/modules/storageminer.go | 5 ++++- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/chain/lf3/ec.go b/chain/lf3/ec.go index 508e2092419..2b800f6ec17 100644 --- a/chain/lf3/ec.go +++ b/chain/lf3/ec.go @@ -11,7 +11,6 @@ import ( "github.com/filecoin-project/go-f3" "github.com/filecoin-project/go-f3/gpbft" "github.com/filecoin-project/go-state-types/abi" - "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/actors/builtin/power" @@ -119,9 +118,7 @@ func (ec *ecWrapper) GetPowerTable(ctx context.Context, tskF3 gpbft.TipSetKey) ( return nil, xerrors.Errorf("getting tipset by key for get parent: %w", err) } - sm := ec.StateManager - - state, err := sm.ParentState(ts) + state, err := ec.StateManager.ParentState(ts) if err != nil { return nil, xerrors.Errorf("loading the state tree: %w", err) } diff --git a/chain/lf3/f3.go b/chain/lf3/f3.go index cf9e6ff8eed..f7d815ea2ad 100644 --- a/chain/lf3/f3.go +++ b/chain/lf3/f3.go @@ -136,7 +136,7 @@ func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh cha case mb, ok := <-msgCh: if !ok { // the broadcast bus kicked us out - log.Infof("lost message bus subscription, retrying") + log.Warnf("lost message bus subscription, retrying") break inner } diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index 4439863a42e..285801ddbfc 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -365,6 +365,10 @@ func F3Participation(mctx helpers.MetricsCtx, lc fx.Lifecycle, api v1api.FullNod timer := time.NewTimer(0) defer timer.Stop() + if !timer.Stop() { + <-timer.C + } + // Backoff while obeying the context. backoffWithContext := func() { timer.Reset(b.Duration()) @@ -387,7 +391,6 @@ func F3Participation(mctx helpers.MetricsCtx, lc fx.Lifecycle, api v1api.FullNod log.Errorf("while starting to participate in F3: %+v", err) // use exponential backoff to avoid hotloop backoffWithContext() - continue default: for err := range ch { // we have communication with F3 in lotus, reset the backoff From 1a97629a0b4c728ea0d8a146bada4ab7e5e49bd2 Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Fri, 28 Jun 2024 09:37:53 +0100 Subject: [PATCH 25/32] Adjust F3 participate documentation --- api/api_full.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/api/api_full.go b/api/api_full.go index b71d975f434..aa76771fd68 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -861,9 +861,8 @@ type FullNode interface { // This is an EXPERIMENTAL API and may be subject to change. SubscribeActorEventsRaw(ctx context.Context, filter *types.ActorEventFilter) (<-chan *types.ActorEvent, error) //perm:read - // F3Participate should be called by a miner node to particpate in signing F3 consensus. + // F3Participate should be called by a miner node to participate in signing F3 consensus. // The address should be of type ID - // F3Participate can only be used through websocket connection // The returned channel will never be closed by the F3 // If it is closed without the context being cancelled, the caller should retry. // The values returned on the channel will inform the caller about participation From 37100e17a6602530a0fca6152c0a766e0703a050 Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Fri, 28 Jun 2024 09:58:43 +0100 Subject: [PATCH 26/32] Document non-nil beacon --- chain/lf3/ec.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/chain/lf3/ec.go b/chain/lf3/ec.go index 2b800f6ec17..a9af23377aa 100644 --- a/chain/lf3/ec.go +++ b/chain/lf3/ec.go @@ -39,6 +39,11 @@ func (ts *f3TipSet) Key() gpbft.TipSetKey { func (ts *f3TipSet) Beacon() []byte { entries := ts.cast().Blocks()[0].BeaconEntries if len(entries) == 0 { + // Set beacon to a non-nil slice to force the message builder to generate a + // ticket. Otherwise, messages that require ticket, i.e. CONVERGE will fail + // validation due to the absence of ticket. This is a convoluted way of doing it. + // TODO: Rework the F3 message builder APIs to include ticket when needed instead + // of relying on the nil check of beacon. return []byte{} } return entries[len(entries)-1].Data From 911ec06af627b347daad0581702df36c2e07e2c4 Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Fri, 28 Jun 2024 10:12:21 +0100 Subject: [PATCH 27/32] doc gen --- documentation/en/api-v1-unstable-methods.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/documentation/en/api-v1-unstable-methods.md b/documentation/en/api-v1-unstable-methods.md index 55fa58c3b15..4dee4666bca 100644 --- a/documentation/en/api-v1-unstable-methods.md +++ b/documentation/en/api-v1-unstable-methods.md @@ -2291,9 +2291,8 @@ Response: ``` ### F3Participate -F3Participate should be called by a miner node to particpate in signing F3 consensus. +F3Participate should be called by a miner node to participate in signing F3 consensus. The address should be of type ID -F3Participate can only be used through websocket connection The returned channel will never be closed by the F3 If it is closed without the context being cancelled, the caller should retry. The values returned on the channel will inform the caller about participation From 3ecc92759c9ee10b2e22ed8da62a88184b7e4a9b Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Fri, 28 Jun 2024 11:28:00 +0100 Subject: [PATCH 28/32] Bubble up the fix to backoff delay at f3 0.0.2 --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 8ed96e343ac..8caf385c606 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( github.com/filecoin-project/go-commp-utils v0.1.3 github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082a837 github.com/filecoin-project/go-crypto v0.0.1 - github.com/filecoin-project/go-f3 v0.0.1 + github.com/filecoin-project/go-f3 v0.0.2 github.com/filecoin-project/go-fil-commcid v0.1.0 github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0 github.com/filecoin-project/go-jsonrpc v0.3.2 diff --git a/go.sum b/go.sum index 693128b4489..ace8e83d245 100644 --- a/go.sum +++ b/go.sum @@ -270,8 +270,8 @@ github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082 github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= github.com/filecoin-project/go-crypto v0.0.1 h1:AcvpSGGCgjaY8y1az6AMfKQWreF/pWO2JJGLl6gCq6o= github.com/filecoin-project/go-crypto v0.0.1/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= -github.com/filecoin-project/go-f3 v0.0.1 h1:S3+rpJ7Tt3ztK5NDQk/IFr5xAuy+le7/JUFrgjUjaCw= -github.com/filecoin-project/go-f3 v0.0.1/go.mod h1:Wry0mNa8z767TBHb7N0cVb+9j00KsHbD2pzsC3li4R8= +github.com/filecoin-project/go-f3 v0.0.2 h1:bzw/GndxntJnUYA+WCaXwHE2qwGRwrFVo9umz3unTUs= +github.com/filecoin-project/go-f3 v0.0.2/go.mod h1:Wry0mNa8z767TBHb7N0cVb+9j00KsHbD2pzsC3li4R8= github.com/filecoin-project/go-fil-commcid v0.0.0-20201016201715-d41df56b4f6a/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= github.com/filecoin-project/go-fil-commcid v0.1.0 h1:3R4ds1A9r6cr8mvZBfMYxTS88OqLYEo6roi+GiIeOh8= github.com/filecoin-project/go-fil-commcid v0.1.0/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= From 18e37c9d133c562d2db1d38d7a93c8a7377563d8 Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Fri, 28 Jun 2024 11:28:52 +0100 Subject: [PATCH 29/32] Fix err check condition --- node/modules/storageminer.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index 285801ddbfc..9dc11da7ae6 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -379,7 +379,7 @@ func F3Participation(mctx helpers.MetricsCtx, lc fx.Lifecycle, api v1api.FullNod } } - for ctx.Err() != nil { + for ctx.Err() == nil { switch ch, err := api.F3Participate(ctx, address.Address(minerAddress)); { case errors.Is(err, context.Canceled): log.Errorf("Context cancelled while attampting F3 participation: %+v", err) From 69c4080c8208eec646824906551e9675078131d9 Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Fri, 28 Jun 2024 11:48:47 +0100 Subject: [PATCH 30/32] Allow F3 topic only when F3 is enabled --- node/modules/lp2p/pubsub.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/node/modules/lp2p/pubsub.go b/node/modules/lp2p/pubsub.go index 9ce16fb5ec2..2eb3c4c1866 100644 --- a/node/modules/lp2p/pubsub.go +++ b/node/modules/lp2p/pubsub.go @@ -379,8 +379,12 @@ func GossipSub(in GossipIn) (service *pubsub.PubSub, err error) { build.BlocksTopic(in.Nn), build.MessagesTopic(in.Nn), build.IndexerIngestTopic(in.Nn), - gpbft.NetworkName(in.Nn).PubSubTopic(), } + + if build.F3Enabled { + allowTopics = append(allowTopics, gpbft.NetworkName(in.Nn).PubSubTopic()) + } + allowTopics = append(allowTopics, drandTopics...) options = append(options, pubsub.WithSubscriptionFilter( From 4bf9eefe2622f95298246945dc6c6e002cd379b6 Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Fri, 28 Jun 2024 12:00:09 +0100 Subject: [PATCH 31/32] Document Tipset typecheck and leave TODO to clean up after testing --- chain/lf3/ec.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/chain/lf3/ec.go b/chain/lf3/ec.go index a9af23377aa..c3feb0b4e38 100644 --- a/chain/lf3/ec.go +++ b/chain/lf3/ec.go @@ -97,6 +97,11 @@ func (ec *ecWrapper) GetParent(ctx context.Context, tsF3 f3.TipSet) (f3.TipSet, if tsW, ok := tsF3.(*f3TipSet); ok { ts = tsW.cast() } else { + // There are only two implementations of F3.TipSet: f3TipSet, and one in fake EC + // backend. + // + // TODO: Revisit the type check here and remove as needed once testing + // is over and fake EC backend goes away. tskLotus, err := types.TipSetKeyFromBytes(tsF3.Key()) if err != nil { return nil, xerrors.Errorf("decoding tsk: %w", err) From 2bc26d7930521d452f4dd777917e63e43f136b0e Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Fri, 28 Jun 2024 16:35:33 +0100 Subject: [PATCH 32/32] Address review comments --- chain/lf3/f3.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/chain/lf3/f3.go b/chain/lf3/f3.go index f7d815ea2ad..bf17118cc79 100644 --- a/chain/lf3/f3.go +++ b/chain/lf3/f3.go @@ -94,11 +94,6 @@ func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh cha defer close(errCh) for ctx.Err() == nil { - select { - case <-ctx.Done(): - return - default: - } // create channel for some buffer so we don't get dropped under high load msgCh := make(chan *gpbft.MessageBuilder, 4) @@ -131,7 +126,7 @@ func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh cha } inner: - for { + for ctx.Err() == nil { select { case mb, ok := <-msgCh: if !ok { @@ -151,7 +146,6 @@ func (fff *F3) Participate(ctx context.Context, minerIDAddress uint64, errCh cha return } } - } }