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.