aboutsummaryrefslogtreecommitdiffstats
path: root/core/block_validator.go
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2016-07-14 16:22:58 +0800
committerPéter Szilágyi <peterke@gmail.com>2016-07-15 21:52:55 +0800
commit2c2e389b778b490fcaf14d9cc45a750647ca5c68 (patch)
tree0534f50f26ce5f62b1acaf0c18667b6cc0998103 /core/block_validator.go
parent3291235711082759cd7b70253c02150a80d57011 (diff)
downloaddexon-2c2e389b778b490fcaf14d9cc45a750647ca5c68.tar
dexon-2c2e389b778b490fcaf14d9cc45a750647ca5c68.tar.gz
dexon-2c2e389b778b490fcaf14d9cc45a750647ca5c68.tar.bz2
dexon-2c2e389b778b490fcaf14d9cc45a750647ca5c68.tar.lz
dexon-2c2e389b778b490fcaf14d9cc45a750647ca5c68.tar.xz
dexon-2c2e389b778b490fcaf14d9cc45a750647ca5c68.tar.zst
dexon-2c2e389b778b490fcaf14d9cc45a750647ca5c68.zip
cmd, core, eth, miner, params, tests: finalize the DAO fork
Diffstat (limited to 'core/block_validator.go')
-rw-r--r--core/block_validator.go29
1 files changed, 1 insertions, 28 deletions
diff --git a/core/block_validator.go b/core/block_validator.go
index 3b597310e..e5bc6178b 100644
--- a/core/block_validator.go
+++ b/core/block_validator.go
@@ -17,7 +17,6 @@
package core
import (
- "bytes"
"fmt"
"math/big"
"time"
@@ -249,33 +248,7 @@ func ValidateHeader(config *ChainConfig, pow pow.PoW, header *types.Header, pare
}
}
// If all checks passed, validate the extra-data field for hard forks
- return ValidateHeaderExtraData(config, header)
-}
-
-// ValidateHeaderExtraData validates the extra-data field of a block header to
-// ensure it conforms to hard-fork rules.
-func ValidateHeaderExtraData(config *ChainConfig, header *types.Header) error {
- // DAO hard-fork extension to the header validity: a) if the node is no-fork,
- // do not accept blocks in the [fork, fork+10) range with the fork specific
- // extra-data set; b) if the node is pro-fork, require blocks in the specific
- // range to have the unique extra-data set.
- if daoBlock := config.DAOForkBlock; daoBlock != nil {
- // Check whether the block is among the fork extra-override range
- limit := new(big.Int).Add(daoBlock, params.DAOForkExtraRange)
- if daoBlock.Cmp(header.Number) <= 0 && header.Number.Cmp(limit) < 0 {
- // Depending whether we support or oppose the fork, verrift the extra-data contents
- if config.DAOForkSupport {
- if bytes.Compare(header.Extra, params.DAOForkBlockExtra) != 0 {
- return ValidationError("DAO pro-fork bad block extra-data: 0x%x", header.Extra)
- }
- } else {
- if bytes.Compare(header.Extra, params.DAOForkBlockExtra) == 0 {
- return ValidationError("DAO no-fork bad block extra-data: 0x%x", header.Extra)
- }
- }
- }
- }
- return nil
+ return ValidateDAOHeaderExtraData(config, header)
}
// CalcDifficulty is the difficulty adjustment algorithm. It returns