proposals

package
v0.2.7-beta.0 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 2021 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const NewProposalProtocol = "newProposal"

NewProposalProtocol is the protocol indicator for gossip Proposals.

Variables

View Source
var ErrZeroTotalWeight = errors.New("zero total weight not allowed")

ErrZeroTotalWeight is returned when zero total epoch weight is used when calculating eligible slots.

Functions

func CalcEligibleLayer

func CalcEligibleLayer(epochNumber types.EpochID, layersPerEpoch uint32, vrfSig []byte) types.LayerID

CalcEligibleLayer calculates the eligible layer from the VRF signature.

func GetNumEligibleSlots

func GetNumEligibleSlots(weight, totalWeight uint64, committeeSize uint32, layersPerEpoch uint32) (uint32, error)

GetNumEligibleSlots calculates the number of eligible slots for a smesher in an epoch.

func SerializeVRFMessage

func SerializeVRFMessage(beacon []byte, epoch types.EpochID, counter uint32) ([]byte, error)

SerializeVRFMessage serializes a message for generating/verifying a VRF signature.

Types

type Config

type Config struct {
	LayerSize            uint32
	LayersPerEpoch       uint32
	GoldenATXID          types.ATXID
	MaxExceptions        int
	EligibilityValidator eligibilityValidator
}

Config defines configuration for the handler.

type Handler

type Handler struct {
	// contains filtered or unexported fields
}

Handler processes Proposal from gossip and, if deems it valid, propagates it to peers.

func NewHandler

func NewHandler(f system.Fetcher, bc system.BeaconCollector, db atxDB, m mesh, opts ...Opt) *Handler

NewHandler creates new Handler.

func (*Handler) HandleBallotData

func (h *Handler) HandleBallotData(ctx context.Context, data []byte) error

HandleBallotData handles Ballot data from gossip and sync.

func (*Handler) HandleProposal

func (h *Handler) HandleProposal(ctx context.Context, _ peer.ID, msg []byte) pubsub.ValidationResult

HandleProposal is the gossip receiver for Proposal. TODO: register this gossip handler.

type Opt

type Opt func(h *Handler)

Opt for configuring BlockHandler.

func WithGoldenATXID

func WithGoldenATXID(atx types.ATXID) Opt

WithGoldenATXID defines the golden ATXID.

func WithLayerPerEpoch

func WithLayerPerEpoch(layers uint32) Opt

WithLayerPerEpoch defines the number of layers per epoch.

func WithLayerSize

func WithLayerSize(size uint32) Opt

WithLayerSize defines the average number of proposal per layer.

func WithLogger

func WithLogger(logger log.Log) Opt

WithLogger defines logger for Handler.

func WithMaxExceptions

func WithMaxExceptions(max int) Opt

WithMaxExceptions defines max allowed exceptions in a ballot.

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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