diff options
author | Bojie Wu <bojie@dexon.org> | 2018-10-09 13:28:45 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-04-09 21:32:50 +0800 |
commit | 13506b4e47662dcce303f8845a12048556a22aa3 (patch) | |
tree | 0f669161e011564f9b7fc1a29f7b279d18892429 /core/block_validator.go | |
parent | c18aa885e8c482115ad4f174b20c3d5288db0428 (diff) | |
download | go-tangerine-13506b4e47662dcce303f8845a12048556a22aa3.tar go-tangerine-13506b4e47662dcce303f8845a12048556a22aa3.tar.gz go-tangerine-13506b4e47662dcce303f8845a12048556a22aa3.tar.bz2 go-tangerine-13506b4e47662dcce303f8845a12048556a22aa3.tar.lz go-tangerine-13506b4e47662dcce303f8845a12048556a22aa3.tar.xz go-tangerine-13506b4e47662dcce303f8845a12048556a22aa3.tar.zst go-tangerine-13506b4e47662dcce303f8845a12048556a22aa3.zip |
app: implement new insert blocks logic
Diffstat (limited to 'core/block_validator.go')
-rw-r--r-- | core/block_validator.go | 34 |
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 |