diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2018-08-30 17:21:58 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-30 17:21:58 +0800 |
commit | 96554a3bc14030e5d0dfc9dc1ee6bcdd9a133fa8 (patch) | |
tree | 418e2c43acf4f9c13289eaccf66f94ef46c9356b /core/consensus.go | |
parent | a4e0da981a3dfc8817d39be65cb5b24938b0761a (diff) | |
download | tangerine-consensus-96554a3bc14030e5d0dfc9dc1ee6bcdd9a133fa8.tar tangerine-consensus-96554a3bc14030e5d0dfc9dc1ee6bcdd9a133fa8.tar.gz tangerine-consensus-96554a3bc14030e5d0dfc9dc1ee6bcdd9a133fa8.tar.bz2 tangerine-consensus-96554a3bc14030e5d0dfc9dc1ee6bcdd9a133fa8.tar.lz tangerine-consensus-96554a3bc14030e5d0dfc9dc1ee6bcdd9a133fa8.tar.xz tangerine-consensus-96554a3bc14030e5d0dfc9dc1ee6bcdd9a133fa8.tar.zst tangerine-consensus-96554a3bc14030e5d0dfc9dc1ee6bcdd9a133fa8.zip |
core: Add PreparePayloads to Application and Remove blockConverter interface. (#84)
Diffstat (limited to 'core/consensus.go')
-rw-r--r-- | core/consensus.go | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/core/consensus.go b/core/consensus.go index d163686..9c109e4 100644 --- a/core/consensus.go +++ b/core/consensus.go @@ -113,10 +113,9 @@ func (con *Consensus) ProcessVote(vote *types.Vote) (err error) { } // sanityCheck checks if the block is a valid block -func (con *Consensus) sanityCheck(blockConv types.BlockConverter) (err error) { - b := blockConv.Block() +func (con *Consensus) sanityCheck(b *types.Block) (err error) { // Check the hash of block. - hash, err := hashBlock(blockConv) + hash, err := hashBlock(b) if err != nil || hash != b.Hash { return ErrIncorrectHash } @@ -133,12 +132,11 @@ func (con *Consensus) sanityCheck(blockConv types.BlockConverter) (err error) { } // ProcessBlock is the entry point to submit one block to a Consensus instance. -func (con *Consensus) ProcessBlock(blockConv types.BlockConverter) (err error) { +func (con *Consensus) ProcessBlock(b *types.Block) (err error) { // TODO(jimmy-dexon): BlockConverter.Block() is called twice in this method. - if err := con.sanityCheck(blockConv); err != nil { + if err := con.sanityCheck(b); err != nil { return err } - b := blockConv.Block() var ( deliveredBlocks []*types.Block earlyDelivered bool @@ -218,9 +216,8 @@ func (con *Consensus) checkPrepareBlock( } // PrepareBlock would setup header fields of block based on its ProposerID. -func (con *Consensus) PrepareBlock(blockConv types.BlockConverter, +func (con *Consensus) PrepareBlock(b *types.Block, proposeTime time.Time) (err error) { - b := blockConv.Block() if err = con.checkPrepareBlock(b, proposeTime); err != nil { return } @@ -229,6 +226,7 @@ func (con *Consensus) PrepareBlock(blockConv types.BlockConverter, con.rbModule.prepareBlock(b) b.Timestamps[b.ProposerID] = proposeTime + b.Payloads = con.app.PreparePayloads(b.ShardID, b.ChainID, b.Height) b.Hash, err = hashBlock(b) if err != nil { return @@ -237,18 +235,16 @@ func (con *Consensus) PrepareBlock(blockConv types.BlockConverter, if err != nil { return } - blockConv.SetBlock(b) return } // PrepareGenesisBlock would setup header fields for genesis block. -func (con *Consensus) PrepareGenesisBlock(blockConv types.BlockConverter, +func (con *Consensus) PrepareGenesisBlock(b *types.Block, proposeTime time.Time) (err error) { - b := blockConv.Block() if err = con.checkPrepareBlock(b, proposeTime); err != nil { return } - if len(b.Payloads()) != 0 { + if len(b.Payloads) != 0 { err = ErrGenesisBlockNotEmpty return } @@ -268,7 +264,6 @@ func (con *Consensus) PrepareGenesisBlock(blockConv types.BlockConverter, if err != nil { return } - blockConv.SetBlock(b) return } |