config

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 7, 2022 License: Apache-2.0, MIT Imports: 20 Imported by: 9

Documentation

Index

Constants

View Source
const (
	// RetrievalPricingDefault configures the node to use the default retrieval pricing policy.
	RetrievalPricingDefaultMode = "default"
	// RetrievalPricingExternal configures the node to use the external retrieval pricing script
	// configured by the user.
	RetrievalPricingExternalMode = "external"
)

Variables

View Source
var DefaultDefaultMaxFee = types.MustParseFIL("0.07")
View Source
var DefaultSimultaneousTransfers = uint64(20)
View Source
var Doc = map[string][]DocField{
	"Backup": []DocField{
		{
			Name: "DisableMetadataLog",
			Type: "bool",

			Comment: `Note that in case of metadata corruption it might be much harder to recover
your node if metadata log is disabled`,
		},
	},
	"Boost": []DocField{
		{
			Name: "Storage",
			Type: "lotus_config.SealerConfig",

			Comment: ``,
		},
		{
			Name: "SealerApiInfo",
			Type: "string",

			Comment: ``,
		},
		{
			Name: "SectorIndexApiInfo",
			Type: "string",

			Comment: ``,
		},
		{
			Name: "Dealmaking",
			Type: "DealmakingConfig",

			Comment: ``,
		},
		{
			Name: "Wallets",
			Type: "WalletsConfig",

			Comment: ``,
		},
		{
			Name: "LotusDealmaking",
			Type: "lotus_config.DealmakingConfig",

			Comment: `Lotus configs`,
		},
		{
			Name: "LotusFees",
			Type: "lotus_config.MinerFeeConfig",

			Comment: ``,
		},
		{
			Name: "DAGStore",
			Type: "lotus_config.DAGStoreConfig",

			Comment: ``,
		},
		{
			Name: "IndexProvider",
			Type: "lotus_config.IndexProviderConfig",

			Comment: ``,
		},
	},
	"Common": []DocField{
		{
			Name: "API",
			Type: "lotus_config.API",

			Comment: ``,
		},
		{
			Name: "Backup",
			Type: "lotus_config.Backup",

			Comment: ``,
		},
		{
			Name: "Libp2p",
			Type: "lotus_config.Libp2p",

			Comment: ``,
		},
		{
			Name: "Pubsub",
			Type: "lotus_config.Pubsub",

			Comment: ``,
		},
	},
	"DealmakingConfig": []DocField{
		{
			Name: "ConsiderOnlineStorageDeals",
			Type: "bool",

			Comment: `When enabled, the miner can accept online deals`,
		},
		{
			Name: "ConsiderOfflineStorageDeals",
			Type: "bool",

			Comment: `When enabled, the miner can accept offline deals`,
		},
		{
			Name: "ConsiderOnlineRetrievalDeals",
			Type: "bool",

			Comment: `When enabled, the miner can accept retrieval deals`,
		},
		{
			Name: "ConsiderOfflineRetrievalDeals",
			Type: "bool",

			Comment: `When enabled, the miner can accept offline retrieval deals`,
		},
		{
			Name: "ConsiderVerifiedStorageDeals",
			Type: "bool",

			Comment: `When enabled, the miner can accept verified deals`,
		},
		{
			Name: "ConsiderUnverifiedStorageDeals",
			Type: "bool",

			Comment: `When enabled, the miner can accept unverified deals`,
		},
		{
			Name: "PieceCidBlocklist",
			Type: "[]cid.Cid",

			Comment: `A list of Data CIDs to reject when making deals`,
		},
		{
			Name: "ExpectedSealDuration",
			Type: "Duration",

			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`,
		},
		{
			Name: "MaxDealStartDelay",
			Type: "Duration",

			Comment: `Maximum amount of time proposed deal StartEpoch can be in future`,
		},
		{
			Name: "PublishMsgPeriod",
			Type: "Duration",

			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`,
		},
		{
			Name: "PublishMsgMaxDealsPerMsg",
			Type: "uint64",

			Comment: `The maximum number of deals to include in a single PublishStorageDeals
message`,
		},
		{
			Name: "PublishMsgMaxFee",
			Type: "types.FIL",

			Comment: `The maximum network fees to pay when sending the PublishStorageDeals message`,
		},
		{
			Name: "MaxProviderCollateralMultiplier",
			Type: "uint64",

			Comment: `The maximum collateral that the provider will put up against a deal,
as a multiplier of the minimum collateral bound`,
		},
		{
			Name: "MaxStagingDealsBytes",
			Type: "int64",

			Comment: `The maximum allowed disk usage size in bytes of staging deals not yet
passed to the sealing node by the markets service. 0 is unlimited.`,
		},
		{
			Name: "SimultaneousTransfersForStorage",
			Type: "uint64",

			Comment: `The maximum number of parallel online data transfers for storage deals`,
		},
		{
			Name: "SimultaneousTransfersForRetrieval",
			Type: "uint64",

			Comment: `The maximum number of parallel online data transfers for retrieval deals`,
		},
		{
			Name: "StartEpochSealingBuffer",
			Type: "uint64",

			Comment: `Minimum start epoch buffer to give time for sealing of sector with deal.`,
		},
		{
			Name: "DealProposalLogDuration",
			Type: "Duration",

			Comment: `The amount of time to keep deal proposal logs for before cleaning them up.`,
		},
		{
			Name: "Filter",
			Type: "string",

			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`,
		},
		{
			Name: "RetrievalFilter",
			Type: "string",

			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`,
		},
		{
			Name: "RetrievalPricing",
			Type: "*lotus_config.RetrievalPricing",

			Comment: ``,
		},
	},
	"LotusDealmakingConfig": []DocField{
		{
			Name: "PieceCidBlocklist",
			Type: "[]cid.Cid",

			Comment: `A list of Data CIDs to reject when making deals`,
		},
		{
			Name: "ExpectedSealDuration",
			Type: "Duration",

			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`,
		},
		{
			Name: "MaxDealStartDelay",
			Type: "Duration",

			Comment: `Maximum amount of time proposed deal StartEpoch can be in future`,
		},
		{
			Name: "PublishMsgPeriod",
			Type: "Duration",

			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`,
		},
		{
			Name: "MaxDealsPerPublishMsg",
			Type: "uint64",

			Comment: `The maximum number of deals to include in a single PublishStorageDeals
message`,
		},
		{
			Name: "MaxProviderCollateralMultiplier",
			Type: "uint64",

			Comment: `The maximum collateral that the provider will put up against a deal,
as a multiplier of the minimum collateral bound`,
		},
		{
			Name: "MaxStagingDealsBytes",
			Type: "int64",

			Comment: `The maximum allowed disk usage size in bytes of staging deals not yet
passed to the sealing node by the markets service. 0 is unlimited.`,
		},
		{
			Name: "SimultaneousTransfersForStorage",
			Type: "uint64",

			Comment: `The maximum number of parallel online data transfers for storage deals`,
		},
		{
			Name: "SimultaneousTransfersForStoragePerClient",
			Type: "uint64",

			Comment: `The maximum number of simultaneous data transfers from any single client
for storage deals.
Unset by default (0), and values higher than SimultaneousTransfersForStorage
will have no effect; i.e. the total number of simultaneous data transfers
across all storage clients is bound by SimultaneousTransfersForStorage
regardless of this number.`,
		},
		{
			Name: "SimultaneousTransfersForRetrieval",
			Type: "uint64",

			Comment: `The maximum number of parallel online data transfers for retrieval deals`,
		},
		{
			Name: "StartEpochSealingBuffer",
			Type: "uint64",

			Comment: `Minimum start epoch buffer to give time for sealing of sector with deal.`,
		},
		{
			Name: "Filter",
			Type: "string",

			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`,
		},
		{
			Name: "RetrievalFilter",
			Type: "string",

			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`,
		},
		{
			Name: "RetrievalPricing",
			Type: "*lotus_config.RetrievalPricing",

			Comment: ``,
		},
	},
	"WalletsConfig": []DocField{
		{
			Name: "Miner",
			Type: "string",

			Comment: `The "owner" address of the miner`,
		},
		{
			Name: "PublishStorageDeals",
			Type: "string",

			Comment: `The wallet used to send PublishStorageDeals messages.
Must be a control or worker address of the miner.`,
		},
		{
			Name: "DealCollateral",
			Type: "string",

			Comment: `The wallet used as the source for storage deal collateral`,
		},
		{
			Name: "PledgeCollateral",
			Type: "string",

			Comment: `Deprecated: Renamed to DealCollateral`,
		},
	},
}
View Source
var MaxTraversalLinks uint64 = 32 * (1 << 20)

MaxTraversalLinks configures the maximum number of links to traverse in a DAG while calculating CommP and traversing a DAG with graphsync; invokes a budget on DAG depth and density.

Functions

func ConfigComment

func ConfigComment(t interface{}) ([]byte, error)

func ConfigUpdate

func ConfigUpdate(cfgCur, cfgDef interface{}, comment bool) ([]byte, error)

func FromFile

func FromFile(path string, def interface{}) (interface{}, error)

FromFile loads config from a specified file overriding defaults specified in the def parameter. If file does not exist or is empty defaults are assumed.

func FromReader

func FromReader(reader io.Reader, def interface{}) (interface{}, error)

FromReader loads config from a reader instance.

func StorageFromFile

func StorageFromFile(path string, def *stores.StorageConfig) (*stores.StorageConfig, error)

func StorageFromReader

func StorageFromReader(reader io.Reader) (*stores.StorageConfig, error)

func WriteStorageFile

func WriteStorageFile(path string, config stores.StorageConfig) error

Types

type Backup

type Backup struct {
	// When set to true disables metadata log (.lotus/kvlog). This can save disk
	// space by reducing metadata redundancy.
	//
	// Note that in case of metadata corruption it might be much harder to recover
	// your node if metadata log is disabled
	DisableMetadataLog bool
}

type Boost

type Boost struct {
	Common

	Storage            lotus_config.SealerConfig
	SealerApiInfo      string
	SectorIndexApiInfo string
	Dealmaking         DealmakingConfig
	Wallets            WalletsConfig

	// Lotus configs
	LotusDealmaking lotus_config.DealmakingConfig
	LotusFees       lotus_config.MinerFeeConfig
	DAGStore        lotus_config.DAGStoreConfig
	IndexProvider   lotus_config.IndexProviderConfig
}

Boost is a boost service config

func DefaultBoost

func DefaultBoost() *Boost

func (*Boost) GetDealmakingConfig

func (b *Boost) GetDealmakingConfig() lotus_config.DealmakingConfig

func (*Boost) SetDealmakingConfig

func (b *Boost) SetDealmakingConfig(other lotus_config.DealmakingConfig)

func (*Boost) StorageManager

func (c *Boost) StorageManager() sectorstorage.Config

Convert boost config to sectorstorage.Config

type Common

type Common struct {
	API    lotus_config.API
	Backup lotus_config.Backup
	Libp2p lotus_config.Libp2p
	Pubsub lotus_config.Pubsub
}

Common is common config between full node and miner

type DealmakingConfig

type DealmakingConfig struct {
	// When enabled, the miner can accept online deals
	ConsiderOnlineStorageDeals bool
	// When enabled, the miner can accept offline deals
	ConsiderOfflineStorageDeals bool
	// When enabled, the miner can accept retrieval deals
	ConsiderOnlineRetrievalDeals bool
	// When enabled, the miner can accept offline retrieval deals
	ConsiderOfflineRetrievalDeals bool
	// When enabled, the miner can accept verified deals
	ConsiderVerifiedStorageDeals bool
	// When enabled, the miner can accept unverified deals
	ConsiderUnverifiedStorageDeals bool
	// A list of Data CIDs to reject when making deals
	PieceCidBlocklist []cid.Cid
	// 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
	ExpectedSealDuration Duration
	// Maximum amount of time proposed deal StartEpoch can be in future
	MaxDealStartDelay Duration
	// 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
	PublishMsgPeriod Duration
	// The maximum number of deals to include in a single PublishStorageDeals
	// message
	PublishMsgMaxDealsPerMsg uint64
	// The maximum network fees to pay when sending the PublishStorageDeals message
	PublishMsgMaxFee types.FIL
	// The maximum collateral that the provider will put up against a deal,
	// as a multiplier of the minimum collateral bound
	MaxProviderCollateralMultiplier uint64
	// The maximum allowed disk usage size in bytes of staging deals not yet
	// passed to the sealing node by the markets service. 0 is unlimited.
	MaxStagingDealsBytes int64
	// The maximum number of parallel online data transfers for storage deals
	SimultaneousTransfersForStorage uint64
	// The maximum number of parallel online data transfers for retrieval deals
	SimultaneousTransfersForRetrieval uint64
	// Minimum start epoch buffer to give time for sealing of sector with deal.
	StartEpochSealingBuffer uint64
	// The amount of time to keep deal proposal logs for before cleaning them up.
	DealProposalLogDuration Duration

	// 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
	Filter string
	// 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
	RetrievalFilter string

	RetrievalPricing *lotus_config.RetrievalPricing
}

type DocField

type DocField struct {
	Name    string
	Type    string
	Comment string
}

type Duration

type Duration time.Duration

Duration is a wrapper type for time.Duration for decoding and encoding from/to TOML

func (Duration) MarshalText

func (dur Duration) MarshalText() ([]byte, error)

func (*Duration) UnmarshalText

func (dur *Duration) UnmarshalText(text []byte) error

UnmarshalText implements interface for TOML decoding

type LotusDealmakingConfig

type LotusDealmakingConfig struct {
	// A list of Data CIDs to reject when making deals
	PieceCidBlocklist []cid.Cid
	// 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
	ExpectedSealDuration Duration
	// Maximum amount of time proposed deal StartEpoch can be in future
	MaxDealStartDelay Duration
	// 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
	PublishMsgPeriod Duration
	// The maximum number of deals to include in a single PublishStorageDeals
	// message
	MaxDealsPerPublishMsg uint64
	// The maximum collateral that the provider will put up against a deal,
	// as a multiplier of the minimum collateral bound
	MaxProviderCollateralMultiplier uint64
	// The maximum allowed disk usage size in bytes of staging deals not yet
	// passed to the sealing node by the markets service. 0 is unlimited.
	MaxStagingDealsBytes int64
	// The maximum number of parallel online data transfers for storage deals
	SimultaneousTransfersForStorage uint64
	// The maximum number of simultaneous data transfers from any single client
	// for storage deals.
	// Unset by default (0), and values higher than SimultaneousTransfersForStorage
	// will have no effect; i.e. the total number of simultaneous data transfers
	// across all storage clients is bound by SimultaneousTransfersForStorage
	// regardless of this number.
	SimultaneousTransfersForStoragePerClient uint64
	// The maximum number of parallel online data transfers for retrieval deals
	SimultaneousTransfersForRetrieval uint64
	// Minimum start epoch buffer to give time for sealing of sector with deal.
	StartEpochSealingBuffer uint64

	// 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
	Filter string
	// 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
	RetrievalFilter string

	RetrievalPricing *lotus_config.RetrievalPricing
}

type WalletsConfig

type WalletsConfig struct {
	// The "owner" address of the miner
	Miner string
	// The wallet used to send PublishStorageDeals messages.
	// Must be a control or worker address of the miner.
	PublishStorageDeals string
	// The wallet used as the source for storage deal collateral
	DealCollateral string
	// Deprecated: Renamed to DealCollateral
	PledgeCollateral string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL