Merge branch 'master' into sbansal/nonce-coordination-and-consensus-for-chain-nodes
This commit is contained in:
@@ -156,6 +156,7 @@ func defaults() []Option {
|
||||
Override(new(journal.DisabledEvents), journal.EnvDisabledEvents),
|
||||
Override(new(journal.Journal), modules.OpenFilesystemJournal),
|
||||
Override(new(*alerting.Alerting), alerting.NewAlertingSystem),
|
||||
Override(new(dtypes.NodeStartTime), FromVal(dtypes.NodeStartTime(time.Now()))),
|
||||
|
||||
Override(CheckFDLimit, modules.CheckFdLimit(build.DefaultFDLimit)),
|
||||
|
||||
|
||||
@@ -94,6 +94,10 @@ func ConfigStorageMiner(c interface{}) Option {
|
||||
Override(new(paths.Store), From(new(*paths.Remote))),
|
||||
Override(new(dtypes.RetrievalPricingFunc), modules.RetrievalPricingFunc(cfg.Dealmaking)),
|
||||
|
||||
If(cfg.Subsystems.EnableMining || cfg.Subsystems.EnableSealing,
|
||||
Override(GetParamsKey, modules.GetParams(!cfg.Proving.DisableBuiltinWindowPoSt || !cfg.Proving.DisableBuiltinWinningPoSt || cfg.Storage.AllowCommit || cfg.Storage.AllowProveReplicaUpdate2)),
|
||||
),
|
||||
|
||||
If(!cfg.Subsystems.EnableMining,
|
||||
If(cfg.Subsystems.EnableSealing, Error(xerrors.Errorf("sealing can only be enabled on a mining node"))),
|
||||
If(cfg.Subsystems.EnableSectorStorage, Error(xerrors.Errorf("sealing can only be enabled on a mining node"))),
|
||||
@@ -107,9 +111,6 @@ func ConfigStorageMiner(c interface{}) Option {
|
||||
Override(new(storiface.Prover), ffiwrapper.ProofProver),
|
||||
Override(new(storiface.ProverPoSt), From(new(sectorstorage.SectorManager))),
|
||||
|
||||
// Sealing (todo should be under EnableSealing, but storagefsm is currently bundled with storage.Miner)
|
||||
Override(GetParamsKey, modules.GetParams),
|
||||
|
||||
Override(new(dtypes.SetSealingConfigFunc), modules.NewSetSealConfigFunc),
|
||||
Override(new(dtypes.GetSealingConfigFunc), modules.NewGetSealConfigFunc),
|
||||
|
||||
|
||||
+15
-4
@@ -704,11 +704,9 @@ After changing this option, confirm that the new value works in your setup by in
|
||||
A single partition may contain up to 2349 32GiB sectors, or 2300 64GiB sectors.
|
||||
|
||||
The maximum number of sectors which can be proven in a single PoSt message is 25000 in network version 16, which
|
||||
means that a single message can prove at most 10 partinions
|
||||
means that a single message can prove at most 10 partitions
|
||||
|
||||
In some cases when submitting PoSt messages which are recovering sectors, the default network limit may still be
|
||||
too high to fit in the block gas limit; In those cases it may be necessary to set this value to something lower
|
||||
than 10; Note that setting this value lower may result in less efficient gas use - more messages will be sent,
|
||||
Note that setting this value lower may result in less efficient gas use - more messages will be sent,
|
||||
to prove each deadline, resulting in more total gas use (but each message will have lower gas limit)
|
||||
|
||||
Setting this value above the network limit has no effect`,
|
||||
@@ -723,6 +721,19 @@ In those cases it may be necessary to set this value to something low (eg 1);
|
||||
Note that setting this value lower may result in less efficient gas use - more messages will be sent than needed,
|
||||
resulting in more total gas use (but each message will have lower gas limit)`,
|
||||
},
|
||||
{
|
||||
Name: "SingleRecoveringPartitionPerPostMessage",
|
||||
Type: "bool",
|
||||
|
||||
Comment: `Enable single partition per PoSt Message for partitions containing recovery sectors
|
||||
|
||||
In cases when submitting PoSt messages which contain recovering sectors, the default network limit may still be
|
||||
too high to fit in the block gas limit. In those cases, it becomes useful to only house the single partition
|
||||
with recovering sectors in the post message
|
||||
|
||||
Note that setting this value lower may result in less efficient gas use - more messages will be sent,
|
||||
to prove each deadline, resulting in more total gas use (but each message will have lower gas limit)`,
|
||||
},
|
||||
},
|
||||
"Pubsub": []DocField{
|
||||
{
|
||||
|
||||
+12
-4
@@ -277,11 +277,9 @@ type ProvingConfig struct {
|
||||
// A single partition may contain up to 2349 32GiB sectors, or 2300 64GiB sectors.
|
||||
//
|
||||
// The maximum number of sectors which can be proven in a single PoSt message is 25000 in network version 16, which
|
||||
// means that a single message can prove at most 10 partinions
|
||||
// means that a single message can prove at most 10 partitions
|
||||
//
|
||||
// In some cases when submitting PoSt messages which are recovering sectors, the default network limit may still be
|
||||
// too high to fit in the block gas limit; In those cases it may be necessary to set this value to something lower
|
||||
// than 10; Note that setting this value lower may result in less efficient gas use - more messages will be sent,
|
||||
// Note that setting this value lower may result in less efficient gas use - more messages will be sent,
|
||||
// to prove each deadline, resulting in more total gas use (but each message will have lower gas limit)
|
||||
//
|
||||
// Setting this value above the network limit has no effect
|
||||
@@ -295,6 +293,16 @@ type ProvingConfig struct {
|
||||
// Note that setting this value lower may result in less efficient gas use - more messages will be sent than needed,
|
||||
// resulting in more total gas use (but each message will have lower gas limit)
|
||||
MaxPartitionsPerRecoveryMessage int
|
||||
|
||||
// Enable single partition per PoSt Message for partitions containing recovery sectors
|
||||
//
|
||||
// In cases when submitting PoSt messages which contain recovering sectors, the default network limit may still be
|
||||
// too high to fit in the block gas limit. In those cases, it becomes useful to only house the single partition
|
||||
// with recovering sectors in the post message
|
||||
//
|
||||
// Note that setting this value lower may result in less efficient gas use - more messages will be sent,
|
||||
// to prove each deadline, resulting in more total gas use (but each message will have lower gas limit)
|
||||
SingleRecoveringPartitionPerPostMessage bool
|
||||
}
|
||||
|
||||
type SealingConfig struct {
|
||||
|
||||
@@ -2,6 +2,7 @@ package common
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/gbrlsnchs/jwt/v3"
|
||||
"github.com/google/uuid"
|
||||
@@ -26,6 +27,8 @@ type CommonAPI struct {
|
||||
Alerting *alerting.Alerting
|
||||
APISecret *dtypes.APIAlg
|
||||
ShutdownChan dtypes.ShutdownChan
|
||||
|
||||
Start dtypes.NodeStartTime
|
||||
}
|
||||
|
||||
type jwtPayload struct {
|
||||
@@ -91,3 +94,7 @@ func (a *CommonAPI) Session(ctx context.Context) (uuid.UUID, error) {
|
||||
func (a *CommonAPI) Closing(ctx context.Context) (<-chan struct{}, error) {
|
||||
return make(chan struct{}), nil // relies on jsonrpc closing
|
||||
}
|
||||
|
||||
func (a *CommonAPI) StartTime(context.Context) (time.Time, error) {
|
||||
return time.Time(a.Start), nil
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package dtypes
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/gbrlsnchs/jwt/v3"
|
||||
"github.com/multiformats/go-multiaddr"
|
||||
)
|
||||
@@ -8,3 +10,5 @@ import (
|
||||
type APIAlg jwt.HMACSHA
|
||||
|
||||
type APIEndpoint multiaddr.Multiaddr
|
||||
|
||||
type NodeStartTime time.Time
|
||||
|
||||
@@ -103,24 +103,31 @@ func minerAddrFromDS(ds dtypes.MetadataDS) (address.Address, error) {
|
||||
return address.NewFromBytes(maddrb)
|
||||
}
|
||||
|
||||
func GetParams(spt abi.RegisteredSealProof) error {
|
||||
ssize, err := spt.SectorSize()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
func GetParams(prover bool) func(spt abi.RegisteredSealProof) error {
|
||||
return func(spt abi.RegisteredSealProof) error {
|
||||
ssize, err := spt.SectorSize()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// If built-in assets are disabled, we expect the user to have placed the right
|
||||
// parameters in the right location on the filesystem (/var/tmp/filecoin-proof-parameters).
|
||||
if build.DisableBuiltinAssets {
|
||||
return nil
|
||||
}
|
||||
|
||||
var provingSize uint64
|
||||
if prover {
|
||||
provingSize = uint64(ssize)
|
||||
}
|
||||
|
||||
// TODO: We should fetch the params for the actual proof type, not just based on the size.
|
||||
if err := paramfetch.GetParams(context.TODO(), build.ParametersJSON(), build.SrsJSON(), provingSize); err != nil {
|
||||
return xerrors.Errorf("fetching proof parameters: %w", err)
|
||||
}
|
||||
|
||||
// If built-in assets are disabled, we expect the user to have placed the right
|
||||
// parameters in the right location on the filesystem (/var/tmp/filecoin-proof-parameters).
|
||||
if build.DisableBuiltinAssets {
|
||||
return nil
|
||||
}
|
||||
|
||||
// TODO: We should fetch the params for the actual proof type, not just based on the size.
|
||||
if err := paramfetch.GetParams(context.TODO(), build.ParametersJSON(), build.SrsJSON(), uint64(ssize)); err != nil {
|
||||
return xerrors.Errorf("fetching proof parameters: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func MinerAddress(ds dtypes.MetadataDS) (dtypes.MinerAddress, error) {
|
||||
|
||||
@@ -93,6 +93,12 @@ func From(typ interface{}) interface{} {
|
||||
}).Interface()
|
||||
}
|
||||
|
||||
func FromVal[T any](v T) func() T {
|
||||
return func() T {
|
||||
return v
|
||||
}
|
||||
}
|
||||
|
||||
// from go-ipfs
|
||||
// as casts input constructor to a given interface (if a value is given, it
|
||||
// wraps it into a constructor).
|
||||
|
||||
Reference in New Issue
Block a user