MCPcopy Create free account
hub / github.com/DNAProject/DNA / VerifyHeader

Function VerifyHeader

core/validation/block_validator.go:84–111  ·  view source on GitHub ↗
(header, prevHeader *types.Header)

Source from the content-addressed store, hash-verified

82}
83
84func VerifyHeader(header, prevHeader *types.Header) error {
85 if header.Height == 0 {
86 return nil
87 }
88
89 if prevHeader == nil {
90 return errors.New("[BlockValidator], can not find previous block.")
91 }
92
93 if prevHeader.Height+1 != header.Height {
94 return errors.New("[BlockValidator], block height is incorrect.")
95 }
96
97 if prevHeader.Timestamp >= header.Timestamp {
98 return errors.New("[BlockValidator], block timestamp is incorrect.")
99 }
100
101 address, err := types.AddressFromBookkeepers(header.Bookkeepers)
102 if err != nil {
103 return err
104 }
105
106 if prevHeader.NextBookkeeper != address {
107 return fmt.Errorf("bookkeeper address error")
108 }
109
110 return nil
111}

Callers 1

VerifyBlockFunction · 0.85

Calls 2

AddressFromBookkeepersFunction · 0.92
ErrorfMethod · 0.80

Tested by

no test coverage detected