mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-09 11:31:19 +00:00
Version bump; Update Upgrading.md; linkify Changelog (#2679)
* version bump * update UPGRADING.md * add missing pr numbers to changelog pending * linkify changelog
This commit is contained in:
parent
9d62bd0ad3
commit
f94eb42ebe
@ -22,86 +22,86 @@ Friendly reminder, we have a [bug bounty program](https://hackerone.com/tendermi
|
|||||||
BREAKING CHANGES:
|
BREAKING CHANGES:
|
||||||
|
|
||||||
* CLI/RPC/Config
|
* CLI/RPC/Config
|
||||||
* [config] \#2232 timeouts as time.Duration, not ints
|
* [config] [\#2232](https://github.com/tendermint/tendermint/issues/2232) timeouts as time.Duration, not ints
|
||||||
* [config] \#2505 Remove Mempool.RecheckEmpty (it was effectively useless anyways)
|
* [config] [\#2505](https://github.com/tendermint/tendermint/issues/2505) Remove Mempool.RecheckEmpty (it was effectively useless anyways)
|
||||||
* [config] `mempool.wal` is disabled by default
|
* [config] [\#2490](https://github.com/tendermint/tendermint/issues/2490) `mempool.wal` is disabled by default
|
||||||
* [privval] \#2459 Split `SocketPVMsg`s implementations into Request and Response, where the Response may contain a error message (returned by the remote signer)
|
* [privval] [\#2459](https://github.com/tendermint/tendermint/issues/2459) Split `SocketPVMsg`s implementations into Request and Response, where the Response may contain a error message (returned by the remote signer)
|
||||||
* [state] \#2644 Add Version field to State, breaking the format of State as
|
* [state] [\#2644](https://github.com/tendermint/tendermint/issues/2644) Add Version field to State, breaking the format of State as
|
||||||
encoded on disk.
|
encoded on disk.
|
||||||
* [rpc] \#2298 `/abci_query` takes `prove` argument instead of `trusted` and switches the default
|
* [rpc] [\#2298](https://github.com/tendermint/tendermint/issues/2298) `/abci_query` takes `prove` argument instead of `trusted` and switches the default
|
||||||
behaviour to `prove=false`
|
behaviour to `prove=false`
|
||||||
* [rpc] \#2654 Remove all `node_info.other.*_version` fields in `/status` and
|
* [rpc] [\#2654](https://github.com/tendermint/tendermint/issues/2654) Remove all `node_info.other.*_version` fields in `/status` and
|
||||||
`/net_info`
|
`/net_info`
|
||||||
|
|
||||||
* Apps
|
* Apps
|
||||||
* [abci] \#2298 ResponseQuery.Proof is now a structured merkle.Proof, not just
|
* [abci] [\#2298](https://github.com/tendermint/tendermint/issues/2298) ResponseQuery.Proof is now a structured merkle.Proof, not just
|
||||||
arbitrary bytes
|
arbitrary bytes
|
||||||
* [abci] \#2644 Add Version to Header and shift all fields by one
|
* [abci] [\#2644](https://github.com/tendermint/tendermint/issues/2644) Add Version to Header and shift all fields by one
|
||||||
* [abci] \#2662 Bump the field numbers for some `ResponseInfo` fields to make room for
|
* [abci] [\#2662](https://github.com/tendermint/tendermint/issues/2662) Bump the field numbers for some `ResponseInfo` fields to make room for
|
||||||
`AppVersion`
|
`AppVersion`
|
||||||
|
|
||||||
* Go API
|
* Go API
|
||||||
* [config] \#2232 timeouts as time.Duration, not ints
|
* [config] [\#2232](https://github.com/tendermint/tendermint/issues/2232) timeouts as time.Duration, not ints
|
||||||
* [crypto/merkle & lite] \#2298 Various changes to accomodate General Merkle trees
|
* [crypto/merkle & lite] [\#2298](https://github.com/tendermint/tendermint/issues/2298) Various changes to accomodate General Merkle trees
|
||||||
* [crypto/merkle] \#2595 Remove all Hasher objects in favor of byte slices
|
* [crypto/merkle] [\#2595](https://github.com/tendermint/tendermint/issues/2595) Remove all Hasher objects in favor of byte slices
|
||||||
* [crypto/merkle] \#2635 merkle.SimpleHashFromTwoHashes is no longer exported
|
* [crypto/merkle] [\#2635](https://github.com/tendermint/tendermint/issues/2635) merkle.SimpleHashFromTwoHashes is no longer exported
|
||||||
* [node] Remove node.RunForever
|
* [node] [\#2479](https://github.com/tendermint/tendermint/issues/2479) Remove node.RunForever
|
||||||
* [rpc/client] \#2298 `ABCIQueryOptions.Trusted` -> `ABCIQueryOptions.Prove`
|
* [rpc/client] [\#2298](https://github.com/tendermint/tendermint/issues/2298) `ABCIQueryOptions.Trusted` -> `ABCIQueryOptions.Prove`
|
||||||
* [types] \#2298 Remove `Index` and `Total` fields from `TxProof`.
|
* [types] [\#2298](https://github.com/tendermint/tendermint/issues/2298) Remove `Index` and `Total` fields from `TxProof`.
|
||||||
* [types] \#2598 `VoteTypeXxx` are now of type `SignedMsgType byte` and named `XxxType`, eg. `PrevoteType`,
|
* [types] [\#2598](https://github.com/tendermint/tendermint/issues/2598) `VoteTypeXxx` are now of type `SignedMsgType byte` and named `XxxType`, eg. `PrevoteType`,
|
||||||
`PrecommitType`.
|
`PrecommitType`.
|
||||||
|
|
||||||
* Blockchain Protocol
|
* Blockchain Protocol
|
||||||
* [types] Update SignBytes for `Vote`/`Proposal`/`Heartbeat`:
|
* [types] Update SignBytes for `Vote`/`Proposal`/`Heartbeat`:
|
||||||
* \#2459 Use amino encoding instead of JSON in `SignBytes`.
|
* [\#2459](https://github.com/tendermint/tendermint/issues/2459) Use amino encoding instead of JSON in `SignBytes`.
|
||||||
* \#2598 Reorder fields and use fixed sized encoding.
|
* [\#2598](https://github.com/tendermint/tendermint/issues/2598) Reorder fields and use fixed sized encoding.
|
||||||
* \#2598 Change `Type` field fromt `string` to `byte` and use new
|
* [\#2598](https://github.com/tendermint/tendermint/issues/2598) Change `Type` field fromt `string` to `byte` and use new
|
||||||
`SignedMsgType` to enumerate.
|
`SignedMsgType` to enumerate.
|
||||||
* [types] \#2512 Remove the pubkey field from the validator hash
|
* [types] [\#2512](https://github.com/tendermint/tendermint/issues/2512) Remove the pubkey field from the validator hash
|
||||||
* [types] \#2644 Add Version struct to Header
|
* [types] [\#2644](https://github.com/tendermint/tendermint/issues/2644) Add Version struct to Header
|
||||||
* [types] \#2609 ConsensusParams.Hash() is the hash of the amino encoded
|
* [types] [\#2609](https://github.com/tendermint/tendermint/issues/2609) ConsensusParams.Hash() is the hash of the amino encoded
|
||||||
struct instead of the Merkle tree of the fields
|
struct instead of the Merkle tree of the fields
|
||||||
* [state] \#2587 Require block.Time of the fist block to be genesis time
|
* [state] [\#2587](https://github.com/tendermint/tendermint/issues/2587) Require block.Time of the fist block to be genesis time
|
||||||
* [state] \#2644 Require block.Version to match state.Version
|
* [state] [\#2644](https://github.com/tendermint/tendermint/issues/2644) Require block.Version to match state.Version
|
||||||
* [types] \#2670 Header.Hash() builds Merkle tree out of fields in the same
|
* [types] [\#2670](https://github.com/tendermint/tendermint/issues/2670) Header.Hash() builds Merkle tree out of fields in the same
|
||||||
order they appear in the header, instead of sorting by field name
|
order they appear in the header, instead of sorting by field name
|
||||||
|
|
||||||
* P2P Protocol
|
* P2P Protocol
|
||||||
* [p2p] \#2654 Add `ProtocolVersion` struct with protocol versions to top of
|
* [p2p] [\#2654](https://github.com/tendermint/tendermint/issues/2654) Add `ProtocolVersion` struct with protocol versions to top of
|
||||||
DefaultNodeInfo and require `ProtocolVersion.Block` to match during peer handshake
|
DefaultNodeInfo and require `ProtocolVersion.Block` to match during peer handshake
|
||||||
|
|
||||||
FEATURES:
|
FEATURES:
|
||||||
- [abci] \#2557 Add `Codespace` field to `Response{CheckTx, DeliverTx, Query}`
|
- [abci] [\#2557](https://github.com/tendermint/tendermint/issues/2557) Add `Codespace` field to `Response{CheckTx, DeliverTx, Query}`
|
||||||
- [abci] \#2662 Add `BlockVersion` and `P2PVersion` to `RequestInfo`
|
- [abci] [\#2662](https://github.com/tendermint/tendermint/issues/2662) Add `BlockVersion` and `P2PVersion` to `RequestInfo`
|
||||||
- [crypto/merkle] \#2298 General Merkle Proof scheme for chaining various types of Merkle trees together
|
- [crypto/merkle] [\#2298](https://github.com/tendermint/tendermint/issues/2298) General Merkle Proof scheme for chaining various types of Merkle trees together
|
||||||
|
|
||||||
IMPROVEMENTS:
|
IMPROVEMENTS:
|
||||||
- Additional Metrics
|
- Additional Metrics
|
||||||
- [consensus] [\#2169](https://github.com/cosmos/cosmos-sdk/issues/2169)
|
- [consensus] [\#2169](https://github.com/cosmos/cosmos-sdk/issues/2169)
|
||||||
- [p2p] [\#2169](https://github.com/cosmos/cosmos-sdk/issues/2169)
|
- [p2p] [\#2169](https://github.com/cosmos/cosmos-sdk/issues/2169)
|
||||||
- [config] \#2232 Added ValidateBasic method, which performs basic checks
|
- [config] [\#2232](https://github.com/tendermint/tendermint/issues/2232) Added ValidateBasic method, which performs basic checks
|
||||||
- [crypto/ed25519] \#2558 Switch to use latest `golang.org/x/crypto` through our fork at
|
- [crypto/ed25519] [\#2558](https://github.com/tendermint/tendermint/issues/2558) Switch to use latest `golang.org/x/crypto` through our fork at
|
||||||
github.com/tendermint/crypto
|
github.com/tendermint/crypto
|
||||||
- [tools] \#2238 Binary dependencies are now locked to a specific git commit
|
- [tools] [\#2238](https://github.com/tendermint/tendermint/issues/2238) Binary dependencies are now locked to a specific git commit
|
||||||
|
|
||||||
BUG FIXES:
|
BUG FIXES:
|
||||||
- [autofile] \#2428 Group.RotateFile need call Flush() before rename (@goolAdapter)
|
- [autofile] [\#2428](https://github.com/tendermint/tendermint/issues/2428) Group.RotateFile need call Flush() before rename (@goolAdapter)
|
||||||
- [common] Fixed a bug in the `BitArray.Or` method
|
- [common] [\#2533](https://github.com/tendermint/tendermint/issues/2533) Fixed a bug in the `BitArray.Or` method
|
||||||
- [common] Fixed a bug in the `BitArray.Sub` method (@james-ray)
|
- [common] [\#2506](https://github.com/tendermint/tendermint/issues/2506) Fixed a bug in the `BitArray.Sub` method (@james-ray)
|
||||||
- [common] \#2534 Fix `BitArray.PickRandom` to choose uniformly from true bits
|
- [common] [\#2534](https://github.com/tendermint/tendermint/issues/2534) Fix `BitArray.PickRandom` to choose uniformly from true bits
|
||||||
- [consensus] [\#1690](https://github.com/tendermint/tendermint/issues/1690) Wait for
|
- [consensus] [\#1690](https://github.com/tendermint/tendermint/issues/1690) Wait for
|
||||||
timeoutPrecommit before starting next round
|
timeoutPrecommit before starting next round
|
||||||
- [consensus] [\#1745](https://github.com/tendermint/tendermint/issues/1745) Wait for
|
- [consensus] [\#1745](https://github.com/tendermint/tendermint/issues/1745) Wait for
|
||||||
Proposal or timeoutProposal before entering prevote
|
Proposal or timeoutProposal before entering prevote
|
||||||
- [consensus] \#2642 Only propose ValidBlock, not LockedBlock
|
- [consensus] [\#2642](https://github.com/tendermint/tendermint/issues/2642) Only propose ValidBlock, not LockedBlock
|
||||||
- [consensus] \#2642 Initialized ValidRound and LockedRound to -1
|
- [consensus] [\#2642](https://github.com/tendermint/tendermint/issues/2642) Initialized ValidRound and LockedRound to -1
|
||||||
- [consensus] \#1637 Limit the amount of evidence that can be included in a
|
- [consensus] [\#1637](https://github.com/tendermint/tendermint/issues/1637) Limit the amount of evidence that can be included in a
|
||||||
block
|
block
|
||||||
- [evidence] \#2515 Fix db iter leak (@goolAdapter)
|
- [evidence] [\#2515](https://github.com/tendermint/tendermint/issues/2515) Fix db iter leak (@goolAdapter)
|
||||||
- [libs/event] \#2518 Fix event concurrency flaw (@goolAdapter)
|
- [libs/event] [\#2518](https://github.com/tendermint/tendermint/issues/2518) Fix event concurrency flaw (@goolAdapter)
|
||||||
- [node] \#2434 Make node respond to signal interrupts while sleeping for genesis time
|
- [node] [\#2434](https://github.com/tendermint/tendermint/issues/2434) Make node respond to signal interrupts while sleeping for genesis time
|
||||||
- [state] \#2616 Pass nil to NewValidatorSet() when genesis file's Validators field is nil
|
- [state] [\#2616](https://github.com/tendermint/tendermint/issues/2616) Pass nil to NewValidatorSet() when genesis file's Validators field is nil
|
||||||
- [p2p] \#2555 Fix p2p switch FlushThrottle value (@goolAdapter)
|
- [p2p] [\#2555](https://github.com/tendermint/tendermint/issues/2555) Fix p2p switch FlushThrottle value (@goolAdapter)
|
||||||
- [p2p] \#2668 Reconnect to originally dialed address (not self-reported
|
- [p2p] [\#2668](https://github.com/tendermint/tendermint/issues/2668) Reconnect to originally dialed address (not self-reported
|
||||||
address) for persistent peers
|
address) for persistent peers
|
||||||
|
|
||||||
|
76
UPGRADING.md
76
UPGRADING.md
@ -3,6 +3,82 @@
|
|||||||
This guide provides steps to be followed when you upgrade your applications to
|
This guide provides steps to be followed when you upgrade your applications to
|
||||||
a newer version of Tendermint Core.
|
a newer version of Tendermint Core.
|
||||||
|
|
||||||
|
## v0.26.0
|
||||||
|
|
||||||
|
New 0.26.0 release contains a lot of changes to core data types. It is not
|
||||||
|
compatible to the old versions and there is no straight forward way to update
|
||||||
|
old data to be compatible with the new version.
|
||||||
|
|
||||||
|
To reset the state do:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ tendermint unsafe_reset_all
|
||||||
|
```
|
||||||
|
|
||||||
|
Here we summarize some other notable changes to be mindful of.
|
||||||
|
|
||||||
|
### Config Changes
|
||||||
|
|
||||||
|
All timeouts must be changed from integers to strings with their duration, for
|
||||||
|
instance `flush_throttle_timeout = 100` would be changed to
|
||||||
|
`flush_throttle_timeout = "100ms"` and `timeout_propose = 3000` would be changed
|
||||||
|
to `timeout_propose = "3s"`.
|
||||||
|
|
||||||
|
### RPC Changes
|
||||||
|
|
||||||
|
The default behaviour of `/abci_query` has been changed to not return a proof,
|
||||||
|
and the name of the parameter that controls this has been changed from `trusted`
|
||||||
|
to `prove`. To get proofs with your queries, ensure you set `prove=true`.
|
||||||
|
|
||||||
|
Various version fields like `amino_version`, `p2p_version`, `consensus_version`,
|
||||||
|
and `rpc_version` have been removed from the `node_info.other` and are
|
||||||
|
consolidated under the tendermint semantic version (ie. `node_info.version`) and
|
||||||
|
the new `block` and `p2p` protocol versions under `node_info.protocol_version`..
|
||||||
|
|
||||||
|
### ABCI Changes
|
||||||
|
|
||||||
|
Field numbers were bumped in the `Header` and `ResponseInfo` messages to make
|
||||||
|
room for new `version` fields. It should be straight forward to recompile the
|
||||||
|
protobuf file for these changes.
|
||||||
|
|
||||||
|
#### Proofs
|
||||||
|
|
||||||
|
The `ResponseQuery.Proof` field is now structured as a `[]ProofOp` to support
|
||||||
|
generalized Merkle tree constructions where the leaves of one Merkle tree are
|
||||||
|
the root of another. If you don't need this functionaluty, and you used to
|
||||||
|
return `<proof bytes>` here, you should instead return a single `ProofOp` with
|
||||||
|
just the `Data` field set:
|
||||||
|
|
||||||
|
```
|
||||||
|
[]ProofOp{
|
||||||
|
ProofOp{
|
||||||
|
Data: <proof bytes>,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
For more information, see:
|
||||||
|
|
||||||
|
- [ADR-026](https://github.com/tendermint/tendermint/blob/30519e8361c19f4bf320ef4d26288ebc621ad725/docs/architecture/adr-026-general-merkle-proof.md)
|
||||||
|
- [Relevant ABCI
|
||||||
|
documentation](https://github.com/tendermint/tendermint/blob/30519e8361c19f4bf320ef4d26288ebc621ad725/docs/spec/abci/apps.md#query-proofs)
|
||||||
|
- [Description of
|
||||||
|
keys](https://github.com/tendermint/tendermint/blob/30519e8361c19f4bf320ef4d26288ebc621ad725/crypto/merkle/proof_key_path.go#L14)
|
||||||
|
|
||||||
|
### Go API Changes
|
||||||
|
|
||||||
|
#### crypto.merkle
|
||||||
|
|
||||||
|
The `merkle.Hasher` interface was removed. Functions which used to take `Hasher`
|
||||||
|
now simply take `[]byte`. This means that any objects being Merklized should be
|
||||||
|
serialized before they are passed in.
|
||||||
|
|
||||||
|
#### node
|
||||||
|
|
||||||
|
The `node.RunForever` function was removed. Signal handling and running forever
|
||||||
|
should instead be explicitly configured by the caller. See how we do it
|
||||||
|
[here](https://github.com/tendermint/tendermint/blob/30519e8361c19f4bf320ef4d26288ebc621ad725/cmd/tendermint/commands/run_node.go#L60).
|
||||||
|
|
||||||
## v0.25.0
|
## v0.25.0
|
||||||
|
|
||||||
This release has minimal impact.
|
This release has minimal impact.
|
||||||
|
@ -18,10 +18,10 @@ const (
|
|||||||
// TMCoreSemVer is the current version of Tendermint Core.
|
// TMCoreSemVer is the current version of Tendermint Core.
|
||||||
// It's the Semantic Version of the software.
|
// It's the Semantic Version of the software.
|
||||||
// Must be a string because scripts like dist.sh read this file.
|
// Must be a string because scripts like dist.sh read this file.
|
||||||
TMCoreSemVer = "0.25.0"
|
TMCoreSemVer = "0.26.0"
|
||||||
|
|
||||||
// ABCISemVer is the semantic version of the ABCI library
|
// ABCISemVer is the semantic version of the ABCI library
|
||||||
ABCISemVer = "0.14.0"
|
ABCISemVer = "0.15.0"
|
||||||
ABCIVersion = ABCISemVer
|
ABCIVersion = ABCISemVer
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user