MCPcopy Create free account
hub / github.com/chain/Core / ValidateBlock

Method ValidateBlock

protocol/block.go:126–137  ·  view source on GitHub ↗

ValidateBlock validates an incoming block in advance of applying it to a snapshot (with ApplyValidBlock) and committing it to the blockchain (with CommitAppliedBlock).

(block, prev *legacy.Block)

Source from the content-addressed store, hash-verified

124// to a snapshot (with ApplyValidBlock) and committing it to the
125// blockchain (with CommitAppliedBlock).
126func (c *Chain) ValidateBlock(block, prev *legacy.Block) error {
127 blockEnts := legacy.MapBlock(block)
128 prevEnts := legacy.MapBlock(prev)
129 err := validation.ValidateBlock(blockEnts, prevEnts, c.InitialBlockHash, c.ValidateTx)
130 if err != nil {
131 return errors.Sub(ErrBadBlock, err)
132 }
133 if block.Height > 1 {
134 err = validation.ValidateBlockSig(blockEnts, prevEnts.NextConsensusProgram)
135 }
136 return errors.Sub(ErrBadBlock, err)
137}
138
139// ApplyValidBlock creates an updated snapshot without validating the
140// block.

Callers 4

ValidateBlockForSigMethod · 0.80
applyBlockFunction · 0.80

Calls 1

SubMethod · 0.45

Tested by 2