Documentation ¶
Index ¶
- Variables
- func NewManifest(nn gpbft.NetworkName, finality, bootstrapEpoch abi.ChainEpoch, ...) *manifest.Manifest
- func NewManifestProvider(mctx helpers.MetricsCtx, config *Config, cs *store.ChainStore, ...) (prov manifest.ManifestProvider, err error)
- type Config
- type F3
- func (fff *F3) GetCert(ctx context.Context, instance uint64) (*certs.FinalityCertificate, error)
- func (fff *F3) GetF3PowerTable(ctx context.Context, tsk types.TipSetKey) (gpbft.PowerEntries, error)
- func (fff *F3) GetLatestCert(ctx context.Context) (*certs.FinalityCertificate, error)
- func (fff *F3) GetManifest() *manifest.Manifest
- func (fff *F3) GetOrRenewParticipationTicket(_ context.Context, minerID uint64, previous api.F3ParticipationTicket, ...) (api.F3ParticipationTicket, error)
- func (fff *F3) GetPowerTable(ctx context.Context, tsk types.TipSetKey) (gpbft.PowerEntries, error)
- func (fff *F3) IsRunning() bool
- func (fff *F3) Participate(_ context.Context, ticket api.F3ParticipationTicket) (api.F3ParticipationLease, error)
- func (fff *F3) Progress() gpbft.Instant
- type F3Params
Constants ¶
This section is empty.
Variables ¶
View Source
var MaxDynamicManifestChangesAllowed = 1000
Determines the max. number of configuration changes that are allowed for the dynamic manifest. If the manifest changes more than this number, the F3 message topic will be filtered
Functions ¶
func NewManifest ¶
func NewManifest( nn gpbft.NetworkName, finality, bootstrapEpoch abi.ChainEpoch, ecPeriod time.Duration, initialPowerTable cid.Cid, ) *manifest.Manifest
NewManifest constructs a sane F3 manifest based on the passed parameters. This function does not look at and/or depend on the nodes build params, etc.
func NewManifestProvider ¶
func NewManifestProvider(mctx helpers.MetricsCtx, config *Config, cs *store.ChainStore, ps *pubsub.PubSub, mds dtypes.MetadataDS) (prov manifest.ManifestProvider, err error)
Types ¶
type Config ¶
type Config struct { // BaseNetworkName is the base from which dynamic network names are defined and is usually // the name of the network defined by the static manifest. This must be set correctly or, // e.g., pubsub topic filters won't work correctly. BaseNetworkName gpbft.NetworkName // StaticManifest this instance's default manifest absent any dynamic manifests. Also see // PrioritizeStaticManifest. StaticManifest *manifest.Manifest // DynamicManifestProvider is the peer ID of the peer authorized to send us dynamic manifest // updates. Dynamic manifest updates can be used for testing but will not be used to affect // finality. DynamicManifestProvider peer.ID // PrioritizeStaticManifest means that, once we get within one finality of the static // manifest's bootstrap epoch we'll switch to it and ignore any further dynamic manifest // updates. This exists to enable bootstrapping F3. PrioritizeStaticManifest bool // TESTINGAllowDynamicFinalize allow dynamic manifests to finalize tipsets. DO NOT ENABLE // THIS IN PRODUCTION! AllowDynamicFinalize bool }
func NewConfig ¶
func NewConfig(nn dtypes.NetworkName) *Config
NewConfig creates a new F3 config based on the node's build parameters and the passed network name.
type F3 ¶
type F3 struct {
// contains filtered or unexported fields
}
func (*F3) GetF3PowerTable ¶
func (*F3) GetLatestCert ¶
func (*F3) GetManifest ¶
func (*F3) GetOrRenewParticipationTicket ¶
func (fff *F3) GetOrRenewParticipationTicket(_ context.Context, minerID uint64, previous api.F3ParticipationTicket, instances uint64) (api.F3ParticipationTicket, error)
func (*F3) GetPowerTable ¶
func (*F3) Participate ¶
func (fff *F3) Participate(_ context.Context, ticket api.F3ParticipationTicket) (api.F3ParticipationLease, error)
type F3Params ¶
type F3Params struct { fx.In ManifestProvider manifest.ManifestProvider PubSub *pubsub.PubSub Host host.Host ChainStore *store.ChainStore Syncer *chain.Syncer StateManager *stmgr.StateManager Datastore dtypes.MetadataDS Wallet api.Wallet Config *Config LockedRepo repo.LockedRepo Net api.Net }
Click to show internal directories.
Click to hide internal directories.