aboutsummaryrefslogtreecommitdiffstats
path: root/core/block_validator.go
diff options
context:
space:
mode:
authorBojie Wu <bojie@dexon.org>2018-10-09 13:28:45 +0800
committerWei-Ning Huang <w@dexon.org>2019-04-09 21:32:50 +0800
commit13506b4e47662dcce303f8845a12048556a22aa3 (patch)
tree0f669161e011564f9b7fc1a29f7b279d18892429 /core/block_validator.go
parentc18aa885e8c482115ad4f174b20c3d5288db0428 (diff)
downloaddexon-13506b4e47662dcce303f8845a12048556a22aa3.tar
dexon-13506b4e47662dcce303f8845a12048556a22aa3.tar.gz
dexon-13506b4e47662dcce303f8845a12048556a22aa3.tar.bz2
dexon-13506b4e47662dcce303f8845a12048556a22aa3.tar.lz
dexon-13506b4e47662dcce303f8845a12048556a22aa3.tar.xz
dexon-13506b4e47662dcce303f8845a12048556a22aa3.tar.zst
dexon-13506b4e47662dcce303f8845a12048556a22aa3.zip
app: implement new insert blocks logic
Diffstat (limited to 'core/block_validator.go')
-rw-r--r--core/block_validator.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/core/block_validator.go b/core/block_validator.go
index 697944c41..65f311f9f 100644
--- a/core/block_validator.go
+++ b/core/block_validator.go
@@ -101,6 +101,40 @@ func (v *BlockValidator) ValidateState(block, parent *types.Block, statedb *stat
return nil
}
+// BlockValidator implements Validator.
+type DexonBlockValidator struct {
+ config *params.ChainConfig // Chain configuration options
+ bc *BlockChain // Canonical block chain
+ engine consensus.Engine // Consensus engine used for validating
+}
+
+// NewDexonBlockValidator returns a new block validator which is safe for re-use
+func NewDexonBlockValidator(config *params.ChainConfig, blockchain *BlockChain, engine consensus.Engine) *DexonBlockValidator {
+ validator := &DexonBlockValidator{
+ config: config,
+ engine: engine,
+ bc: blockchain,
+ }
+ return validator
+}
+
+// ValidateBody validates the given block's uncles and verifies the block
+// header's transaction and uncle roots. The headers are assumed to be already
+// validated at this point.
+func (v *DexonBlockValidator) ValidateBody(block *types.Block) error {
+ // TODO(Bojie): implement it
+ return nil
+}
+
+// ValidateState validates the various changes that happen after a state
+// transition, such as amount of used gas, the receipt roots and the state root
+// itself. ValidateState returns a database batch if the validation was a success
+// otherwise nil and an error is returned.
+func (v *DexonBlockValidator) ValidateState(block, parent *types.Block, statedb *state.StateDB, receipts types.Receipts, usedGas uint64) error {
+ // TODO(Bojie): implement it
+ return nil
+}
+
// CalcGasLimit computes the gas limit of the next block after parent. It aims
// to keep the baseline gas above the provided floor, and increase it towards the
// ceil if the blocks are full. If the ceil is exceeded, it will always decrease