# Configuration of damocles-manager

damocles-manager is the main component for interacting with the chain and maintaining the sectors. Let's take a look at its configuration file structure.

After initialization, we can get a copy of the default configuration:

# Default config:
[Common]
[Common.API]
#Gateway = ["/ip4/{api_host}/tcp/{api_port}"]
#Token = "{some token}"
#ChainEventInterval = "1m0s"
#Chain = "/ip4/{api_host}/tcp/{api_port}"
#Messager = "/ip4/{api_host}/tcp/{api_port}"
#Market = "/ip4/{api_host}/tcp/{api_port}"
#
[[Common.PieceStores]]
#Name = "{store_name}"
#Path = "{store_path}"
#Plugin = ""
#PluginName = "s3store"
[Common.PieceStores.Meta]
#SomeKey = "SomeValue"
#
[[Common.PersistStores]]
#Name = "{store_name}"
#Path = "{store_path}"
#Strict = false
#ReadOnly = false
#Weight = 0
#AllowMiners = [1, 2]
#DenyMiners = [3, 4]
#Plugin = ""
#PluginName = "s3store"
[Common.PersistStores.Meta]
#SomeKey = "SomeValue"
[Common.DB]
#Driver = "badger"
[Common.DB.Badger]
#BaseDir = ""
[Common.Proving]
#ParallelCheckLimit = 128
#SingleCheckTimeout = "10m0s"
#PartitionCheckTimeout = "20m0s"
[Common.Proving.WorkerProver]
JobMaxTry = 2
HeartbeatTimeout = "15s"
JobLifetime = "25h0m0s"

[[Miners]]
#Actor = 10086
[Miners.Sector]
#InitNumber = 0
#MinNumber = 10
#MaxNumber = 1000000
#Enabled = true
#EnableDeals = false
#LifetimeDays = 540
#Verbose = false
[Miners.SnapUp]
#Enabled = false
#Sender = "f1abjxfbp274xpdqcpuaykwkfb43omjotacm2p3za"
#SendFund = true
#GasOverEstimation = 1.2
#GasOverPremium = 0.0
#GasFeeCap = "5 nanoFIL"
#MaxFeeCap = ""
#CleanupCCData = true
#MessageConfidence = 15
#ReleaseConfidence = 30
[Miners.SnapUp.Retry]
#MaxAttempts = 10
#PollInterval = "3m0s"
#APIFailureWait = "3m0s"
#LocalFailureWait = "3m0s"
[Miners.Commitment]
#Confidence = 10
[Miners.Commitment.Pre]
#Sender = "f1abjxfbp274xpdqcpuaykwkfb43omjotacm2p3za"
#SendFund = true
#GasOverEstimation = 1.2
#GasOverPremium = 0.0
#GasFeeCap = "5 nanoFIL"
#MaxFeeCap = ""
[Miners.Commitment.Pre.Batch]
#BatchCommitAboveBaseFee = "0"
#Threshold = 16
#MaxWait = "1h0m0s"
#CheckInterval = "1m0s"
#GasOverEstimation = 1.2
#GasOverPremium = 0.0
#GasFeeCap = "5 nanoFIL"
#MaxFeeCap = ""
[Miners.Commitment.Prove]
#Sender = "f1abjxfbp274xpdqcpuaykwkfb43omjotacm2p3za"
#SendFund = true
#GasOverEstimation = 1.2
#GasOverPremium = 0.0
#GasFeeCap = "5 nanoFIL"
#MaxFeeCap = ""
[Miners.Commitment.Prove.Batch]
#BatchCommitAboveBaseFee = "0"
#Threshold = 16
#MaxWait = "1h0m0s"
#CheckInterval = "1m0s"
#GasOverEstimation = 1.2
#GasOverPremium = 0.0
#GasFeeCap = "5 nanoFIL"
#MaxFeeCap = ""
[Miners.Commitment.Terminate]
#Sender = "f1abjxfbp274xpdqcpuaykwkfb43omjotacm2p3za"
#SendFund = true
#GasOverEstimation = 1.2
#GasOverPremium = 0.0
#GasFeeCap = "5 nanoFIL"
#MaxFeeCap = ""
[Miners.Commitment.Terminate.Batch]
#BatchCommitAboveBaseFee = "0"
#Threshold = 5
#MaxWait = "1h0m0s"
#CheckInterval = "1m0s"
#GasOverEstimation = 1.2
#GasOverPremium = 0.0
#GasFeeCap = "5 nanoFIL"
#MaxFeeCap = ""
[Miners.PoSt]
#Sender = "f1abjxfbp274xpdqcpuaykwkfb43omjotacm2p3za"
#Enabled = true
#StrictCheck = true
#Parallel = false
#GasOverEstimation = 1.2
#GasOverPremium = 0.0
#GasFeeCap = "5 nanoFIL"
#MaxFeeCap = ""
#Confidence = 10
#SubmitConfidence = 0
#ChallengeConfidence = 0
#MaxRecoverSectorLimit = 0
#MaxPartitionsPerPoStMessage = 0
#MaxPartitionsPerRecoveryMessage = 0
[Miners.Proof]
#Enabled = false
[Miners.Sealing]
#SealingEpochDuration = 0
#UseSyntheticPoRep = false
#

We will break down each configurable item one by one.

# [Common]

Common section includes common configuration, which is further divided into four sub-configuration items:

# [Common.API]

Common.API is interface related configuration, its content includes:

[Common.API]
# Gateway service infos, required, string type
# Fill in according to the actual situation of the service used
# For each one contained, if the item is valid as a token-included-info-string ("{token}:{multiaddr}"), the token included would be used to construct the rpc client instead of the common token.
Gateway = ["/ip4/{api_host}/tcp/{api_port}"]

# common token for services, required, string type
# Fill in according to the actual situation of the service used
Token = "{some token}"

# Chain service info, optional, string type
# Fill in according to the actual situation of the service used
# If the field is valid as a token-included-info-string ("{token}:{multiaddr}"), the token included would be used to construct the rpc client instead of the common token.
# If not set, use value of Gateway as default 
Chain = "/ip4/{api_host}/tcp/{api_port}"

# Message service info, optional, string type
# Fill in according to the actual situation of the service used
# If the field is valid as a token-included-info-string ("{token}:{multiaddr}"), the token included would be used to construct the rpc client instead of the common token.
# If not set, use value of Gateway as default 
Messager = "/ip4/{api_host}/tcp/{api_port}"

# Market service info, optional, string type
# Fill in according to the actual situation of the service used
# If the field is valid as a token-included-info-string ("{token}:{multiaddr}"), the token included would be used to construct the rpc client instead of the common token.
# If not set, use value of Gateway as default 
Market = "/ip4/{api_host}/tcp/{api_port}"

# Interval time for detecting chain height changes, optional, duration type
# Default is 1min
#ChainEventInterval = "1m0s"

# [Common.Plugins]

Common.Plugins is used for configuring the plugin path of damocles-manager.

[Common.Plugins]
# Path where plugins are stored, optional,string type
# Default is an empty string, which means that no plugin will be loaded.
# It is recommended to use absolute paths.
Dir = ""

# [[Common.PieceStores]]

Common.PieceStores is used for configuring local deal piece data. When there is available offline deal, you can configure this item to avoid getting the deal piece data through public network traffic.

Each local store directory should correspond to a Common.PieceStores configuration block.

# Basic configuration example

[[Common.PieceStores]]
# name, optional, string type
# The default is the absolute path corresponding to the path
#Name = "remote-store1"

# path, required, string type
Path = "/mnt/mass/piece1"

# Plugin path, optional, string type
# default is null
# If you would like to use a custom storage scheme, you can write a golang plugin that meets the requirements and set it here.
# Deprecated, Please use PluginName instead.
#Plugin = "path/to/objstore-plugin"

# Plugin path, optional, string type
# default is empty string
# If you would like to use a custom storage scheme, you can write a golang plugin that meets the requirements and set it here.
#PluginName = "s3store"

# Meta information, optional items, dictionary type
# The internal value is in the format of Key = "Value"
# Default value is null
# Used to support different types of storage schemes
[Common.PieceStores.Meta]
#SomeKey = "SomeValue"
#

# [[Common.PersistStores]]

Common.PersistStores is used to configure sector persistent data stores. It corresponds to the attached concept in damocles-worker.

Similar to Common.PieceStores, each persistent store directory should correspond to a Common.PersistStores configuration block.

# Basic configuration example

[[Common.PersistStores]]
# name, optional, string type
## Default is the absolute path corresponding to the path
#Name = "remote-store1"

# path, required, string type
# It is recommended to use absolute paths
Path = "/mnt/remote/10.0.0.14/store"

# read only, optional, boolean
# Default is false
# From v0.4.0 and above, the persistent storage allocation logic goes to damocles-manager
# This configuration can be used to set whether you can continue to write to the storage
#ReadOnly = false

# optional, boolean
# Default is false
# Whether to validate if the Path is a regular file. If set to True, an error will be raised if the Path is a non-regular file, such as a symbolic link.
#Strict = false

# weight, optional, number type
# Default is 1
# When the filled value is 0, it is equivalent to 1
# From v0.4.0 and above, the persistent storage allocation logic goes to damocles-manager
# This configuration can be used to set the weight allocation ratio between multiple persistent stores
# The probability of each persistent stores being selected is `weight / sum`, where `sum` is the sum of the weights of all available persistent stores.
# Example: Configure 3 persistent stores, the weights are 2, 1, 1. The probability of being selected is 50%, 25%, 25% respectively
#Weight = 1

# Plugin path, optional, string type
# default is null
# If you want to use a custom storage scheme, you can write a golang plugin that meets the requirements and set it here.
# Deprecated, Please use PluginName instead.
#Plugin = "path/to/objstore-plugin"

# List of miner IDs that are allowed, optional, numeric array type
# default is null
# When not set, it is regarded as allowing all miner IDs; when set, it is equivalent to a whitelist, which allows only listed miner IDs
# If a miner ID appears in AllowMiners and DenyMiners at the same time, DenyMiners will take effect first, which is considered blacklisted
#AllowMiners = [1, 2]

# List of miner IDs that are being denied, optional, numeric array type
# default is null
# When not set, it is regarded as not rejecting any miner number; when set, it is equivalent to a blacklist, which will deny the listed miner ID
# If a miner ID appears in both AllowMiners and DenyMiners, DenyMiners will take effect first, which is considered blacklisted
#DenyMiners = [3, 4]

# Plugin path, optional, string type
# default is empty string
# If you would like to use a custom storage scheme, you can write a golang plugin that meets the requirements and set it here.
#PluginName = "s3store"

# Meta information, optional items, dictionary type
# The internal value is in the format of Key = "Value"
# Default value is null
# Used to support the preparation of different types of storage schemes, currently has no effect
[Common.PersistStores.Meta]
#SomeKey = "SomeValue"
#

# [Common.MongoKVStore] Deprecated

Common.MongoKVStore is used to configure whether damocles-manager use MongoDB as KV database during sealing.

# Basic configuration example

[Common.MongoKVStore]
# Switch of Mongo KV, optional, boolean type
# default is false 
Enable = true
# DSN of Mongo, when `Enable` is true, `DSN` is required, string type.
DSN = "mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000"
# DatabaseName of Mongo, when `Enable` is true, `DatabaseName` is required, string type.
DatabaseName = "test"

# [Common.Proving]

Proving used to control the number of proving parallels and check timeouts.

example:

# Maximum number of sector checks to run in parallel, optional, time type
# Default is 128. (0 = unlimited)
# WARNING: Setting this value too high may make the node crash by running out of stack
# WARNING: Setting this value too low may make sector challenge reading much slower, resulting in failed PoSt due
# to late submission.
#ParallelCheckLimit = 128
# Maximum amount of time a proving pre-check can take for a sector, optional, time type
# Default is 10m0s.
# If the check times out the sector will be skipped
# WARNING: Setting this value too low risks in sectors being skipped even though they are accessible, just reading the test challenge took longer than this timeout
# WARNING: Setting this value too high risks missing PoSt deadline in case IO operations related to this sector are blocked (e.g. in case of disconnected NFS mount)
#SingleCheckTimeout = "10m0s"
# Maximum amount of time a proving pre-check can take for an entire partition, optional time type
# Default is 20m0s.
# If the check times out, sectors in the partition which didn't get checked on time will be skipped
# WARNING: Setting this value too low risks in sectors being skipped even though they are accessible, just reading the test challenge took longer than this timeout
# WARNING: Setting this value too high risks missing PoSt deadline in case IO operations related to this partition are blocked or slow
#PartitionCheckTimeout = "20m0s"

# [Common.Proving.WorkerProver]

Used to configure the worker prover module

example:

# The maximum number of attempts of the WindowPoSt job, optional, number type
# Default is 2
# job that exceeds the JobMaxTry number can only be re-executed by manual reset
JobMaxTry = 2
# The timeout of the WindowPoSt job's heartbeat, optional, time type
# Default is 15s
# jobs that have not sent a heartbeat for more than this time will be set to fail and retried
HeartbeatTimeout = "15s"
# The heartbeat timeout of the WindowPoSt job, optional, time type
# Default is 25h
# WindowPoSt jobs created longer than this time will be deleted
JobLifetime = "25h0m0s"

# [Common.DB]

Common.DB is used to configure KV database used by damocles-manager during sealing. Currently, the badger local database and mongo database are supported.

# Basic configuration example:

[Common.DB]
# Specify database, optional, string type
# Default is badger
# All options: badger | mongo | plugin
Driver = "badger"
[Common.DB.Badger]
# Basedir of the badger, optional, string type
# Default value is empty string
# Use home dir (default is ~/.damocles-manager) to store badger database files if BaseDir is empty string
#BaseDir = ""
[Common.DB.Mongo]
# DSN of Mongo, when `Enable` is true, `DSN` is required, string type.
DSN = "mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000"
# DatabaseName of Mongo, when `Enable` is true, `DatabaseName` is required, string type.
DatabaseName = "test"
[Common.DB.Plugin]
# The plugin name, optional,string type
# Default is null
PluginName = "redis"
# Metadata, optional, dict type
# The internal value is in the format of Key = "Value"
# Default is null
# The Metadata will be pass to the constructor of the plugin
[Common.DB.Plugin.Meta]
#SomeKey = "SomeValue"
#

# [[Miners]]

Miners is an important configuration item, which is used to define behavior and policy for a certain SP.

damocles is designed to support multiple SPs with the same set of components. This is reflected in damocles-manager, which you can set multiple Miners configuration blocks as needed.

# Main configuration item

[[Miners]]
# `SP` actor id, required, numeric type
Actor = 10086

In addition to the main configuration, Miners also contains a number of different sub-configuration blocks, let's go through them one by one

# [Miners.Sector]

Policy used to control sector allocation.

[Miners.Sector]
# Sector start number, optional, number type
# Default value is 0
# Deprecated
InitNumber = 0

# Minimum sector number, optional, number type
# Default value is null
# Compared with InitNumber, when this is set,
# 1. At any time, the allocator will not give a sector number less than or equal to this value.
# 2. The value of this item can be adjusted during cluster operation.
# Increase the config value, the assignment result will always follow the description of 1).
# Lowering the config value usually has no effect.
#
# When this item is not set, if InitNumber is a non-zero value, it is equivalent to this item.
#MinNumber = 10

# Sector number upper limit, optional, number type
# The default value is null, which means no upper limit
#MaxNumber = 1000000

# Whether to allow allocation of sectors, optional, boolean type
# The default value is true, that is, the allocation is enabled
# If set to false, do not seal
#Enabled = true

# Whether to allow allocation of deals, optional, boolean
# Default is false
#EnableDeals = false

# The life cycle of the CC sector, the unit is days, optional, number type
# Default is 540
#LifetimeDays = 540

# Sector log verbosity of related modules, optional items, boolean type
# The default value is false, which simplifies the log output
#Verbose = false

# [Miners.SnapUp]

Production strategy for controlling SnapDeal

[Miners.SnapUp]
# Whether to enable, optional, boolean type
# Default is false
#Enabled = false

# Sender address, required if enabled, address type
#Sender = "t1abjxfbp274xpdqcpuaykwkfb43omjotacm2p3za"

# Whether to send the necessary funds from Sender when submitting the on-chain message, optional, boolean type
# Default value is true
# If set to false, founds from miner address
#SendFund = true

# Gas estimate multiplier for a single commit message, optional, floating point type
# Default is 1.2
#GasOverEstimation = 1.2

# Gas premium multiplier for a single commit message, optional, floating point type
# Default is 0.0, which means no effect
#GasOverPremium = 0.0

# FeeCap limit for a single message, optional, FIL value type
# Default is 5 nanoFIL
#GasFeeCap = "5 nanoFIL"

# Deprecated
#MaxFeeCap = ""

# Whether to delete the original cc sector data after the snapdeal message is on the chain
# Default is true
#CleanupCCData = true

# The confident height for message on-chain, optional, number type
# Default is 15
#MessageConfidence = 15

# The confident height to release old data storage space, optional, number type
# Default is 30
#ReleaseConfidence = 30

# SnapUp retry policy
[Miners.SnapUp.Retry]

# maximum number of retries, optional, number type
# The default is NULL, which means no limit
#MaxAttempts = 10

# Status polling interval, optional, duration type
# Default is 3min
#PollInterval = "3m0s"

# API interface exception retry interval, optional, duration type
# Default is 3min
#APIFailureWait = "3m0s"

# Retry interval for local exceptions, such as local database exceptions, local storage exceptions, etc., optional, duration type
# Default is 3min
#LocalFailureWait = "3m0s"

# [Miners.Commitment]

Common section for configuring PoRep message sending policies.

[Miners.Commitment]
# Height of the message that is considered stable, optional, number type
# Default is 10
#Confidence = 10

# [Miners.Commitment.Pre]

Strategy for configuring PreCommit message sending

[Miners.Commitment.Pre]
# Whether to use the necessary funds from Sender when sending the  message on-chain, optional, boolean type
# Default value is true
#SendFund = true

# Sender address, required, address type
Sender = "t1abjxfbp274xpdqcpuaykwkfb43omjotacm2p3za"

# Gas estimate multiplier for a single message, optional, floating point type
# Default is 1.2
#GasOverEstimation = 1.2

# Gas premium multiplier for a single commit message, optional, floating point type
# Default is 0.0, which means no effect
#GasOverPremium = 0.0

# FeeCap limit for a single message, optional, FIL value type
# Default is 5 nanoFIL
#GasFeeCap = "5 nanoFIL"

# Deprecated
#MaxFeeCap = "5 nanoFIL"

# Aggregate message sending configuration blocks
[Miners.Commitment.Pre.Batch]
# threshold will enable aggregate messages when it is less than basefee, optional, string type
# The default value is "0", which means to disable aggregate
# i.e. "2 nanoFil", "1.5 nanoFil", "1 nFil"
#BatchCommitAboveBaseFee = "0"

# Minimum number of message to aggregate, optional, number type
# The default value is 16, that is, the minimum number of aggregates is 16
#Threshold = 16

# Maximum waiting time, optional, time type
# The default value is 1h, that is, the maximum wait time is 1 hour
#MaxWait = "1h0m0s"

# Check interval, optional, time type
# The default value is 1min, that is, every 1min to check whether the aggregation conditions are met
#CheckInterval = "1m0s"

# Gas estimation multiplier of aggregate messages, optional, floating point type
# Default is 1.2
#GasOverEstimation = 1.2

# Gas premium multiplier for a single commit message, optional, floating point type
# Default is 0.0, which means no effect
#GasOverPremium = 0.0

# FeeCap limit for a single message, optional, FIL value type
# Default is 5 nanoFIL
#GasFeeCap = "5 nanoFIL"

# Deprecated
#MaxFeeCap = "5 nanoFIL"

# [Miners.Commitment.Prove]

The strategy used to configure ProveCommit message sending, its configuration items and functions are exactly the same as those in Miners.Commitment.Pre.

# [Miners.Commitment.Terminate]

The strategy used to configure TerminateSectors message submission, its configuration items and functions are basically the same as those in Miners.Commitment.Pre. In practice, such messages are not sent as frequently. It is recommended to use single message sending mode. When using aggregate sending mode, Threshold is recommended to be configured with a smaller value to ensure that messages get on-chain in time.

# [Miners.PoSt]

Options for configuring WindowPoSt.

[Miners.Post]
# Sender address, required, address type
Sender = "t1abjxfbp274xpdqcpuaykwkfb43omjotacm2p3za"

# Whether to enable, optional, boolean type
# Default value is true
#Enabled = true

# Whether to perform strong verification on sector files, optional, boolean type
# Default value is true
# When enabled, in addition to checking the existence of the file, it will also try to read some information, such as metadata, etc.
#StrictCheck = true

# Switch for enable parallel proofs generations, optional, boolean type
# Default value is false
# When enabled, we will start generating partitions inside one deadline parallelly
# BE NOTICED: this can take effect only when multiple ext-provers are set
#Parallel = false

# Gas estimation multiplier of WindowPoSt message, optional, floating point type
# Default is 1.2
#GasOverEstimation = 1.2

# Gas premium multiplier for a single commit message, optional, floating point type
# Default is 0.0, which means no effect
#GasOverPremium = 0.0

# FeeCap limit for a single message, optional, FIL value type
# Default is 5 nanoFIL
#GasFeeCap = "5 nanoFIL"

# Deprecated
#MaxFeeCap = "5 nanoFIL"

# Height of the message that is considered stable, optional, number type
# Default is 10
#Confidence = 10

# Stable height to submit WindowPoSt proofs, optional, number type
# This value determines how many epochs to wait for the chain to enter a stable state, so that we could start submiting proofs
# The first epoch we can submit is deadline.Open + SubmitConfidence
# The smaller this value is set, the earlier it will start, but at the same time, more likely to send windowPost to a fork
# When set to 0, the default value of 4 will be used
#SubmitConfidence = 0

# Stable height to start WindowPoSt, optional, number type
# This value determines how many epochs to wait for the chain to enter a stable state, and the WindowPoSt task can be started
# The first epoch we can start is deadline.Challenge + ChallengeConfidence
# The smaller this value is set, the earlier it will start, but at the same time, more likely to send windowPost to a fork
# When set to 0, the default value of 10 will be used
#ChallengeConfidence = 0

# The maximum limit of the sectors included in one recovering check, optional, number type
# Default value is 0
# When set to 0, no limit
#MaxRecoverSectorLimit = 0

# The maximum number of Partitions allowed in a single PoSt message, optional, number type
# Default value is 0
# When set to 0, the default maximum value will be used
#MaxPartitionsPerPoStMessage = 0

# The maximum number of Partitions allowed in a single Recover message, optional, number type
# Default value is 0
# When set to 0, no limit
#MaxPartitionsPerRecoveryMessage = 0

# [Miners.Proof]

Used to configure WinningPoSt Proof related policies

[Miners.Proof]
# Whether to enable, optional, boolean type
# Default is false
#Enabled = false

# [Miners.Sealing]

Used to configure sealing related policies

[Miners.Sealing]
# Sealing need how many epochs to achieve,when select deals in sealing, deals start epoch will be
# required to later than current-epoch + sealing-duration ,optional,integer
# Default is zero, means no config
#SealingEpochDuration = 0
#
# weather to use SyntheticPoRep , optional, boolean type
# default is false
#UseSyntheticPoRep = false

# [Miners.Deal] Deprecated

Used to configure deal related policies.

[Miners.Deal]
# Whether to enable, optional, boolean type
# Default is false
#Enabled = false

# A minimal working configuration file example

Let's have a look at an example of starting a damocles-manager that could supports a SP's operation,

[Common]
[Common.API]
Gateway = ["/ip4/{api_host}/tcp/{api_port}"]
Token = "{some token}"
Chain = "/ip4/{api_host}/tcp/{api_port}"
Messager = "/ip4/{api_host}/tcp/{api_port}"
Market = "/ip4/{api_host}/tcp/{api_port}"

[[Common.PieceStores]]
Path = "{store_path}"

[[Common.PersistStores]]
Name = "{store_name1}"
Path = "{store_path1}"

[[Common.PersistStores]]
Name = "{store_name2}"
Path = "{store_path2}"

[[Common.PersistStores]]
Name = "{store_name3}"
Path = "{store_path3}"

[[Common.PersistStores]]
Name = "{store_name4}"
Path = "{store_path4}"

[[Miners]]
Actor = 10086
[Miners.Sector]
InitNumber = 1000
Enabled = true
EnableDeals = true

[Miners.Commitment]
[Miners.Commitment.Pre]
Sender = "t1abjxfbp274xpdqcpuaykwkfb43omjotacm2p3za"

[Miners.Commitment.Pre.Batch]

[Miners.Commitment.Prove]
Sender = "t1abjxfbp274xpdqcpuaykwkfb43omjotacm2p3za"

[Miners.Commitment.Prove.Batch]

[Miners.Post]
Sender = "t1abjxfbp274xpdqcpuaykwkfb43omjotacm2p3za"
Enabled = true

[Miners.Proof]
Enabled = true

This activates an instance of damocles-manager that...

  • With 1 local PieceStore
  • With 4 local persistent stores
  • Enables sector allocation, which initial number is 1000
  • Disables aggregated PreCommit
  • Enables aggregated ProveCommit
  • Enables WinningPost module
  • Enables deal