mempool: migrate rechecktx to be a consensus parameter (#8514)

This commit is contained in:
Callum Waters
2022-05-25 23:57:23 +02:00
committed by GitHub
parent 4c857a7ed2
commit b0ec8a0ea7
46 changed files with 882 additions and 304 deletions
+2 -1
View File
@@ -59,13 +59,14 @@ Special thanks to external contributors on this release:
- [rpc] [\#7701] Add `ApplicationInfo` to `status` rpc call which contains the application version. (@jonasbostoen) - [rpc] [\#7701] Add `ApplicationInfo` to `status` rpc call which contains the application version. (@jonasbostoen)
- [cli] [#7033](https://github.com/tendermint/tendermint/pull/7033) Add a `rollback` command to rollback to the previous tendermint state in the event of non-determinstic app hash or reverting an upgrade. - [cli] [#7033](https://github.com/tendermint/tendermint/pull/7033) Add a `rollback` command to rollback to the previous tendermint state in the event of non-determinstic app hash or reverting an upgrade.
- [mempool, rpc] \#7041 Add removeTx operation to the RPC layer. (@tychoish) - [mempool, rpc] \#7041 Add removeTx operation to the RPC layer. (@tychoish)
- [consensus] \#7354 add a new `synchrony` field to the `ConsensusParameter` struct for controlling the parameters of the proposer-based timestamp algorithm. (@williambanfield) - [consensus] \#7354 add a new `synchrony` field to the `ConsensusParams` struct for controlling the parameters of the proposer-based timestamp algorithm. (@williambanfield)
- [consensus] \#7376 Update the proposal logic per the Propose-based timestamps specification so that the proposer will wait for the previous block time to occur before proposing the next block. (@williambanfield) - [consensus] \#7376 Update the proposal logic per the Propose-based timestamps specification so that the proposer will wait for the previous block time to occur before proposing the next block. (@williambanfield)
- [consensus] \#7391 Use the proposed block timestamp as the proposal timestamp. Update the block validation logic to ensure that the proposed block's timestamp matches the timestamp in the proposal message. (@williambanfield) - [consensus] \#7391 Use the proposed block timestamp as the proposal timestamp. Update the block validation logic to ensure that the proposed block's timestamp matches the timestamp in the proposal message. (@williambanfield)
- [consensus] \#7415 Update proposal validation logic to Prevote nil if a proposal does not meet the conditions for Timelyness per the proposer-based timestamp specification. (@anca) - [consensus] \#7415 Update proposal validation logic to Prevote nil if a proposal does not meet the conditions for Timelyness per the proposer-based timestamp specification. (@anca)
- [consensus] \#7382 Update block validation to no longer require the block timestamp to be the median of the timestamps of the previous commit. (@anca) - [consensus] \#7382 Update block validation to no longer require the block timestamp to be the median of the timestamps of the previous commit. (@anca)
- [consensus] \#7711 Use the proposer timestamp for the first height instead of the genesis time. Chains will still start consensus at the genesis time. (@anca) - [consensus] \#7711 Use the proposer timestamp for the first height instead of the genesis time. Chains will still start consensus at the genesis time. (@anca)
- [cli] \#8281 Add a tool to update old config files to the latest version. (@creachadair) - [cli] \#8281 Add a tool to update old config files to the latest version. (@creachadair)
- [consenus] \#8514 move `RecheckTx` from the local node mempool config to a global `ConsensusParams` field in `BlockParams` (@cmwaters)
### IMPROVEMENTS ### IMPROVEMENTS
+13
View File
@@ -126,6 +126,19 @@ lays out the reasoning for the changes as well as [RFC
009](https://tinyurl.com/rfc009) for a discussion of the complexities of 009](https://tinyurl.com/rfc009) for a discussion of the complexities of
upgrading consensus parameters. upgrading consensus parameters.
### RecheckTx Parameter Change
`RecheckTx` was previously enabled by the `recheck` parameter in the mempool
section of the `config.toml`.
Setting it to true made Tendermint invoke another `CheckTx` ABCI call on
each transaction remaining in the mempool following the execution of a block.
Similar to the timeout parameter changes, this parameter makes more sense as a
network-wide coordinated variable so that applications can be written knowing
either all nodes agree on whether to run `RecheckTx`.
Applications can turn on `RecheckTx` by altering the `ConsensusParams` in the
`FinalizeBlock` ABCI response.
### CLI Changes ### CLI Changes
The functionality around resetting a node has been extended to make it safer. The The functionality around resetting a node has been extended to make it safer. The
+216 -54
View File
@@ -10798,7 +10798,10 @@ func (m *Request) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -10880,7 +10883,10 @@ func (m *RequestEcho) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -10930,7 +10936,10 @@ func (m *RequestFlush) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -11082,7 +11091,10 @@ func (m *RequestInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -11320,7 +11332,10 @@ func (m *RequestInitChain) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -11475,7 +11490,10 @@ func (m *RequestQuery) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -11659,7 +11677,10 @@ func (m *RequestBeginBlock) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -11762,7 +11783,10 @@ func (m *RequestCheckTx) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -11846,7 +11870,10 @@ func (m *RequestDeliverTx) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -11915,7 +11942,10 @@ func (m *RequestEndBlock) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -11965,7 +11995,10 @@ func (m *RequestCommit) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -12015,7 +12048,10 @@ func (m *RequestListSnapshots) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -12135,7 +12171,10 @@ func (m *RequestOfferSnapshot) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -12242,7 +12281,10 @@ func (m *RequestLoadSnapshotChunk) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -12377,7 +12419,10 @@ func (m *RequestApplySnapshotChunk) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -12665,7 +12710,10 @@ func (m *RequestPrepareProposal) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -12968,7 +13016,10 @@ func (m *RequestProcessProposal) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -13071,7 +13122,10 @@ func (m *RequestExtendVote) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -13242,7 +13296,10 @@ func (m *RequestVerifyVoteExtension) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -13545,7 +13602,10 @@ func (m *RequestFinalizeBlock) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -14295,7 +14355,10 @@ func (m *Response) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -14377,7 +14440,10 @@ func (m *ResponseException) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -14459,7 +14525,10 @@ func (m *ResponseEcho) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -14509,7 +14578,10 @@ func (m *ResponseFlush) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -14695,7 +14767,10 @@ func (m *ResponseInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -14849,7 +14924,10 @@ func (m *ResponseInitChain) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -15156,7 +15234,10 @@ func (m *ResponseQuery) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -15240,7 +15321,10 @@ func (m *ResponseBeginBlock) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -15477,7 +15561,10 @@ func (m *ResponseCheckTx) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -15748,7 +15835,10 @@ func (m *ResponseDeliverTx) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -15902,7 +15992,10 @@ func (m *ResponseEndBlock) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -16005,7 +16098,10 @@ func (m *ResponseCommit) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -16089,7 +16185,10 @@ func (m *ResponseListSnapshots) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -16158,7 +16257,10 @@ func (m *ResponseOfferSnapshot) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -16242,7 +16344,10 @@ func (m *ResponseLoadSnapshotChunk) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -16419,7 +16524,10 @@ func (m *ResponseApplySnapshotChunk) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -16641,7 +16749,10 @@ func (m *ResponsePrepareProposal) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -16848,7 +16959,10 @@ func (m *ResponseProcessProposal) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -16932,7 +17046,10 @@ func (m *ResponseExtendVote) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -17001,7 +17118,10 @@ func (m *ResponseVerifyVoteExtension) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -17242,7 +17362,10 @@ func (m *ResponseFinalizeBlock) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -17345,7 +17468,10 @@ func (m *CommitInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -17448,7 +17574,10 @@ func (m *ExtendedCommitInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -17564,7 +17693,10 @@ func (m *Event) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -17698,7 +17830,10 @@ func (m *EventAttribute) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -17969,7 +18104,10 @@ func (m *ExecTxResult) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -18124,7 +18262,10 @@ func (m *TxResult) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -18227,7 +18368,10 @@ func (m *TxRecord) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -18330,7 +18474,10 @@ func (m *Validator) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -18432,7 +18579,10 @@ func (m *ValidatorUpdate) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -18535,7 +18685,10 @@ func (m *VoteInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -18672,7 +18825,10 @@ func (m *ExtendedVoteInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -18845,7 +19001,10 @@ func (m *Misbehavior) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -19020,7 +19179,10 @@ func (m *Snapshot) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+4 -4
View File
@@ -734,9 +734,10 @@ func TestP2PConfig() *P2PConfig {
// MempoolConfig defines the configuration options for the Tendermint mempool. // MempoolConfig defines the configuration options for the Tendermint mempool.
type MempoolConfig struct { type MempoolConfig struct {
RootDir string `mapstructure:"home"` RootDir string `mapstructure:"home"`
Recheck bool `mapstructure:"recheck"`
Broadcast bool `mapstructure:"broadcast"` // Whether to broadcast transactions to other nodes
Broadcast bool `mapstructure:"broadcast"`
// Maximum number of transactions in the mempool // Maximum number of transactions in the mempool
Size int `mapstructure:"size"` Size int `mapstructure:"size"`
@@ -783,7 +784,6 @@ type MempoolConfig struct {
// DefaultMempoolConfig returns a default configuration for the Tendermint mempool. // DefaultMempoolConfig returns a default configuration for the Tendermint mempool.
func DefaultMempoolConfig() *MempoolConfig { func DefaultMempoolConfig() *MempoolConfig {
return &MempoolConfig{ return &MempoolConfig{
Recheck: true,
Broadcast: true, Broadcast: true,
// Each signature verification takes .5ms, Size reduced until we implement // Each signature verification takes .5ms, Size reduced until we implement
// ABCI Recheck // ABCI Recheck
+5 -1
View File
@@ -355,7 +355,11 @@ recv-rate = {{ .P2P.RecvRate }}
####################################################### #######################################################
[mempool] [mempool]
recheck = {{ .Mempool.Recheck }} # recheck has been moved from a config option to a global
# consensus param in v0.36
# See https://github.com/tendermint/tendermint/issues/8244 for more information.
# Set true to broadcast transactions in the mempool to other nodes
broadcast = {{ .Mempool.Broadcast }} broadcast = {{ .Mempool.Broadcast }}
# Maximum number of transactions in the mempool # Maximum number of transactions in the mempool
-8
View File
@@ -295,14 +295,6 @@ flush-throttle-timeout=10
max-packet-msg-payload-size=10240 # 10KB max-packet-msg-payload-size=10240 # 10KB
``` ```
- `mempool.recheck`
After every block, Tendermint rechecks every transaction left in the
mempool to see if transactions committed in that block affected the
application state, so some of the transactions left may become invalid.
If that does not apply to your application, you can disable it by
setting `mempool.recheck=false`.
- `mempool.broadcast` - `mempool.broadcast`
Setting this to false will stop the mempool from relaying transactions Setting this to false will stop the mempool from relaying transactions
+2 -17
View File
@@ -14,9 +14,8 @@ Config:
```toml ```toml
[mempool] [mempool]
recheck = true # Set true to broadcast transactions in the mempool to other nodes
broadcast = true broadcast = true
wal-dir = ""
# Maximum number of transactions in the mempool # Maximum number of transactions in the mempool
size = 5000 size = 5000
@@ -44,20 +43,6 @@ max-tx-bytes = 1048576
max-batch-bytes = 0 max-batch-bytes = 0
``` ```
<!-- Flag: `--mempool.recheck=false`
Environment: `TM_MEMPOOL_RECHECK=false` -->
## Recheck
Recheck determines if the mempool rechecks all pending
transactions after a block was committed. Once a block
is committed, the mempool removes all valid transactions
that were successfully included in the block.
If `recheck` is true, then it will rerun CheckTx on
all remaining transactions with the new block state.
## Broadcast ## Broadcast
Determines whether this node gossips any valid transactions Determines whether this node gossips any valid transactions
@@ -92,7 +77,7 @@ Cache size determines the size of the cache holding transactions we have already
## Keep Invalid Transactions In Cache ## Keep Invalid Transactions In Cache
Keep invalid transactions in cache determines wether a transaction in the cache, which is invalid, should be evicted. An invalid transaction here may mean that the transaction may rely on a different tx that has not been included in a block. Keep invalid transactions in cache determines wether a transaction in the cache, which is invalid, should be evicted. An invalid transaction here may mean that the transaction may rely on a different tx that has not been included in a block.
## Max Transaction Bytes ## Max Transaction Bytes
+1
View File
@@ -126,6 +126,7 @@ func makeReactor(
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything,
mock.Anything).Return(nil) mock.Anything).Return(nil)
eventbus := eventbus.NewDefault(logger) eventbus := eventbus.NewDefault(logger)
+1
View File
@@ -35,6 +35,7 @@ func (emptyMempool) Update(
_ []*abci.ExecTxResult, _ []*abci.ExecTxResult,
_ mempool.PreCheckFunc, _ mempool.PreCheckFunc,
_ mempool.PostCheckFunc, _ mempool.PostCheckFunc,
_ bool,
) error { ) error {
return nil return nil
} }
+2 -1
View File
@@ -420,6 +420,7 @@ func (txmp *TxMempool) Update(
execTxResult []*abci.ExecTxResult, execTxResult []*abci.ExecTxResult,
newPreFn PreCheckFunc, newPreFn PreCheckFunc,
newPostFn PostCheckFunc, newPostFn PostCheckFunc,
recheck bool,
) error { ) error {
txmp.height = blockHeight txmp.height = blockHeight
txmp.notifiedTxsAvailable = false txmp.notifiedTxsAvailable = false
@@ -452,7 +453,7 @@ func (txmp *TxMempool) Update(
// initiate re-CheckTx per remaining transaction or notify that remaining // initiate re-CheckTx per remaining transaction or notify that remaining
// transactions are left. // transactions are left.
if txmp.Size() > 0 { if txmp.Size() > 0 {
if txmp.config.Recheck { if recheck {
txmp.logger.Debug( txmp.logger.Debug(
"executing re-CheckTx for all remaining transactions", "executing re-CheckTx for all remaining transactions",
"num_txs", txmp.Size(), "num_txs", txmp.Size(),
+6 -6
View File
@@ -173,7 +173,7 @@ func TestTxMempool_TxsAvailable(t *testing.T) {
// commit half the transactions and ensure we fire an event // commit half the transactions and ensure we fire an event
txmp.Lock() txmp.Lock()
require.NoError(t, txmp.Update(ctx, 1, rawTxs[:50], responses, nil, nil)) require.NoError(t, txmp.Update(ctx, 1, rawTxs[:50], responses, nil, nil, true))
txmp.Unlock() txmp.Unlock()
ensureTxFire() ensureTxFire()
ensureNoTxFire() ensureNoTxFire()
@@ -210,7 +210,7 @@ func TestTxMempool_Size(t *testing.T) {
} }
txmp.Lock() txmp.Lock()
require.NoError(t, txmp.Update(ctx, 1, rawTxs[:50], responses, nil, nil)) require.NoError(t, txmp.Update(ctx, 1, rawTxs[:50], responses, nil, nil, true))
txmp.Unlock() txmp.Unlock()
require.Equal(t, len(rawTxs)/2, txmp.Size()) require.Equal(t, len(rawTxs)/2, txmp.Size())
@@ -243,7 +243,7 @@ func TestTxMempool_Flush(t *testing.T) {
} }
txmp.Lock() txmp.Lock()
require.NoError(t, txmp.Update(ctx, 1, rawTxs[:50], responses, nil, nil)) require.NoError(t, txmp.Update(ctx, 1, rawTxs[:50], responses, nil, nil, true))
txmp.Unlock() txmp.Unlock()
txmp.Flush() txmp.Flush()
@@ -501,7 +501,7 @@ func TestTxMempool_ConcurrentTxs(t *testing.T) {
} }
txmp.Lock() txmp.Lock()
require.NoError(t, txmp.Update(ctx, height, reapedTxs, responses, nil, nil)) require.NoError(t, txmp.Update(ctx, height, reapedTxs, responses, nil, nil, true))
txmp.Unlock() txmp.Unlock()
height++ height++
@@ -547,7 +547,7 @@ func TestTxMempool_ExpiredTxs_NumBlocks(t *testing.T) {
} }
txmp.Lock() txmp.Lock()
require.NoError(t, txmp.Update(ctx, txmp.height+1, reapedTxs, responses, nil, nil)) require.NoError(t, txmp.Update(ctx, txmp.height+1, reapedTxs, responses, nil, nil, true))
txmp.Unlock() txmp.Unlock()
require.Equal(t, 95, txmp.Size()) require.Equal(t, 95, txmp.Size())
@@ -573,7 +573,7 @@ func TestTxMempool_ExpiredTxs_NumBlocks(t *testing.T) {
} }
txmp.Lock() txmp.Lock()
require.NoError(t, txmp.Update(ctx, txmp.height+10, reapedTxs, responses, nil, nil)) require.NoError(t, txmp.Update(ctx, txmp.height+10, reapedTxs, responses, nil, nil, true))
txmp.Unlock() txmp.Unlock()
require.GreaterOrEqual(t, txmp.Size(), 45) require.GreaterOrEqual(t, txmp.Size(), 45)
+5 -5
View File
@@ -157,13 +157,13 @@ func (_m *Mempool) Unlock() {
_m.Called() _m.Called()
} }
// Update provides a mock function with given fields: ctx, blockHeight, blockTxs, txResults, newPreFn, newPostFn // Update provides a mock function with given fields: ctx, blockHeight, blockTxs, txResults, newPreFn, newPostFn, recheck
func (_m *Mempool) Update(ctx context.Context, blockHeight int64, blockTxs types.Txs, txResults []*abcitypes.ExecTxResult, newPreFn mempool.PreCheckFunc, newPostFn mempool.PostCheckFunc) error { func (_m *Mempool) Update(ctx context.Context, blockHeight int64, blockTxs types.Txs, txResults []*abcitypes.ExecTxResult, newPreFn mempool.PreCheckFunc, newPostFn mempool.PostCheckFunc, recheck bool) error {
ret := _m.Called(ctx, blockHeight, blockTxs, txResults, newPreFn, newPostFn) ret := _m.Called(ctx, blockHeight, blockTxs, txResults, newPreFn, newPostFn, recheck)
var r0 error var r0 error
if rf, ok := ret.Get(0).(func(context.Context, int64, types.Txs, []*abcitypes.ExecTxResult, mempool.PreCheckFunc, mempool.PostCheckFunc) error); ok { if rf, ok := ret.Get(0).(func(context.Context, int64, types.Txs, []*abcitypes.ExecTxResult, mempool.PreCheckFunc, mempool.PostCheckFunc, bool) error); ok {
r0 = rf(ctx, blockHeight, blockTxs, txResults, newPreFn, newPostFn) r0 = rf(ctx, blockHeight, blockTxs, txResults, newPreFn, newPostFn, recheck)
} else { } else {
r0 = ret.Error(0) r0 = ret.Error(0)
} }
+2 -2
View File
@@ -253,7 +253,7 @@ func TestReactorConcurrency(t *testing.T) {
deliverTxResponses[i] = &abci.ExecTxResult{Code: 0} deliverTxResponses[i] = &abci.ExecTxResult{Code: 0}
} }
require.NoError(t, mempool.Update(ctx, 1, convertTex(txs), deliverTxResponses, nil, nil)) require.NoError(t, mempool.Update(ctx, 1, convertTex(txs), deliverTxResponses, nil, nil, true))
}() }()
// 1. submit a bunch of txs // 1. submit a bunch of txs
@@ -267,7 +267,7 @@ func TestReactorConcurrency(t *testing.T) {
mempool.Lock() mempool.Lock()
defer mempool.Unlock() defer mempool.Unlock()
err := mempool.Update(ctx, 1, []types.Tx{}, make([]*abci.ExecTxResult, 0), nil, nil) err := mempool.Update(ctx, 1, []types.Tx{}, make([]*abci.ExecTxResult, 0), nil, nil, true)
require.NoError(t, err) require.NoError(t, err)
}() }()
} }
+1
View File
@@ -71,6 +71,7 @@ type Mempool interface {
txResults []*abci.ExecTxResult, txResults []*abci.ExecTxResult,
newPreFn PreCheckFunc, newPreFn PreCheckFunc,
newPostFn PostCheckFunc, newPostFn PostCheckFunc,
recheck bool,
) error ) error
// FlushAppConn flushes the mempool connection to ensure async callback calls // FlushAppConn flushes the mempool connection to ensure async callback calls
+1
View File
@@ -373,6 +373,7 @@ func (blockExec *BlockExecutor) Commit(
txResults, txResults,
TxPreCheckForState(state), TxPreCheckForState(state),
TxPostCheckForState(state), TxPostCheckForState(state),
state.ConsensusParams.ABCI.RecheckTx,
) )
return res.Data, res.RetainHeight, err return res.Data, res.RetainHeight, err
+5
View File
@@ -64,6 +64,7 @@ func TestApplyBlock(t *testing.T) {
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything,
mock.Anything).Return(nil) mock.Anything).Return(nil)
blockExec := sm.NewBlockExecutor(stateStore, logger, proxyApp, mp, sm.EmptyEvidencePool{}, blockStore, eventBus, sm.NopMetrics()) blockExec := sm.NewBlockExecutor(stateStore, logger, proxyApp, mp, sm.EmptyEvidencePool{}, blockStore, eventBus, sm.NopMetrics())
@@ -125,6 +126,7 @@ func TestFinalizeBlockDecidedLastCommit(t *testing.T) {
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything,
mock.Anything).Return(nil) mock.Anything).Return(nil)
eventBus := eventbus.NewDefault(logger) eventBus := eventbus.NewDefault(logger)
@@ -250,6 +252,7 @@ func TestFinalizeBlockByzantineValidators(t *testing.T) {
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything,
mock.Anything).Return(nil) mock.Anything).Return(nil)
eventBus := eventbus.NewDefault(logger) eventBus := eventbus.NewDefault(logger)
@@ -511,6 +514,7 @@ func TestFinalizeBlockValidatorUpdates(t *testing.T) {
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything,
mock.Anything).Return(nil) mock.Anything).Return(nil)
mp.On("ReapMaxBytesMaxGas", mock.Anything, mock.Anything).Return(types.Txs{}) mp.On("ReapMaxBytesMaxGas", mock.Anything, mock.Anything).Return(types.Txs{})
@@ -645,6 +649,7 @@ func TestEmptyPrepareProposal(t *testing.T) {
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything,
mock.Anything).Return(nil) mock.Anything).Return(nil)
mp.On("ReapMaxBytesMaxGas", mock.Anything, mock.Anything).Return(types.Txs{}) mp.On("ReapMaxBytesMaxGas", mock.Anything, mock.Anything).Return(types.Txs{})
+3
View File
@@ -52,6 +52,7 @@ func TestValidateBlockHeader(t *testing.T) {
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything,
mock.Anything).Return(nil) mock.Anything).Return(nil)
blockStore := store.NewBlockStore(dbm.NewMemDB()) blockStore := store.NewBlockStore(dbm.NewMemDB())
@@ -158,6 +159,7 @@ func TestValidateBlockCommit(t *testing.T) {
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything,
mock.Anything).Return(nil) mock.Anything).Return(nil)
blockStore := store.NewBlockStore(dbm.NewMemDB()) blockStore := store.NewBlockStore(dbm.NewMemDB())
@@ -314,6 +316,7 @@ func TestValidateBlockEvidence(t *testing.T) {
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything, mock.Anything,
mock.Anything,
mock.Anything).Return(nil) mock.Anything).Return(nil)
state.ConsensusParams.Evidence.MaxBytes = 1000 state.ConsensusParams.Evidence.MaxBytes = 1000
+24 -6
View File
@@ -927,7 +927,10 @@ func (m *BlockRequest) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -996,7 +999,10 @@ func (m *NoBlockResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1118,7 +1124,10 @@ func (m *BlockResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1168,7 +1177,10 @@ func (m *StatusRequest) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1256,7 +1268,10 @@ func (m *StatusResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1481,7 +1496,10 @@ func (m *Message) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+40 -10
View File
@@ -1935,7 +1935,10 @@ func (m *NewRoundStep) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2112,7 +2115,10 @@ func (m *NewValidBlock) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2195,7 +2201,10 @@ func (m *Proposal) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2316,7 +2325,10 @@ func (m *ProposalPOL) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2437,7 +2449,10 @@ func (m *BlockPart) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2523,7 +2538,10 @@ func (m *Vote) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2649,7 +2667,10 @@ func (m *HasVote) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2789,7 +2810,10 @@ func (m *VoteSetMaj23) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2962,7 +2986,10 @@ func (m *VoteSetBits) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -3327,7 +3354,10 @@ func (m *Message) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+20 -5
View File
@@ -921,7 +921,10 @@ func (m *MsgInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthWal
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthWal return ErrInvalidLengthWal
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1061,7 +1064,10 @@ func (m *TimeoutInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthWal
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthWal return ErrInvalidLengthWal
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1130,7 +1136,10 @@ func (m *EndHeight) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthWal
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthWal return ErrInvalidLengthWal
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1320,7 +1329,10 @@ func (m *WALMessage) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthWal
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthWal return ErrInvalidLengthWal
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1439,7 +1451,10 @@ func (m *TimedWALMessage) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthWal
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthWal return ErrInvalidLengthWal
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+4 -1
View File
@@ -687,7 +687,10 @@ func (m *PublicKey) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthKeys
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthKeys return ErrInvalidLengthKeys
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+20 -5
View File
@@ -820,7 +820,10 @@ func (m *Proof) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthProof
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthProof return ErrInvalidLengthProof
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -940,7 +943,10 @@ func (m *ValueOp) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthProof
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthProof return ErrInvalidLengthProof
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1086,7 +1092,10 @@ func (m *DominoOp) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthProof
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthProof return ErrInvalidLengthProof
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1236,7 +1245,10 @@ func (m *ProofOp) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthProof
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthProof return ErrInvalidLengthProof
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1320,7 +1332,10 @@ func (m *ProofOps) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthProof
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthProof return ErrInvalidLengthProof
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+4 -1
View File
@@ -307,7 +307,10 @@ func (m *BitArray) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+8 -2
View File
@@ -370,7 +370,10 @@ func (m *Txs) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -455,7 +458,10 @@ func (m *Message) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+20 -5
View File
@@ -723,7 +723,10 @@ func (m *PacketPing) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthConn
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthConn return ErrInvalidLengthConn
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -773,7 +776,10 @@ func (m *PacketPong) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthConn
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthConn return ErrInvalidLengthConn
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -896,7 +902,10 @@ func (m *PacketMsg) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthConn
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthConn return ErrInvalidLengthConn
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1051,7 +1060,10 @@ func (m *Packet) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthConn
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthConn return ErrInvalidLengthConn
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1168,7 +1180,10 @@ func (m *AuthSigMessage) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthConn
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthConn return ErrInvalidLengthConn
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+16 -4
View File
@@ -587,7 +587,10 @@ func (m *PexAddress) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthPex
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthPex return ErrInvalidLengthPex
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -637,7 +640,10 @@ func (m *PexRequest) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthPex
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthPex return ErrInvalidLengthPex
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -721,7 +727,10 @@ func (m *PexResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthPex
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthPex return ErrInvalidLengthPex
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -841,7 +850,10 @@ func (m *PexMessage) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthPex
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthPex return ErrInvalidLengthPex
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+20 -5
View File
@@ -917,7 +917,10 @@ func (m *ProtocolVersion) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1227,7 +1230,10 @@ func (m *NodeInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1341,7 +1347,10 @@ func (m *NodeInfoOther) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1493,7 +1502,10 @@ func (m *PeerInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1666,7 +1678,10 @@ func (m *PeerAddressInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+44 -11
View File
@@ -1708,7 +1708,10 @@ func (m *RemoteSignerError) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1790,7 +1793,10 @@ func (m *PubKeyRequest) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1909,7 +1915,10 @@ func (m *PubKeyResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2027,7 +2036,10 @@ func (m *SignVoteRequest) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2146,7 +2158,10 @@ func (m *SignedVoteResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2264,7 +2279,10 @@ func (m *SignProposalRequest) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2383,7 +2401,10 @@ func (m *SignedProposalResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2433,7 +2454,10 @@ func (m *PingRequest) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2483,7 +2507,10 @@ func (m *PingResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2813,7 +2840,10 @@ func (m *Message) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2930,7 +2960,10 @@ func (m *AuthSigMessage) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+20 -5
View File
@@ -944,7 +944,10 @@ func (m *ABCIResponses) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1049,7 +1052,10 @@ func (m *ValidatorsInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1151,7 +1157,10 @@ func (m *ConsensusParamsInfo) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1266,7 +1275,10 @@ func (m *Version) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1732,7 +1744,10 @@ func (m *State) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+36 -9
View File
@@ -1740,7 +1740,10 @@ func (m *Message) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1790,7 +1793,10 @@ func (m *SnapshotsRequest) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1965,7 +1971,10 @@ func (m *SnapshotsResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2072,7 +2081,10 @@ func (m *ChunkRequest) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2233,7 +2245,10 @@ func (m *ChunkResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2302,7 +2317,10 @@ func (m *LightBlockRequest) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2388,7 +2406,10 @@ func (m *LightBlockResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2457,7 +2478,10 @@ func (m *ParamsRequest) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2559,7 +2583,10 @@ func (m *ParamsResponse) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+4 -1
View File
@@ -389,7 +389,10 @@ func (m *Block) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthBlock
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthBlock return ErrInvalidLengthBlock
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+20 -5
View File
@@ -920,7 +920,10 @@ func (m *CanonicalBlockID) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthCanonical
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthCanonical return ErrInvalidLengthCanonical
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1023,7 +1026,10 @@ func (m *CanonicalPartSetHeader) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthCanonical
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthCanonical return ErrInvalidLengthCanonical
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1232,7 +1238,10 @@ func (m *CanonicalProposal) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthCanonical
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthCanonical return ErrInvalidLengthCanonical
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1422,7 +1431,10 @@ func (m *CanonicalVote) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthCanonical
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthCanonical return ErrInvalidLengthCanonical
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1558,7 +1570,10 @@ func (m *CanonicalVoteExtension) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthCanonical
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthCanonical return ErrInvalidLengthCanonical
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+4 -1
View File
@@ -285,7 +285,10 @@ func (m *EventDataRoundState) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthEvents
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthEvents return ErrInvalidLengthEvents
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+16 -4
View File
@@ -827,7 +827,10 @@ func (m *Evidence) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthEvidence
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthEvidence return ErrInvalidLengthEvidence
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1020,7 +1023,10 @@ func (m *DuplicateVoteEvidence) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthEvidence
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthEvidence return ErrInvalidLengthEvidence
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1211,7 +1217,10 @@ func (m *LightClientAttackEvidence) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthEvidence
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthEvidence return ErrInvalidLengthEvidence
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1295,7 +1304,10 @@ func (m *EvidenceList) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthEvidence
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthEvidence return ErrInvalidLengthEvidence
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+131 -57
View File
@@ -586,6 +586,9 @@ type ABCIParams struct {
// passed to the application for validation in VerifyVoteExtension and given // passed to the application for validation in VerifyVoteExtension and given
// to the application to use when proposing a block during PrepareProposal. // to the application to use when proposing a block during PrepareProposal.
VoteExtensionsEnableHeight int64 `protobuf:"varint,1,opt,name=vote_extensions_enable_height,json=voteExtensionsEnableHeight,proto3" json:"vote_extensions_enable_height,omitempty"` VoteExtensionsEnableHeight int64 `protobuf:"varint,1,opt,name=vote_extensions_enable_height,json=voteExtensionsEnableHeight,proto3" json:"vote_extensions_enable_height,omitempty"`
// Indicates if CheckTx should be called on all the transactions
// remaining in the mempool after a block is executed.
RecheckTx bool `protobuf:"varint,2,opt,name=recheck_tx,json=recheckTx,proto3" json:"recheck_tx,omitempty"`
} }
func (m *ABCIParams) Reset() { *m = ABCIParams{} } func (m *ABCIParams) Reset() { *m = ABCIParams{} }
@@ -628,6 +631,13 @@ func (m *ABCIParams) GetVoteExtensionsEnableHeight() int64 {
return 0 return 0
} }
func (m *ABCIParams) GetRecheckTx() bool {
if m != nil {
return m.RecheckTx
}
return false
}
func init() { func init() {
proto.RegisterType((*ConsensusParams)(nil), "tendermint.types.ConsensusParams") proto.RegisterType((*ConsensusParams)(nil), "tendermint.types.ConsensusParams")
proto.RegisterType((*BlockParams)(nil), "tendermint.types.BlockParams") proto.RegisterType((*BlockParams)(nil), "tendermint.types.BlockParams")
@@ -643,54 +653,55 @@ func init() {
func init() { proto.RegisterFile("tendermint/types/params.proto", fileDescriptor_e12598271a686f57) } func init() { proto.RegisterFile("tendermint/types/params.proto", fileDescriptor_e12598271a686f57) }
var fileDescriptor_e12598271a686f57 = []byte{ var fileDescriptor_e12598271a686f57 = []byte{
// 741 bytes of a gzipped FileDescriptorProto // 762 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x95, 0xcd, 0x6e, 0xd3, 0x4a, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x95, 0xdf, 0x6e, 0xdb, 0x36,
0x14, 0x80, 0xe3, 0x26, 0x4d, 0x93, 0x93, 0xa6, 0xa9, 0xe6, 0xde, 0xab, 0x6b, 0x0a, 0x75, 0x8a, 0x14, 0xc6, 0xad, 0xd8, 0x71, 0xec, 0xe3, 0x38, 0x0e, 0xb8, 0x0d, 0xd3, 0xb2, 0x59, 0xce, 0x74,
0x17, 0xa8, 0x12, 0x92, 0x53, 0xb5, 0x42, 0x15, 0x12, 0x3f, 0x6a, 0x92, 0x8a, 0x22, 0x54, 0x40, 0x31, 0x04, 0x18, 0x20, 0x07, 0x09, 0x86, 0x60, 0xc0, 0xfe, 0x20, 0xb6, 0x83, 0x65, 0x18, 0x32,
0xa1, 0xb0, 0xe8, 0xc6, 0x1a, 0x27, 0x83, 0x63, 0x35, 0xf6, 0x58, 0x9e, 0x71, 0x14, 0xbf, 0x05, 0x0c, 0x5a, 0xda, 0x8b, 0xdc, 0x08, 0x94, 0xcc, 0xca, 0x42, 0x2c, 0x51, 0x10, 0x29, 0xc3, 0x7a,
0x2b, 0xc4, 0x23, 0xc0, 0x86, 0xe7, 0xe8, 0xb2, 0x4b, 0x56, 0x80, 0xd2, 0x37, 0xe0, 0x09, 0xd0, 0x8b, 0x5e, 0x15, 0x7d, 0x84, 0xf6, 0xa6, 0xcf, 0x91, 0xcb, 0x5c, 0xf6, 0xaa, 0x2d, 0x9c, 0x37,
0x8c, 0xc7, 0x4d, 0x93, 0x52, 0x9a, 0x55, 0x9c, 0x39, 0xdf, 0xe7, 0xe3, 0x39, 0xe7, 0xd8, 0x03, 0xe8, 0x13, 0x14, 0xa4, 0xa8, 0x38, 0x76, 0x9a, 0xc6, 0x57, 0xa6, 0x79, 0xbe, 0x1f, 0x0f, 0xf9,
0xeb, 0x9c, 0x04, 0x3d, 0x12, 0xf9, 0x5e, 0xc0, 0x1b, 0x3c, 0x09, 0x09, 0x6b, 0x84, 0x38, 0xc2, 0x9d, 0x23, 0x12, 0xda, 0x9c, 0x44, 0x43, 0x92, 0x84, 0x41, 0xc4, 0xbb, 0x3c, 0x8b, 0x09, 0xeb,
0x3e, 0xb3, 0xc2, 0x88, 0x72, 0x8a, 0x56, 0x27, 0x61, 0x4b, 0x86, 0xd7, 0xfe, 0x75, 0xa9, 0x4b, 0xc6, 0x38, 0xc1, 0x21, 0xb3, 0xe2, 0x84, 0x72, 0x8a, 0xb6, 0xe7, 0x61, 0x4b, 0x86, 0x77, 0xbe,
0x65, 0xb0, 0x21, 0xae, 0x52, 0x6e, 0xcd, 0x70, 0x29, 0x75, 0x07, 0xa4, 0x21, 0xff, 0x39, 0xf1, 0xf6, 0xa9, 0x4f, 0x65, 0xb0, 0x2b, 0x46, 0xb9, 0x6e, 0xc7, 0xf0, 0x29, 0xf5, 0xc7, 0xa4, 0x2b,
0xfb, 0x46, 0x2f, 0x8e, 0x30, 0xf7, 0x68, 0x90, 0xc6, 0xcd, 0xaf, 0x79, 0xa8, 0xb5, 0x68, 0xc0, 0xff, 0xb9, 0xe9, 0xb3, 0xee, 0x30, 0x4d, 0x30, 0x0f, 0x68, 0x94, 0xc7, 0xcd, 0x37, 0x65, 0x68,
0x48, 0xc0, 0x62, 0xf6, 0x5a, 0x66, 0x40, 0x3b, 0xb0, 0xe8, 0x0c, 0x68, 0xf7, 0x44, 0xd7, 0x36, 0xf5, 0x69, 0xc4, 0x48, 0xc4, 0x52, 0xf6, 0x9f, 0xcc, 0x80, 0x0e, 0x61, 0xdd, 0x1d, 0x53, 0xef,
0xb4, 0xcd, 0xca, 0xf6, 0xba, 0x35, 0x9b, 0xcb, 0x6a, 0x8a, 0x70, 0x4a, 0x77, 0x52, 0x16, 0x3d, 0x52, 0xd7, 0x76, 0xb5, 0xbd, 0xc6, 0x41, 0xdb, 0x5a, 0xce, 0x65, 0xf5, 0x44, 0x38, 0x57, 0xdb,
0x82, 0x12, 0x19, 0x7a, 0x3d, 0x12, 0x74, 0x89, 0xbe, 0x20, 0xbd, 0x8d, 0xab, 0xde, 0xbe, 0x22, 0xb9, 0x16, 0xfd, 0x06, 0x35, 0x32, 0x09, 0x86, 0x24, 0xf2, 0x88, 0xbe, 0x26, 0xb9, 0xdd, 0xfb,
0x94, 0x7a, 0x61, 0xa0, 0xa7, 0x50, 0x1e, 0xe2, 0x81, 0xd7, 0xc3, 0x9c, 0x46, 0x7a, 0x5e, 0xea, 0xdc, 0x89, 0x52, 0x28, 0xf4, 0x96, 0x40, 0x7f, 0x42, 0x7d, 0x82, 0xc7, 0xc1, 0x10, 0x73, 0x9a,
0x77, 0xaf, 0xea, 0xef, 0x32, 0x44, 0xf9, 0x13, 0x07, 0x3d, 0x84, 0xa5, 0x21, 0x89, 0x98, 0x47, 0xe8, 0x65, 0x89, 0xff, 0x78, 0x1f, 0x7f, 0x5a, 0x48, 0x14, 0x3f, 0x67, 0xd0, 0xaf, 0xb0, 0x31,
0x03, 0xbd, 0x20, 0xf5, 0xfa, 0x1f, 0xf4, 0x14, 0x50, 0x72, 0xc6, 0x8b, 0xdc, 0x2c, 0x09, 0xba, 0x21, 0x09, 0x0b, 0x68, 0xa4, 0x57, 0x24, 0xde, 0xf9, 0x0c, 0x9e, 0x0b, 0x14, 0x5c, 0xe8, 0x45,
0xfd, 0x88, 0x06, 0x89, 0xbe, 0x78, 0x5d, 0xee, 0x37, 0x19, 0x92, 0xe5, 0xbe, 0x70, 0x44, 0x6e, 0x6e, 0x96, 0x45, 0xde, 0x28, 0xa1, 0x51, 0xa6, 0xaf, 0x3f, 0x94, 0xfb, 0xff, 0x42, 0x52, 0xe4,
0xee, 0xf9, 0x84, 0xc6, 0x5c, 0x2f, 0x5e, 0x97, 0xfb, 0x28, 0x05, 0xb2, 0xdc, 0x8a, 0x47, 0x5b, 0xbe, 0x65, 0x44, 0x6e, 0x1e, 0x84, 0x84, 0xa6, 0x5c, 0xaf, 0x3e, 0x94, 0xfb, 0x3c, 0x17, 0x14,
0x50, 0xc0, 0x4e, 0xd7, 0xd3, 0x97, 0xa4, 0x77, 0xe7, 0xaa, 0xb7, 0xd7, 0x6c, 0x3d, 0x57, 0x92, 0xb9, 0x95, 0x1e, 0xed, 0x43, 0x05, 0xbb, 0x5e, 0xa0, 0x6f, 0x48, 0xee, 0x87, 0xfb, 0xdc, 0x71,
0x24, 0xcd, 0x16, 0x54, 0x2e, 0x55, 0x1f, 0xdd, 0x86, 0xb2, 0x8f, 0x47, 0xb6, 0x93, 0x70, 0xc2, 0xaf, 0xff, 0xb7, 0x82, 0xa4, 0xd2, 0xec, 0x43, 0xe3, 0x8e, 0xfb, 0xe8, 0x7b, 0xa8, 0x87, 0x78,
0x64, 0xbf, 0xf2, 0x9d, 0x92, 0x8f, 0x47, 0x4d, 0xf1, 0x1f, 0xfd, 0x0f, 0x4b, 0x22, 0xe8, 0x62, 0xea, 0xb8, 0x19, 0x27, 0x4c, 0xd6, 0xab, 0x6c, 0xd7, 0x42, 0x3c, 0xed, 0x89, 0xff, 0xe8, 0x5b,
0x26, 0x5b, 0x92, 0xef, 0x14, 0x7d, 0x3c, 0x7a, 0x86, 0x99, 0xf9, 0x45, 0x83, 0x95, 0xe9, 0x5e, 0xd8, 0x10, 0x41, 0x1f, 0x33, 0x59, 0x92, 0xb2, 0x5d, 0x0d, 0xf1, 0xf4, 0x2f, 0xcc, 0xcc, 0xd7,
0xa0, 0xfb, 0x80, 0x04, 0x8b, 0x5d, 0x62, 0x07, 0xb1, 0x6f, 0xcb, 0xa6, 0x66, 0x77, 0xac, 0xf9, 0x1a, 0x6c, 0x2d, 0xd6, 0x02, 0xfd, 0x0c, 0x48, 0x68, 0xb1, 0x4f, 0x9c, 0x28, 0x0d, 0x1d, 0x59,
0x78, 0xb4, 0xe7, 0x92, 0x97, 0xb1, 0x2f, 0x53, 0x33, 0x74, 0x08, 0xab, 0x19, 0x9c, 0xcd, 0x93, 0xd4, 0x62, 0xc5, 0x56, 0x88, 0xa7, 0xc7, 0x3e, 0xf9, 0x37, 0x0d, 0x65, 0x6a, 0x86, 0xce, 0x60,
0x6a, 0xfa, 0x2d, 0x2b, 0x1d, 0x38, 0x2b, 0x1b, 0x38, 0xab, 0xad, 0x80, 0x66, 0xe9, 0xf4, 0x7b, 0xbb, 0x10, 0x17, 0xfd, 0xa4, 0x8a, 0xfe, 0x9d, 0x95, 0x37, 0x9c, 0x55, 0x34, 0x9c, 0x35, 0x50,
0x3d, 0xf7, 0xe9, 0x47, 0x5d, 0xeb, 0xac, 0xa4, 0xf7, 0xcb, 0x22, 0xd3, 0x9b, 0xc8, 0x4f, 0x6f, 0x82, 0x5e, 0xed, 0xea, 0x5d, 0xa7, 0xf4, 0xf2, 0x7d, 0x47, 0xb3, 0xb7, 0xf2, 0xf5, 0x8a, 0xc8,
0xc2, 0x7c, 0x00, 0xb5, 0x99, 0xbe, 0x23, 0x13, 0xaa, 0x61, 0xec, 0xd8, 0x27, 0x24, 0xb1, 0x65, 0xe2, 0x21, 0xca, 0x8b, 0x87, 0x30, 0x7f, 0x81, 0xd6, 0x52, 0xdd, 0x91, 0x09, 0xcd, 0x38, 0x75,
0x95, 0x74, 0x6d, 0x23, 0xbf, 0x59, 0xee, 0x54, 0xc2, 0xd8, 0x79, 0x41, 0x92, 0x23, 0xb1, 0x64, 0x9d, 0x4b, 0x92, 0x39, 0xd2, 0x25, 0x5d, 0xdb, 0x2d, 0xef, 0xd5, 0xed, 0x46, 0x9c, 0xba, 0xff,
0x6e, 0x41, 0x75, 0xaa, 0xdf, 0xa8, 0x0e, 0x15, 0x1c, 0x86, 0x76, 0x36, 0x25, 0x62, 0x67, 0x85, 0x90, 0xec, 0x5c, 0x4c, 0x99, 0xfb, 0xd0, 0x5c, 0xa8, 0x37, 0xea, 0x40, 0x03, 0xc7, 0xb1, 0x53,
0x0e, 0xe0, 0x30, 0x54, 0x98, 0x79, 0x0c, 0xcb, 0x07, 0x98, 0xf5, 0x49, 0x4f, 0x09, 0xf7, 0xa0, 0x74, 0x89, 0x38, 0x59, 0xc5, 0x06, 0x1c, 0xc7, 0x4a, 0x66, 0x5e, 0xc0, 0xe6, 0x29, 0x66, 0x23,
0x26, 0xab, 0x60, 0xcf, 0x16, 0xb8, 0x2a, 0x97, 0x0f, 0xb3, 0x2a, 0x9b, 0x50, 0x9d, 0x70, 0x93, 0x32, 0x54, 0xc0, 0x4f, 0xd0, 0x92, 0x2e, 0x38, 0xcb, 0x06, 0x37, 0xe5, 0xf4, 0x59, 0xe1, 0xb2,
0x5a, 0x57, 0x32, 0x4a, 0x14, 0xfc, 0xa3, 0x06, 0xb5, 0x99, 0x09, 0x42, 0x6d, 0xa8, 0xfa, 0x84, 0x09, 0xcd, 0xb9, 0x6e, 0xee, 0x75, 0xa3, 0x50, 0x09, 0xc3, 0x5f, 0x68, 0xd0, 0x5a, 0xea, 0x20,
0x31, 0x59, 0x44, 0x32, 0xc0, 0x89, 0x7a, 0xdd, 0xfe, 0x52, 0xc1, 0x82, 0xac, 0xde, 0xb2, 0xb2, 0x34, 0x80, 0x66, 0x48, 0x18, 0x93, 0x26, 0x92, 0x31, 0xce, 0xd4, 0xe7, 0xf6, 0x05, 0x07, 0x2b,
0xda, 0x42, 0x42, 0x8f, 0xa1, 0x1c, 0x46, 0xa4, 0xeb, 0xb1, 0xb9, 0x7a, 0x90, 0xde, 0x61, 0x62, 0xd2, 0xbd, 0x4d, 0x45, 0x0d, 0x04, 0x84, 0x7e, 0x87, 0x7a, 0x9c, 0x10, 0x2f, 0x60, 0x2b, 0xd5,
0x98, 0xbf, 0x16, 0xa0, 0x3a, 0x35, 0x9b, 0x62, 0x9a, 0xc3, 0x88, 0x86, 0x94, 0x91, 0x79, 0x1f, 0x20, 0x5f, 0x61, 0x4e, 0x98, 0x1f, 0xd7, 0xa0, 0xb9, 0xd0, 0x9b, 0xa2, 0x9b, 0xe3, 0x84, 0xc6,
0x28, 0xe3, 0xc5, 0x8e, 0xd4, 0xa5, 0xd8, 0x11, 0xc7, 0xf3, 0x3e, 0xcf, 0xb2, 0xb2, 0xda, 0x42, 0x94, 0x91, 0x55, 0x37, 0x54, 0xe8, 0xc5, 0x89, 0xd4, 0x50, 0x9c, 0x88, 0xe3, 0x55, 0xf7, 0xb3,
0x42, 0x3b, 0x50, 0x18, 0x52, 0x4e, 0xd4, 0x67, 0xe0, 0x46, 0x59, 0xc2, 0xe8, 0x09, 0x80, 0xf8, 0xa9, 0xa8, 0x81, 0x80, 0xd0, 0x21, 0x54, 0x26, 0x94, 0x13, 0x75, 0x0d, 0x3c, 0x0a, 0x4b, 0x31,
0x55, 0x79, 0x0b, 0x73, 0xd6, 0x41, 0x28, 0x69, 0xd2, 0x5d, 0x28, 0x76, 0xa9, 0xef, 0x7b, 0x5c, 0xfa, 0x03, 0x40, 0xfc, 0xaa, 0xbc, 0x95, 0x15, 0x7d, 0x10, 0x48, 0x9e, 0xf4, 0x08, 0xaa, 0x1e,
0x7d, 0x01, 0x6e, 0x74, 0x15, 0x8e, 0xb6, 0xe1, 0x3f, 0x27, 0x09, 0x31, 0x63, 0x76, 0xba, 0x60, 0x0d, 0xc3, 0x80, 0xab, 0x1b, 0xe0, 0x51, 0x56, 0xc9, 0xd1, 0x01, 0x7c, 0xe3, 0x66, 0x31, 0x66,
0x5f, 0xfe, 0x14, 0x94, 0x3a, 0xff, 0xa4, 0xc1, 0x96, 0x8c, 0xa9, 0x42, 0x9b, 0xaf, 0x00, 0x26, 0xcc, 0xc9, 0x27, 0x9c, 0xbb, 0x57, 0x41, 0xcd, 0xfe, 0x2a, 0x0f, 0xf6, 0x65, 0x4c, 0x19, 0x6d,
0xef, 0x35, 0xda, 0x83, 0x75, 0xf9, 0xe8, 0x64, 0xc4, 0x49, 0x20, 0x9a, 0xc2, 0x6c, 0x12, 0x60, 0x46, 0x00, 0xf3, 0xef, 0x1a, 0x1d, 0x43, 0x5b, 0x6e, 0x9d, 0x4c, 0x39, 0x89, 0x44, 0x51, 0x98,
0x67, 0x40, 0xec, 0x3e, 0xf1, 0xdc, 0x3e, 0x57, 0x53, 0xb7, 0x26, 0xa0, 0xfd, 0x0b, 0x66, 0x5f, 0x43, 0x22, 0xec, 0x8e, 0x89, 0x33, 0x22, 0x81, 0x3f, 0xe2, 0xaa, 0xeb, 0x76, 0x84, 0xe8, 0xe4,
0x22, 0x07, 0x92, 0x68, 0xbe, 0xfd, 0x3c, 0x36, 0xb4, 0xd3, 0xb1, 0xa1, 0x9d, 0x8d, 0x0d, 0xed, 0x56, 0x73, 0x22, 0x25, 0xa7, 0x52, 0x81, 0xda, 0x00, 0x09, 0xf1, 0x46, 0xc4, 0xbb, 0x74, 0xf8,
0xe7, 0xd8, 0xd0, 0x3e, 0x9c, 0x1b, 0xb9, 0xb3, 0x73, 0x23, 0xf7, 0xed, 0xdc, 0xc8, 0x1d, 0xef, 0x54, 0xba, 0x5e, 0xb3, 0xeb, 0x6a, 0xe6, 0x7c, 0xda, 0x7b, 0xf2, 0x6a, 0x66, 0x68, 0x57, 0x33,
0xba, 0x1e, 0xef, 0xc7, 0x8e, 0xd5, 0xa5, 0x7e, 0xe3, 0xf2, 0xa9, 0x32, 0xb9, 0x4c, 0x8f, 0x8d, 0x43, 0xbb, 0x9e, 0x19, 0xda, 0x87, 0x99, 0xa1, 0x3d, 0xbf, 0x31, 0x4a, 0xd7, 0x37, 0x46, 0xe9,
0xd9, 0x13, 0xc7, 0x29, 0xca, 0xf5, 0x9d, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x28, 0x35, 0x60, 0xed, 0x8d, 0x51, 0xba, 0x38, 0xf2, 0x03, 0x3e, 0x4a, 0x5d, 0xcb, 0xa3, 0x61, 0xf7, 0xee, 0xa3,
0x76, 0x8c, 0x06, 0x00, 0x00, 0x33, 0x1f, 0xe6, 0xaf, 0xca, 0xf2, 0x83, 0xe4, 0x56, 0xe5, 0xfc, 0xe1, 0xa7, 0x00, 0x00, 0x00,
0xff, 0xff, 0xf0, 0x06, 0x54, 0xd3, 0xab, 0x06, 0x00, 0x00,
} }
func (this *ConsensusParams) Equal(that interface{}) bool { func (this *ConsensusParams) Equal(that interface{}) bool {
@@ -1002,6 +1013,9 @@ func (this *ABCIParams) Equal(that interface{}) bool {
if this.VoteExtensionsEnableHeight != that1.VoteExtensionsEnableHeight { if this.VoteExtensionsEnableHeight != that1.VoteExtensionsEnableHeight {
return false return false
} }
if this.RecheckTx != that1.RecheckTx {
return false
}
return true return true
} }
func (m *ConsensusParams) Marshal() (dAtA []byte, err error) { func (m *ConsensusParams) Marshal() (dAtA []byte, err error) {
@@ -1424,6 +1438,16 @@ func (m *ABCIParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i _ = i
var l int var l int
_ = l _ = l
if m.RecheckTx {
i--
if m.RecheckTx {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i--
dAtA[i] = 0x10
}
if m.VoteExtensionsEnableHeight != 0 { if m.VoteExtensionsEnableHeight != 0 {
i = encodeVarintParams(dAtA, i, uint64(m.VoteExtensionsEnableHeight)) i = encodeVarintParams(dAtA, i, uint64(m.VoteExtensionsEnableHeight))
i-- i--
@@ -1612,6 +1636,9 @@ func (m *ABCIParams) Size() (n int) {
if m.VoteExtensionsEnableHeight != 0 { if m.VoteExtensionsEnableHeight != 0 {
n += 1 + sovParams(uint64(m.VoteExtensionsEnableHeight)) n += 1 + sovParams(uint64(m.VoteExtensionsEnableHeight))
} }
if m.RecheckTx {
n += 2
}
return n return n
} }
@@ -1908,7 +1935,10 @@ func (m *ConsensusParams) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthParams
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthParams return ErrInvalidLengthParams
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -1996,7 +2026,10 @@ func (m *BlockParams) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthParams
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthParams return ErrInvalidLengthParams
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2117,7 +2150,10 @@ func (m *EvidenceParams) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthParams
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthParams return ErrInvalidLengthParams
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2199,7 +2235,10 @@ func (m *ValidatorParams) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthParams
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthParams return ErrInvalidLengthParams
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2268,7 +2307,10 @@ func (m *VersionParams) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthParams
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthParams return ErrInvalidLengthParams
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2356,7 +2398,10 @@ func (m *HashedParams) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthParams
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthParams return ErrInvalidLengthParams
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2478,7 +2523,10 @@ func (m *SynchronyParams) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthParams
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthParams return ErrInvalidLengthParams
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2728,7 +2776,10 @@ func (m *TimeoutParams) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthParams
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthParams return ErrInvalidLengthParams
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2791,13 +2842,36 @@ func (m *ABCIParams) Unmarshal(dAtA []byte) error {
break break
} }
} }
case 2:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field RecheckTx", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowParams
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.RecheckTx = bool(v != 0)
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipParams(dAtA[iNdEx:]) skippy, err := skipParams(dAtA[iNdEx:])
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthParams
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthParams return ErrInvalidLengthParams
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+4
View File
@@ -141,4 +141,8 @@ message ABCIParams {
// passed to the application for validation in VerifyVoteExtension and given // passed to the application for validation in VerifyVoteExtension and given
// to the application to use when proposing a block during PrepareProposal. // to the application to use when proposing a block during PrepareProposal.
int64 vote_extensions_enable_height = 1; int64 vote_extensions_enable_height = 1;
// Indicates if CheckTx should be called on all the transactions
// remaining in the mempool after a block is executed.
bool recheck_tx = 2;
} }
+60 -15
View File
@@ -2650,7 +2650,10 @@ func (m *PartSetHeader) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2786,7 +2789,10 @@ func (m *Part) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -2903,7 +2909,10 @@ func (m *BlockID) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -3409,7 +3418,10 @@ func (m *Header) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -3491,7 +3503,10 @@ func (m *Data) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -3819,7 +3834,10 @@ func (m *Vote) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -3974,7 +3992,10 @@ func (m *Commit) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -4144,7 +4165,10 @@ func (m *CommitSig) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -4299,7 +4323,10 @@ func (m *ExtendedCommit) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -4537,7 +4564,10 @@ func (m *ExtendedCommitSig) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -4763,7 +4793,10 @@ func (m *Proposal) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -4885,7 +4918,10 @@ func (m *SignedHeader) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -5007,7 +5043,10 @@ func (m *LightBlock) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -5161,7 +5200,10 @@ func (m *BlockMeta) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -5315,7 +5357,10 @@ func (m *TxProof) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+12 -3
View File
@@ -583,7 +583,10 @@ func (m *ValidatorSet) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthValidator
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthValidator return ErrInvalidLengthValidator
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -738,7 +741,10 @@ func (m *Validator) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthValidator
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthValidator return ErrInvalidLengthValidator
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
@@ -843,7 +849,10 @@ func (m *SimpleValidator) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthValidator
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthValidator return ErrInvalidLengthValidator
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+4 -1
View File
@@ -265,7 +265,10 @@ func (m *Consensus) Unmarshal(dAtA []byte) error {
if err != nil { if err != nil {
return err return err
} }
if (skippy < 0) || (iNdEx+skippy) < 0 { if skippy < 0 {
return ErrInvalidLengthTypes
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthTypes return ErrInvalidLengthTypes
} }
if (iNdEx + skippy) > l { if (iNdEx + skippy) > l {
+6
View File
@@ -222,4 +222,10 @@ var plan = transform.Plan{
return fmt.Errorf("unrecognized value: %v", idx.KeyValue) return fmt.Errorf("unrecognized value: %v", idx.KeyValue)
}), }),
}, },
{
// Since https://github.com/tendermint/tendermint/pull/8514.
Desc: "Remove the recheck option from the [mempool] section",
T: transform.Remove(parser.Key{"mempool", "recheck"}),
ErrorOK: true,
},
} }
+1
View File
@@ -9,6 +9,7 @@
-M consensus.timeout-prevote-delta -M consensus.timeout-prevote-delta
-M consensus.timeout-propose -M consensus.timeout-propose
-M consensus.timeout-propose-delta -M consensus.timeout-propose-delta
-M mempool.recheck
-M mempool.version -M mempool.version
-M p2p.addr-book-file -M p2p.addr-book-file
-M p2p.addr-book-strict -M p2p.addr-book-strict
+5 -1
View File
@@ -281,7 +281,11 @@ recv-rate = 5120000
####################################################### #######################################################
[mempool] [mempool]
recheck = true # recheck has been moved from a config option to a global
# consensus param in v0.36
# See https://github.com/tendermint/tendermint/issues/8244 for more information.
# Set true to broadcast transactions in the mempool to other nodes
broadcast = true broadcast = true
# Maximum number of transactions in the mempool # Maximum number of transactions in the mempool
+13 -1
View File
@@ -312,6 +312,18 @@ txs included in a proposed block.
Must have `MaxGas >= -1`. Must have `MaxGas >= -1`.
If `MaxGas == -1`, no limit is enforced. If `MaxGas == -1`, no limit is enforced.
### BlockParams.RecheckTx
This indicates whether all nodes in the network should perform a `CheckTx` on all
transactions remaining in the mempool directly *after* the execution of every block,
i.e. whenever a new application state is created. This is often useful for garbage
collection.
The change will come into effect immediately after `FinalizeBlock` has been
called.
This was previously a local mempool config parameter.
### EvidenceParams.MaxAgeDuration ### EvidenceParams.MaxAgeDuration
This is the maximum age of evidence in time units. This is the maximum age of evidence in time units.
@@ -352,7 +364,7 @@ are expected to have clocks that differ by at most `Precision`.
### SynchronyParams.MessageDelay ### SynchronyParams.MessageDelay
`SynchronyParams.MessageDelay` is a parameter of the Proposer-Based Timestamps `SynchronyParams.MessageDelay` is a parameter of the Proposer-Based Timestamps
algorithm that configures the acceptable upper-bound for transmitting a `Proposal` algorithm that configures the acceptable upper-bound for transmitting a `Proposal`
message from the proposer to all of the validators on the network. message from the proposer to all of the validators on the network.
+48 -47
View File
@@ -5,40 +5,40 @@ Here we describe the data structures in the Tendermint blockchain and the rules
The Tendermint blockchains consists of a short list of data types: The Tendermint blockchains consists of a short list of data types:
- [Data Structures](#data-structures) - [Data Structures](#data-structures)
- [Block](#block) - [Block](#block)
- [Execution](#execution) - [Execution](#execution)
- [Header](#header) - [Header](#header)
- [Version](#version) - [Version](#version)
- [BlockID](#blockid) - [BlockID](#blockid)
- [PartSetHeader](#partsetheader) - [PartSetHeader](#partsetheader)
- [Part](#part) - [Part](#part)
- [Time](#time) - [Time](#time)
- [Data](#data) - [Data](#data)
- [Commit](#commit) - [Commit](#commit)
- [CommitSig](#commitsig) - [CommitSig](#commitsig)
- [BlockIDFlag](#blockidflag) - [BlockIDFlag](#blockidflag)
- [Vote](#vote) - [Vote](#vote)
- [CanonicalVote](#canonicalvote) - [CanonicalVote](#canonicalvote)
- [Proposal](#proposal) - [Proposal](#proposal)
- [SignedMsgType](#signedmsgtype) - [SignedMsgType](#signedmsgtype)
- [Signature](#signature) - [Signature](#signature)
- [EvidenceList](#evidencelist) - [EvidenceList](#evidencelist)
- [Evidence](#evidence) - [Evidence](#evidence)
- [DuplicateVoteEvidence](#duplicatevoteevidence) - [DuplicateVoteEvidence](#duplicatevoteevidence)
- [LightClientAttackEvidence](#lightclientattackevidence) - [LightClientAttackEvidence](#lightclientattackevidence)
- [LightBlock](#lightblock) - [LightBlock](#lightblock)
- [SignedHeader](#signedheader) - [SignedHeader](#signedheader)
- [ValidatorSet](#validatorset) - [ValidatorSet](#validatorset)
- [Validator](#validator) - [Validator](#validator)
- [Address](#address) - [Address](#address)
- [ConsensusParams](#consensusparams) - [ConsensusParams](#consensusparams)
- [BlockParams](#blockparams) - [BlockParams](#blockparams)
- [EvidenceParams](#evidenceparams) - [EvidenceParams](#evidenceparams)
- [ValidatorParams](#validatorparams) - [ValidatorParams](#validatorparams)
- [VersionParams](#versionparams) - [VersionParams](#versionparams)
- [SynchronyParams](#synchronyparams) - [SynchronyParams](#synchronyparams)
- [TimeoutParams](#timeoutparams) - [TimeoutParams](#timeoutparams)
- [Proof](#proof) - [Proof](#proof)
## Block ## Block
@@ -49,7 +49,7 @@ and a list of evidence of malfeasance (ie. signing conflicting votes).
|--------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------| |--------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|
| Header | [Header](#header) | Header corresponding to the block. This field contains information used throughout consensus and other areas of the protocol. To find out what it contains, visit [header] (#header) | Must adhere to the validation rules of [header](#header) | | Header | [Header](#header) | Header corresponding to the block. This field contains information used throughout consensus and other areas of the protocol. To find out what it contains, visit [header] (#header) | Must adhere to the validation rules of [header](#header) |
| Data | [Data](#data) | Data contains a list of transactions. The contents of the transaction is unknown to Tendermint. | This field can be empty or populated, but no validation is performed. Applications can perform validation on individual transactions prior to block creation using [checkTx](../abci/abci.md#checktx). | Data | [Data](#data) | Data contains a list of transactions. The contents of the transaction is unknown to Tendermint. | This field can be empty or populated, but no validation is performed. Applications can perform validation on individual transactions prior to block creation using [checkTx](../abci/abci.md#checktx).
| Evidence | [EvidenceList](#evidence_list) | Evidence contains a list of infractions committed by validators. | Can be empty, but when populated the validations rules from [evidenceList](#evidence_list) apply | | Evidence | [EvidenceList](#evidencelist) | Evidence contains a list of infractions committed by validators. | Can be empty, but when populated the validations rules from [evidenceList](#evidencelist) apply |
| LastCommit | [Commit](#commit) | `LastCommit` includes one vote for every validator. All votes must either be for the previous block, nil or absent. If a vote is for the previous block it must have a valid signature from the corresponding validator. The sum of the voting power of the validators that voted must be greater than 2/3 of the total voting power of the complete validator set. The number of votes in a commit is limited to 10000 (see `types.MaxVotesCount`). | Must be empty for the initial height and must adhere to the validation rules of [commit](#commit). | | LastCommit | [Commit](#commit) | `LastCommit` includes one vote for every validator. All votes must either be for the previous block, nil or absent. If a vote is for the previous block it must have a valid signature from the corresponding validator. The sum of the voting power of the validators that voted must be greater than 2/3 of the total voting power of the complete validator set. The number of votes in a commit is limited to 10000 (see `types.MaxVotesCount`). | Must be empty for the initial height and must adhere to the validation rules of [commit](#commit). |
## Execution ## Execution
@@ -152,7 +152,7 @@ The `BlockID` contains two distinct Merkle roots of the block. The `BlockID` inc
| Name | Type | Description | Validation | | Name | Type | Description | Validation |
|---------------|---------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------| |---------------|---------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------|
| Hash | slice of bytes (`[]byte`) | MerkleRoot of all the fields in the header (ie. `MerkleRoot(header)`. | hash must be of length 32 | | Hash | slice of bytes (`[]byte`) | MerkleRoot of all the fields in the header (ie. `MerkleRoot(header)`. | hash must be of length 32 |
| PartSetHeader | [PartSetHeader](#PartSetHeader) | Used for secure gossiping of the block during consensus, is the MerkleRoot of the complete serialized block cut into parts (ie. `MerkleRoot(MakeParts(block))`). | Must adhere to the validation rules of [PartSetHeader](#PartSetHeader) | | PartSetHeader | [PartSetHeader](#partsetheader) | Used for secure gossiping of the block during consensus, is the MerkleRoot of the complete serialized block cut into parts (ie. `MerkleRoot(MakeParts(block))`). | Must adhere to the validation rules of [PartSetHeader](#partsetheader) |
See [MerkleRoot](./encoding.md#MerkleRoot) for details. See [MerkleRoot](./encoding.md#MerkleRoot) for details.
@@ -238,7 +238,7 @@ The vote extension is not part of the [`CanonicalVote`](#canonicalvote).
| Height | uint64 | Height for which this vote was created. | Must be > 0 | | Height | uint64 | Height for which this vote was created. | Must be > 0 |
| Round | int32 | Round that the commit corresponds to. | Must be > 0 | | Round | int32 | Round that the commit corresponds to. | Must be > 0 |
| BlockID | [BlockID](#blockid) | The blockID of the corresponding block. | [BlockID](#blockid) | | BlockID | [BlockID](#blockid) | The blockID of the corresponding block. | [BlockID](#blockid) |
| Timestamp | [Time](#Time) | The time at which a validator signed. | [Time](#time) | | Timestamp | [Time](#time) | The time at which a validator signed. | [Time](#time) |
| ValidatorAddress | slice of bytes (`[]byte`) | Address of the validator | Length must be equal to 20 | | ValidatorAddress | slice of bytes (`[]byte`) | Address of the validator | Length must be equal to 20 |
| ValidatorIndex | int32 | Index at a specific block height that corresponds to the Index of the validator in the set. | must be > 0 | | ValidatorIndex | int32 | Index at a specific block height that corresponds to the Index of the validator in the set. | must be > 0 |
| Signature | slice of bytes (`[]byte`) | Signature by the validator if they participated in consensus for the associated bock. | Length of signature must be > 0 and < 64 | | Signature | slice of bytes (`[]byte`) | Signature by the validator if they participated in consensus for the associated bock. | Length of signature must be > 0 and < 64 |
@@ -295,7 +295,7 @@ is locked in POLRound. The message is signed by the validator private key.
| Round | int32 | Round that the commit corresponds to. | Must be > 0 | | Round | int32 | Round that the commit corresponds to. | Must be > 0 |
| POLRound | int64 | Proof of lock | Must be > 0 | | POLRound | int64 | Proof of lock | Must be > 0 |
| BlockID | [BlockID](#blockid) | The blockID of the corresponding block. | [BlockID](#blockid) | | BlockID | [BlockID](#blockid) | The blockID of the corresponding block. | [BlockID](#blockid) |
| Timestamp | [Time](#Time) | Timestamp represents the time at which a validator signed. | [Time](#time) | | Timestamp | [Time](#time) | Timestamp represents the time at which a validator signed. | [Time](#time) |
| Signature | slice of bytes (`[]byte`) | Signature by the validator if they participated in consensus for the associated bock. | Length of signature must be > 0 and < 64 | | Signature | slice of bytes (`[]byte`) | Signature by the validator if they participated in consensus for the associated bock. | Length of signature must be > 0 and < 64 |
## SignedMsgType ## SignedMsgType
@@ -346,7 +346,7 @@ in the same round of the same height. Votes are lexicographically sorted on `Blo
| VoteB | [Vote](#vote) | The second vote submitted by a validator when they equivocated | VoteB must adhere to [Vote](#vote) validation rules | | VoteB | [Vote](#vote) | The second vote submitted by a validator when they equivocated | VoteB must adhere to [Vote](#vote) validation rules |
| TotalVotingPower | int64 | The total power of the validator set at the height of equivocation | Must be equal to nodes own copy of the data | | TotalVotingPower | int64 | The total power of the validator set at the height of equivocation | Must be equal to nodes own copy of the data |
| ValidatorPower | int64 | Power of the equivocating validator at the height | Must be equal to the nodes own copy of the data | | ValidatorPower | int64 | Power of the equivocating validator at the height | Must be equal to the nodes own copy of the data |
| Timestamp | [Time](#Time) | Time of the block where the equivocation occurred | Must be equal to the nodes own copy of the data | | Timestamp | [Time](#time) | Time of the block where the equivocation occurred | Must be equal to the nodes own copy of the data |
### LightClientAttackEvidence ### LightClientAttackEvidence
@@ -355,13 +355,13 @@ a light client such that a full node can verify, propose and commit the evidence
punishment of the malicious validators. There are three forms of attacks: Lunatic, Equivocation punishment of the malicious validators. There are three forms of attacks: Lunatic, Equivocation
and Amnesia. These attacks are exhaustive. You can find a more detailed overview of this [here](../light-client/accountability#the_misbehavior_of_faulty_validators) and Amnesia. These attacks are exhaustive. You can find a more detailed overview of this [here](../light-client/accountability#the_misbehavior_of_faulty_validators)
| Name | Type | Description | Validation | | Name | Type | Description | Validation |
|----------------------|------------------------------------|----------------------------------------------------------------------|------------------------------------------------------------------| |----------------------|----------------------------------|----------------------------------------------------------------------|------------------------------------------------------------------|
| ConflictingBlock | [LightBlock](#LightBlock) | Read Below | Must adhere to the validation rules of [lightBlock](#lightblock) | | ConflictingBlock | [LightBlock](#lightblock) | Read Below | Must adhere to the validation rules of [lightBlock](#lightblock) |
| CommonHeight | int64 | Read Below | must be > 0 | | CommonHeight | int64 | Read Below | must be > 0 |
| Byzantine Validators | Array of [Validators](#Validators) | validators that acted maliciously | Read Below | | Byzantine Validators | Array of [Validator](#validator) | validators that acted maliciously | Read Below |
| TotalVotingPower | int64 | The total power of the validator set at the height of the infraction | Must be equal to the nodes own copy of the data | | TotalVotingPower | int64 | The total power of the validator set at the height of the infraction | Must be equal to the nodes own copy of the data |
| Timestamp | [Time](#Time) | Time of the block where the infraction occurred | Must be equal to the nodes own copy of the data | | Timestamp | [Time](#time) | Time of the block where the infraction occurred | Must be equal to the nodes own copy of the data |
## LightBlock ## LightBlock
@@ -380,7 +380,7 @@ The SignedhHeader is the [header](#header) accompanied by the commit to prove it
| Name | Type | Description | Validation | | Name | Type | Description | Validation |
|--------|-------------------|-------------------|-----------------------------------------------------------------------------------| |--------|-------------------|-------------------|-----------------------------------------------------------------------------------|
| Header | [Header](#Header) | [Header](#header) | Header cannot be nil and must adhere to the [Header](#Header) validation criteria | | Header | [Header](#header) | [Header](#header) | Header cannot be nil and must adhere to the [Header](#header) validation criteria |
| Commit | [Commit](#commit) | [Commit](#commit) | Commit cannot be nil and must adhere to the [Commit](#commit) criteria | | Commit | [Commit](#commit) | [Commit](#commit) | Commit cannot be nil and must adhere to the [Commit](#commit) criteria |
## ValidatorSet ## ValidatorSet
@@ -429,6 +429,7 @@ func SumTruncated(bz []byte) []byte {
|--------------|-------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------| |--------------|-------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|
| max_bytes | int64 | Max size of a block, in bytes. | 1 | | max_bytes | int64 | Max size of a block, in bytes. | 1 |
| max_gas | int64 | Max sum of `GasWanted` in a proposed block. NOTE: blocks that violate this may be committed if there are Byzantine proposers. It's the application's responsibility to handle this when processing a block! | 2 | | max_gas | int64 | Max sum of `GasWanted` in a proposed block. NOTE: blocks that violate this may be committed if there are Byzantine proposers. It's the application's responsibility to handle this when processing a block! | 2 |
| recheck_tx | bool | Indicated whether to run `CheckTx` on all remaining transactions *after* every execution of a block | 3 |
### EvidenceParams ### EvidenceParams
+7
View File
@@ -101,6 +101,7 @@ type TimeoutParams struct {
// Interface. // Interface.
type ABCIParams struct { type ABCIParams struct {
VoteExtensionsEnableHeight int64 `json:"vote_extensions_enable_height"` VoteExtensionsEnableHeight int64 `json:"vote_extensions_enable_height"`
RecheckTx bool `json:"recheck_tx"`
} }
// VoteExtensionsEnabled returns true if vote extensions are enabled at height h // VoteExtensionsEnabled returns true if vote extensions are enabled at height h
@@ -197,6 +198,8 @@ func DefaultABCIParams() ABCIParams {
return ABCIParams{ return ABCIParams{
// When set to 0, vote extensions are not required. // When set to 0, vote extensions are not required.
VoteExtensionsEnableHeight: 0, VoteExtensionsEnableHeight: 0,
// When true, run CheckTx on each transaction in the mempool after each height.
RecheckTx: true,
} }
} }
@@ -378,6 +381,7 @@ func (params ConsensusParams) ValidateUpdate(updated *tmproto.ConsensusParams, h
// Only the Block.MaxBytes and Block.MaxGas are included in the hash. // Only the Block.MaxBytes and Block.MaxGas are included in the hash.
// This allows the ConsensusParams to evolve more without breaking the block // This allows the ConsensusParams to evolve more without breaking the block
// protocol. No need for a Merkle tree here, just a small struct to hash. // protocol. No need for a Merkle tree here, just a small struct to hash.
// TODO: We should hash the other parameters as well
func (params ConsensusParams) HashConsensusParams() []byte { func (params ConsensusParams) HashConsensusParams() []byte {
hp := tmproto.HashedParams{ hp := tmproto.HashedParams{
BlockMaxBytes: params.Block.MaxBytes, BlockMaxBytes: params.Block.MaxBytes,
@@ -459,6 +463,7 @@ func (params ConsensusParams) UpdateConsensusParams(params2 *tmproto.ConsensusPa
} }
if params2.Abci != nil { if params2.Abci != nil {
res.ABCI.VoteExtensionsEnableHeight = params2.Abci.GetVoteExtensionsEnableHeight() res.ABCI.VoteExtensionsEnableHeight = params2.Abci.GetVoteExtensionsEnableHeight()
res.ABCI.RecheckTx = params2.Abci.GetRecheckTx()
} }
return res return res
} }
@@ -494,6 +499,7 @@ func (params *ConsensusParams) ToProto() tmproto.ConsensusParams {
}, },
Abci: &tmproto.ABCIParams{ Abci: &tmproto.ABCIParams{
VoteExtensionsEnableHeight: params.ABCI.VoteExtensionsEnableHeight, VoteExtensionsEnableHeight: params.ABCI.VoteExtensionsEnableHeight,
RecheckTx: params.ABCI.RecheckTx,
}, },
} }
} }
@@ -544,6 +550,7 @@ func ConsensusParamsFromProto(pbParams tmproto.ConsensusParams) ConsensusParams
} }
if pbParams.Abci != nil { if pbParams.Abci != nil {
c.ABCI.VoteExtensionsEnableHeight = pbParams.Abci.GetVoteExtensionsEnableHeight() c.ABCI.VoteExtensionsEnableHeight = pbParams.Abci.GetVoteExtensionsEnableHeight()
c.ABCI.RecheckTx = pbParams.Abci.GetRecheckTx()
} }
return c return c
} }
+2
View File
@@ -178,6 +178,7 @@ func TestConsensusParamsValidation(t *testing.T) {
type makeParamsArgs struct { type makeParamsArgs struct {
blockBytes int64 blockBytes int64
blockGas int64 blockGas int64
recheck bool
evidenceAge int64 evidenceAge int64
maxEvidenceBytes int64 maxEvidenceBytes int64
pubkeyTypes []string pubkeyTypes []string
@@ -240,6 +241,7 @@ func makeParams(args makeParamsArgs) ConsensusParams {
}, },
ABCI: ABCIParams{ ABCI: ABCIParams{
VoteExtensionsEnableHeight: args.abciExtensionHeight, VoteExtensionsEnableHeight: args.abciExtensionHeight,
RecheckTx: args.recheck,
}, },
} }
} }