diff options
author | Wei-Ning Huang <w@dexon.org> | 2018-10-29 09:31:36 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@byzantine-lab.io> | 2019-06-12 17:27:17 +0800 |
commit | a69fb3e4c59fab52b6e10993c67400084879b1a8 (patch) | |
tree | 8e849faadee1e1c43068a4b0392a02050d271e3e /vendor/github.com/dexon-foundation/dexon-consensus-core/core/types | |
parent | 3f320c9048198d14bc44413861efcbc5665324b1 (diff) | |
download | go-tangerine-a69fb3e4c59fab52b6e10993c67400084879b1a8.tar.gz go-tangerine-a69fb3e4c59fab52b6e10993c67400084879b1a8.tar.zst go-tangerine-a69fb3e4c59fab52b6e10993c67400084879b1a8.zip |
vendor: sync consensus core and fix conflict
Diffstat (limited to 'vendor/github.com/dexon-foundation/dexon-consensus-core/core/types')
3 files changed, 32 insertions, 8 deletions
diff --git a/vendor/github.com/dexon-foundation/dexon-consensus-core/core/types/block.go b/vendor/github.com/dexon-foundation/dexon-consensus-core/core/types/block.go index e12e0d5c7..67226927f 100644 --- a/vendor/github.com/dexon-foundation/dexon-consensus-core/core/types/block.go +++ b/vendor/github.com/dexon-foundation/dexon-consensus-core/core/types/block.go @@ -215,6 +215,7 @@ func (b *Block) Clone() (bcopy *Block) { bcopy.ProposerID = b.ProposerID bcopy.ParentHash = b.ParentHash bcopy.Hash = b.Hash + bcopy.Position.Round = b.Position.Round bcopy.Position.ChainID = b.Position.ChainID bcopy.Position.Height = b.Position.Height bcopy.Signature = b.Signature.Clone() diff --git a/vendor/github.com/dexon-foundation/dexon-consensus-core/core/types/config.go b/vendor/github.com/dexon-foundation/dexon-consensus-core/core/types/config.go index 372ffb4da..df28b2055 100644 --- a/vendor/github.com/dexon-foundation/dexon-consensus-core/core/types/config.go +++ b/vendor/github.com/dexon-foundation/dexon-consensus-core/core/types/config.go @@ -46,6 +46,22 @@ type Config struct { MaxBlockInterval time.Duration } +// Clone return a copied configuration. +func (c *Config) Clone() *Config { + return &Config{ + NumChains: c.NumChains, + LambdaBA: c.LambdaBA, + LambdaDKG: c.LambdaDKG, + K: c.K, + PhiRatio: c.PhiRatio, + NotarySetSize: c.NotarySetSize, + DKGSetSize: c.DKGSetSize, + RoundInterval: c.RoundInterval, + MinBlockInterval: c.MinBlockInterval, + MaxBlockInterval: c.MaxBlockInterval, + } +} + // Bytes returns []byte representation of Config. func (c *Config) Bytes() []byte { binaryNumChains := make([]byte, 4) diff --git a/vendor/github.com/dexon-foundation/dexon-consensus-core/core/types/position.go b/vendor/github.com/dexon-foundation/dexon-consensus-core/core/types/position.go index f41be324e..8e7e85298 100644 --- a/vendor/github.com/dexon-foundation/dexon-consensus-core/core/types/position.go +++ b/vendor/github.com/dexon-foundation/dexon-consensus-core/core/types/position.go @@ -18,15 +18,9 @@ package types import ( - "errors" "fmt" ) -// ErrComparePositionOnDifferentChains raised when attempting to -// compare two positions with different chain ID. -var ErrComparePositionOnDifferentChains = errors.New( - "position on different chain") - // Position describes the position in the block lattice of an entity. type Position struct { ChainID uint32 `json:"chain_id"` @@ -42,7 +36,8 @@ func (pos *Position) String() string { // are different. func (pos *Position) Equal(other *Position) bool { if pos.ChainID != other.ChainID { - panic(ErrComparePositionOnDifferentChains) + panic(fmt.Errorf("unexpected chainID %d, should be %d", + other.ChainID, pos.ChainID)) } return pos.Round == other.Round && pos.Height == other.Height } @@ -51,12 +46,24 @@ func (pos *Position) Equal(other *Position) bool { // If two blocks on different chain compared by this function, it would panic. func (pos *Position) Newer(other *Position) bool { if pos.ChainID != other.ChainID { - panic(ErrComparePositionOnDifferentChains) + panic(fmt.Errorf("unexpected chainID %d, should be %d", + other.ChainID, pos.ChainID)) } return pos.Round > other.Round || (pos.Round == other.Round && pos.Height > other.Height) } +// Older checks if one block is older than another one on the same chain. +// If two blocks on different chain compared by this function, it would panic. +func (pos *Position) Older(other *Position) bool { + if pos.ChainID != other.ChainID { + panic(fmt.Errorf("unexpected chainID %d, should be %d", + other.ChainID, pos.ChainID)) + } + return pos.Round < other.Round || + (pos.Round == other.Round && pos.Height < other.Height) +} + // Clone a position instance. func (pos *Position) Clone() *Position { return &Position{ |