mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-06 13:26:23 +00:00
* Performance improvements for the event query API (#7319) Rework the implementation of event query parsing and execution to improve performance and reduce memory usage. Previous memory and CPU profiles of the pubsub service showed query processing as a significant hotspot. While we don't have evidence that this is visibly hurting users, fixing it is fairly easy and self-contained. Updates #6439. Typical benchmark results comparing the original implementation (PEG) with the reworked implementation (Custom): ``` TEST TIME/OP BYTES/OP ALLOCS/OP SPEEDUP MEM SAVING BenchmarkParsePEG-12 51716 ns 526832 27 BenchmarkParseCustom-12 2167 ns 4616 17 23.8x 99.1% BenchmarkMatchPEG-12 3086 ns 1097 22 BenchmarkMatchCustom-12 294.2 ns 64 3 10.5x 94.1% ```
3.1 KiB
3.1 KiB
Unreleased Changes
v0.38.0
BREAKING CHANGES
-
CLI/RPC/Config
-
Apps
-
P2P Protocol
-
Go API
-
Blockchain Protocol
FEATURES
IMPROVEMENTS
- [pubsub] #7319 Performance improvements for the event query API (@creachadair)
BUG FIXES
v0.37.0
Special thanks to external contributors on this release:
Friendly reminder, we have a bug bounty program.
BREAKING CHANGES
-
CLI/RPC/Config
- [config] #9259 Rename the fastsync section and the fast_sync key blocksync and block_sync respectively
-
Apps
- [abci/counter] #6684 Delete counter example app
- [abci] #5783 Make length delimiter encoding consistent (
uint64) between ABCI and P2P wire-level protocols - [abci] #9145 Removes unused Response/Request
SetOptionfrom ABCI (@samricotta) - [abci/params] #9287 Deduplicate
ConsensusParamsandBlockParamsso onlytypesproto definitions are used (@cmwaters)- Remove
TimeIotaMsand use a hard-coded 1 millisecond value to ensure monotonically increasing block times. - Rename
AppVersiontoAppso as to not stutter.
- Remove
- [types] #9287 Reduce the use of protobuf types in core logic. (@cmwaters)
ConsensusParams,BlockParams,ValidatorParams,EvidenceParams,VersionParamshave become native types. They still utilize protobuf when being sent over the wire or written to disk.- Moved
ValidateConsensusParamsinside (now native type)ConsensusParams, and renamed it toValidateBasic.
- [abci] #9301 New ABCI methods
PrepareProposalandProcessProposalwhich give the app control over transactions proposed and allows for verification of proposed blocks. - [abci] #8216 Renamed
EvidenceTypetoMisbehaviorTypeandEvidencetoMisbehavioras a more accurate label of their contents. (@williambanfield, @sergio-mena) - [abci] #9122 Renamed
LastCommitInfotoCommitInfoin preparation for vote extensions. (@cmwaters) - [abci] #8656, #8901 Added cli commands for
PrepareProposalandProcessProposal. (@jmalicevic, @hvanz) - [abci] #6403 Change the
keyandvaluefields from[]bytetostringin theEventAttributetype. (@alexanderbez)
-
P2P Protocol
-
Go API
- [all] #9144 Change spelling from British English to American (@cmwaters)
- Rename "Subscription.Cancelled()" to "Subscription.Canceled()" in libs/pubsub
- [all] #9144 Change spelling from British English to American (@cmwaters)
-
Blockchain Protocol
FEATURES
- [abci] #9301 New ABCI methods
PrepareProposalandProcessProposalwhich give the app control over transactions proposed and allows for verification of proposed blocks.
IMPROVEMENTS
-
[crypto] #9250 Update to use btcec v2 and the latest btcutil. (@wcsiu)
-
[proto] #9356 Migrate from
gogo/protobuftocosmos/gogoproto(@julienrbrt) -
[rpc] #9276 Added
headerandheader_by_hashqueries to the RPC client (@samricotta) -
[abci] #5706 Added
AbciVersiontoRequestInfoallowing applications to check ABCI version when connecting to Tendermint. (@marbar3778)
BUG FIXES
- [consensus] #9229 fix round number of
enterProposewhen handlingRoundStepNewRoundtimeout. (@fatcat22) - [docker] #9073 enable cross platform build using docker buildx