evidence migration with fixes to generated mocks

This commit is contained in:
Marko Baricevic
2021-02-03 17:05:42 +01:00
parent e77796550a
commit a854e7f545
34 changed files with 248 additions and 246 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ func AddNodeFlags(cmd *cobra.Command) {
"genesis-hash",
[]byte{},
"optional SHA-256 hash of the genesis file")
cmd.Flags().Int64("consensus.double-sign-check-height", config.Consensus.DoubleSignCheckHeight,
cmd.Flags().Uint64("consensus.double-sign-check-height", config.Consensus.DoubleSignCheckHeight,
"how many blocks to look back to check existence of the node's "+
"consensus votes before joining consensus")
+3 -3
View File
@@ -866,7 +866,7 @@ type ConsensusConfig struct {
PeerGossipSleepDuration time.Duration `mapstructure:"peer-gossip-sleep-duration"`
PeerQueryMaj23SleepDuration time.Duration `mapstructure:"peer-query-maj23-sleep-duration"`
DoubleSignCheckHeight int64 `mapstructure:"double-sign-check-height"`
DoubleSignCheckHeight uint64 `mapstructure:"double-sign-check-height"`
}
// DefaultConsensusConfig returns a default configuration for the consensus service
@@ -885,7 +885,7 @@ func DefaultConsensusConfig() *ConsensusConfig {
CreateEmptyBlocksInterval: 0 * time.Second,
PeerGossipSleepDuration: 100 * time.Millisecond,
PeerQueryMaj23SleepDuration: 2000 * time.Millisecond,
DoubleSignCheckHeight: int64(0),
DoubleSignCheckHeight: uint64(0),
}
}
@@ -902,7 +902,7 @@ func TestConsensusConfig() *ConsensusConfig {
cfg.SkipTimeoutCommit = true
cfg.PeerGossipSleepDuration = 5 * time.Millisecond
cfg.PeerQueryMaj23SleepDuration = 250 * time.Millisecond
cfg.DoubleSignCheckHeight = int64(0)
cfg.DoubleSignCheckHeight = uint64(0)
return cfg
}
+1 -1
View File
@@ -164,7 +164,7 @@ func TestConsensusConfig_ValidateBasic(t *testing.T) {
"PeerGossipSleepDuration negative": {func(c *ConsensusConfig) { c.PeerGossipSleepDuration = -1 }, true},
"PeerQueryMaj23SleepDuration": {func(c *ConsensusConfig) { c.PeerQueryMaj23SleepDuration = time.Second }, false},
"PeerQueryMaj23SleepDuration negative": {func(c *ConsensusConfig) { c.PeerQueryMaj23SleepDuration = -1 }, true},
"DoubleSignCheckHeight negative": {func(c *ConsensusConfig) { c.DoubleSignCheckHeight = -1 }, true},
"DoubleSignCheckHeight negative": {func(c *ConsensusConfig) { c.DoubleSignCheckHeight = 0 }, true},
}
for desc, tc := range testcases {
tc := tc // appease linter
+2 -2
View File
@@ -1584,7 +1584,7 @@ func (m *ProposalPOLMessage) String() string {
// BlockPartMessage is sent when gossipping a piece of the proposed block.
type BlockPartMessage struct {
Height int64
Height uint64
Round int32
Part *types.Part
}
@@ -1693,7 +1693,7 @@ func (m *VoteSetMaj23Message) String() string {
// VoteSetBitsMessage is sent to communicate the bit-array of votes seen for the BlockID.
type VoteSetBitsMessage struct {
Height int64
Height uint64
Round int32
Type tmproto.SignedMsgType
BlockID types.BlockID
+1 -1
View File
@@ -91,7 +91,7 @@ func (cs *State) readReplayMessage(msg *TimedWALMessage, newStepSub types.Subscr
// Replay only those messages since the last block. `timeoutRoutine` should
// run concurrently to read off tickChan.
func (cs *State) catchupReplay(csHeight int64) error {
func (cs *State) catchupReplay(csHeight uint64) error {
// Set replayMode to true so we don't log signing errors.
cs.replayMode = true
+1 -1
View File
@@ -24,7 +24,7 @@ func (emptyMempool) CheckTx(_ types.Tx, _ func(*abci.Response), _ mempl.TxInfo)
func (emptyMempool) ReapMaxBytesMaxGas(_, _ int64) types.Txs { return types.Txs{} }
func (emptyMempool) ReapMaxTxs(n int) types.Txs { return types.Txs{} }
func (emptyMempool) Update(
_ int64,
_ uint64,
_ types.Txs,
_ []*abci.ResponseDeliverTx,
_ mempl.PreCheckFunc,
+22 -22
View File
@@ -57,7 +57,7 @@ type msgInfo struct {
// internally generated messages which may update the state
type timeoutInfo struct {
Duration time.Duration `json:"duration"`
Height int64 `json:"height"`
Height uint64 `json:"height"`
Round int32 `json:"round"`
Step cstypes.RoundStepType `json:"step"`
}
@@ -133,8 +133,8 @@ type State struct {
nSteps int
// some functions can be overwritten for testing
decideProposal func(height int64, round int32)
doPrevote func(height int64, round int32)
decideProposal func(height uint64, round int32)
doPrevote func(height uint64, round int32)
setProposal func(proposal *types.Proposal) error
// closed when we finish shutting down
@@ -263,7 +263,7 @@ func (cs *State) GetRoundStateSimpleJSON() ([]byte, error) {
}
// GetValidators returns a copy of the current validators.
func (cs *State) GetValidators() (int64, []*types.Validator) {
func (cs *State) GetValidators() (uint64, []*types.Validator) {
cs.mtx.RLock()
defer cs.mtx.RUnlock()
return cs.state.LastBlockHeight, cs.state.Validators.Copy().Validators
@@ -290,7 +290,7 @@ func (cs *State) SetTimeoutTicker(timeoutTicker TimeoutTicker) {
}
// LoadCommit loads the commit for a given height.
func (cs *State) LoadCommit(height int64) *types.Commit {
func (cs *State) LoadCommit(height uint64) *types.Commit {
cs.mtx.RLock()
defer cs.mtx.RUnlock()
if height == cs.blockStore.Height() {
@@ -473,7 +473,7 @@ func (cs *State) SetProposal(proposal *types.Proposal, peerID p2p.NodeID) error
}
// AddProposalBlockPart inputs a part of the proposal block.
func (cs *State) AddProposalBlockPart(height int64, round int32, part *types.Part, peerID p2p.NodeID) error {
func (cs *State) AddProposalBlockPart(height uint64, round int32, part *types.Part, peerID p2p.NodeID) error {
if peerID == "" {
cs.internalMsgQueue <- msgInfo{&BlockPartMessage{height, round, part}, ""}
@@ -525,7 +525,7 @@ func (cs *State) scheduleRound0(rs *cstypes.RoundState) {
}
// Attempt to schedule a timeout (by sending timeoutInfo on the tickChan)
func (cs *State) scheduleTimeout(duration time.Duration, height int64, round int32, step cstypes.RoundStepType) {
func (cs *State) scheduleTimeout(duration time.Duration, height uint64, round int32, step cstypes.RoundStepType) {
cs.timeoutTicker.ScheduleTimeout(timeoutInfo{duration, height, round, step})
}
@@ -905,7 +905,7 @@ func (cs *State) handleTxsAvailable() {
// Enter: +2/3 precommits for nil at (height,round-1)
// Enter: +2/3 prevotes any or +2/3 precommits for block or any from (height, round)
// NOTE: cs.StartTime was already set for height.
func (cs *State) enterNewRound(height int64, round int32) {
func (cs *State) enterNewRound(height uint64, round int32) {
logger := cs.Logger.With("height", height, "round", round)
if cs.Height != height || round < cs.Round || (cs.Round == round && cs.Step != cstypes.RoundStepNewHeight) {
@@ -971,7 +971,7 @@ func (cs *State) enterNewRound(height int64, round int32) {
// needProofBlock returns true on the first height (so the genesis app hash is signed right away)
// and where the last block (height-1) caused the app hash to change
func (cs *State) needProofBlock(height int64) bool {
func (cs *State) needProofBlock(height uint64) bool {
if height == cs.state.InitialHeight {
return true
}
@@ -987,7 +987,7 @@ func (cs *State) needProofBlock(height int64) bool {
// Enter (CreateEmptyBlocks, CreateEmptyBlocksInterval > 0 ):
// after enterNewRound(height,round), after timeout of CreateEmptyBlocksInterval
// Enter (!CreateEmptyBlocks) : after enterNewRound(height,round), once txs are in the mempool
func (cs *State) enterPropose(height int64, round int32) {
func (cs *State) enterPropose(height uint64, round int32) {
logger := cs.Logger.With("height", height, "round", round)
if cs.Height != height || round < cs.Round || (cs.Round == round && cstypes.RoundStepPropose <= cs.Step) {
@@ -1057,7 +1057,7 @@ func (cs *State) isProposer(address []byte) bool {
return bytes.Equal(cs.Validators.GetProposer().Address, address)
}
func (cs *State) defaultDecideProposal(height int64, round int32) {
func (cs *State) defaultDecideProposal(height uint64, round int32) {
var block *types.Block
var blockParts *types.PartSet
@@ -1156,7 +1156,7 @@ func (cs *State) createProposalBlock() (block *types.Block, blockParts *types.Pa
// Enter: proposal block and POL is ready.
// Prevote for LockedBlock if we're locked, or ProposalBlock if valid.
// Otherwise vote nil.
func (cs *State) enterPrevote(height int64, round int32) {
func (cs *State) enterPrevote(height uint64, round int32) {
if cs.Height != height || round < cs.Round || (cs.Round == round && cstypes.RoundStepPrevote <= cs.Step) {
cs.Logger.Debug(fmt.Sprintf(
"enterPrevote(%v/%v): Invalid args. Current step: %v/%v/%v",
@@ -1183,7 +1183,7 @@ func (cs *State) enterPrevote(height int64, round int32) {
// (so we have more time to try and collect +2/3 prevotes for a single block)
}
func (cs *State) defaultDoPrevote(height int64, round int32) {
func (cs *State) defaultDoPrevote(height uint64, round int32) {
logger := cs.Logger.With("height", height, "round", round)
// If a block is locked, prevote that.
@@ -1217,7 +1217,7 @@ func (cs *State) defaultDoPrevote(height int64, round int32) {
}
// Enter: any +2/3 prevotes at next round.
func (cs *State) enterPrevoteWait(height int64, round int32) {
func (cs *State) enterPrevoteWait(height uint64, round int32) {
logger := cs.Logger.With("height", height, "round", round)
if cs.Height != height || round < cs.Round || (cs.Round == round && cstypes.RoundStepPrevoteWait <= cs.Step) {
@@ -1252,7 +1252,7 @@ func (cs *State) enterPrevoteWait(height int64, round int32) {
// Lock & precommit the ProposalBlock if we have enough prevotes for it (a POL in this round)
// else, unlock an existing lock and precommit nil if +2/3 of prevotes were nil,
// else, precommit nil otherwise.
func (cs *State) enterPrecommit(height int64, round int32) {
func (cs *State) enterPrecommit(height uint64, round int32) {
logger := cs.Logger.With("height", height, "round", round)
if cs.Height != height || round < cs.Round || (cs.Round == round && cstypes.RoundStepPrecommit <= cs.Step) {
@@ -1364,7 +1364,7 @@ func (cs *State) enterPrecommit(height int64, round int32) {
}
// Enter: any +2/3 precommits for next round.
func (cs *State) enterPrecommitWait(height int64, round int32) {
func (cs *State) enterPrecommitWait(height uint64, round int32) {
logger := cs.Logger.With("height", height, "round", round)
if cs.Height != height || round < cs.Round || (cs.Round == round && cs.TriggeredTimeoutPrecommit) {
@@ -1391,7 +1391,7 @@ func (cs *State) enterPrecommitWait(height int64, round int32) {
}
// Enter: +2/3 precommits for block
func (cs *State) enterCommit(height int64, commitRound int32) {
func (cs *State) enterCommit(height uint64, commitRound int32) {
logger := cs.Logger.With("height", height, "commitRound", commitRound)
if cs.Height != height || cstypes.RoundStepCommit <= cs.Step {
@@ -1457,7 +1457,7 @@ func (cs *State) enterCommit(height int64, commitRound int32) {
}
// If we have the block AND +2/3 commits for it, finalize.
func (cs *State) tryFinalizeCommit(height int64) {
func (cs *State) tryFinalizeCommit(height uint64) {
logger := cs.Logger.With("height", height)
if cs.Height != height {
@@ -1563,7 +1563,7 @@ func (cs *State) finalizeCommit(height int64) {
// Execute and commit the block, update and save the state, and update the mempool.
// NOTE The block.AppHash wont reflect these txs until the next block.
var err error
var retainHeight int64
var retainHeight uint64
stateCopy, retainHeight, err = cs.blockExec.ApplyBlock(
stateCopy,
types.BlockID{Hash: block.Hash(), PartSetHeader: blockParts.Header()},
@@ -1608,7 +1608,7 @@ func (cs *State) finalizeCommit(height int64) {
// * cs.StartTime is set to when we will start round0.
}
func (cs *State) pruneBlocks(retainHeight int64) (uint64, error) {
func (cs *State) pruneBlocks(retainHeight uint64) (uint64, error) {
base := cs.blockStore.Base()
if retainHeight <= base {
return 0, nil
@@ -2163,14 +2163,14 @@ func (cs *State) updatePrivValidatorPubKey() error {
}
// look back to check existence of the node's consensus votes before joining consensus
func (cs *State) checkDoubleSigningRisk(height int64) error {
func (cs *State) checkDoubleSigningRisk(height uint64) error {
if cs.privValidator != nil && cs.privValidatorPubKey != nil && cs.config.DoubleSignCheckHeight > 0 && height > 0 {
valAddr := cs.privValidatorPubKey.Address()
doubleSignCheckHeight := cs.config.DoubleSignCheckHeight
if doubleSignCheckHeight > height {
doubleSignCheckHeight = height
}
for i := int64(1); i < doubleSignCheckHeight; i++ {
for i := uint64(1); i < doubleSignCheckHeight; i++ {
lastCommit := cs.blockStore.LoadSeenCommit(height - i)
if lastCommit != nil {
for sigIdx, s := range lastCommit.Signatures {
+1 -1
View File
@@ -65,7 +65,7 @@ func (rs RoundStepType) String() string {
// NOTE: Not thread safe. Should only be manipulated by functions downstream
// of the cs.receiveRoutine
type RoundState struct {
Height int64 `json:"height"` // Height we are working on
Height uint64 `json:"height"` // Height we are working on
Round int32 `json:"round"`
Step RoundStepType `json:"step"`
StartTime time.Time `json:"start_time"`
+5 -5
View File
@@ -40,7 +40,7 @@ type TimedWALMessage struct {
// EndHeightMessage marks the end of the given height inside WAL.
// @internal used by scripts/wal2json util.
type EndHeightMessage struct {
Height int64 `json:"height"`
Height uint64 `json:"height"`
}
type WALMessage interface{}
@@ -60,7 +60,7 @@ type WAL interface {
WriteSync(WALMessage) error
FlushAndSync() error
SearchForEndHeight(height int64, options *WALSearchOptions) (rd io.ReadCloser, found bool, err error)
SearchForEndHeight(height uint64, options *WALSearchOptions) (rd io.ReadCloser, found bool, err error)
// service methods
Start() error
@@ -229,13 +229,13 @@ type WALSearchOptions struct {
//
// CONTRACT: caller must close group reader.
func (wal *BaseWAL) SearchForEndHeight(
height int64,
height uint64,
options *WALSearchOptions) (rd io.ReadCloser, found bool, err error) {
var (
msg *TimedWALMessage
gr *auto.GroupReader
)
lastHeightFound := int64(-1)
lastHeightFound := uint64(0) // todo: check this is not breaking, previously -1
// NOTE: starting from the last file in the group because we're usually
// searching for the last height. See replay.go
@@ -425,7 +425,7 @@ var _ WAL = nilWAL{}
func (nilWAL) Write(m WALMessage) error { return nil }
func (nilWAL) WriteSync(m WALMessage) error { return nil }
func (nilWAL) FlushAndSync() error { return nil }
func (nilWAL) SearchForEndHeight(height int64, options *WALSearchOptions) (rd io.ReadCloser, found bool, err error) {
func (nilWAL) SearchForEndHeight(height uint64, options *WALSearchOptions) (rd io.ReadCloser, found bool, err error) {
return nil, false, nil
}
func (nilWAL) Start() error { return nil }
+4 -4
View File
@@ -96,7 +96,7 @@ func WALGenerateNBlocks(t *testing.T, wr io.Writer, numBlocks int) (err error) {
// set consensus wal to buffered WAL, which will write all incoming msgs to buffer
numBlocksWritten := make(chan struct{})
wal := newByteBufferWAL(logger, NewWALEncoder(wr), int64(numBlocks), numBlocksWritten)
wal := newByteBufferWAL(logger, NewWALEncoder(wr), uint64(numBlocks), numBlocksWritten)
// see wal.go#103
if err := wal.Write(EndHeightMessage{0}); err != nil {
t.Error(err)
@@ -166,7 +166,7 @@ func getConfig(t *testing.T) *cfg.Config {
type byteBufferWAL struct {
enc *WALEncoder
stopped bool
heightToStop int64
heightToStop uint64
signalWhenStopsTo chan<- struct{}
logger log.Logger
@@ -175,7 +175,7 @@ type byteBufferWAL struct {
// needed for determinism
var fixedTime, _ = time.Parse(time.RFC3339, "2017-01-02T15:04:05Z")
func newByteBufferWAL(logger log.Logger, enc *WALEncoder, nBlocks int64, signalStop chan<- struct{}) *byteBufferWAL {
func newByteBufferWAL(logger log.Logger, enc *WALEncoder, nBlocks uint64, signalStop chan<- struct{}) *byteBufferWAL {
return &byteBufferWAL{
enc: enc,
heightToStop: nBlocks,
@@ -219,7 +219,7 @@ func (w *byteBufferWAL) WriteSync(m WALMessage) error {
func (w *byteBufferWAL) FlushAndSync() error { return nil }
func (w *byteBufferWAL) SearchForEndHeight(
height int64,
height uint64,
options *WALSearchOptions) (rd io.ReadCloser, found bool, err error) {
return nil, false, nil
}
+3 -3
View File
@@ -61,7 +61,7 @@ func TestWALTruncate(t *testing.T) {
t.Error(err)
}
h := int64(50)
h := uint64(50)
gr, found, err := wal.SearchForEndHeight(h, &WALSearchOptions{})
assert.NoError(t, err, "expected not to err on height %d", h)
assert.True(t, found, "expected to find end height for %d", h)
@@ -154,7 +154,7 @@ func TestWALSearchForEndHeight(t *testing.T) {
require.NoError(t, err)
wal.SetLogger(log.TestingLogger())
h := int64(3)
h := uint64(3)
gr, found, err := wal.SearchForEndHeight(h, &WALSearchOptions{})
assert.NoError(t, err, "expected not to err on height %d", h)
assert.True(t, found, "expected to find end height for %d", h)
@@ -199,7 +199,7 @@ func TestWALPeriodicSync(t *testing.T) {
// The data should have been flushed by the periodic sync
assert.Zero(t, wal.Group().Buffered())
h := int64(4)
h := uint64(4)
gr, found, err := wal.SearchForEndHeight(h, &WALSearchOptions{})
assert.NoError(t, err, "expected not to err on height %d", h)
assert.True(t, found, "expected to find end height for %d", h)
+4 -4
View File
@@ -13,11 +13,11 @@ type BlockStore struct {
}
// LoadBlockCommit provides a mock function with given fields: height
func (_m *BlockStore) LoadBlockCommit(height int64) *types.Commit {
func (_m *BlockStore) LoadBlockCommit(height uint64) *types.Commit {
ret := _m.Called(height)
var r0 *types.Commit
if rf, ok := ret.Get(0).(func(int64) *types.Commit); ok {
if rf, ok := ret.Get(0).(func(uint64) *types.Commit); ok {
r0 = rf(height)
} else {
if ret.Get(0) != nil {
@@ -29,11 +29,11 @@ func (_m *BlockStore) LoadBlockCommit(height int64) *types.Commit {
}
// LoadBlockMeta provides a mock function with given fields: height
func (_m *BlockStore) LoadBlockMeta(height int64) *types.BlockMeta {
func (_m *BlockStore) LoadBlockMeta(height uint64) *types.BlockMeta {
ret := _m.Called(height)
var r0 *types.BlockMeta
if rf, ok := ret.Get(0).(func(int64) *types.BlockMeta); ok {
if rf, ok := ret.Get(0).(func(uint64) *types.BlockMeta); ok {
r0 = rf(height)
} else {
if ret.Get(0) != nil {
+7 -7
View File
@@ -334,13 +334,13 @@ func (evpool *Pool) fastCheck(ev types.Evidence) bool {
// IsExpired checks whether evidence or a polc is expired by checking whether a height and time is older
// than set by the evidence consensus parameters
func (evpool *Pool) isExpired(height int64, time time.Time) bool {
func (evpool *Pool) isExpired(height uint64, time time.Time) bool {
var (
params = evpool.State().ConsensusParams.Evidence
ageDuration = evpool.State().LastBlockTime.Sub(time)
ageNumBlocks = evpool.State().LastBlockHeight - height
)
return ageNumBlocks > params.MaxAgeNumBlocks &&
return ageNumBlocks > uint64(params.MaxAgeNumBlocks) &&
ageDuration > params.MaxAgeDuration
}
@@ -410,7 +410,7 @@ func (evpool *Pool) markEvidenceAsCommitted(evidence types.EvidenceList) {
// we only need to record the height that it was saved at.
key := keyCommitted(ev)
h := gogotypes.Int64Value{Value: ev.Height()}
h := gogotypes.UInt64Value{Value: ev.Height()}
evBytes, err := proto.Marshal(&h)
if err != nil {
evpool.logger.Error("failed to marshal committed evidence", "key(height/hash)", key, "err", err)
@@ -480,7 +480,7 @@ func (evpool *Pool) listEvidence(prefixKey int64, maxBytes int64) ([]types.Evide
return evidence, totalSize, nil
}
func (evpool *Pool) removeExpiredPendingEvidence() (int64, time.Time) {
func (evpool *Pool) removeExpiredPendingEvidence() (uint64, time.Time) {
iter, err := dbm.IteratePrefix(evpool.evidenceStore, prefixToBytes(prefixPending))
if err != nil {
evpool.logger.Error("failed to iterate over pending evidence", "err", err)
@@ -505,7 +505,7 @@ func (evpool *Pool) removeExpiredPendingEvidence() (int64, time.Time) {
// Return the height and time with which this evidence will have expired
// so we know when to prune next.
return ev.Height() + evpool.State().ConsensusParams.Evidence.MaxAgeNumBlocks + 1,
return ev.Height() + uint64(evpool.State().ConsensusParams.Evidence.MaxAgeNumBlocks+1),
ev.Time().Add(evpool.State().ConsensusParams.Evidence.MaxAgeDuration).Add(time.Second)
}
@@ -643,7 +643,7 @@ func prefixToBytes(prefix int64) []byte {
}
func keyCommitted(evidence types.Evidence) []byte {
var height int64 = evidence.Height()
var height uint64 = evidence.Height()
key, err := orderedcode.Append(nil, prefixCommitted, height, string(evidence.Hash()))
if err != nil {
panic(err)
@@ -652,7 +652,7 @@ func keyCommitted(evidence types.Evidence) []byte {
}
func keyPending(evidence types.Evidence) []byte {
var height int64 = evidence.Height()
var height uint64 = evidence.Height()
key, err := orderedcode.Append(nil, prefixPending, height, string(evidence.Hash()))
if err != nil {
panic(err)
+21 -21
View File
@@ -30,7 +30,7 @@ var (
func TestEvidencePoolBasic(t *testing.T) {
var (
height = int64(1)
height = uint64(1)
stateStore = &smmocks.Store{}
evidenceDB = dbm.NewMemDB()
blockStore = &mocks.BlockStore{}
@@ -88,15 +88,15 @@ func TestEvidencePoolBasic(t *testing.T) {
func TestAddExpiredEvidence(t *testing.T) {
var (
val = types.NewMockPV()
height = int64(30)
height = uint64(30)
stateStore = initializeValidatorState(t, val, height)
evidenceDB = dbm.NewMemDB()
blockStore = &mocks.BlockStore{}
expiredEvidenceTime = time.Date(2018, 1, 1, 0, 0, 0, 0, time.UTC)
expiredHeight = int64(2)
expiredHeight = uint64(2)
)
blockStore.On("LoadBlockMeta", mock.AnythingOfType("int64")).Return(func(h int64) *types.BlockMeta {
blockStore.On("LoadBlockMeta", mock.AnythingOfType("uint64")).Return(func(h uint64) *types.BlockMeta {
if h == height || h == expiredHeight {
return &types.BlockMeta{Header: types.Header{Time: defaultEvidenceTime}}
}
@@ -107,7 +107,7 @@ func TestAddExpiredEvidence(t *testing.T) {
require.NoError(t, err)
testCases := []struct {
evHeight int64
evHeight uint64
evTime time.Time
expErr bool
evDescription string
@@ -136,7 +136,7 @@ func TestAddExpiredEvidence(t *testing.T) {
}
func TestReportConflictingVotes(t *testing.T) {
var height int64 = 10
var height uint64 = 10
pool, pv := defaultTestPool(t, height)
val := types.NewValidator(pv.PrivKey.PubKey(), 10)
@@ -168,7 +168,7 @@ func TestReportConflictingVotes(t *testing.T) {
}
func TestEvidencePoolUpdate(t *testing.T) {
height := int64(21)
height := uint64(21)
pool, val := defaultTestPool(t, height)
state := pool.State()
@@ -212,7 +212,7 @@ func TestEvidencePoolUpdate(t *testing.T) {
}
func TestVerifyPendingEvidencePasses(t *testing.T) {
var height int64 = 1
var height uint64 = 1
pool, val := defaultTestPool(t, height)
ev := types.NewMockDuplicateVoteEvidenceWithValidator(
@@ -227,7 +227,7 @@ func TestVerifyPendingEvidencePasses(t *testing.T) {
}
func TestVerifyDuplicatedEvidenceFails(t *testing.T) {
var height int64 = 1
var height uint64 = 1
pool, val := defaultTestPool(t, height)
ev := types.NewMockDuplicateVoteEvidenceWithValidator(
height,
@@ -246,9 +246,9 @@ func TestVerifyDuplicatedEvidenceFails(t *testing.T) {
// evidence pool
func TestCheckEvidenceWithLightClientAttack(t *testing.T) {
var (
nValidators = 5
validatorPower int64 = 10
height int64 = 10
nValidators = 5
validatorPower int64 = 10
height uint64 = 10
)
conflictingVals, conflictingPrivVals := types.RandValidatorSet(nValidators, validatorPower)
@@ -327,7 +327,7 @@ func TestCheckEvidenceWithLightClientAttack(t *testing.T) {
// Tests that restarting the evidence pool after a potential failure will recover the
// pending evidence and continue to gossip it
func TestRecoverPendingEvidence(t *testing.T) {
height := int64(10)
height := uint64(10)
val := types.NewMockPV()
valAddress := val.PrivKey.PubKey().Address()
evidenceDB := dbm.NewMemDB()
@@ -349,7 +349,7 @@ func TestRecoverPendingEvidence(t *testing.T) {
evidenceChainID,
)
expiredEvidence := types.NewMockDuplicateVoteEvidenceWithValidator(
int64(1),
uint64(1),
defaultEvidenceTime.Add(1*time.Minute),
val,
evidenceChainID,
@@ -386,7 +386,7 @@ func TestRecoverPendingEvidence(t *testing.T) {
require.Equal(t, goodEvidence, next.Value.(types.Evidence))
}
func initializeStateFromValidatorSet(t *testing.T, valSet *types.ValidatorSet, height int64) sm.Store {
func initializeStateFromValidatorSet(t *testing.T, valSet *types.ValidatorSet, height uint64) sm.Store {
stateDB := dbm.NewMemDB()
stateStore := sm.NewStore(stateDB)
state := sm.State{
@@ -412,7 +412,7 @@ func initializeStateFromValidatorSet(t *testing.T, valSet *types.ValidatorSet, h
}
// save all states up to height
for i := int64(0); i <= height; i++ {
for i := uint64(0); i <= height; i++ {
state.LastBlockHeight = i
require.NoError(t, stateStore.Save(state))
}
@@ -420,7 +420,7 @@ func initializeStateFromValidatorSet(t *testing.T, valSet *types.ValidatorSet, h
return stateStore
}
func initializeValidatorState(t *testing.T, privVal types.PrivValidator, height int64) sm.Store {
func initializeValidatorState(t *testing.T, privVal types.PrivValidator, height uint64) sm.Store {
pubKey, _ := privVal.GetPubKey()
validator := &types.Validator{Address: pubKey.Address(), VotingPower: 10, PubKey: pubKey}
@@ -438,7 +438,7 @@ func initializeValidatorState(t *testing.T, privVal types.PrivValidator, height
func initializeBlockStore(db dbm.DB, state sm.State, valAddr []byte) *store.BlockStore {
blockStore := store.NewBlockStore(db)
for i := int64(1); i <= state.LastBlockHeight; i++ {
for i := uint64(1); i <= state.LastBlockHeight; i++ {
lastCommit := makeCommit(i-1, valAddr)
block, _ := state.MakeBlock(i, []types.Tx{}, lastCommit, nil,
state.Validators.GetProposer().Address)
@@ -454,7 +454,7 @@ func initializeBlockStore(db dbm.DB, state sm.State, valAddr []byte) *store.Bloc
return blockStore
}
func makeCommit(height int64, valAddr []byte) *types.Commit {
func makeCommit(height uint64, valAddr []byte) *types.Commit {
commitSigs := []types.CommitSig{{
BlockIDFlag: types.BlockIDFlagCommit,
ValidatorAddress: valAddr,
@@ -465,7 +465,7 @@ func makeCommit(height int64, valAddr []byte) *types.Commit {
return types.NewCommit(height, 0, types.BlockID{}, commitSigs)
}
func defaultTestPool(t *testing.T, height int64) (*evidence.Pool, types.MockPV) {
func defaultTestPool(t *testing.T, height uint64) (*evidence.Pool, types.MockPV) {
val := types.NewMockPV()
valAddress := val.PrivKey.PubKey().Address()
evidenceDB := dbm.NewMemDB()
@@ -479,7 +479,7 @@ func defaultTestPool(t *testing.T, height int64) (*evidence.Pool, types.MockPV)
return pool, val
}
func createState(height int64, valSet *types.ValidatorSet) sm.State {
func createState(height uint64, valSet *types.ValidatorSet) sm.State {
return sm.State{
ChainID: evidenceChainID,
LastBlockHeight: height,
+9 -9
View File
@@ -165,7 +165,7 @@ func createEvidenceList(
evList := make([]types.Evidence, numEvidence)
for i := 0; i < numEvidence; i++ {
ev := types.NewMockDuplicateVoteEvidenceWithValidator(
int64(i+1),
uint64(i+1),
time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC),
val,
evidenceChainID,
@@ -211,7 +211,7 @@ func simulateRouter(wg *sync.WaitGroup, primary *reactorTestSuite, suites []*rea
func TestReactorMultiDisconnect(t *testing.T) {
val := types.NewMockPV()
height := int64(numEvidence) + 10
height := uint64(numEvidence) + 10
stateDB1 := initializeValidatorState(t, val, height)
stateDB2 := initializeValidatorState(t, val, height)
@@ -251,7 +251,7 @@ func TestReactorBroadcastEvidence(t *testing.T) {
// We need all validators saved for heights at least as high as we have
// evidence for.
height := int64(numEvidence) + 10
height := uint64(numEvidence) + 10
for i := 0; i < numPeers; i++ {
stateDBs[i] = initializeValidatorState(t, val, height)
}
@@ -301,8 +301,8 @@ func TestReactorBroadcastEvidence(t *testing.T) {
// ahead receives a list of evidence.
func TestReactorBroadcastEvidence_Lagging(t *testing.T) {
val := types.NewMockPV()
height1 := int64(numEvidence) + 10
height2 := int64(numEvidence) / 2
height1 := uint64(numEvidence) + 10
height2 := uint64(numEvidence) / 2
// stateDB1 is ahead of stateDB2, where stateDB1 has all heights (1-10) and
// stateDB2 only has heights 1-7.
@@ -349,7 +349,7 @@ func TestReactorBroadcastEvidence_Lagging(t *testing.T) {
func TestReactorBroadcastEvidence_Pending(t *testing.T) {
val := types.NewMockPV()
height := int64(10)
height := uint64(10)
stateDB1 := initializeValidatorState(t, val, height)
stateDB2 := initializeValidatorState(t, val, height)
@@ -399,7 +399,7 @@ func TestReactorBroadcastEvidence_Pending(t *testing.T) {
func TestReactorBroadcastEvidence_Committed(t *testing.T) {
val := types.NewMockPV()
height := int64(10)
height := uint64(10)
stateDB1 := initializeValidatorState(t, val, height)
stateDB2 := initializeValidatorState(t, val, height)
@@ -465,7 +465,7 @@ func TestReactorBroadcastEvidence_FullyConnected(t *testing.T) {
// We need all validators saved for heights at least as high as we have
// evidence for.
height := int64(numEvidence) + 10
height := uint64(numEvidence) + 10
for i := 0; i < numPeers; i++ {
stateDBs[i] = initializeValidatorState(t, val, height)
}
@@ -510,7 +510,7 @@ func TestReactorBroadcastEvidence_FullyConnected(t *testing.T) {
func TestReactorBroadcastEvidence_RemovePeer(t *testing.T) {
val := types.NewMockPV()
height := int64(10)
height := uint64(10)
stateDB1 := initializeValidatorState(t, val, height)
stateDB2 := initializeValidatorState(t, val, height)
+3 -3
View File
@@ -56,14 +56,14 @@ func (evpool *Pool) verify(evidence types.Evidence) error {
ageDuration := state.LastBlockTime.Sub(evTime)
// check that the evidence hasn't expired
if ageDuration > evidenceParams.MaxAgeDuration && ageNumBlocks > evidenceParams.MaxAgeNumBlocks {
if ageDuration > evidenceParams.MaxAgeDuration && int64(ageNumBlocks) > evidenceParams.MaxAgeNumBlocks {
return types.NewErrInvalidEvidence(
evidence,
fmt.Errorf(
"evidence from height %d (created at: %v) is too old; min height is %d and evidence can not be older than %v",
evidence.Height(),
evTime,
height-evidenceParams.MaxAgeNumBlocks,
height-uint64(evidenceParams.MaxAgeNumBlocks),
state.LastBlockTime.Add(evidenceParams.MaxAgeDuration),
),
)
@@ -281,7 +281,7 @@ func VerifyDuplicateVote(e *types.DuplicateVoteEvidence, chainID string, valSet
return nil
}
func getSignedHeader(blockStore BlockStore, height int64) (*types.SignedHeader, error) {
func getSignedHeader(blockStore BlockStore, height uint64) (*types.SignedHeader, error) {
blockMeta := blockStore.LoadBlockMeta(height)
if blockMeta == nil {
return nil, fmt.Errorf("don't have header at height #%d", height)
+2 -2
View File
@@ -384,7 +384,7 @@ func TestVerifyDuplicateVoteEvidence(t *testing.T) {
}
func makeVote(
t *testing.T, val types.PrivValidator, chainID string, valIndex int32, height int64,
t *testing.T, val types.PrivValidator, chainID string, valIndex int32, height uint64,
round int32, step int, blockID types.BlockID, time time.Time) *types.Vote {
pubKey, err := val.GetPubKey()
require.NoError(t, err)
@@ -407,7 +407,7 @@ func makeVote(
return v
}
func makeHeaderRandom(height int64) *types.Header {
func makeHeaderRandom(height uint64) *types.Header {
return &types.Header{
Version: version.Consensus{Block: version.BlockProtocol, App: 1},
ChainID: evidenceChainID,
+2 -2
View File
@@ -385,7 +385,7 @@ func (c *Client) compareWithLatestHeight(height uint64) (uint64, error) {
if err != nil {
return 0, fmt.Errorf("can't get last trusted height: %w", err)
}
if latestHeight == -1 { // todo standardize errors
if latestHeight == 0 { // todo: should we standardize errors to avoid 0 checks
return 0, errors.New("no headers exist")
}
@@ -410,7 +410,7 @@ func (c *Client) Update(ctx context.Context, now time.Time) (*types.LightBlock,
return nil, fmt.Errorf("can't get last trusted height: %w", err)
}
if lastTrustedHeight == -1 {
if lastTrustedHeight == 0 {
// no light blocks yet => wait
return nil, nil
}
+10 -10
View File
@@ -27,20 +27,20 @@ func TestLightClientAttackEvidence_Lunatic(t *testing.T) {
primaryValidators = make(map[int64]*types.ValidatorSet, latestHeight)
)
witnessHeaders, witnessValidators, chainKeys := genMockNodeWithKeys(chainID, latestHeight, valSize, 2, bTime)
witnessHeaders, witnessValidators, chainKeys := genMockNodeWithKeys(chainID, int64(latestHeight), valSize, 2, bTime)
witness := mockp.New(chainID, witnessHeaders, witnessValidators)
forgedKeys := chainKeys[divergenceHeight-1].ChangeKeys(3) // we change 3 out of the 5 validators (still 2/5 remain)
forgedKeys := chainKeys[int64(divergenceHeight)-1].ChangeKeys(3) // we change 3 out of the 5 validators (still 2/5 remain)
forgedVals := forgedKeys.ToValidators(2, 0)
for height := int64(1); height <= latestHeight; height++ {
for height := uint64(1); height <= latestHeight; height++ {
if height < divergenceHeight {
primaryHeaders[height] = witnessHeaders[height]
primaryValidators[height] = witnessValidators[height]
primaryHeaders[int64(height)] = witnessHeaders[int64(height)]
primaryValidators[int64(height)] = witnessValidators[int64(height)]
continue
}
primaryHeaders[height] = forgedKeys.GenSignedHeader(chainID, height, bTime.Add(time.Duration(height)*time.Minute),
primaryHeaders[int64(height)] = forgedKeys.GenSignedHeader(chainID, height, bTime.Add(time.Duration(height)*time.Minute),
nil, forgedVals, forgedVals, hash("app_hash"), hash("cons_hash"), hash("results_hash"), 0, len(forgedKeys))
primaryValidators[height] = forgedVals
primaryValidators[int64(height)] = forgedVals
}
primary := mockp.New(chainID, primaryHeaders, primaryValidators)
@@ -118,7 +118,7 @@ func TestLightClientAttackEvidence_Equivocation(t *testing.T) {
}
// we don't have a network partition so we will make 4/5 (greater than 2/3) malicious and vote again for
// a different block (which we do by adding txs)
primaryHeaders[height] = chainKeys[height].GenSignedHeader(chainID, height,
primaryHeaders[height] = chainKeys[height].GenSignedHeader(chainID, uint64(height),
bTime.Add(time.Duration(height)*time.Minute), []types.Tx{[]byte("abcd")},
witnessValidators[height], witnessValidators[height+1], hash("app_hash"),
hash("cons_hash"), hash("results_hash"), 0, len(chainKeys[height])-1)
@@ -157,7 +157,7 @@ func TestLightClientAttackEvidence_Equivocation(t *testing.T) {
SignedHeader: primaryHeaders[divergenceHeight],
ValidatorSet: primaryValidators[divergenceHeight],
},
CommonHeight: divergenceHeight,
CommonHeight: uint64(divergenceHeight),
}
assert.True(t, witness.HasEvidence(evAgainstPrimary))
@@ -166,7 +166,7 @@ func TestLightClientAttackEvidence_Equivocation(t *testing.T) {
SignedHeader: witnessHeaders[divergenceHeight],
ValidatorSet: witnessValidators[divergenceHeight],
},
CommonHeight: divergenceHeight,
CommonHeight: uint64(divergenceHeight),
}
assert.True(t, primary.HasEvidence(evAgainstWitness))
}
+10 -10
View File
@@ -75,10 +75,10 @@ func makeNetInfoFunc(c *lrpc.Client) rpcNetInfoFunc {
}
}
type rpcBlockchainInfoFunc func(ctx *rpctypes.Context, minHeight, maxHeight int64) (*ctypes.ResultBlockchainInfo, error)
type rpcBlockchainInfoFunc func(ctx *rpctypes.Context, minHeight, maxHeight uint64) (*ctypes.ResultBlockchainInfo, error)
func makeBlockchainInfoFunc(c *lrpc.Client) rpcBlockchainInfoFunc {
return func(ctx *rpctypes.Context, minHeight, maxHeight int64) (*ctypes.ResultBlockchainInfo, error) {
return func(ctx *rpctypes.Context, minHeight, maxHeight uint64) (*ctypes.ResultBlockchainInfo, error) {
return c.BlockchainInfo(ctx.Context(), minHeight, maxHeight)
}
}
@@ -91,10 +91,10 @@ func makeGenesisFunc(c *lrpc.Client) rpcGenesisFunc {
}
}
type rpcBlockFunc func(ctx *rpctypes.Context, height *int64) (*ctypes.ResultBlock, error)
type rpcBlockFunc func(ctx *rpctypes.Context, height *uint64) (*ctypes.ResultBlock, error)
func makeBlockFunc(c *lrpc.Client) rpcBlockFunc {
return func(ctx *rpctypes.Context, height *int64) (*ctypes.ResultBlock, error) {
return func(ctx *rpctypes.Context, height *uint64) (*ctypes.ResultBlock, error) {
return c.Block(ctx.Context(), height)
}
}
@@ -107,18 +107,18 @@ func makeBlockByHashFunc(c *lrpc.Client) rpcBlockByHashFunc {
}
}
type rpcBlockResultsFunc func(ctx *rpctypes.Context, height *int64) (*ctypes.ResultBlockResults, error)
type rpcBlockResultsFunc func(ctx *rpctypes.Context, height *uint64) (*ctypes.ResultBlockResults, error)
func makeBlockResultsFunc(c *lrpc.Client) rpcBlockResultsFunc {
return func(ctx *rpctypes.Context, height *int64) (*ctypes.ResultBlockResults, error) {
return func(ctx *rpctypes.Context, height *uint64) (*ctypes.ResultBlockResults, error) {
return c.BlockResults(ctx.Context(), height)
}
}
type rpcCommitFunc func(ctx *rpctypes.Context, height *int64) (*ctypes.ResultCommit, error)
type rpcCommitFunc func(ctx *rpctypes.Context, height *uint64) (*ctypes.ResultCommit, error)
func makeCommitFunc(c *lrpc.Client) rpcCommitFunc {
return func(ctx *rpctypes.Context, height *int64) (*ctypes.ResultCommit, error) {
return func(ctx *rpctypes.Context, height *uint64) (*ctypes.ResultCommit, error) {
return c.Commit(ctx.Context(), height)
}
}
@@ -141,11 +141,11 @@ func makeTxSearchFunc(c *lrpc.Client) rpcTxSearchFunc {
}
}
type rpcValidatorsFunc func(ctx *rpctypes.Context, height *int64,
type rpcValidatorsFunc func(ctx *rpctypes.Context, height *uint64,
page, perPage *int) (*ctypes.ResultValidators, error)
func makeValidatorsFunc(c *lrpc.Client) rpcValidatorsFunc {
return func(ctx *rpctypes.Context, height *int64, page, perPage *int) (*ctypes.ResultValidators, error) {
return func(ctx *rpctypes.Context, height *uint64, page, perPage *int) (*ctypes.ResultValidators, error) {
return c.Validators(ctx.Context(), height, page, perPage)
}
}
+1
View File
@@ -26,6 +26,7 @@ var errNegOrZeroHeight = errors.New("negative or zero height")
type KeyPathFunc func(path string, key []byte) (merkle.KeyPath, error)
// LightClient is an interface that contains functionality needed by Client from the light client.
//go:generate mockery --case underscore --name LightClient
type LightClient interface {
ChainID() string
VerifyLightBlockAtHeight(ctx context.Context, height uint64, now time.Time) (*types.LightBlock, error)
+6 -6
View File
@@ -1,4 +1,4 @@
// Code generated by mockery v2.3.0. DO NOT EDIT.
// Code generated by mockery v2.5.1. DO NOT EDIT.
package mocks
@@ -36,7 +36,7 @@ func (_m *LightClient) TrustedLightBlock(height uint64) (*types.LightBlock, erro
ret := _m.Called(height)
var r0 *types.LightBlock
if rf, ok := ret.Get(0).(func(int64) *types.LightBlock); ok {
if rf, ok := ret.Get(0).(func(uint64) *types.LightBlock); ok {
r0 = rf(height)
} else {
if ret.Get(0) != nil {
@@ -45,7 +45,7 @@ func (_m *LightClient) TrustedLightBlock(height uint64) (*types.LightBlock, erro
}
var r1 error
if rf, ok := ret.Get(1).(func(int64) error); ok {
if rf, ok := ret.Get(1).(func(uint64) error); ok {
r1 = rf(height)
} else {
r1 = ret.Error(1)
@@ -55,11 +55,11 @@ func (_m *LightClient) TrustedLightBlock(height uint64) (*types.LightBlock, erro
}
// VerifyLightBlockAtHeight provides a mock function with given fields: ctx, height, now
func (_m *LightClient) VerifyLightBlockAtHeight(ctx context.Context, height int64, now time.Time) (*types.LightBlock, error) {
func (_m *LightClient) VerifyLightBlockAtHeight(ctx context.Context, height uint64, now time.Time) (*types.LightBlock, error) {
ret := _m.Called(ctx, height, now)
var r0 *types.LightBlock
if rf, ok := ret.Get(0).(func(context.Context, int64, time.Time) *types.LightBlock); ok {
if rf, ok := ret.Get(0).(func(context.Context, uint64, time.Time) *types.LightBlock); ok {
r0 = rf(ctx, height, now)
} else {
if ret.Get(0) != nil {
@@ -68,7 +68,7 @@ func (_m *LightClient) VerifyLightBlockAtHeight(ctx context.Context, height int6
}
var r1 error
if rf, ok := ret.Get(1).(func(context.Context, int64, time.Time) error); ok {
if rf, ok := ret.Get(1).(func(context.Context, uint64, time.Time) error); ok {
r1 = rf(ctx, height, now)
} else {
r1 = ret.Error(1)
+76 -76
View File
@@ -28,7 +28,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
// NewRoundStep is sent for every step taken in the ConsensusState.
// For every height/round/step transition
type NewRoundStep struct {
Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Round int32 `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
Step uint32 `protobuf:"varint,3,opt,name=step,proto3" json:"step,omitempty"`
SecondsSinceStartTime int64 `protobuf:"varint,4,opt,name=seconds_since_start_time,json=secondsSinceStartTime,proto3" json:"seconds_since_start_time,omitempty"`
@@ -68,7 +68,7 @@ func (m *NewRoundStep) XXX_DiscardUnknown() {
var xxx_messageInfo_NewRoundStep proto.InternalMessageInfo
func (m *NewRoundStep) GetHeight() int64 {
func (m *NewRoundStep) GetHeight() uint64 {
if m != nil {
return m.Height
}
@@ -107,7 +107,7 @@ func (m *NewRoundStep) GetLastCommitRound() int32 {
//i.e., there is a Proposal for block B and 2/3+ prevotes for the block B in the round r.
// In case the block is also committed, then IsCommit flag is set to true.
type NewValidBlock struct {
Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Round int32 `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
BlockPartSetHeader types.PartSetHeader `protobuf:"bytes,3,opt,name=block_part_set_header,json=blockPartSetHeader,proto3" json:"block_part_set_header"`
BlockParts *bits.BitArray `protobuf:"bytes,4,opt,name=block_parts,json=blockParts,proto3" json:"block_parts,omitempty"`
@@ -147,7 +147,7 @@ func (m *NewValidBlock) XXX_DiscardUnknown() {
var xxx_messageInfo_NewValidBlock proto.InternalMessageInfo
func (m *NewValidBlock) GetHeight() int64 {
func (m *NewValidBlock) GetHeight() uint64 {
if m != nil {
return m.Height
}
@@ -229,7 +229,7 @@ func (m *Proposal) GetProposal() types.Proposal {
// ProposalPOL is sent when a previous proposal is re-proposed.
type ProposalPOL struct {
Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
ProposalPolRound int32 `protobuf:"varint,2,opt,name=proposal_pol_round,json=proposalPolRound,proto3" json:"proposal_pol_round,omitempty"`
ProposalPol bits.BitArray `protobuf:"bytes,3,opt,name=proposal_pol,json=proposalPol,proto3" json:"proposal_pol"`
}
@@ -267,7 +267,7 @@ func (m *ProposalPOL) XXX_DiscardUnknown() {
var xxx_messageInfo_ProposalPOL proto.InternalMessageInfo
func (m *ProposalPOL) GetHeight() int64 {
func (m *ProposalPOL) GetHeight() uint64 {
if m != nil {
return m.Height
}
@@ -290,7 +290,7 @@ func (m *ProposalPOL) GetProposalPol() bits.BitArray {
// BlockPart is sent when gossipping a piece of the proposed block.
type BlockPart struct {
Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Round int32 `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
Part types.Part `protobuf:"bytes,3,opt,name=part,proto3" json:"part"`
}
@@ -328,7 +328,7 @@ func (m *BlockPart) XXX_DiscardUnknown() {
var xxx_messageInfo_BlockPart proto.InternalMessageInfo
func (m *BlockPart) GetHeight() int64 {
func (m *BlockPart) GetHeight() uint64 {
if m != nil {
return m.Height
}
@@ -396,7 +396,7 @@ func (m *Vote) GetVote() *types.Vote {
// HasVote is sent to indicate that a particular vote has been received.
type HasVote struct {
Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Round int32 `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
Type types.SignedMsgType `protobuf:"varint,3,opt,name=type,proto3,enum=tendermint.types.SignedMsgType" json:"type,omitempty"`
Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"`
@@ -435,7 +435,7 @@ func (m *HasVote) XXX_DiscardUnknown() {
var xxx_messageInfo_HasVote proto.InternalMessageInfo
func (m *HasVote) GetHeight() int64 {
func (m *HasVote) GetHeight() uint64 {
if m != nil {
return m.Height
}
@@ -465,7 +465,7 @@ func (m *HasVote) GetIndex() int32 {
// VoteSetMaj23 is sent to indicate that a given BlockID has seen +2/3 votes.
type VoteSetMaj23 struct {
Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Round int32 `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
Type types.SignedMsgType `protobuf:"varint,3,opt,name=type,proto3,enum=tendermint.types.SignedMsgType" json:"type,omitempty"`
BlockID types.BlockID `protobuf:"bytes,4,opt,name=block_id,json=blockId,proto3" json:"block_id"`
@@ -504,7 +504,7 @@ func (m *VoteSetMaj23) XXX_DiscardUnknown() {
var xxx_messageInfo_VoteSetMaj23 proto.InternalMessageInfo
func (m *VoteSetMaj23) GetHeight() int64 {
func (m *VoteSetMaj23) GetHeight() uint64 {
if m != nil {
return m.Height
}
@@ -534,7 +534,7 @@ func (m *VoteSetMaj23) GetBlockID() types.BlockID {
// VoteSetBits is sent to communicate the bit-array of votes seen for the BlockID.
type VoteSetBits struct {
Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Round int32 `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
Type types.SignedMsgType `protobuf:"varint,3,opt,name=type,proto3,enum=tendermint.types.SignedMsgType" json:"type,omitempty"`
BlockID types.BlockID `protobuf:"bytes,4,opt,name=block_id,json=blockId,proto3" json:"block_id"`
@@ -574,7 +574,7 @@ func (m *VoteSetBits) XXX_DiscardUnknown() {
var xxx_messageInfo_VoteSetBits proto.InternalMessageInfo
func (m *VoteSetBits) GetHeight() int64 {
func (m *VoteSetBits) GetHeight() uint64 {
if m != nil {
return m.Height
}
@@ -801,61 +801,61 @@ func init() {
func init() { proto.RegisterFile("tendermint/consensus/types.proto", fileDescriptor_81a22d2efc008981) }
var fileDescriptor_81a22d2efc008981 = []byte{
// 853 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x56, 0x4f, 0x8f, 0xdb, 0x44,
0x14, 0xb7, 0x59, 0x67, 0x93, 0x7d, 0xde, 0xec, 0xc2, 0x68, 0x5b, 0x85, 0x00, 0x49, 0x30, 0x97,
0x15, 0x42, 0x0e, 0xca, 0x1e, 0x90, 0x0a, 0x12, 0x60, 0xfe, 0xd4, 0xad, 0x9a, 0x36, 0x72, 0x4a,
0x85, 0xb8, 0x58, 0x4e, 0x3c, 0x4a, 0x86, 0xc6, 0x1e, 0xcb, 0x33, 0xc9, 0xb2, 0x57, 0x3e, 0x01,
0x1f, 0x80, 0xaf, 0x81, 0xc4, 0x47, 0xe8, 0xb1, 0x47, 0x4e, 0x15, 0xca, 0x7e, 0x04, 0x04, 0x67,
0x34, 0xe3, 0x49, 0x3c, 0xa1, 0xde, 0x85, 0xbd, 0x20, 0xf5, 0x36, 0xe3, 0xf7, 0xde, 0x6f, 0xde,
0xfc, 0xde, 0x7b, 0x3f, 0x0f, 0xf4, 0x38, 0x4e, 0x63, 0x9c, 0x27, 0x24, 0xe5, 0xfd, 0x29, 0x4d,
0x19, 0x4e, 0xd9, 0x92, 0xf5, 0xf9, 0x45, 0x86, 0x99, 0x9b, 0xe5, 0x94, 0x53, 0x74, 0x52, 0x7a,
0xb8, 0x5b, 0x8f, 0xf6, 0xc9, 0x8c, 0xce, 0xa8, 0x74, 0xe8, 0x8b, 0x55, 0xe1, 0xdb, 0x7e, 0x5b,
0x43, 0x93, 0x18, 0x3a, 0x52, 0x5b, 0x3f, 0x6b, 0x41, 0x26, 0xac, 0x3f, 0x21, 0x7c, 0xc7, 0xc3,
0xf9, 0xc5, 0x84, 0xc3, 0x87, 0xf8, 0x3c, 0xa0, 0xcb, 0x34, 0x1e, 0x73, 0x9c, 0xa1, 0xdb, 0xb0,
0x3f, 0xc7, 0x64, 0x36, 0xe7, 0x2d, 0xb3, 0x67, 0x9e, 0xee, 0x05, 0x6a, 0x87, 0x4e, 0xa0, 0x96,
0x0b, 0xa7, 0xd6, 0x6b, 0x3d, 0xf3, 0xb4, 0x16, 0x14, 0x1b, 0x84, 0xc0, 0x62, 0x1c, 0x67, 0xad,
0xbd, 0x9e, 0x79, 0xda, 0x0c, 0xe4, 0x1a, 0x7d, 0x04, 0x2d, 0x86, 0xa7, 0x34, 0x8d, 0x59, 0xc8,
0x48, 0x3a, 0xc5, 0x21, 0xe3, 0x51, 0xce, 0x43, 0x4e, 0x12, 0xdc, 0xb2, 0x24, 0xe6, 0x2d, 0x65,
0x1f, 0x0b, 0xf3, 0x58, 0x58, 0x1f, 0x93, 0x04, 0xa3, 0xf7, 0xe1, 0x8d, 0x45, 0xc4, 0x78, 0x38,
0xa5, 0x49, 0x42, 0x78, 0x58, 0x1c, 0x57, 0x93, 0xc7, 0x1d, 0x0b, 0xc3, 0x17, 0xf2, 0xbb, 0x4c,
0xd5, 0xf9, 0xd3, 0x84, 0xe6, 0x43, 0x7c, 0xfe, 0x24, 0x5a, 0x90, 0xd8, 0x5b, 0xd0, 0xe9, 0xd3,
0x1b, 0x26, 0xfe, 0x2d, 0xdc, 0x9a, 0x88, 0xb0, 0x30, 0x13, 0xb9, 0x31, 0xcc, 0xc3, 0x39, 0x8e,
0x62, 0x9c, 0xcb, 0x9b, 0xd8, 0x83, 0xae, 0xab, 0xd5, 0xa0, 0xe0, 0x6b, 0x14, 0xe5, 0x7c, 0x8c,
0xb9, 0x2f, 0xdd, 0x3c, 0xeb, 0xd9, 0x8b, 0xae, 0x11, 0x20, 0x89, 0xb1, 0x63, 0x41, 0x9f, 0x82,
0x5d, 0x22, 0x33, 0x79, 0x63, 0x7b, 0xd0, 0xd1, 0xf1, 0x44, 0x25, 0x5c, 0x51, 0x09, 0xd7, 0x23,
0xfc, 0xf3, 0x3c, 0x8f, 0x2e, 0x02, 0xd8, 0x02, 0x31, 0xf4, 0x16, 0x1c, 0x10, 0xa6, 0x48, 0x90,
0xd7, 0x6f, 0x04, 0x0d, 0xc2, 0x8a, 0xcb, 0x3b, 0x3e, 0x34, 0x46, 0x39, 0xcd, 0x28, 0x8b, 0x16,
0xe8, 0x13, 0x68, 0x64, 0x6a, 0x2d, 0xef, 0x6c, 0x0f, 0xda, 0x15, 0x69, 0x2b, 0x0f, 0x95, 0xf1,
0x36, 0xc2, 0xf9, 0xd9, 0x04, 0x7b, 0x63, 0x1c, 0x3d, 0x7a, 0x70, 0x25, 0x7f, 0x1f, 0x00, 0xda,
0xc4, 0x84, 0x19, 0x5d, 0x84, 0x3a, 0x99, 0xaf, 0x6f, 0x2c, 0x23, 0xba, 0x90, 0x75, 0x41, 0x77,
0xe1, 0x50, 0xf7, 0x56, 0x74, 0xfe, 0xcb, 0xf5, 0x55, 0x6e, 0xb6, 0x86, 0xe6, 0x3c, 0x85, 0x03,
0x6f, 0xc3, 0xc9, 0x0d, 0x6b, 0xfb, 0x21, 0x58, 0x82, 0x7b, 0x75, 0xf6, 0xed, 0xea, 0x52, 0xaa,
0x33, 0xa5, 0xa7, 0x33, 0x00, 0xeb, 0x09, 0xe5, 0xa2, 0x03, 0xad, 0x15, 0xe5, 0x58, 0xb1, 0x59,
0x11, 0x29, 0xbc, 0x02, 0xe9, 0xe3, 0xfc, 0x68, 0x42, 0xdd, 0x8f, 0x98, 0x8c, 0xbb, 0x59, 0x7e,
0x67, 0x60, 0x09, 0x34, 0x99, 0xdf, 0x51, 0x55, 0xab, 0x8d, 0xc9, 0x2c, 0xc5, 0xf1, 0x90, 0xcd,
0x1e, 0x5f, 0x64, 0x38, 0x90, 0xce, 0x02, 0x8a, 0xa4, 0x31, 0xfe, 0x41, 0x36, 0x54, 0x2d, 0x28,
0x36, 0xce, 0xaf, 0x26, 0x1c, 0x8a, 0x0c, 0xc6, 0x98, 0x0f, 0xa3, 0xef, 0x07, 0x67, 0xff, 0x47,
0x26, 0x5f, 0x41, 0xa3, 0x68, 0x70, 0x12, 0xab, 0xee, 0x7e, 0xf3, 0xe5, 0x40, 0x59, 0xbb, 0x7b,
0x5f, 0x7a, 0xc7, 0x82, 0xe5, 0xf5, 0x8b, 0x6e, 0x5d, 0x7d, 0x08, 0xea, 0x32, 0xf6, 0x5e, 0xec,
0xfc, 0x61, 0x82, 0xad, 0x52, 0xf7, 0x08, 0x67, 0xaf, 0x4e, 0xe6, 0xe8, 0x0e, 0xd4, 0x44, 0x07,
0x30, 0x39, 0x9c, 0xff, 0xb5, 0xb9, 0x8b, 0x10, 0xe7, 0x2f, 0x0b, 0xea, 0x43, 0xcc, 0x58, 0x34,
0xc3, 0xe8, 0x3e, 0x1c, 0xa5, 0xf8, 0xbc, 0x18, 0xa8, 0x50, 0xca, 0x68, 0xd1, 0x77, 0x8e, 0x5b,
0xf5, 0x03, 0x70, 0x75, 0x99, 0xf6, 0x8d, 0xe0, 0x30, 0xd5, 0x65, 0x7b, 0x08, 0xc7, 0x02, 0x6b,
0x25, 0xf4, 0x30, 0x94, 0x89, 0x4a, 0xbe, 0xec, 0xc1, 0x7b, 0x57, 0x82, 0x95, 0xda, 0xe9, 0x1b,
0x41, 0x33, 0xdd, 0x11, 0x53, 0x5d, 0x5a, 0x2a, 0x46, 0xb8, 0xc4, 0xd9, 0x28, 0x88, 0xaf, 0x49,
0x0b, 0xfa, 0xfa, 0x1f, 0x22, 0x50, 0x70, 0xfd, 0xee, 0xf5, 0x08, 0xa3, 0x47, 0x0f, 0xfc, 0x5d,
0x0d, 0x40, 0x9f, 0x01, 0x94, 0x52, 0xaa, 0xd8, 0xee, 0x56, 0xa3, 0x6c, 0xb5, 0xc2, 0x37, 0x82,
0x83, 0xad, 0x98, 0x0a, 0x29, 0x90, 0x03, 0xbd, 0xff, 0xb2, 0x3c, 0x96, 0xb1, 0xa2, 0x0b, 0x7d,
0xa3, 0x18, 0x6b, 0x74, 0x07, 0x1a, 0xf3, 0x88, 0x85, 0x32, 0xaa, 0x2e, 0xa3, 0xde, 0xa9, 0x8e,
0x52, 0xb3, 0xef, 0x1b, 0x41, 0x7d, 0xae, 0x64, 0xe0, 0x3e, 0x1c, 0x89, 0x38, 0xf9, 0x3b, 0x49,
0xc4, 0x38, 0xb6, 0x1a, 0xd7, 0x15, 0x54, 0x1f, 0x5c, 0x51, 0xd0, 0x95, 0x3e, 0xc8, 0x77, 0xa1,
0xb9, 0xc5, 0x12, 0xfd, 0xd4, 0x3a, 0xb8, 0x8e, 0x44, 0x6d, 0x90, 0x04, 0x89, 0xab, 0x72, 0xeb,
0xd5, 0x60, 0x8f, 0x2d, 0x13, 0xef, 0x9b, 0x67, 0xeb, 0x8e, 0xf9, 0x7c, 0xdd, 0x31, 0x7f, 0x5f,
0x77, 0xcc, 0x9f, 0x2e, 0x3b, 0xc6, 0xf3, 0xcb, 0x8e, 0xf1, 0xdb, 0x65, 0xc7, 0xf8, 0xee, 0xe3,
0x19, 0xe1, 0xf3, 0xe5, 0xc4, 0x9d, 0xd2, 0xa4, 0xaf, 0xbf, 0x26, 0xca, 0x65, 0xf1, 0xea, 0xa8,
0x7a, 0xb7, 0x4c, 0xf6, 0xa5, 0xed, 0xec, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc7, 0x5c, 0x91,
0x04, 0xd6, 0x08, 0x00, 0x00,
// 855 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x56, 0xcd, 0x8e, 0xe3, 0x44,
0x10, 0xb6, 0x19, 0x67, 0x92, 0x29, 0xcf, 0x0f, 0xb4, 0x66, 0x57, 0x61, 0x80, 0x4c, 0x30, 0x97,
0x11, 0x42, 0x0e, 0xca, 0x1c, 0x90, 0x16, 0x24, 0xc0, 0xfc, 0xac, 0x77, 0xb5, 0xb3, 0x1b, 0x75,
0x96, 0x15, 0xe2, 0x62, 0x39, 0x71, 0x2b, 0x69, 0x36, 0x76, 0x5b, 0xee, 0x4e, 0x86, 0xb9, 0xf2,
0x04, 0x3c, 0x00, 0xaf, 0x81, 0xc4, 0x23, 0xec, 0x71, 0x8f, 0x9c, 0x56, 0x28, 0xf3, 0x08, 0x08,
0xce, 0xa8, 0xdb, 0x9d, 0xb8, 0xc3, 0x7a, 0x06, 0xe6, 0x82, 0xb4, 0xb7, 0x6e, 0x57, 0xd5, 0xd7,
0xd5, 0x5f, 0x55, 0x7d, 0x6e, 0xe8, 0x0a, 0x92, 0x25, 0xa4, 0x48, 0x69, 0x26, 0x7a, 0x63, 0x96,
0x71, 0x92, 0xf1, 0x39, 0xef, 0x89, 0x8b, 0x9c, 0x70, 0x3f, 0x2f, 0x98, 0x60, 0xe8, 0xb0, 0xf2,
0xf0, 0xd7, 0x1e, 0x47, 0x87, 0x13, 0x36, 0x61, 0xca, 0xa1, 0x27, 0x57, 0xa5, 0xef, 0xd1, 0xdb,
0x06, 0x9a, 0xc2, 0x30, 0x91, 0x8e, 0xcc, 0xb3, 0x66, 0x74, 0xc4, 0x7b, 0x23, 0x2a, 0x36, 0x3c,
0xbc, 0x5f, 0x6c, 0xd8, 0x7d, 0x48, 0xce, 0x31, 0x9b, 0x67, 0xc9, 0x50, 0x90, 0x1c, 0xdd, 0x86,
0xed, 0x29, 0xa1, 0x93, 0xa9, 0x68, 0xdb, 0x5d, 0xfb, 0xc4, 0xc1, 0x7a, 0x87, 0x0e, 0xa1, 0x51,
0x48, 0xa7, 0xf6, 0x6b, 0x5d, 0xfb, 0xa4, 0x81, 0xcb, 0x0d, 0x42, 0xe0, 0x70, 0x41, 0xf2, 0xf6,
0x56, 0xd7, 0x3e, 0xd9, 0xc3, 0x6a, 0x8d, 0x3e, 0x82, 0x36, 0x27, 0x63, 0x96, 0x25, 0x3c, 0xe2,
0x34, 0x1b, 0x93, 0x88, 0x8b, 0xb8, 0x10, 0x91, 0xa0, 0x29, 0x69, 0x3b, 0x5d, 0xfb, 0x64, 0x0b,
0xdf, 0xd2, 0xf6, 0xa1, 0x34, 0x0f, 0xa5, 0xf5, 0x31, 0x4d, 0x09, 0x7a, 0x1f, 0xde, 0x98, 0xc5,
0x5c, 0x44, 0x63, 0x96, 0xa6, 0x54, 0x44, 0xe5, 0x71, 0x0d, 0x75, 0xdc, 0x81, 0x34, 0x7c, 0xa1,
0xbe, 0xab, 0x54, 0xbd, 0x3f, 0x6d, 0xd8, 0x7b, 0x48, 0xce, 0x9f, 0xc4, 0x33, 0x9a, 0x04, 0x33,
0x36, 0x7e, 0x7a, 0xc3, 0xc4, 0xbf, 0x85, 0x5b, 0x23, 0x19, 0x16, 0xe5, 0x32, 0x37, 0x4e, 0x44,
0x34, 0x25, 0x71, 0x42, 0x0a, 0x75, 0x13, 0xb7, 0x7f, 0xec, 0x1b, 0x35, 0x28, 0xf9, 0x1a, 0xc4,
0x85, 0x18, 0x12, 0x11, 0x2a, 0xb7, 0xc0, 0x79, 0xf6, 0xe2, 0xd8, 0xc2, 0x48, 0x61, 0x6c, 0x58,
0xd0, 0xa7, 0xe0, 0x56, 0xc8, 0x5c, 0xdd, 0xd8, 0xed, 0x77, 0x4c, 0x3c, 0x59, 0x09, 0x5f, 0x56,
0xc2, 0x0f, 0xa8, 0xf8, 0xbc, 0x28, 0xe2, 0x0b, 0x0c, 0x6b, 0x20, 0x8e, 0xde, 0x82, 0x1d, 0xca,
0x35, 0x09, 0xea, 0xfa, 0x2d, 0xdc, 0xa2, 0xbc, 0xbc, 0xbc, 0x17, 0x42, 0x6b, 0x50, 0xb0, 0x9c,
0xf1, 0x78, 0x86, 0x3e, 0x81, 0x56, 0xae, 0xd7, 0xea, 0xce, 0x6e, 0xff, 0xa8, 0x26, 0x6d, 0xed,
0xa1, 0x33, 0x5e, 0x47, 0x78, 0x3f, 0xdb, 0xe0, 0xae, 0x8c, 0x83, 0x47, 0x0f, 0xae, 0xe4, 0xef,
0x03, 0x40, 0xab, 0x98, 0x28, 0x67, 0xb3, 0xc8, 0x24, 0xf3, 0xf5, 0x95, 0x65, 0xc0, 0x66, 0xaa,
0x2e, 0xe8, 0x2e, 0xec, 0x9a, 0xde, 0x9a, 0xce, 0x7f, 0xb9, 0xbe, 0xce, 0xcd, 0x35, 0xd0, 0xbc,
0xa7, 0xb0, 0x13, 0xac, 0x38, 0xb9, 0x61, 0x6d, 0x3f, 0x04, 0x47, 0x72, 0xaf, 0xcf, 0xbe, 0x5d,
0x5f, 0x4a, 0x7d, 0xa6, 0xf2, 0xf4, 0xfa, 0xe0, 0x3c, 0x61, 0x42, 0x76, 0xa0, 0xb3, 0x60, 0x82,
0x68, 0x36, 0x6b, 0x22, 0xa5, 0x17, 0x56, 0x3e, 0xde, 0x8f, 0x36, 0x34, 0xc3, 0x98, 0xab, 0xb8,
0x9b, 0xe5, 0x77, 0x0a, 0x8e, 0x44, 0x53, 0xf9, 0xed, 0xd7, 0xb5, 0xda, 0x90, 0x4e, 0x32, 0x92,
0x9c, 0xf1, 0xc9, 0xe3, 0x8b, 0x9c, 0x60, 0xe5, 0x2c, 0xa1, 0x68, 0x96, 0x90, 0x1f, 0x54, 0x43,
0x35, 0x70, 0xb9, 0xf1, 0x7e, 0xb5, 0x61, 0x57, 0x66, 0x30, 0x24, 0xe2, 0x2c, 0xfe, 0xbe, 0x7f,
0xfa, 0x7f, 0x64, 0xf2, 0x15, 0xb4, 0xca, 0x06, 0xa7, 0x89, 0xee, 0xee, 0x37, 0x5f, 0x0e, 0x54,
0xb5, 0xbb, 0xf7, 0x65, 0x70, 0x20, 0x59, 0x5e, 0xbe, 0x38, 0x6e, 0xea, 0x0f, 0xb8, 0xa9, 0x62,
0xef, 0x25, 0xde, 0x1f, 0x36, 0xb8, 0x3a, 0xf5, 0x80, 0x0a, 0xfe, 0xea, 0x64, 0x8e, 0xee, 0x40,
0x43, 0x76, 0x00, 0x57, 0xc3, 0xf9, 0x5f, 0x9b, 0xbb, 0x0c, 0xf1, 0xfe, 0x72, 0xa0, 0x79, 0x46,
0x38, 0x8f, 0x27, 0x04, 0xdd, 0x87, 0xfd, 0x8c, 0x9c, 0x97, 0x03, 0x15, 0x29, 0x19, 0x2d, 0xfb,
0xce, 0xf3, 0xeb, 0x7e, 0x00, 0xbe, 0x29, 0xd3, 0xa1, 0x85, 0x77, 0x33, 0x53, 0xb6, 0xcf, 0xe0,
0x40, 0x62, 0x2d, 0xa4, 0x1e, 0x46, 0x2a, 0x51, 0xc5, 0x97, 0xdb, 0x7f, 0xef, 0x4a, 0xb0, 0x4a,
0x3b, 0x43, 0x0b, 0xef, 0x65, 0x1b, 0x62, 0x6a, 0x4a, 0x4b, 0xcd, 0x08, 0x57, 0x38, 0x2b, 0x05,
0x09, 0x0d, 0x69, 0x41, 0x5f, 0xff, 0x43, 0x04, 0x4a, 0xae, 0xdf, 0xbd, 0x1e, 0x61, 0xf0, 0xe8,
0x41, 0xb8, 0xa9, 0x01, 0xe8, 0x33, 0x80, 0x4a, 0x4a, 0x35, 0xdb, 0xc7, 0xf5, 0x28, 0x6b, 0xad,
0x08, 0x2d, 0xbc, 0xb3, 0x16, 0x53, 0x29, 0x05, 0x6a, 0xa0, 0xb7, 0x5f, 0x96, 0xc7, 0x2a, 0x56,
0x76, 0x61, 0x68, 0x95, 0x63, 0x8d, 0xee, 0x40, 0x6b, 0x1a, 0xf3, 0x48, 0x45, 0x35, 0x55, 0xd4,
0x3b, 0xf5, 0x51, 0x7a, 0xf6, 0x43, 0x0b, 0x37, 0xa7, 0x5a, 0x06, 0xee, 0xc3, 0xbe, 0x8c, 0x53,
0xbf, 0x93, 0x54, 0x8e, 0x63, 0xbb, 0x75, 0x5d, 0x41, 0xcd, 0xc1, 0x95, 0x05, 0x5d, 0x98, 0x83,
0x7c, 0x17, 0xf6, 0xd6, 0x58, 0xb2, 0x9f, 0xda, 0x3b, 0xd7, 0x91, 0x68, 0x0c, 0x92, 0x24, 0x71,
0x51, 0x6d, 0x83, 0x06, 0x6c, 0xf1, 0x79, 0x1a, 0x7c, 0xf3, 0x6c, 0xd9, 0xb1, 0x9f, 0x2f, 0x3b,
0xf6, 0xef, 0xcb, 0x8e, 0xfd, 0xd3, 0x65, 0xc7, 0x7a, 0x7e, 0xd9, 0xb1, 0x7e, 0xbb, 0xec, 0x58,
0xdf, 0x7d, 0x3c, 0xa1, 0x62, 0x3a, 0x1f, 0xf9, 0x63, 0x96, 0xf6, 0xcc, 0xd7, 0x44, 0xb5, 0x2c,
0x5f, 0x1d, 0x75, 0xef, 0x96, 0xd1, 0xb6, 0xb2, 0x9d, 0xfe, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xd2,
0xa7, 0x97, 0x11, 0xd6, 0x08, 0x00, 0x00,
}
func (m *NewRoundStep) Marshal() (dAtA []byte, err error) {
@@ -1845,7 +1845,7 @@ func (m *NewRoundStep) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
m.Height |= int64(b&0x7F) << shift
m.Height |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -1990,7 +1990,7 @@ func (m *NewValidBlock) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
m.Height |= int64(b&0x7F) << shift
m.Height |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2250,7 +2250,7 @@ func (m *ProposalPOL) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
m.Height |= int64(b&0x7F) << shift
m.Height |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2371,7 +2371,7 @@ func (m *BlockPart) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
m.Height |= int64(b&0x7F) << shift
m.Height |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2578,7 +2578,7 @@ func (m *HasVote) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
m.Height |= int64(b&0x7F) << shift
m.Height |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2704,7 +2704,7 @@ func (m *VoteSetMaj23) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
m.Height |= int64(b&0x7F) << shift
m.Height |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
@@ -2844,7 +2844,7 @@ func (m *VoteSetBits) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
m.Height |= int64(b&0x7F) << shift
m.Height |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
+7 -7
View File
@@ -10,7 +10,7 @@ import "tendermint/libs/bits/types.proto";
// NewRoundStep is sent for every step taken in the ConsensusState.
// For every height/round/step transition
message NewRoundStep {
int64 height = 1;
uint64 height = 1;
int32 round = 2;
uint32 step = 3;
int64 seconds_since_start_time = 4;
@@ -21,7 +21,7 @@ message NewRoundStep {
//i.e., there is a Proposal for block B and 2/3+ prevotes for the block B in the round r.
// In case the block is also committed, then IsCommit flag is set to true.
message NewValidBlock {
int64 height = 1;
uint64 height = 1;
int32 round = 2;
tendermint.types.PartSetHeader block_part_set_header = 3 [(gogoproto.nullable) = false];
tendermint.libs.bits.BitArray block_parts = 4;
@@ -35,14 +35,14 @@ message Proposal {
// ProposalPOL is sent when a previous proposal is re-proposed.
message ProposalPOL {
int64 height = 1;
uint64 height = 1;
int32 proposal_pol_round = 2;
tendermint.libs.bits.BitArray proposal_pol = 3 [(gogoproto.nullable) = false];
}
// BlockPart is sent when gossipping a piece of the proposed block.
message BlockPart {
int64 height = 1;
uint64 height = 1;
int32 round = 2;
tendermint.types.Part part = 3 [(gogoproto.nullable) = false];
}
@@ -54,7 +54,7 @@ message Vote {
// HasVote is sent to indicate that a particular vote has been received.
message HasVote {
int64 height = 1;
uint64 height = 1;
int32 round = 2;
tendermint.types.SignedMsgType type = 3;
int32 index = 4;
@@ -62,7 +62,7 @@ message HasVote {
// VoteSetMaj23 is sent to indicate that a given BlockID has seen +2/3 votes.
message VoteSetMaj23 {
int64 height = 1;
uint64 height = 1;
int32 round = 2;
tendermint.types.SignedMsgType type = 3;
tendermint.types.BlockID block_id = 4 [(gogoproto.customname) = "BlockID", (gogoproto.nullable) = false];
@@ -70,7 +70,7 @@ message VoteSetMaj23 {
// VoteSetBits is sent to communicate the bit-array of votes seen for the BlockID.
message VoteSetBits {
int64 height = 1;
uint64 height = 1;
int32 round = 2;
tendermint.types.SignedMsgType type = 3;
tendermint.types.BlockID block_id = 4 [(gogoproto.customname) = "BlockID", (gogoproto.nullable) = false];
+5 -5
View File
@@ -23,7 +23,7 @@ var _ = math.Inf
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
type EventDataRoundState struct {
Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
Round int32 `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
Step string `protobuf:"bytes,3,opt,name=step,proto3" json:"step,omitempty"`
}
@@ -61,7 +61,7 @@ func (m *EventDataRoundState) XXX_DiscardUnknown() {
var xxx_messageInfo_EventDataRoundState proto.InternalMessageInfo
func (m *EventDataRoundState) GetHeight() int64 {
func (m *EventDataRoundState) GetHeight() uint64 {
if m != nil {
return m.Height
}
@@ -95,13 +95,13 @@ var fileDescriptor_72cfafd446dedf7c = []byte{
0xcd, 0x2b, 0x29, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x40, 0x48, 0xeb, 0x81, 0xa5,
0x95, 0xc2, 0xb9, 0x84, 0x5d, 0x41, 0x2a, 0x5c, 0x12, 0x4b, 0x12, 0x83, 0xf2, 0x4b, 0xf3, 0x52,
0x82, 0x4b, 0x12, 0x4b, 0x52, 0x85, 0xc4, 0xb8, 0xd8, 0x32, 0x52, 0x33, 0xd3, 0x33, 0x4a, 0x24,
0x18, 0x15, 0x18, 0x35, 0x98, 0x83, 0xa0, 0x3c, 0x21, 0x11, 0x2e, 0xd6, 0x22, 0x90, 0x2a, 0x09,
0x18, 0x15, 0x18, 0x35, 0x58, 0x82, 0xa0, 0x3c, 0x21, 0x11, 0x2e, 0xd6, 0x22, 0x90, 0x2a, 0x09,
0x26, 0x05, 0x46, 0x0d, 0xd6, 0x20, 0x08, 0x47, 0x48, 0x88, 0x8b, 0xa5, 0xb8, 0x24, 0xb5, 0x40,
0x82, 0x59, 0x81, 0x51, 0x83, 0x33, 0x08, 0xcc, 0x76, 0x0a, 0x3c, 0xf1, 0x48, 0x8e, 0xf1, 0xc2,
0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x27, 0x3c, 0x96, 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1,
0xc6, 0x63, 0x39, 0x86, 0x28, 0xf3, 0xf4, 0xcc, 0x92, 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c,
0x7d, 0x64, 0xe7, 0x22, 0x98, 0x60, 0xc7, 0xea, 0xa3, 0x7b, 0x25, 0x89, 0x0d, 0x2c, 0x6e, 0x0c,
0x08, 0x00, 0x00, 0xff, 0xff, 0xc3, 0xe9, 0x14, 0x02, 0xe5, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0xff, 0xff, 0x67, 0xc9, 0x82, 0x7f, 0xe5, 0x00, 0x00, 0x00,
}
func (m *EventDataRoundState) Marshal() (dAtA []byte, err error) {
@@ -223,7 +223,7 @@ func (m *EventDataRoundState) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
m.Height |= int64(b&0x7F) << shift
m.Height |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
+1 -1
View File
@@ -4,7 +4,7 @@ package tendermint.types;
option go_package = "github.com/tendermint/tendermint/proto/tendermint/types";
message EventDataRoundState {
int64 height = 1;
uint64 height = 1;
int32 round = 2;
string step = 3;
}
+1
View File
@@ -31,6 +31,7 @@ import (
// Client wraps most important rpc calls a client would make if you want to
// listen for events, test if it also implements events.EventSwitch.
//go:generate mockery --case underscore --name Client
type Client interface {
service.Service
ABCIClient
+2 -2
View File
@@ -56,7 +56,7 @@ func (a ABCIApp) BroadcastTxCommit(ctx context.Context, tx types.Tx) (*ctypes.Re
return &res, nil
}
res.DeliverTx = a.App.DeliverTx(abci.RequestDeliverTx{Tx: tx})
res.Height = -1 // TODO
res.Height = 0 // TODO: see if 0 affects logic
return &res, nil
}
@@ -166,7 +166,7 @@ func NewABCIRecorder(client client.ABCIClient) *ABCIRecorder {
type QueryArgs struct {
Path string
Data bytes.HexBytes
Height int64
Height uint64
Prove bool
}
+2 -2
View File
@@ -22,7 +22,7 @@ func TestABCIMock(t *testing.T) {
assert, require := assert.New(t), require.New(t)
key, value := []byte("foo"), []byte("bar")
height := int64(10)
height := uint64(10)
goodTx := types.Tx{0x01, 0xff}
badTx := types.Tx{0x12, 0x21}
@@ -180,7 +180,7 @@ func TestABCIApp(t *testing.T) {
// commit
// TODO: This may not be necessary in the future
if res.Height == -1 {
if res.Height == 0 {
m.App.Commit()
}
+5 -5
View File
@@ -128,7 +128,7 @@ func (c Client) DumpConsensusState(ctx context.Context) (*ctypes.ResultDumpConse
return core.DumpConsensusState(&rpctypes.Context{})
}
func (c Client) ConsensusParams(ctx context.Context, height *int64) (*ctypes.ResultConsensusParams, error) {
func (c Client) ConsensusParams(ctx context.Context, height *uint64) (*ctypes.ResultConsensusParams, error) {
return core.ConsensusParams(&rpctypes.Context{}, height)
}
@@ -150,7 +150,7 @@ func (c Client) DialPeers(
return core.UnsafeDialPeers(&rpctypes.Context{}, peers, persistent, unconditional, private)
}
func (c Client) BlockchainInfo(ctx context.Context, minHeight, maxHeight int64) (*ctypes.ResultBlockchainInfo, error) {
func (c Client) BlockchainInfo(ctx context.Context, minHeight, maxHeight uint64) (*ctypes.ResultBlockchainInfo, error) {
return core.BlockchainInfo(&rpctypes.Context{}, minHeight, maxHeight)
}
@@ -158,7 +158,7 @@ func (c Client) Genesis(ctx context.Context) (*ctypes.ResultGenesis, error) {
return core.Genesis(&rpctypes.Context{})
}
func (c Client) Block(ctx context.Context, height *int64) (*ctypes.ResultBlock, error) {
func (c Client) Block(ctx context.Context, height *uint64) (*ctypes.ResultBlock, error) {
return core.Block(&rpctypes.Context{}, height)
}
@@ -166,11 +166,11 @@ func (c Client) BlockByHash(ctx context.Context, hash []byte) (*ctypes.ResultBlo
return core.BlockByHash(&rpctypes.Context{}, hash)
}
func (c Client) Commit(ctx context.Context, height *int64) (*ctypes.ResultCommit, error) {
func (c Client) Commit(ctx context.Context, height *uint64) (*ctypes.ResultCommit, error) {
return core.Commit(&rpctypes.Context{}, height)
}
func (c Client) Validators(ctx context.Context, height *int64, page, perPage *int) (*ctypes.ResultValidators, error) {
func (c Client) Validators(ctx context.Context, height *uint64, page, perPage *int) (*ctypes.ResultValidators, error) {
return core.Validators(&rpctypes.Context{}, height, page, perPage)
}
+19 -19
View File
@@ -1,4 +1,4 @@
// Code generated by mockery v2.3.0. DO NOT EDIT.
// Code generated by mockery v2.5.1. DO NOT EDIT.
package mocks
@@ -92,11 +92,11 @@ func (_m *Client) ABCIQueryWithOptions(ctx context.Context, path string, data by
}
// Block provides a mock function with given fields: ctx, height
func (_m *Client) Block(ctx context.Context, height *int64) (*coretypes.ResultBlock, error) {
func (_m *Client) Block(ctx context.Context, height *uint64) (*coretypes.ResultBlock, error) {
ret := _m.Called(ctx, height)
var r0 *coretypes.ResultBlock
if rf, ok := ret.Get(0).(func(context.Context, *int64) *coretypes.ResultBlock); ok {
if rf, ok := ret.Get(0).(func(context.Context, *uint64) *coretypes.ResultBlock); ok {
r0 = rf(ctx, height)
} else {
if ret.Get(0) != nil {
@@ -105,7 +105,7 @@ func (_m *Client) Block(ctx context.Context, height *int64) (*coretypes.ResultBl
}
var r1 error
if rf, ok := ret.Get(1).(func(context.Context, *int64) error); ok {
if rf, ok := ret.Get(1).(func(context.Context, *uint64) error); ok {
r1 = rf(ctx, height)
} else {
r1 = ret.Error(1)
@@ -138,11 +138,11 @@ func (_m *Client) BlockByHash(ctx context.Context, hash []byte) (*coretypes.Resu
}
// BlockResults provides a mock function with given fields: ctx, height
func (_m *Client) BlockResults(ctx context.Context, height *int64) (*coretypes.ResultBlockResults, error) {
func (_m *Client) BlockResults(ctx context.Context, height *uint64) (*coretypes.ResultBlockResults, error) {
ret := _m.Called(ctx, height)
var r0 *coretypes.ResultBlockResults
if rf, ok := ret.Get(0).(func(context.Context, *int64) *coretypes.ResultBlockResults); ok {
if rf, ok := ret.Get(0).(func(context.Context, *uint64) *coretypes.ResultBlockResults); ok {
r0 = rf(ctx, height)
} else {
if ret.Get(0) != nil {
@@ -151,7 +151,7 @@ func (_m *Client) BlockResults(ctx context.Context, height *int64) (*coretypes.R
}
var r1 error
if rf, ok := ret.Get(1).(func(context.Context, *int64) error); ok {
if rf, ok := ret.Get(1).(func(context.Context, *uint64) error); ok {
r1 = rf(ctx, height)
} else {
r1 = ret.Error(1)
@@ -161,11 +161,11 @@ func (_m *Client) BlockResults(ctx context.Context, height *int64) (*coretypes.R
}
// BlockchainInfo provides a mock function with given fields: ctx, minHeight, maxHeight
func (_m *Client) BlockchainInfo(ctx context.Context, minHeight int64, maxHeight int64) (*coretypes.ResultBlockchainInfo, error) {
func (_m *Client) BlockchainInfo(ctx context.Context, minHeight uint64, maxHeight uint64) (*coretypes.ResultBlockchainInfo, error) {
ret := _m.Called(ctx, minHeight, maxHeight)
var r0 *coretypes.ResultBlockchainInfo
if rf, ok := ret.Get(0).(func(context.Context, int64, int64) *coretypes.ResultBlockchainInfo); ok {
if rf, ok := ret.Get(0).(func(context.Context, uint64, uint64) *coretypes.ResultBlockchainInfo); ok {
r0 = rf(ctx, minHeight, maxHeight)
} else {
if ret.Get(0) != nil {
@@ -174,7 +174,7 @@ func (_m *Client) BlockchainInfo(ctx context.Context, minHeight int64, maxHeight
}
var r1 error
if rf, ok := ret.Get(1).(func(context.Context, int64, int64) error); ok {
if rf, ok := ret.Get(1).(func(context.Context, uint64, uint64) error); ok {
r1 = rf(ctx, minHeight, maxHeight)
} else {
r1 = ret.Error(1)
@@ -299,11 +299,11 @@ func (_m *Client) CheckTx(_a0 context.Context, _a1 types.Tx) (*coretypes.ResultC
}
// Commit provides a mock function with given fields: ctx, height
func (_m *Client) Commit(ctx context.Context, height *int64) (*coretypes.ResultCommit, error) {
func (_m *Client) Commit(ctx context.Context, height *uint64) (*coretypes.ResultCommit, error) {
ret := _m.Called(ctx, height)
var r0 *coretypes.ResultCommit
if rf, ok := ret.Get(0).(func(context.Context, *int64) *coretypes.ResultCommit); ok {
if rf, ok := ret.Get(0).(func(context.Context, *uint64) *coretypes.ResultCommit); ok {
r0 = rf(ctx, height)
} else {
if ret.Get(0) != nil {
@@ -312,7 +312,7 @@ func (_m *Client) Commit(ctx context.Context, height *int64) (*coretypes.ResultC
}
var r1 error
if rf, ok := ret.Get(1).(func(context.Context, *int64) error); ok {
if rf, ok := ret.Get(1).(func(context.Context, *uint64) error); ok {
r1 = rf(ctx, height)
} else {
r1 = ret.Error(1)
@@ -322,11 +322,11 @@ func (_m *Client) Commit(ctx context.Context, height *int64) (*coretypes.ResultC
}
// ConsensusParams provides a mock function with given fields: ctx, height
func (_m *Client) ConsensusParams(ctx context.Context, height *int64) (*coretypes.ResultConsensusParams, error) {
func (_m *Client) ConsensusParams(ctx context.Context, height *uint64) (*coretypes.ResultConsensusParams, error) {
ret := _m.Called(ctx, height)
var r0 *coretypes.ResultConsensusParams
if rf, ok := ret.Get(0).(func(context.Context, *int64) *coretypes.ResultConsensusParams); ok {
if rf, ok := ret.Get(0).(func(context.Context, *uint64) *coretypes.ResultConsensusParams); ok {
r0 = rf(ctx, height)
} else {
if ret.Get(0) != nil {
@@ -335,7 +335,7 @@ func (_m *Client) ConsensusParams(ctx context.Context, height *int64) (*coretype
}
var r1 error
if rf, ok := ret.Get(1).(func(context.Context, *int64) error); ok {
if rf, ok := ret.Get(1).(func(context.Context, *uint64) error); ok {
r1 = rf(ctx, height)
} else {
r1 = ret.Error(1)
@@ -757,11 +757,11 @@ func (_m *Client) UnsubscribeAll(ctx context.Context, subscriber string) error {
}
// Validators provides a mock function with given fields: ctx, height, page, perPage
func (_m *Client) Validators(ctx context.Context, height *int64, page *int, perPage *int) (*coretypes.ResultValidators, error) {
func (_m *Client) Validators(ctx context.Context, height *uint64, page *int, perPage *int) (*coretypes.ResultValidators, error) {
ret := _m.Called(ctx, height, page, perPage)
var r0 *coretypes.ResultValidators
if rf, ok := ret.Get(0).(func(context.Context, *int64, *int, *int) *coretypes.ResultValidators); ok {
if rf, ok := ret.Get(0).(func(context.Context, *uint64, *int, *int) *coretypes.ResultValidators); ok {
r0 = rf(ctx, height, page, perPage)
} else {
if ret.Get(0) != nil {
@@ -770,7 +770,7 @@ func (_m *Client) Validators(ctx context.Context, height *int64, page *int, perP
}
var r1 error
if rf, ok := ret.Get(1).(func(context.Context, *int64, *int, *int) error); ok {
if rf, ok := ret.Get(1).(func(context.Context, *uint64, *int, *int) error); ok {
r1 = rf(ctx, height, page, perPage)
} else {
r1 = ret.Error(1)
+7 -7
View File
@@ -89,7 +89,7 @@ func (s *lightClientStateProvider) AppHash(ctx context.Context, height uint64) (
defer s.Unlock()
// We have to fetch the next height, which contains the app hash for the previous height.
header, err := s.lc.VerifyLightBlockAtHeight(ctx, int64(height+1), time.Now())
header, err := s.lc.VerifyLightBlockAtHeight(ctx, height+1, time.Now())
if err != nil {
return nil, err
}
@@ -101,11 +101,11 @@ func (s *lightClientStateProvider) AppHash(ctx context.Context, height uint64) (
// breaking it. We should instead have a Has(ctx, height) method which checks
// that the state provider has access to the necessary data for the height.
// We piggyback on AppHash() since it's called when adding snapshots to the pool.
_, err = s.lc.VerifyLightBlockAtHeight(ctx, int64(height+2), time.Now())
_, err = s.lc.VerifyLightBlockAtHeight(ctx, height+2, time.Now())
if err != nil {
return nil, err
}
_, err = s.lc.VerifyLightBlockAtHeight(ctx, int64(height), time.Now())
_, err = s.lc.VerifyLightBlockAtHeight(ctx, height, time.Now())
if err != nil {
return nil, err
}
@@ -116,7 +116,7 @@ func (s *lightClientStateProvider) AppHash(ctx context.Context, height uint64) (
func (s *lightClientStateProvider) Commit(ctx context.Context, height uint64) (*types.Commit, error) {
s.Lock()
defer s.Unlock()
header, err := s.lc.VerifyLightBlockAtHeight(ctx, int64(height), time.Now())
header, err := s.lc.VerifyLightBlockAtHeight(ctx, height, time.Now())
if err != nil {
return nil, err
}
@@ -145,15 +145,15 @@ func (s *lightClientStateProvider) State(ctx context.Context, height uint64) (sm
//
// We need to fetch the NextValidators from height+2 because if the application changed
// the validator set at the snapshot height then this only takes effect at height+2.
lastLightBlock, err := s.lc.VerifyLightBlockAtHeight(ctx, int64(height), time.Now())
lastLightBlock, err := s.lc.VerifyLightBlockAtHeight(ctx, height, time.Now())
if err != nil {
return sm.State{}, err
}
currentLightBlock, err := s.lc.VerifyLightBlockAtHeight(ctx, int64(height+1), time.Now())
currentLightBlock, err := s.lc.VerifyLightBlockAtHeight(ctx, height+1, time.Now())
if err != nil {
return sm.State{}, err
}
nextLightBlock, err := s.lc.VerifyLightBlockAtHeight(ctx, int64(height+2), time.Now())
nextLightBlock, err := s.lc.VerifyLightBlockAtHeight(ctx, height+2, time.Now())
if err != nil {
return sm.State{}, err
}
+3 -3
View File
@@ -89,7 +89,7 @@ type EventDataTx struct {
// NOTE: This goes into the replay WAL
type EventDataRoundState struct {
Height int64 `json:"height"`
Height uint64 `json:"height"`
Round int32 `json:"round"`
Step string `json:"step"`
}
@@ -100,7 +100,7 @@ type ValidatorInfo struct {
}
type EventDataNewRound struct {
Height int64 `json:"height"`
Height uint64 `json:"height"`
Round int32 `json:"round"`
Step string `json:"step"`
@@ -108,7 +108,7 @@ type EventDataNewRound struct {
}
type EventDataCompleteProposal struct {
Height int64 `json:"height"`
Height uint64 `json:"height"`
Round int32 `json:"round"`
Step string `json:"step"`
+1 -1
View File
@@ -645,7 +645,7 @@ func (vs *blockVotes) getByIndex(index int32) *Vote {
// Common interface between *consensus.VoteSet and types.Commit
type VoteSetReader interface {
GetHeight() int64
GetHeight() uint64
GetRound() int32
Type() byte
Size() int