2021-07-23 11:55:50 +00:00
|
|
|
// Code generated by github.com/filecoin-project/lotus/node/config/cfgdocgen. DO NOT EDIT.
|
|
|
|
|
|
|
|
package config
|
|
|
|
|
|
|
|
type DocField struct {
|
|
|
|
Name string
|
|
|
|
Type string
|
|
|
|
Comment string
|
|
|
|
}
|
|
|
|
|
|
|
|
var Doc = map[string][]DocField{
|
|
|
|
"API": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ListenAddress",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-23 12:55:19 +00:00
|
|
|
Comment: `Binding address for the Lotus API`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "RemoteListenAddress",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Timeout",
|
|
|
|
Type: "Duration",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"Backup": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "DisableMetadataLog",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Note that in case of metadata corruption it might be much harder to recover
|
|
|
|
your node if metadata log is disabled`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
"BatchFeeConfig": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Base",
|
|
|
|
Type: "types.FIL",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "PerSector",
|
|
|
|
Type: "types.FIL",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"Chainstore": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "EnableSplitstore",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Splitstore",
|
|
|
|
Type: "Splitstore",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"Client": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "UseIpfs",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "IpfsOnlineMode",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "IpfsMAddr",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "IpfsUseForRetrieval",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "SimultaneousTransfers",
|
|
|
|
Type: "uint64",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `The maximum number of simultaneous data transfers between the client
|
|
|
|
and storage providers`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
"Common": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "API",
|
|
|
|
Type: "API",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Backup",
|
|
|
|
Type: "Backup",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Libp2p",
|
|
|
|
Type: "Libp2p",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Pubsub",
|
|
|
|
Type: "Pubsub",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
integrate DAG store and CARv2 in deal-making (#6671)
This commit removes badger from the deal-making processes, and
moves to a new architecture with the dagstore as the cental
component on the miner-side, and CARv2s on the client-side.
Every deal that has been handed off to the sealing subsystem becomes
a shard in the dagstore. Shards are mounted via the LotusMount, which
teaches the dagstore how to load the related piece when serving
retrievals.
When the miner starts the Lotus for the first time with this patch,
we will perform a one-time migration of all active deals into the
dagstore. This is a lightweight process, and it consists simply
of registering the shards in the dagstore.
Shards are backed by the unsealed copy of the piece. This is currently
a CARv1. However, the dagstore keeps CARv2 indices for all pieces, so
when it's time to acquire a shard to serve a retrieval, the unsealed
CARv1 is joined with its index (safeguarded by the dagstore), to form
a read-only blockstore, thus taking the place of the monolithic
badger.
Data transfers have been adjusted to interface directly with CARv2 files.
On inbound transfers (client retrievals, miner storage deals), we stream
the received data into a CARv2 ReadWrite blockstore. On outbound transfers
(client storage deals, miner retrievals), we serve the data off a CARv2
ReadOnly blockstore.
Client-side imports are managed by the refactored *imports.Manager
component (when not using IPFS integration). Just like it before, we use
the go-filestore library to avoid duplicating the data from the original
file in the resulting UnixFS DAG (concretely the leaves). However, the
target of those imports are what we call "ref-CARv2s": CARv2 files placed
under the `$LOTUS_PATH/imports` directory, containing the intermediate
nodes in full, and the leaves as positional references to the original file
on disk.
Client-side retrievals are placed into CARv2 files in the location:
`$LOTUS_PATH/retrievals`.
A new set of `Dagstore*` JSON-RPC operations and `lotus-miner dagstore`
subcommands have been introduced on the miner-side to inspect and manage
the dagstore.
Despite moving to a CARv2-backed system, the IPFS integration has been
respected, and it continues to be possible to make storage deals with data
held in an IPFS node, and to perform retrievals directly into an IPFS node.
NOTE: because the "staging" and "client" Badger blockstores are no longer
used, existing imports on the client will be rendered useless. On startup,
Lotus will enumerate all imports and print WARN statements on the log for
each import that needs to be reimported. These log lines contain these
messages:
- import lacks carv2 path; import will not work; please reimport
- import has missing/broken carv2; please reimport
At the end, we will print a "sanity check completed" message indicating
the count of imports found, and how many were deemed broken.
Co-authored-by: Aarsh Shah <aarshkshah1992@gmail.com>
Co-authored-by: Dirk McCormick <dirkmdev@gmail.com>
Co-authored-by: Raúl Kripalani <raul@protocol.ai>
Co-authored-by: Dirk McCormick <dirkmdev@gmail.com>
2021-08-16 22:34:32 +00:00
|
|
|
"DAGStoreConfig": []DocField{
|
|
|
|
{
|
|
|
|
Name: "RootDir",
|
|
|
|
Type: "string",
|
|
|
|
|
|
|
|
Comment: `Path to the dagstore root directory. This directory contains three
|
|
|
|
subdirectories, which can be symlinked to alternative locations if
|
|
|
|
need be:
|
|
|
|
- ./transients: caches unsealed deals that have been fetched from the
|
|
|
|
storage subsystem for serving retrievals.
|
|
|
|
- ./indices: stores shard indices.
|
|
|
|
- ./datastore: holds the KV store tracking the state of every shard
|
|
|
|
known to the DAG store.
|
|
|
|
Default value: <LOTUS_MARKETS_PATH>/dagstore (split deployment) or
|
|
|
|
<LOTUS_MINER_PATH>/dagstore (monolith deployment)`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "MaxConcurrentIndex",
|
|
|
|
Type: "int",
|
|
|
|
|
|
|
|
Comment: `The maximum amount of indexing jobs that can run simultaneously.
|
|
|
|
0 means unlimited.
|
|
|
|
Default value: 5.`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "MaxConcurrentReadyFetches",
|
|
|
|
Type: "int",
|
|
|
|
|
|
|
|
Comment: `The maximum amount of unsealed deals that can be fetched simultaneously
|
|
|
|
from the storage subsystem. 0 means unlimited.
|
|
|
|
Default value: 0 (unlimited).`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "MaxConcurrencyStorageCalls",
|
|
|
|
Type: "int",
|
|
|
|
|
|
|
|
Comment: `The maximum number of simultaneous inflight API calls to the storage
|
|
|
|
subsystem.
|
|
|
|
Default value: 100.`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "GCInterval",
|
|
|
|
Type: "Duration",
|
|
|
|
|
|
|
|
Comment: `The time between calls to periodic dagstore GC, in time.Duration string
|
|
|
|
representation, e.g. 1m, 5m, 1h.
|
|
|
|
Default value: 1 minute.`,
|
|
|
|
},
|
|
|
|
},
|
2021-07-23 11:55:50 +00:00
|
|
|
"DealmakingConfig": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ConsiderOnlineStorageDeals",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `When enabled, the miner can accept online deals`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ConsiderOfflineStorageDeals",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `When enabled, the miner can accept offline deals`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ConsiderOnlineRetrievalDeals",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `When enabled, the miner can accept retrieval deals`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ConsiderOfflineRetrievalDeals",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `When enabled, the miner can accept offline retrieval deals`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ConsiderVerifiedStorageDeals",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `When enabled, the miner can accept verified deals`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ConsiderUnverifiedStorageDeals",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `When enabled, the miner can accept unverified deals`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "PieceCidBlocklist",
|
|
|
|
Type: "[]cid.Cid",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `A list of Data CIDs to reject when making deals`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ExpectedSealDuration",
|
|
|
|
Type: "Duration",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Maximum expected amount of time getting the deal into a sealed sector will take
|
|
|
|
This includes the time the deal will need to get transferred and published
|
|
|
|
before being assigned to a sector`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxDealStartDelay",
|
|
|
|
Type: "Duration",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `Maximum amount of time proposed deal StartEpoch can be in future`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "PublishMsgPeriod",
|
|
|
|
Type: "Duration",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `When a deal is ready to publish, the amount of time to wait for more
|
|
|
|
deals to be ready to publish before publishing them all as a batch`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxDealsPerPublishMsg",
|
|
|
|
Type: "uint64",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `The maximum number of deals to include in a single PublishStorageDeals
|
|
|
|
message`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxProviderCollateralMultiplier",
|
|
|
|
Type: "uint64",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `The maximum collateral that the provider will put up against a deal,
|
|
|
|
as a multiplier of the minimum collateral bound`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "SimultaneousTransfers",
|
|
|
|
Type: "uint64",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `The maximum number of parallel online data transfers (storage+retrieval)`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Filter",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `A command used for fine-grained evaluation of storage deals
|
|
|
|
see https://docs.filecoin.io/mine/lotus/miner-configuration/#using-filters-for-fine-grained-storage-and-retrieval-deal-acceptance for more details`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "RetrievalFilter",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `A command used for fine-grained evaluation of retrieval deals
|
|
|
|
see https://docs.filecoin.io/mine/lotus/miner-configuration/#using-filters-for-fine-grained-storage-and-retrieval-deal-acceptance for more details`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "RetrievalPricing",
|
|
|
|
Type: "*RetrievalPricing",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"FeeConfig": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "DefaultMaxFee",
|
|
|
|
Type: "types.FIL",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"FullNode": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Client",
|
|
|
|
Type: "Client",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Wallet",
|
|
|
|
Type: "Wallet",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Fees",
|
|
|
|
Type: "FeeConfig",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Chainstore",
|
|
|
|
Type: "Chainstore",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"Libp2p": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ListenAddresses",
|
|
|
|
Type: "[]string",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Binding address for the libp2p host - 0 means random port.
|
|
|
|
Format: multiaddress; see https://multiformats.io/multiaddr/`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "AnnounceAddresses",
|
|
|
|
Type: "[]string",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Addresses to explicitally announce to other peers. If not specified,
|
|
|
|
all interface addresses are announced
|
|
|
|
Format: multiaddress`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "NoAnnounceAddresses",
|
|
|
|
Type: "[]string",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Addresses to not announce
|
|
|
|
Format: multiaddress`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "BootstrapPeers",
|
|
|
|
Type: "[]string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ProtectedPeers",
|
|
|
|
Type: "[]string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ConnMgrLow",
|
|
|
|
Type: "uint",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ConnMgrHigh",
|
|
|
|
Type: "uint",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ConnMgrGrace",
|
|
|
|
Type: "Duration",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"MinerAddressConfig": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "PreCommitControl",
|
|
|
|
Type: "[]string",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Addresses to send PreCommit messages from`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "CommitControl",
|
|
|
|
Type: "[]string",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Addresses to send Commit messages from`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "TerminateControl",
|
|
|
|
Type: "[]string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "DealPublishControl",
|
|
|
|
Type: "[]string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "DisableOwnerFallback",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `DisableOwnerFallback disables usage of the owner address for messages
|
|
|
|
sent automatically`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "DisableWorkerFallback",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `DisableWorkerFallback disables usage of the worker address for messages
|
|
|
|
sent automatically, if control addresses are configured.
|
|
|
|
A control address that doesn't have enough funds will still be chosen
|
|
|
|
over the worker address if this flag is set.`,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"MinerFeeConfig": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxPreCommitGasFee",
|
|
|
|
Type: "types.FIL",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxCommitGasFee",
|
|
|
|
Type: "types.FIL",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxPreCommitBatchGasFee",
|
|
|
|
Type: "BatchFeeConfig",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `maxBatchFee = maxBase + maxPerSector * nSectors`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxCommitBatchGasFee",
|
|
|
|
Type: "BatchFeeConfig",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxTerminateGasFee",
|
|
|
|
Type: "types.FIL",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxWindowPoStGasFee",
|
|
|
|
Type: "types.FIL",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `WindowPoSt is a high-value operation, so the default fee should be high.`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxPublishDealsFee",
|
|
|
|
Type: "types.FIL",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxMarketBalanceAddFee",
|
|
|
|
Type: "types.FIL",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"MinerSubsystemConfig": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "EnableMining",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "EnableSealing",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "EnableSectorStorage",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "EnableMarkets",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "SealerApiInfo",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "SectorIndexApiInfo",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"Pubsub": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Bootstrapper",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Run the node in bootstrap-node mode`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "DirectPeers",
|
|
|
|
Type: "[]string",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `DirectPeers specifies peers with direct peering agreements. These peers are
|
|
|
|
connected outside of the mesh, with all (valid) message unconditionally
|
|
|
|
forwarded to them. The router will maintain open connections to these peers.
|
|
|
|
Note that the peering agreement should be reciprocal with direct peers
|
|
|
|
symmetrically configured at both ends.
|
|
|
|
Type: Array of multiaddress peerinfo strings, must include peerid (/p2p/12D3K...`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "IPColocationWhitelist",
|
|
|
|
Type: "[]string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "RemoteTracer",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-09-15 12:22:48 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-09-24 11:53:31 +00:00
|
|
|
Name: "JsonTracer",
|
2021-09-15 12:22:48 +00:00
|
|
|
Type: "string",
|
|
|
|
|
2021-09-15 12:50:27 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "ElasticSearchTracer",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-09-24 11:53:31 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "TracerSourceAuth",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"RetrievalPricing": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Strategy",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Default",
|
|
|
|
Type: "*RetrievalPricingDefault",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "External",
|
|
|
|
Type: "*RetrievalPricingExternal",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"RetrievalPricingDefault": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "VerifiedDealsFreeTransfer",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `VerifiedDealsFreeTransfer configures zero fees for data transfer for a retrieval deal
|
|
|
|
of a payloadCid that belongs to a verified storage deal.
|
|
|
|
This parameter is ONLY applicable if the retrieval pricing policy strategy has been configured to "default".
|
|
|
|
default value is true`,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"RetrievalPricingExternal": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Path",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `Path of the external script that will be run to price a retrieval deal.
|
|
|
|
This parameter is ONLY applicable if the retrieval pricing policy strategy has been configured to "external".`,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"SealingConfig": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxWaitDealsSectors",
|
|
|
|
Type: "uint64",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Upper bound on how many sectors can be waiting for more deals to be packed in it before it begins sealing at any given time.
|
|
|
|
If the miner is accepting multiple deals in parallel, up to MaxWaitDealsSectors of new sectors will be created.
|
|
|
|
If more than MaxWaitDealsSectors deals are accepted in parallel, only MaxWaitDealsSectors deals will be processed in parallel
|
|
|
|
Note that setting this number too high in relation to deal ingestion rate may result in poor sector packing efficiency
|
|
|
|
0 = no limit`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxSealingSectors",
|
|
|
|
Type: "uint64",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Upper bound on how many sectors can be sealing at the same time when creating new CC sectors (0 = unlimited)`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxSealingSectorsForDeals",
|
|
|
|
Type: "uint64",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Upper bound on how many sectors can be sealing at the same time when creating new sectors with deals (0 = unlimited)`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
2021-07-24 01:05:50 +00:00
|
|
|
{
|
|
|
|
Name: "CommittedCapacitySectorLifetime",
|
|
|
|
Type: "Duration",
|
|
|
|
|
|
|
|
Comment: `CommittedCapacitySectorLifetime is the duration a Committed Capacity (CC) sector will
|
|
|
|
live before it must be extended or converted into sector containing deals before it is
|
|
|
|
terminated. Value must be between 180-540 days inclusive`,
|
|
|
|
},
|
2021-07-23 11:55:50 +00:00
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "WaitDealsDelay",
|
|
|
|
Type: "Duration",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Period of time that a newly created sector will wait for more deals to be packed in to before it starts to seal.
|
|
|
|
Sectors which are fully filled will start sealing immediately`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "AlwaysKeepUnsealedCopy",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 13:40:30 +00:00
|
|
|
Comment: `Whether to keep unsealed copies of deal data regardless of whether the client requested that. This lets the miner
|
|
|
|
avoid the relatively high cost of unsealing the data later, at the cost of more storage space`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "FinalizeEarly",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `Run sector finalization before submitting sector proof to the chain`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "CollateralFromMinerBalance",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `Whether to use available miner balance for sector collateral instead of sending it with each message`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "AvailableBalanceBuffer",
|
|
|
|
Type: "types.FIL",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `Minimum available balance to keep in the miner actor before sending it with messages`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "DisableCollateralFallback",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `Don't send collateral with messages even if there is no available balance in the miner actor`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "BatchPreCommits",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `enable / disable precommit batching (takes effect after nv13)`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxPreCommitBatch",
|
|
|
|
Type: "int",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `maximum precommit batch size - batches will be sent immediately above this size`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "PreCommitBatchWait",
|
|
|
|
Type: "Duration",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `how long to wait before submitting a batch after crossing the minimum batch size`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "PreCommitBatchSlack",
|
|
|
|
Type: "Duration",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `time buffer for forceful batch submission before sectors/deal in batch would start expiring`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "AggregateCommits",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `enable / disable commit aggregation (takes effect after nv13)`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MinCommitBatch",
|
|
|
|
Type: "int",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `maximum batched commit size - batches will be sent immediately above this size`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MaxCommitBatch",
|
|
|
|
Type: "int",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "CommitBatchWait",
|
|
|
|
Type: "Duration",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `how long to wait before submitting a batch after crossing the minimum batch size`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "CommitBatchSlack",
|
|
|
|
Type: "Duration",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `time buffer for forceful batch submission before sectors/deals in batch would start expiring`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "AggregateAboveBaseFee",
|
|
|
|
Type: "types.FIL",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: `network BaseFee below which to stop doing commit aggregation, instead
|
|
|
|
submitting proofs to the chain individually`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "TerminateBatchMax",
|
|
|
|
Type: "uint64",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "TerminateBatchMin",
|
|
|
|
Type: "uint64",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "TerminateBatchWait",
|
|
|
|
Type: "Duration",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"Splitstore": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "ColdStoreType",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-24 06:00:00 +00:00
|
|
|
Comment: `ColdStoreType specifies the type of the coldstore.
|
|
|
|
It can be "universal" (default) or "discard" for discarding cold blocks.`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "HotStoreType",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-24 06:00:00 +00:00
|
|
|
Comment: `HotStoreType specifies the type of the hotstore.
|
|
|
|
Only currently supported value is "badger".`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "MarkSetType",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-24 06:00:00 +00:00
|
|
|
Comment: `MarkSetType specifies the type of the markset.
|
|
|
|
It can be "map" (default) for in memory marking or "badger" for on-disk marking.`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "HotStoreMessageRetention",
|
|
|
|
Type: "uint64",
|
|
|
|
|
2021-07-24 06:00:00 +00:00
|
|
|
Comment: `HotStoreMessageRetention specifies the retention policy for messages, in finalities beyond
|
|
|
|
the compaction boundary; default is 0.`,
|
|
|
|
},
|
|
|
|
{
|
2021-07-27 09:13:26 +00:00
|
|
|
Name: "HotStoreFullGCFrequency",
|
2021-07-24 06:00:00 +00:00
|
|
|
Type: "uint64",
|
|
|
|
|
2021-07-27 09:13:26 +00:00
|
|
|
Comment: `HotStoreFullGCFrequency specifies how often to perform a full (moving) GC on the hotstore.
|
|
|
|
A value of 0 disables, while a value 1 will do full GC in every compaction.
|
2021-07-24 06:00:00 +00:00
|
|
|
Default is 20 (about once a week).`,
|
2021-07-23 11:55:50 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
"StorageMiner": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Subsystems",
|
|
|
|
Type: "MinerSubsystemConfig",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Dealmaking",
|
|
|
|
Type: "DealmakingConfig",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Sealing",
|
|
|
|
Type: "SealingConfig",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Storage",
|
|
|
|
Type: "sectorstorage.SealerConfig",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Fees",
|
|
|
|
Type: "MinerFeeConfig",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "Addresses",
|
|
|
|
Type: "MinerAddressConfig",
|
|
|
|
|
integrate DAG store and CARv2 in deal-making (#6671)
This commit removes badger from the deal-making processes, and
moves to a new architecture with the dagstore as the cental
component on the miner-side, and CARv2s on the client-side.
Every deal that has been handed off to the sealing subsystem becomes
a shard in the dagstore. Shards are mounted via the LotusMount, which
teaches the dagstore how to load the related piece when serving
retrievals.
When the miner starts the Lotus for the first time with this patch,
we will perform a one-time migration of all active deals into the
dagstore. This is a lightweight process, and it consists simply
of registering the shards in the dagstore.
Shards are backed by the unsealed copy of the piece. This is currently
a CARv1. However, the dagstore keeps CARv2 indices for all pieces, so
when it's time to acquire a shard to serve a retrieval, the unsealed
CARv1 is joined with its index (safeguarded by the dagstore), to form
a read-only blockstore, thus taking the place of the monolithic
badger.
Data transfers have been adjusted to interface directly with CARv2 files.
On inbound transfers (client retrievals, miner storage deals), we stream
the received data into a CARv2 ReadWrite blockstore. On outbound transfers
(client storage deals, miner retrievals), we serve the data off a CARv2
ReadOnly blockstore.
Client-side imports are managed by the refactored *imports.Manager
component (when not using IPFS integration). Just like it before, we use
the go-filestore library to avoid duplicating the data from the original
file in the resulting UnixFS DAG (concretely the leaves). However, the
target of those imports are what we call "ref-CARv2s": CARv2 files placed
under the `$LOTUS_PATH/imports` directory, containing the intermediate
nodes in full, and the leaves as positional references to the original file
on disk.
Client-side retrievals are placed into CARv2 files in the location:
`$LOTUS_PATH/retrievals`.
A new set of `Dagstore*` JSON-RPC operations and `lotus-miner dagstore`
subcommands have been introduced on the miner-side to inspect and manage
the dagstore.
Despite moving to a CARv2-backed system, the IPFS integration has been
respected, and it continues to be possible to make storage deals with data
held in an IPFS node, and to perform retrievals directly into an IPFS node.
NOTE: because the "staging" and "client" Badger blockstores are no longer
used, existing imports on the client will be rendered useless. On startup,
Lotus will enumerate all imports and print WARN statements on the log for
each import that needs to be reimported. These log lines contain these
messages:
- import lacks carv2 path; import will not work; please reimport
- import has missing/broken carv2; please reimport
At the end, we will print a "sanity check completed" message indicating
the count of imports found, and how many were deemed broken.
Co-authored-by: Aarsh Shah <aarshkshah1992@gmail.com>
Co-authored-by: Dirk McCormick <dirkmdev@gmail.com>
Co-authored-by: Raúl Kripalani <raul@protocol.ai>
Co-authored-by: Dirk McCormick <dirkmdev@gmail.com>
2021-08-16 22:34:32 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "DAGStore",
|
|
|
|
Type: "DAGStoreConfig",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"Wallet": []DocField{
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "RemoteBackend",
|
|
|
|
Type: "string",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "EnableLedger",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
{
|
2021-07-23 13:18:20 +00:00
|
|
|
Name: "DisableLocal",
|
|
|
|
Type: "bool",
|
|
|
|
|
2021-07-23 11:55:50 +00:00
|
|
|
Comment: ``,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|