|
|
@ -8,10 +8,11 @@ import ( |
|
|
|
|
|
|
|
"github.com/pkg/errors" |
|
|
|
|
|
|
|
"github.com/tendermint/tendermint/p2p" |
|
|
|
cmn "github.com/tendermint/tmlibs/common" |
|
|
|
) |
|
|
|
|
|
|
|
type p2pID string |
|
|
|
|
|
|
|
/* |
|
|
|
VoteSet helps collect signatures from validators at each height+round for a |
|
|
|
predefined vote type. |
|
|
@ -59,7 +60,7 @@ type VoteSet struct { |
|
|
|
sum int64 // Sum of voting power for seen votes, discounting conflicts
|
|
|
|
maj23 *BlockID // First 2/3 majority seen
|
|
|
|
votesByBlock map[string]*blockVotes // string(blockHash|blockParts) -> blockVotes
|
|
|
|
peerMaj23s map[p2p.ID]BlockID // Maj23 for each peer
|
|
|
|
peerMaj23s map[p2pID]BlockID // Maj23 for each peer
|
|
|
|
} |
|
|
|
|
|
|
|
// Constructs a new VoteSet struct used to accumulate votes for given height/round.
|
|
|
@ -78,7 +79,7 @@ func NewVoteSet(chainID string, height int64, round int, type_ byte, valSet *Val |
|
|
|
sum: 0, |
|
|
|
maj23: nil, |
|
|
|
votesByBlock: make(map[string]*blockVotes, valSet.Size()), |
|
|
|
peerMaj23s: make(map[p2p.ID]BlockID), |
|
|
|
peerMaj23s: make(map[p2pID]BlockID), |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -291,7 +292,7 @@ func (voteSet *VoteSet) addVerifiedVote(vote *Vote, blockKey string, votingPower |
|
|
|
// this can cause memory issues.
|
|
|
|
// TODO: implement ability to remove peers too
|
|
|
|
// NOTE: VoteSet must not be nil
|
|
|
|
func (voteSet *VoteSet) SetPeerMaj23(peerID p2p.ID, blockID BlockID) error { |
|
|
|
func (voteSet *VoteSet) SetPeerMaj23(peerID p2pID, blockID BlockID) error { |
|
|
|
if voteSet == nil { |
|
|
|
cmn.PanicSanity("SetPeerMaj23() on nil VoteSet") |
|
|
|
} |
|
|
|