@@ -93,14 +93,14 @@ func (v *BlockValidator) ValidateBlock(block *types.Block) error {
9393 // Verify UncleHash before running other uncle validations
9494 unclesSha := types .CalcUncleHash (block .Uncles ())
9595 if unclesSha != header .UncleHash {
96- return fmt .Errorf ("invalid uncles root hash. received= %x calculated=%x " , header .UncleHash , unclesSha )
96+ return fmt .Errorf ("invalid uncles root hash (remote: %x local: %x) " , header .UncleHash , unclesSha )
9797 }
9898
9999 // The transactions Trie's root (R = (Tr [[i, RLP(T1)], [i, RLP(T2)], ... [n, RLP(Tn)]]))
100100 // can be used by light clients to make sure they've received the correct Txs
101101 txSha := types .DeriveSha (block .Transactions ())
102102 if txSha != header .TxHash {
103- return fmt .Errorf ("invalid transaction root hash. received= %x calculated=%x " , header .TxHash , txSha )
103+ return fmt .Errorf ("invalid transaction root hash (remote: %x local: %x) " , header .TxHash , txSha )
104104 }
105105
106106 return nil
@@ -113,23 +113,23 @@ func (v *BlockValidator) ValidateBlock(block *types.Block) error {
113113func (v * BlockValidator ) ValidateState (block , parent * types.Block , statedb * state.StateDB , receipts types.Receipts , usedGas * big.Int ) (err error ) {
114114 header := block .Header ()
115115 if block .GasUsed ().Cmp (usedGas ) != 0 {
116- return ValidationError (fmt .Sprintf ("gas used error ( %v / %v)" , block .GasUsed (), usedGas ))
116+ return ValidationError (fmt .Sprintf ("invalid gas used (remote: %v local: %v)" , block .GasUsed (), usedGas ))
117117 }
118118 // Validate the received block's bloom with the one derived from the generated receipts.
119119 // For valid blocks this should always validate to true.
120120 rbloom := types .CreateBloom (receipts )
121121 if rbloom != header .Bloom {
122- return fmt .Errorf ("unable to replicate block's bloom= %x vs calculated bloom=%x " , header .Bloom , rbloom )
122+ return fmt .Errorf ("invalid bloom (remote: %x local: %x) " , header .Bloom , rbloom )
123123 }
124124 // Tre receipt Trie's root (R = (Tr [[H1, R1], ... [Hn, R1]]))
125125 receiptSha := types .DeriveSha (receipts )
126126 if receiptSha != header .ReceiptHash {
127- return fmt .Errorf ("invalid receipt root hash. received= %x calculated=%x " , header .ReceiptHash , receiptSha )
127+ return fmt .Errorf ("invalid receipt root hash (remote: %x local: %x) " , header .ReceiptHash , receiptSha )
128128 }
129129 // Validate the state root against the received state root and throw
130130 // an error if they don't match.
131131 if root := statedb .IntermediateRoot (v .config .IsEIP158 (header .Number )); header .Root != root {
132- return fmt .Errorf ("invalid merkle root: header= %x computed=%x " , header .Root , root )
132+ return fmt .Errorf ("invalid merkle root (remote: %x local: %x) " , header .Root , root )
133133 }
134134 return nil
135135}
@@ -223,7 +223,7 @@ func ValidateHeader(config *params.ChainConfig, pow pow.PoW, header *types.Heade
223223
224224 expd := CalcDifficulty (config , header .Time .Uint64 (), parent .Time .Uint64 (), parent .Number , parent .Difficulty )
225225 if expd .Cmp (header .Difficulty ) != 0 {
226- return fmt .Errorf ("Difficulty check failed for header %v, %v " , header .Difficulty , expd )
226+ return fmt .Errorf ("Difficulty check failed for header (remote: %v local: %v) " , header .Difficulty , expd )
227227 }
228228
229229 a := new (big.Int ).Set (parent .GasLimit )
@@ -232,7 +232,7 @@ func ValidateHeader(config *params.ChainConfig, pow pow.PoW, header *types.Heade
232232 b := new (big.Int ).Set (parent .GasLimit )
233233 b = b .Div (b , params .GasLimitBoundDivisor )
234234 if ! (a .Cmp (b ) < 0 ) || (header .GasLimit .Cmp (params .MinGasLimit ) == - 1 ) {
235- return fmt .Errorf ("GasLimit check failed for header %v ( %v > %v)" , header .GasLimit , a , b )
235+ return fmt .Errorf ("GasLimit check failed for header (remote: %v local_max: %v)" , header .GasLimit , b )
236236 }
237237
238238 num := new (big.Int ).Set (parent .Number )
0 commit comments