Avoid copying block headers in convenience locals.
This commit modifies local variables that are used for more convenient access to a block's header to use pointers. This avoids copying the header multiple times.
This commit is contained in:
parent
be277b7230
commit
1626994433
3 changed files with 4 additions and 6 deletions
|
@ -34,8 +34,7 @@ func (b *BlockChain) maybeAcceptBlock(block *btcutil.Block, fastAdd bool) error
|
||||||
}
|
}
|
||||||
block.SetHeight(blockHeight)
|
block.SetHeight(blockHeight)
|
||||||
|
|
||||||
blockHeader := block.MsgBlock().Header
|
blockHeader := &block.MsgBlock().Header
|
||||||
|
|
||||||
if !fastAdd {
|
if !fastAdd {
|
||||||
// Ensure the difficulty specified in the block header matches
|
// Ensure the difficulty specified in the block header matches
|
||||||
// the calculated difficulty based on the previous block and
|
// the calculated difficulty based on the previous block and
|
||||||
|
|
|
@ -123,14 +123,14 @@ func (b *BlockChain) ProcessBlock(block *btcutil.Block, fastAdd bool) error {
|
||||||
// easy to mine, but otherwise bogus, blocks that could be used to eat
|
// easy to mine, but otherwise bogus, blocks that could be used to eat
|
||||||
// memory, and ensuring expected (versus claimed) proof of work
|
// memory, and ensuring expected (versus claimed) proof of work
|
||||||
// requirements since the last checkpoint are met.
|
// requirements since the last checkpoint are met.
|
||||||
blockHeader := block.MsgBlock().Header
|
blockHeader := &block.MsgBlock().Header
|
||||||
checkpointBlock, err := b.findLatestKnownCheckpoint()
|
checkpointBlock, err := b.findLatestKnownCheckpoint()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if checkpointBlock != nil {
|
if checkpointBlock != nil {
|
||||||
// Ensure the block timestamp is after the checkpoint timestamp.
|
// Ensure the block timestamp is after the checkpoint timestamp.
|
||||||
checkpointHeader := checkpointBlock.MsgBlock().Header
|
checkpointHeader := &checkpointBlock.MsgBlock().Header
|
||||||
checkpointTime := checkpointHeader.Timestamp
|
checkpointTime := checkpointHeader.Timestamp
|
||||||
if blockHeader.Timestamp.Before(checkpointTime) {
|
if blockHeader.Timestamp.Before(checkpointTime) {
|
||||||
str := fmt.Sprintf("block %v has timestamp %v before "+
|
str := fmt.Sprintf("block %v has timestamp %v before "+
|
||||||
|
|
|
@ -268,8 +268,7 @@ func CheckTransactionSanity(tx *btcutil.Tx) error {
|
||||||
// target difficulty as claimed.
|
// target difficulty as claimed.
|
||||||
func checkProofOfWork(block *btcutil.Block, powLimit *big.Int) error {
|
func checkProofOfWork(block *btcutil.Block, powLimit *big.Int) error {
|
||||||
// The target difficulty must be larger than zero.
|
// The target difficulty must be larger than zero.
|
||||||
header := block.MsgBlock().Header
|
target := CompactToBig(block.MsgBlock().Header.Bits)
|
||||||
target := CompactToBig(header.Bits)
|
|
||||||
if target.Sign() <= 0 {
|
if target.Sign() <= 0 {
|
||||||
str := fmt.Sprintf("block target difficulty of %064x is too low",
|
str := fmt.Sprintf("block target difficulty of %064x is too low",
|
||||||
target)
|
target)
|
||||||
|
|
Loading…
Reference in a new issue