iotex-core: github.com/iotexproject/iotex-core/action/protocol/poll Index | Files

package poll

import "github.com/iotexproject/iotex-core/action/protocol/poll"

Index

Package Files

protocol.go

Constants

const (
    // ProtocolID defines the ID of this protocol
    ProtocolID = "poll"
)

Variables

var ErrDelegatesNotAsExpected = errors.New("delegates are not as expected")

ErrDelegatesNotAsExpected is an error that the delegates are not as expected

var ErrNoElectionCommittee = errors.New("no election committee specified")

ErrNoElectionCommittee is an error that the election committee is not specified

var ErrProposedDelegatesLength = errors.New("the proposed delegate list length")

ErrProposedDelegatesLength is an error that the proposed delegate list length is not right

type GetBlockTime Uses

type GetBlockTime func(uint64) (time.Time, error)

GetBlockTime defines a function to get block creation time

type GetEpochHeight Uses

type GetEpochHeight func(uint64) uint64

GetEpochHeight defines a function to get the corresponding epoch height given an epoch number

type GetEpochNum Uses

type GetEpochNum func(uint64) uint64

GetEpochNum defines a function to get epoch number given a block height

type Protocol Uses

type Protocol interface {
    // Initialize fetches the poll result for genesis block
    Initialize(context.Context, protocol.StateManager) error
    // Handle handles a vote
    Handle(context.Context, action.Action, protocol.StateManager) (*action.Receipt, error)
    // Validate validates a vote
    Validate(context.Context, action.Action) error
    // DelegatesByHeight returns the delegates by chain height
    DelegatesByHeight(uint64) (state.CandidateList, error)
    // ReadState read the state on blockchain via protocol
    ReadState(context.Context, protocol.StateManager, []byte, ...[]byte) ([]byte, error)
}

Protocol defines the protocol of handling votes

func NewGovernanceChainCommitteeProtocol Uses

func NewGovernanceChainCommitteeProtocol(
    cm protocol.ChainManager,
    electionCommittee committee.Committee,
    initGravityChainHeight uint64,
    getBlockTime GetBlockTime,
    getEpochHeight GetEpochHeight,
    getEpochNum GetEpochNum,
    numCandidateDelegates uint64,
    numDelegates uint64,
    initialCandidatesInterval time.Duration,
) (Protocol, error)

NewGovernanceChainCommitteeProtocol creates a Poll Protocol which fetch result from governance chain

func NewLifeLongDelegatesProtocol Uses

func NewLifeLongDelegatesProtocol(delegates []genesis.Delegate) Protocol

NewLifeLongDelegatesProtocol creates a poll protocol with life long delegates

Package poll imports 20 packages (graph) and is imported by 5 packages. Updated 2019-08-14. Refresh now. Tools for package owners.