* Revert "abci: Add unsynchronized local client (#9660)"
This reverts commit 45071d1f23.
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* proxy: Add unsync local client creator
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* e2e: Extend tests
Extend the E2E tests to randomly choose between the sync (default) and
unsync (new) local client creator.
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* abci: Remove redundant interface constraint
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* abci: Remove irrelevant doc comment
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* proxy: Remove backticks in doc comments
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* e2e: Remove unnecessary gap between doc comment and struct
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Add pending changelog entry
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* e2e: Expand on BuiltinProxyMode param docstring
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Remove builtin proxy mode config option from CI test
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* e2e: Make builtin proxy mode option testnet-wide
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* e2e: Embed sync/unsync notion in node protocol
The approach of randomly generating the proxy mode across testnets
resulted in a totally uneven ratio of sync to unsync modes for all
testnets that happened to have a protocol of "builtin".
This commit adapts the E2E tests to have a new ABCI protocol option:
"builtin_unsync". This results in a better spread of sync/unsync choices
for generated testnets.
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* e2e: Remove unused type
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
6.4 KiB
Unreleased Changes
v0.38.0
BREAKING CHANGES
-
CLI/RPC/Config
-
Apps
-
P2P Protocol
-
Go API
- [p2p] #9625 Remove unused p2p/trust package (@cmwaters)
- [rpc] #9655 Remove global environment and replace with constructor. (@williambanfield,@tychoish)
- [node] #9655 Move DBContext and DBProvider from the node package to the config package. (@williambanfield,@tychoish)
-
Blockchain Protocol
-
Data Storage
- [state] #6541 Move pruneBlocks from consensus/state to state/execution. (@JayT106)
-
Tooling
- [tools/tm-signer-harness] #6498 Set OS home dir to instead of the hardcoded PATH. (@JayT106)
- [metrics] #9682 move state-syncing and block-syncing metrics to their respective packages (@cmwaters) labels have moved from block_syncing -> blocksync_syncing and state_syncing -> statesync_syncing
- [inspect] #9655 Add a new
inspectcommand for introspecting the state and block store of a crashed tendermint node. (@williambanfield)
FEATURES
- [proxy] #9830 Introduce
NewUnsyncLocalClientCreator, which allows local ABCI clients to have the same concurrency model as remote clients (i.e. one mutex per client "connection", for each of the four ABCI "connections"). - [config] #9680 Introduce
BootstrapPeersto the config to allow nodes to list peers to be added to the addressbook upon start up (@cmwaters)
IMPROVEMENTS
- [pubsub] #7319 Performance improvements for the event query API (@creachadair)
- [p2p/pex] #6509 Improve addrBook.hash performance (@cuonglm)
- [crypto/merkle] #6443 & #6513 Improve HashAlternatives performance (@cuonglm, @marbar3778)
- [rpc] #9650 Enable caching of RPC responses (@JayT106)
- [consensus] #9760 Save peer LastCommit correctly to achieve 50% reduction in gossiped precommits. (@williambanfield)
BUG FIXES
- [docker] #9462 ensure Docker image uses consistent version of Go
- [abci-cli] #9717 fix broken abci-cli help command
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
- [crypto/sr25519] #6526 Do not re-execute the Ed25519-style key derivation step when doing signing and verification. The derivation is now done once and only once. This breaks
sr25519.GenPrivKeyFromSecretoutput compatibility. (@Yawning)
- [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)
-
[cli] #9171 add
--hardflag to rollback command (and a boolean to theRollbackStatemethod). This will rollback state and remove the last block. This command can be triggered multiple times. The application must also rollback state to the same height. (@tsutsu, @cmwaters) -
[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) -
[node] #6059 Validate and complete genesis doc before saving to state store (@silasdavis)
-
[crypto/ed25519] #5632 Adopt zip215
ed25519verification. (@marbar3778) -
[crypto/ed25519] #6526 Use curve25519-voi for
ed25519signing and verification. (@Yawning) -
[crypto/sr25519] #6526 Use curve25519-voi for
sr25519signing and verification. (@Yawning) -
[crypto] #6120 Implement batch verification interface for ed25519 and sr25519. (@marbar3778 & @Yawning)
-
[types] #6120 use batch verification for verifying commits signatures. (@marbar3778 & @cmwaters & @Yawning)
- If the key type supports the batch verification API it will try to batch verify. If the verification fails we will single verify each signature.
-
[state] #9505 Added logic so when pruning, the evidence period is taken into consideration and only deletes unecessary data (@samricotta)
BUG FIXES
- [consensus] #9229 fix round number of
enterProposewhen handlingRoundStepNewRoundtimeout. (@fatcat22) - [docker] #9073 enable cross platform build using docker buildx
- [blocksync] #9518 handle the case when the sending queue is full: retry block request after a timeout