Documentation ¶
Overview ¶
Package consensus implements the PoWork consensus
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrMsgRejected = errors.New("message get rejected") ErrInvalidMsgType = errors.New("invalid message type") )
View Source
var ErrChainOnSyncing = errors.New("chain is syncing")
Functions ¶
This section is empty.
Types ¶
type Consensus ¶
type Consensus interface { Loop() GetCurrentState() (State, error) CommitState(State) (State, error) }
Consensus is an abstract consensus interface.
type PoWork ¶
type PoWork struct { PoWorkConfig SyncMod *syncModule Chain *blockchain.Chain Pool *ngpool.TxPool State *ngstate.State LocalNode *ngp2p.LocalNode // contains filtered or unexported fields }
PoWork is a proof on work consensus manager.
func InitPoWConsensus ¶
func InitPoWConsensus(db *badger.DB, chain *blockchain.Chain, pool *ngpool.TxPool, state *ngstate.State, localNode *ngp2p.LocalNode, config PoWorkConfig) *PoWork
InitPoWConsensus creates and initializes the PoW consensus.
func (*PoWork) GetBlockTemplate ¶
func (pow *PoWork) GetBlockTemplate(privateKey *secp256k1.PrivateKey) *ngtypes.Block
GetBlockTemplate is a generator of new block. But the generated block has no nonce.
type PoWorkConfig ¶
type RemoteRecord ¶
type RemoteRecord struct {
// contains filtered or unexported fields
}
func NewRemoteRecord ¶
func NewRemoteRecord(id peer.ID, origin, latest uint64, checkpointHash, checkpointActualDiff []byte) *RemoteRecord
Click to show internal directories.
Click to hide internal directories.