Versions in this module Expand all Collapse all v0 v0.1.0 Jul 23, 2018 Changes in this version + var ErrDifficultyNotMet = errors.New("invalid header: difficulty not met") + var ErrInvalidBlockNumber = errors.New("invalid header: block number is invalid") + var ErrInvalidChain = errors.New("invalid chain") + var ErrInvalidPreviousBlock = errors.New("invalid header: previous block could not be found") + type Engine interface + Finalize func(ctx context.Context, chain chain.Reader, header *pb.Header, state state.Reader, ...) (*pb.Block, error) + Prepare func(chain chain.Reader, header *pb.Header) error + VerifyHeader func(chain chain.Reader, header *pb.Header) error + type HashEngine struct + func (e *HashEngine) Difficulty() uint64 + func (e *HashEngine) Finalize(ctx context.Context, chain chain.Reader, header *pb.Header, _ state.Reader, ...) (*pb.Block, error) + func (e *HashEngine) Prepare(chain chain.Reader, header *pb.Header) error + func (e *HashEngine) Reward() uint64 + func (e *HashEngine) VerifyHeader(chain chain.Reader, header *pb.Header) error + type PoW interface + Difficulty func() uint64 + Reward func() uint64 + func NewHashEngine(minerID peer.ID, difficulty, reward uint64) PoW + type ProofOfWait interface + Interval func() (int, int)