From 4a5c24176275dea965c6ed44bb42cb1c518a07c5 Mon Sep 17 00:00:00 2001 From: jennijuju Date: Sat, 9 Dec 2023 23:47:21 +0800 Subject: [PATCH 1/8] bump version --- build/openrpc/full.json.gz | Bin 34817 -> 34817 bytes build/openrpc/gateway.json.gz | Bin 11875 -> 11875 bytes build/openrpc/miner.json.gz | Bin 16370 -> 16370 bytes build/openrpc/worker.json.gz | Bin 6052 -> 6052 bytes build/version.go | 2 +- documentation/en/cli-lotus-miner.md | 2 +- documentation/en/cli-lotus-worker.md | 2 +- documentation/en/cli-lotus.md | 2 +- 8 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index ad2116cb9187f20cea37fef3a37566fd3a2730cf..c40fbf2ccb25a5a4f9eebabe81c044faf4f0f2dc 100644 GIT binary patch delta 23 fcmZpiz|=T_X+j6%-i@6F?Hn&UKmVBWi;V#QelH6q delta 23 fcmZpiz|=T_X+j6%zKxv)?Hp?jf^Db#Vq*XRa*qi( diff --git a/build/openrpc/gateway.json.gz b/build/openrpc/gateway.json.gz index 48ad91135e370665117694d7515928b8773c1ad8..ead9a4e655ce0c24ba7d60320fce3a5ec0c92da1 100644 GIT binary patch delta 21 ccmaDH^EhTgGh@}pmg~A48j??1vU`~r0C83b@c;k- delta 21 dcmaDH^EhTgGvls}E!TB97}Rb5XZJEO0044z2L~AKE^3RkL{Tm0BvRm`v3p{ delta 21 dcmexV|EYdL3uF7n)>M0rAjbFCAKNoC004Ob37-G} diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 8e9d63d795a477a58214191b82d59ea52770cd47..078e8f95c7f0c4af2487dfe8f2798551d7b43122 100644 GIT binary patch delta 21 ccmZ3YzeImRBjbyWO;X|<^7C8L3nLgA09~mEfB*mh delta 21 ccmZ3YzeImRBV)$KCMj_a$+8 Date: Thu, 14 Dec 2023 11:26:36 +0530 Subject: [PATCH 2/8] update libp2p deps --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 59db622c9..11a4a5d22 100644 --- a/go.mod +++ b/go.mod @@ -110,7 +110,7 @@ require ( github.com/kelseyhightower/envconfig v1.4.0 github.com/koalacxr/quantile v0.0.1 github.com/libp2p/go-buffer-pool v0.1.0 - github.com/libp2p/go-libp2p v0.31.0 + github.com/libp2p/go-libp2p v0.31.1 github.com/libp2p/go-libp2p-consensus v0.0.1 github.com/libp2p/go-libp2p-gorpc v0.5.0 github.com/libp2p/go-libp2p-kad-dht v0.24.0 @@ -305,7 +305,7 @@ require ( github.com/prometheus/statsd_exporter v0.22.7 // indirect github.com/quic-go/qpack v0.4.0 // indirect github.com/quic-go/qtls-go1-20 v0.3.3 // indirect - github.com/quic-go/quic-go v0.38.1 // indirect + github.com/quic-go/quic-go v0.38.2 // indirect github.com/quic-go/webtransport-go v0.5.3 // indirect github.com/rivo/uniseg v0.1.0 // indirect github.com/rs/cors v1.7.0 // indirect diff --git a/go.sum b/go.sum index a1bbb9473..b0f13f5bb 100644 --- a/go.sum +++ b/go.sum @@ -984,8 +984,8 @@ github.com/libp2p/go-libp2p v0.7.0/go.mod h1:hZJf8txWeCduQRDC/WSqBGMxaTHCOYHt2xS github.com/libp2p/go-libp2p v0.7.4/go.mod h1:oXsBlTLF1q7pxr+9w6lqzS1ILpyHsaBPniVO7zIHGMw= github.com/libp2p/go-libp2p v0.8.1/go.mod h1:QRNH9pwdbEBpx5DTJYg+qxcVaDMAz3Ee/qDKwXujH5o= github.com/libp2p/go-libp2p v0.14.3/go.mod h1:d12V4PdKbpL0T1/gsUNN8DfgMuRPDX8bS2QxCZlwRH0= -github.com/libp2p/go-libp2p v0.31.0 h1:LFShhP8F6xthWiBBq3euxbKjZsoRajVEyBS9snfHxYg= -github.com/libp2p/go-libp2p v0.31.0/go.mod h1:W/FEK1c/t04PbRH3fA9i5oucu5YcgrG0JVoBWT1B7Eg= +github.com/libp2p/go-libp2p v0.31.1 h1:mUiFPwdzC2zMLIATKVddjCuPXVbtC3BsKKVPMs4+jzY= +github.com/libp2p/go-libp2p v0.31.1/go.mod h1:+9TCv+XySSOdaxPF1WIgTK8rXP9jBb8WbemlMCSXGsU= github.com/libp2p/go-libp2p-asn-util v0.3.0 h1:gMDcMyYiZKkocGXDQ5nsUQyquC9+H+iLEQHwOCZ7s8s= github.com/libp2p/go-libp2p-asn-util v0.3.0/go.mod h1:B1mcOrKUE35Xq/ASTmQ4tN3LNzVVaMNmq2NACuqyB9w= github.com/libp2p/go-libp2p-autonat v0.1.0/go.mod h1:1tLf2yXxiE/oKGtDwPYWTSYG3PtvYlJmg7NeVtPRqH8= @@ -1475,8 +1475,8 @@ github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= github.com/quic-go/qtls-go1-20 v0.3.3 h1:17/glZSLI9P9fDAeyCHBFSWSqJcwx1byhLwP5eUIDCM= github.com/quic-go/qtls-go1-20 v0.3.3/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k= -github.com/quic-go/quic-go v0.38.1 h1:M36YWA5dEhEeT+slOu/SwMEucbYd0YFidxG3KlGPZaE= -github.com/quic-go/quic-go v0.38.1/go.mod h1:ijnZM7JsFIkp4cRyjxJNIzdSfCLmUMg9wdyhGmg+SN4= +github.com/quic-go/quic-go v0.38.2 h1:VWv/6gxIoB8hROQJhx1JEyiegsUQ+zMN3em3kynTGdg= +github.com/quic-go/quic-go v0.38.2/go.mod h1:ijnZM7JsFIkp4cRyjxJNIzdSfCLmUMg9wdyhGmg+SN4= github.com/quic-go/webtransport-go v0.5.3 h1:5XMlzemqB4qmOlgIus5zB45AcZ2kCgCy2EptUrfOPWU= github.com/quic-go/webtransport-go v0.5.3/go.mod h1:OhmmgJIzTTqXK5xvtuX0oBpLV2GkLWNDA+UeTGJXErU= github.com/raulk/clock v1.1.0 h1:dpb29+UKMbLqiU/jqIJptgLR1nn23HLgMY0sTCDza5Y= From 17f6f4caf2955352ca4ea8508ee87607d36ebbbc Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Thu, 14 Dec 2023 10:12:54 -0800 Subject: [PATCH 3/8] fix: eth: decode as actor creation iff "to" is the EAM (#11520) Previously, we weren't checking the "to" address. I've also re-ordered the operations in this function to make it easier to reason about them. It'll have a slight runtime cost (we _always_ ABI-encode the parameters, then throw away the result if it turns out we're actually dealing with an Ethereum transaction), but it's _much_ simpler. --- node/impl/full/eth_utils.go | 52 +++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/node/impl/full/eth_utils.go b/node/impl/full/eth_utils.go index 1e407a321..5f22cea82 100644 --- a/node/impl/full/eth_utils.go +++ b/node/impl/full/eth_utils.go @@ -22,6 +22,7 @@ import ( "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/actors" + "github.com/filecoin-project/lotus/chain/actors/builtin" "github.com/filecoin-project/lotus/chain/state" "github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/chain/types" @@ -524,9 +525,6 @@ func ethTxFromNativeMessage(msg *types.Message, st *state.StateTree) (ethtypes.E } to = revertedEthAddress } - toPtr := &to - - // Finally, convert the input parameters to "solidity ABI". // For empty, we use "0" as the codec. Otherwise, we use CBOR for message // parameters. @@ -535,31 +533,11 @@ func ethTxFromNativeMessage(msg *types.Message, st *state.StateTree) (ethtypes.E codec = uint64(multicodec.Cbor) } - // We try to decode the input as an EVM method invocation and/or a contract creation. If - // that fails, we encode the "native" parameters as Solidity ABI. - var input []byte - switch msg.Method { - case builtintypes.MethodsEVM.InvokeContract, builtintypes.MethodsEAM.CreateExternal: - inp, err := decodePayload(msg.Params, codec) - if err == nil { - // If this is a valid "create external", unset the "to" address. - if msg.Method == builtintypes.MethodsEAM.CreateExternal { - toPtr = nil - } - input = []byte(inp) - break - } - // Yeah, we're going to ignore errors here because the user can send whatever they - // want and may send garbage. - fallthrough - default: - input = encodeFilecoinParamsAsABI(msg.Method, codec, msg.Params) - } - - return ethtypes.EthTx{ - To: toPtr, + // We decode as a native call first. + ethTx := ethtypes.EthTx{ + To: &to, From: from, - Input: input, + Input: encodeFilecoinParamsAsABI(msg.Method, codec, msg.Params), Nonce: ethtypes.EthUint64(msg.Nonce), ChainID: ethtypes.EthUint64(build.Eip155ChainId), Value: ethtypes.EthBigInt(msg.Value), @@ -568,7 +546,25 @@ func ethTxFromNativeMessage(msg *types.Message, st *state.StateTree) (ethtypes.E MaxFeePerGas: ethtypes.EthBigInt(msg.GasFeeCap), MaxPriorityFeePerGas: ethtypes.EthBigInt(msg.GasPremium), AccessList: []ethtypes.EthHash{}, - }, nil + } + + // Then we try to see if it's "special". If we fail, we ignore the error and keep treating + // it as a native message. Unfortunately, the user is free to send garbage that may not + // properly decode. + if msg.Method == builtintypes.MethodsEVM.InvokeContract { + // try to decode it as a contract invocation first. + if inp, err := decodePayload(msg.Params, codec); err == nil { + ethTx.Input = []byte(inp) + } + } else if msg.To == builtin.EthereumAddressManagerActorAddr && msg.Method == builtintypes.MethodsEAM.CreateExternal { + // Then, try to decode it as a contract deployment from an EOA. + if inp, err := decodePayload(msg.Params, codec); err == nil { + ethTx.Input = []byte(inp) + ethTx.To = nil + } + } + + return ethTx, nil } func getSignedMessage(ctx context.Context, cs *store.ChainStore, msgCid cid.Cid) (*types.SignedMessage, error) { From b363bc3e70b8b36b546526e33722b2a630eed5fd Mon Sep 17 00:00:00 2001 From: "Andrew Jackson (Ajax)" Date: Thu, 14 Dec 2023 18:13:44 -0600 Subject: [PATCH 4/8] fix lp blocking --- cmd/lotus-provider/deps/deps.go | 11 ++++++----- cmd/lotus-provider/main.go | 2 +- cmd/lotus-provider/tasks/tasks.go | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/cmd/lotus-provider/deps/deps.go b/cmd/lotus-provider/deps/deps.go index 9a0a3691f..499cc7bec 100644 --- a/cmd/lotus-provider/deps/deps.go +++ b/cmd/lotus-provider/deps/deps.go @@ -11,14 +11,18 @@ import ( "net/http" "strings" + "github.com/BurntSushi/toml" + "github.com/gbrlsnchs/jwt/v3" ds "github.com/ipfs/go-datastore" dssync "github.com/ipfs/go-datastore/sync" logging "github.com/ipfs/go-log/v2" + "github.com/urfave/cli/v2" + "golang.org/x/xerrors" - "github.com/BurntSushi/toml" "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-jsonrpc/auth" "github.com/filecoin-project/go-statestore" + "github.com/filecoin-project/lotus/api" cliutil "github.com/filecoin-project/lotus/cli/util" "github.com/filecoin-project/lotus/journal" @@ -34,9 +38,6 @@ import ( "github.com/filecoin-project/lotus/storage/sealer" "github.com/filecoin-project/lotus/storage/sealer/ffiwrapper" "github.com/filecoin-project/lotus/storage/sealer/storiface" - "github.com/gbrlsnchs/jwt/v3" - "github.com/urfave/cli/v2" - "golang.org/x/xerrors" ) var log = logging.Logger("lotus-provider/deps") @@ -164,7 +165,7 @@ func (deps *Deps) PopulateRemainingDeps(ctx context.Context, cctx *cli.Context, if err != nil { return err } - defer func() { + go func() { <-ctx.Done() _ = j.Close() }() diff --git a/cmd/lotus-provider/main.go b/cmd/lotus-provider/main.go index 18b2e87f3..a6c79b6de 100644 --- a/cmd/lotus-provider/main.go +++ b/cmd/lotus-provider/main.go @@ -29,7 +29,7 @@ func SetupCloseHandler() { go func() { <-c fmt.Println("\r- Ctrl+C pressed in Terminal") - pprof.Lookup("goroutine").WriteTo(os.Stdout, 1) + _ = pprof.Lookup("goroutine").WriteTo(os.Stdout, 1) panic(1) }() } diff --git a/cmd/lotus-provider/tasks/tasks.go b/cmd/lotus-provider/tasks/tasks.go index 18c56a744..2c4cd58bf 100644 --- a/cmd/lotus-provider/tasks/tasks.go +++ b/cmd/lotus-provider/tasks/tasks.go @@ -5,13 +5,13 @@ import ( "context" logging "github.com/ipfs/go-log/v2" + "github.com/samber/lo" "github.com/filecoin-project/lotus/cmd/lotus-provider/deps" "github.com/filecoin-project/lotus/lib/harmony/harmonytask" "github.com/filecoin-project/lotus/provider" "github.com/filecoin-project/lotus/provider/lpmessage" "github.com/filecoin-project/lotus/provider/lpwinning" - "github.com/samber/lo" ) var log = logging.Logger("lotus-provider/deps") From e473571dfbea7249150f611521d750aa403333e6 Mon Sep 17 00:00:00 2001 From: Aayush Date: Fri, 15 Dec 2023 14:02:17 -0500 Subject: [PATCH 5/8] feat: syncer: optimize syncFork for one-epoch forks --- chain/sync.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/chain/sync.go b/chain/sync.go index 1b9a302f7..c61c9f310 100644 --- a/chain/sync.go +++ b/chain/sync.go @@ -886,6 +886,35 @@ func (syncer *Syncer) syncFork(ctx context.Context, incoming *types.TipSet, know } } + incomingParentsTsk := incoming.Parents() + commonParent := false + for _, incomingParent := range incomingParentsTsk.Cids() { + if known.Contains(incomingParent) { + commonParent = true + } + } + + if commonParent { + // known contains at least one of incoming's Parents => the common ancestor is known's Parents (incoming's Grandparents) + // in this case, we need to return {incoming, incoming.Parents()} + incomingParents, err := syncer.store.LoadTipSet(ctx, incomingParentsTsk) + if err != nil { + // fallback onto the network + tips, err := syncer.Exchange.GetBlocks(ctx, incoming.Parents(), 1) + if err != nil { + return nil, xerrors.Errorf("failed to fetch incomingParents from the network: %w", err) + } + + if len(tips) == 0 { + return nil, xerrors.Errorf("network didn't return any tipsets") + } + + incomingParents = tips[0] + } + + return []*types.TipSet{incoming, incomingParents}, nil + } + // TODO: Does this mean we always ask for ForkLengthThreshold blocks from the network, even if we just need, like, 2? Yes. // Would it not be better to ask in smaller chunks, given that an ~ForkLengthThreshold is very rare? tips, err := syncer.Exchange.GetBlocks(ctx, incoming.Parents(), int(build.ForkLengthThreshold)) From 6373701412d7ee2235c458bd4a4182cec01f7747 Mon Sep 17 00:00:00 2001 From: Phi Date: Mon, 18 Dec 2023 15:43:58 +0100 Subject: [PATCH 6/8] Modify generate-lotus-cli.py to ignoring aliases. Modify generate-lotus-cli.py to ignoring aliases. --- scripts/generate-lotus-cli.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/generate-lotus-cli.py b/scripts/generate-lotus-cli.py index b0d3fd19d..1e1fee9a6 100644 --- a/scripts/generate-lotus-cli.py +++ b/scripts/generate-lotus-cli.py @@ -32,8 +32,8 @@ def generate_lotus_cli(prog): cmd_flag = False if cmd_flag is True and line[-1] != ':' and 'help, h' not in line: gap_pos = None - sub_cmd = line - if ' ' in line: + sub_cmd = line.split(',')[0].strip() # only take the first sub-command before the comma + if ' ' in sub_cmd: gap_pos = sub_cmd.index(' ') sub_cmd = cur_cmd + ' ' + sub_cmd[:gap_pos] get_cmd_recursively(sub_cmd) @@ -55,3 +55,4 @@ if __name__ == "__main__": generate_lotus_cli('lotus') generate_lotus_cli('lotus-miner') generate_lotus_cli('lotus-worker') + generate_lotus_cli('lotus-provider') \ No newline at end of file From 5bdea21ad55b444796052d404bd2a368c7213fae Mon Sep 17 00:00:00 2001 From: Phi Date: Mon, 18 Dec 2023 16:06:47 +0100 Subject: [PATCH 7/8] Make docsgen-cli Make docsgen-cli --- documentation/en/cli-lotus-miner.md | 27 +- documentation/en/cli-lotus-provider.md | 410 +++++++++++++++++++++++++ documentation/en/cli-lotus.md | 88 +++++- 3 files changed, 515 insertions(+), 10 deletions(-) create mode 100644 documentation/en/cli-lotus-provider.md diff --git a/documentation/en/cli-lotus-miner.md b/documentation/en/cli-lotus-miner.md index 056f07f22..dbc5a6ee2 100644 --- a/documentation/en/cli-lotus-miner.md +++ b/documentation/en/cli-lotus-miner.md @@ -231,8 +231,19 @@ OPTIONS: --help, -h show help ``` -#### lotus-miner actor set-addresses, set-addrs +### lotus-miner actor set-addresses ``` +NAME: + lotus-miner actor set-addresses - set addresses that your miner can be publicly dialed on + +USAGE: + lotus-miner actor set-addresses [command options] + +OPTIONS: + --from value optionally specify the account to send the message from + --gas-limit value set gas limit (default: 0) + --unset unset address (default: false) + --help, -h show help ``` ### lotus-miner actor withdraw @@ -1161,8 +1172,20 @@ OPTIONS: --help, -h show help ``` -##### lotus-miner proving compute windowed-post, window-post +#### lotus-miner proving compute windowed-post ``` +NAME: + lotus-miner proving compute windowed-post - Compute WindowPoSt for a specific deadline + +USAGE: + lotus-miner proving compute windowed-post [command options] [deadline index] + +DESCRIPTION: + Note: This command is intended to be used to verify PoSt compute performance. + It will not send any messages to the chain. + +OPTIONS: + --help, -h show help ``` ### lotus-miner proving recover-faults diff --git a/documentation/en/cli-lotus-provider.md b/documentation/en/cli-lotus-provider.md new file mode 100644 index 000000000..de77697e3 --- /dev/null +++ b/documentation/en/cli-lotus-provider.md @@ -0,0 +1,410 @@ +# lotus-provider +``` +NAME: + lotus-provider - Filecoin decentralized storage network provider + +USAGE: + lotus-provider [global options] command [command options] [arguments...] + +VERSION: + 1.25.3-dev + +COMMANDS: + run Start a lotus provider process + stop Stop a running lotus provider + config Manage node config by layers. The layer 'base' will always be applied. + test Utility functions for testing + version Print version + help, h Shows a list of commands or help for one command + DEVELOPER: + auth Manage RPC permissions + log Manage logging + wait-api Wait for lotus api to come online + fetch-params Fetch proving parameters + +GLOBAL OPTIONS: + --color use color in display output (default: depends on output being a TTY) + --db-host value Command separated list of hostnames for yugabyte cluster (default: "yugabyte") [$LOTUS_DB_HOST] + --db-name value (default: "yugabyte") [$LOTUS_DB_NAME, $LOTUS_HARMONYDB_HOSTS] + --db-user value (default: "yugabyte") [$LOTUS_DB_USER, $LOTUS_HARMONYDB_USERNAME] + --db-password value (default: "yugabyte") [$LOTUS_DB_PASSWORD, $LOTUS_HARMONYDB_PASSWORD] + --layers value (default: "base") [$LOTUS_LAYERS, $LOTUS_CONFIG_LAYERS] + --repo-path value (default: "~/.lotusprovider") [$LOTUS_REPO_PATH] + --vv enables very verbose mode, useful for debugging the CLI (default: false) + --help, -h show help + --version, -v print the version +``` + +## lotus-provider run +``` +NAME: + lotus-provider run - Start a lotus provider process + +USAGE: + lotus-provider run [command options] [arguments...] + +OPTIONS: + --listen value host address and port the worker api will listen on (default: "0.0.0.0:12300") [$LOTUS_WORKER_LISTEN] + --nosync don't check full-node sync status (default: false) + --manage-fdlimit manage open file limit (default: true) + --layers value [ --layers value ] list of layers to be interpreted (atop defaults). Default: base (default: "base") + --storage-json value path to json file containing storage config (default: "~/.lotus-provider/storage.json") + --journal value path to journal files (default: "~/.lotus-provider/") + --help, -h show help +``` + +## lotus-provider stop +``` +NAME: + lotus-provider stop - Stop a running lotus provider + +USAGE: + lotus-provider stop [command options] [arguments...] + +OPTIONS: + --help, -h show help +``` + +## lotus-provider config +``` +NAME: + lotus-provider config - Manage node config by layers. The layer 'base' will always be applied. + +USAGE: + lotus-provider config command [command options] [arguments...] + +COMMANDS: + default, defaults Print default node config + set, add, update, create Set a config layer or the base by providing a filename or stdin. + get, cat, show Get a config layer by name. You may want to pipe the output to a file, or use 'less' + list, ls List config layers you can get. + interpret, view, stacked, stack Interpret stacked config layers by this version of lotus-provider, with system-generated comments. + remove, rm, del, delete Remove a named config layer. + from-miner Express a database config (for lotus-provider) from an existing miner. + help, h Shows a list of commands or help for one command + +OPTIONS: + --help, -h show help +``` + +### lotus-provider config default +``` +NAME: + lotus-provider config default - Print default node config + +USAGE: + lotus-provider config default [command options] [arguments...] + +OPTIONS: + --no-comment don't comment default values (default: false) + --help, -h show help +``` + +### lotus-provider config set +``` +NAME: + lotus-provider config set - Set a config layer or the base by providing a filename or stdin. + +USAGE: + lotus-provider config set [command options] a layer's file name + +OPTIONS: + --title value title of the config layer (req'd for stdin) + --help, -h show help +``` + +### lotus-provider config get +``` +NAME: + lotus-provider config get - Get a config layer by name. You may want to pipe the output to a file, or use 'less' + +USAGE: + lotus-provider config get [command options] layer name + +OPTIONS: + --help, -h show help +``` + +### lotus-provider config list +``` +NAME: + lotus-provider config list - List config layers you can get. + +USAGE: + lotus-provider config list [command options] [arguments...] + +OPTIONS: + --help, -h show help +``` + +### lotus-provider config interpret +``` +NAME: + lotus-provider config interpret - Interpret stacked config layers by this version of lotus-provider, with system-generated comments. + +USAGE: + lotus-provider config interpret [command options] a list of layers to be interpreted as the final config + +OPTIONS: + --layers value [ --layers value ] comma or space separated list of layers to be interpreted (default: "base") + --help, -h show help +``` + +### lotus-provider config remove +``` +NAME: + lotus-provider config remove - Remove a named config layer. + +USAGE: + lotus-provider config remove [command options] [arguments...] + +OPTIONS: + --help, -h show help +``` + +### lotus-provider config from-miner +``` +NAME: + lotus-provider config from-miner - Express a database config (for lotus-provider) from an existing miner. + +USAGE: + lotus-provider config from-miner [command options] [arguments...] + +DESCRIPTION: + Express a database config (for lotus-provider) from an existing miner. + +OPTIONS: + --miner-repo value, --storagerepo value Specify miner repo path. flag(storagerepo) and env(LOTUS_STORAGE_PATH) are DEPRECATION, will REMOVE SOON (default: "~/.lotusminer") [$LOTUS_MINER_PATH, $LOTUS_STORAGE_PATH] + --to-layer value, -t value The layer name for this data push. 'base' is recommended for single-miner setup. + --overwrite, -o Use this with --to-layer to replace an existing layer (default: false) + --help, -h show help +``` + +## lotus-provider test +``` +NAME: + lotus-provider test - Utility functions for testing + +USAGE: + lotus-provider test command [command options] [arguments...] + +COMMANDS: + window-post, wd, windowpost, wdpost Compute a proof-of-spacetime for a sector (requires the sector to be pre-sealed). These will not send to the chain. + help, h Shows a list of commands or help for one command + +OPTIONS: + --help, -h show help +``` + +### lotus-provider test window-post +``` +NAME: + lotus-provider test window-post - Compute a proof-of-spacetime for a sector (requires the sector to be pre-sealed). These will not send to the chain. + +USAGE: + lotus-provider test window-post command [command options] [arguments...] + +COMMANDS: + here, cli Compute WindowPoSt for performance and configuration testing. + task, scheduled, schedule, async, asynchronous Test the windowpost scheduler by running it on the next available lotus-provider. + help, h Shows a list of commands or help for one command + +OPTIONS: + --help, -h show help +``` + +#### lotus-provider test window-post here +``` +NAME: + lotus-provider test window-post here - Compute WindowPoSt for performance and configuration testing. + +USAGE: + lotus-provider test window-post here [command options] [deadline index] + +DESCRIPTION: + Note: This command is intended to be used to verify PoSt compute performance. + It will not send any messages to the chain. Since it can compute any deadline, output may be incorrectly timed for the chain. + +OPTIONS: + --deadline value deadline to compute WindowPoSt for (default: 0) + --layers value [ --layers value ] list of layers to be interpreted (atop defaults). Default: base (default: "base") + --storage-json value path to json file containing storage config (default: "~/.lotus-provider/storage.json") + --partition value partition to compute WindowPoSt for (default: 0) + --help, -h show help +``` + +#### lotus-provider test window-post task +``` +NAME: + lotus-provider test window-post task - Test the windowpost scheduler by running it on the next available lotus-provider. + +USAGE: + lotus-provider test window-post task [command options] [arguments...] + +OPTIONS: + --deadline value deadline to compute WindowPoSt for (default: 0) + --layers value [ --layers value ] list of layers to be interpreted (atop defaults). Default: base (default: "base") + --help, -h show help +``` + +## lotus-provider version +``` +NAME: + lotus-provider version - Print version + +USAGE: + lotus-provider version [command options] [arguments...] + +OPTIONS: + --help, -h show help +``` + +## lotus-provider auth +``` +NAME: + lotus-provider auth - Manage RPC permissions + +USAGE: + lotus-provider auth command [command options] [arguments...] + +COMMANDS: + create-token Create token + api-info Get token with API info required to connect to this node + help, h Shows a list of commands or help for one command + +OPTIONS: + --help, -h show help +``` + +### lotus-provider auth create-token +``` +NAME: + lotus-provider auth create-token - Create token + +USAGE: + lotus-provider auth create-token [command options] [arguments...] + +OPTIONS: + --perm value permission to assign to the token, one of: read, write, sign, admin + --help, -h show help +``` + +### lotus-provider auth api-info +``` +NAME: + lotus-provider auth api-info - Get token with API info required to connect to this node + +USAGE: + lotus-provider auth api-info [command options] [arguments...] + +OPTIONS: + --perm value permission to assign to the token, one of: read, write, sign, admin + --help, -h show help +``` + +## lotus-provider log +``` +NAME: + lotus-provider log - Manage logging + +USAGE: + lotus-provider log command [command options] [arguments...] + +COMMANDS: + list List log systems + set-level Set log level + alerts Get alert states + help, h Shows a list of commands or help for one command + +OPTIONS: + --help, -h show help +``` + +### lotus-provider log list +``` +NAME: + lotus-provider log list - List log systems + +USAGE: + lotus-provider log list [command options] [arguments...] + +OPTIONS: + --help, -h show help +``` + +### lotus-provider log set-level +``` +NAME: + lotus-provider log set-level - Set log level + +USAGE: + lotus-provider log set-level [command options] [level] + +DESCRIPTION: + Set the log level for logging systems: + + The system flag can be specified multiple times. + + eg) log set-level --system chain --system chainxchg debug + + Available Levels: + debug + info + warn + error + + Environment Variables: + GOLOG_LOG_LEVEL - Default log level for all log systems + GOLOG_LOG_FMT - Change output log format (json, nocolor) + GOLOG_FILE - Write logs to file + GOLOG_OUTPUT - Specify whether to output to file, stderr, stdout or a combination, i.e. file+stderr + + +OPTIONS: + --system value [ --system value ] limit to log system + --help, -h show help +``` + +### lotus-provider log alerts +``` +NAME: + lotus-provider log alerts - Get alert states + +USAGE: + lotus-provider log alerts [command options] [arguments...] + +OPTIONS: + --all get all (active and inactive) alerts (default: false) + --help, -h show help +``` + +## lotus-provider wait-api +``` +NAME: + lotus-provider wait-api - Wait for lotus api to come online + +USAGE: + lotus-provider wait-api [command options] [arguments...] + +CATEGORY: + DEVELOPER + +OPTIONS: + --timeout value duration to wait till fail (default: 30s) + --help, -h show help +``` + +## lotus-provider fetch-params +``` +NAME: + lotus-provider fetch-params - Fetch proving parameters + +USAGE: + lotus-provider fetch-params [command options] [sectorSize] + +CATEGORY: + DEVELOPER + +OPTIONS: + --help, -h show help +``` diff --git a/documentation/en/cli-lotus.md b/documentation/en/cli-lotus.md index 6e17b7ec1..ff62980dc 100644 --- a/documentation/en/cli-lotus.md +++ b/documentation/en/cli-lotus.md @@ -1807,8 +1807,16 @@ OPTIONS: --help, -h show help ``` -#### lotus state sector, sector-info +### lotus state sector ``` +NAME: + lotus state sector - Get miner sector info + +USAGE: + lotus state sector [command options] [minerAddress] [sectorNumber] + +OPTIONS: + --help, -h show help ``` ### lotus state get-actor @@ -1937,12 +1945,29 @@ OPTIONS: --help, -h show help ``` -#### lotus state wait-msg, wait-message +### lotus state wait-msg ``` +NAME: + lotus state wait-msg - Wait for a message to appear on chain + +USAGE: + lotus state wait-msg [command options] [messageCid] + +OPTIONS: + --timeout value (default: "10m") + --help, -h show help ``` -#### lotus state search-msg, search-message +### lotus state search-msg ``` +NAME: + lotus state search-msg - Search to see whether a message has appeared on chain + +USAGE: + lotus state search-msg [command options] [messageCid] + +OPTIONS: + --help, -h show help ``` ### lotus state miner-info @@ -2080,8 +2105,17 @@ OPTIONS: --help, -h show help ``` -#### lotus chain get-block, getblock +### lotus chain get-block ``` +NAME: + lotus chain get-block - Get a block and print its details + +USAGE: + lotus chain get-block [command options] [blockCid] + +OPTIONS: + --raw print just the raw block header (default: false) + --help, -h show help ``` ### lotus chain read-obj @@ -2132,16 +2166,46 @@ OPTIONS: --help, -h show help ``` -##### lotus chain getmessage, get-message, get-msg +### lotus chain getmessage ``` +NAME: + lotus chain getmessage - Get and print a message by its cid + +USAGE: + lotus chain getmessage [command options] [messageCid] + +OPTIONS: + --help, -h show help ``` -#### lotus chain sethead, set-head +### lotus chain sethead ``` +NAME: + lotus chain sethead - manually set the local nodes head tipset (Caution: normally only used for recovery) + +USAGE: + lotus chain sethead [command options] [tipsetkey] + +OPTIONS: + --genesis reset head to genesis (default: false) + --epoch value reset head to given epoch (default: 0) + --help, -h show help ``` -#### lotus chain list, love +### lotus chain list ``` +NAME: + lotus chain list - View a segment of the chain + +USAGE: + lotus chain list [command options] [arguments...] + +OPTIONS: + --height value (default: current head) + --count value (default: 30) + --format value specify the format to print out tipsets (default: ": (