2018-07-23 19:35:55 -07:00
# Pending
2018-10-19 10:49:04 -07:00
## v0.26.0
*October 19, 2018*
2018-09-21 13:45:00 -07:00
Special thanks to external contributors on this release:
2018-10-19 10:49:04 -07:00
@bradyjoestar , @connorwstein , @goolAdapter , @HaoyangLiu ,
@james -ray, @overbool , @phymbert , @Slamper , @Uzair1995
This release is primarily about adding Version fields to various data structures,
optimizing consensus messages for signing and verification in
restricted environments (like HSMs and the Ethereum Virtual Machine), and
aligning the consensus code with the [specification ](https://arxiv.org/abs/1807.04938 ).
It also includes our first take at a generalized merkle proof system.
See the [UPGRADING.md ](UPGRADING.md#v0.26.0 ) for details on upgrading to the new
version.
Friendly reminder, we have a [bug bounty program ](https://hackerone.com/tendermint ).
2018-09-05 15:26:12 -07:00
2018-07-23 19:35:55 -07:00
BREAKING CHANGES:
2018-09-05 15:02:45 -07:00
* CLI/RPC/Config
2018-10-01 05:38:35 -07:00
* [config] \#2232 timeouts as time.Duration, not ints
2018-09-30 10:28:34 -07:00
* [config] \#2505 Remove Mempool.RecheckEmpty (it was effectively useless anyways)
2018-09-28 20:32:13 -07:00
* [config] `mempool.wal` is disabled by default
2018-10-01 05:38:35 -07:00
* [privval] \#2459 Split `SocketPVMsg` s implementations into Request and Response, where the Response may contain a error message (returned by the remote signer)
2018-10-17 12:30:53 -07:00
* [state] \#2644 Add Version field to State, breaking the format of State as
encoded on disk.
2018-10-19 10:49:04 -07:00
* [rpc] \#2298 `/abci_query` takes `prove` argument instead of `trusted` and switches the default
behaviour to `prove=false`
2018-10-18 07:29:59 -07:00
* [rpc] \#2654 Remove all `node_info.other.*_version` fields in `/status` and
`/net_info`
2018-10-02 16:03:59 -07:00
2018-09-05 15:02:45 -07:00
* Apps
2018-09-28 20:32:13 -07:00
* [abci] \#2298 ResponseQuery.Proof is now a structured merkle.Proof, not just
arbitrary bytes
2018-10-17 12:30:53 -07:00
* [abci] \#2644 Add Version to Header and shift all fields by one
2018-10-18 13:51:17 -07:00
* [abci] \#2662 Bump the field numbers for some `ResponseInfo` fields to make room for
`AppVersion`
2018-09-05 15:02:45 -07:00
* Go API
2018-09-28 20:32:13 -07:00
* [config] \#2232 timeouts as time.Duration, not ints
* [crypto/merkle & lite] \#2298 Various changes to accomodate General Merkle trees
2018-10-10 09:46:09 -07:00
* [crypto/merkle] \#2595 Remove all Hasher objects in favor of byte slices
2018-10-15 13:42:47 -07:00
* [crypto/merkle] \#2635 merkle.SimpleHashFromTwoHashes is no longer exported
2018-10-19 10:49:04 -07:00
* [node] Remove node.RunForever
* [rpc/client] \#2298 `ABCIQueryOptions.Trusted` -> `ABCIQueryOptions.Prove`
* [types] \#2298 Remove `Index` and `Total` fields from `TxProof` .
2018-10-17 12:30:53 -07:00
* [types] \#2598 `VoteTypeXxx` are now of type `SignedMsgType byte` and named `XxxType` , eg. `PrevoteType` ,
`PrecommitType` .
2018-09-20 02:12:42 -07:00
2018-09-28 16:57:29 -07:00
* Blockchain Protocol
2018-10-12 16:21:46 -07:00
* [types] Update SignBytes for `Vote` /`Proposal`/`Heartbeat`:
* \#2459 Use amino encoding instead of JSON in `SignBytes` .
* \#2598 Reorder fields and use fixed sized encoding.
* \#2598 Change `Type` field fromt `string` to `byte` and use new
`SignedMsgType` to enumerate.
2018-10-06 06:20:15 -07:00
* [types] \#2512 Remove the pubkey field from the validator hash
2018-10-17 12:30:53 -07:00
* [types] \#2644 Add Version struct to Header
2018-10-19 10:49:04 -07:00
* [types] \#2609 ConsensusParams.Hash() is the hash of the amino encoded
struct instead of the Merkle tree of the fields
2018-10-12 16:21:46 -07:00
* [state] \#2587 Require block.Time of the fist block to be genesis time
2018-10-17 12:30:53 -07:00
* [state] \#2644 Require block.Version to match state.Version
2018-10-19 08:39:27 -07:00
* [types] \#2670 Header.Hash() builds Merkle tree out of fields in the same
order they appear in the header, instead of sorting by field name
2018-09-28 16:57:29 -07:00
* P2P Protocol
2018-10-18 07:29:59 -07:00
* [p2p] \#2654 Add `ProtocolVersion` struct with protocol versions to top of
DefaultNodeInfo and require `ProtocolVersion.Block` to match during peer handshake
2018-07-25 09:09:52 -07:00
FEATURES:
2018-10-06 06:20:15 -07:00
- [abci] \#2557 Add `Codespace` field to `Response{CheckTx, DeliverTx, Query}`
2018-10-18 13:51:17 -07:00
- [abci] \#2662 Add `BlockVersion` and `P2PVersion` to `RequestInfo`
2018-10-19 10:49:04 -07:00
- [crypto/merkle] \#2298 General Merkle Proof scheme for chaining various types of Merkle trees together
2018-07-23 19:35:55 -07:00
IMPROVEMENTS:
2018-10-12 16:21:46 -07:00
- Additional Metrics
- [consensus] [\#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
2018-10-11 07:01:53 -07:00
- [crypto/ed25519] \#2558 Switch to use latest `golang.org/x/crypto` through our fork at
github.com/tendermint/crypto
2018-10-09 10:28:15 -07:00
- [tools] \#2238 Binary dependencies are now locked to a specific git commit
2018-07-23 23:44:39 -07:00
BUG FIXES:
2018-09-25 04:22:45 -07:00
- [autofile] \#2428 Group.RotateFile need call Flush() before rename (@goolAdapter)
2018-10-19 10:49:04 -07:00
- [common] Fixed a bug in the `BitArray.Or` method
- [common] Fixed a bug in the `BitArray.Sub` method (@james-ray)
- [common] \#2534 Fix `BitArray.PickRandom` to choose uniformly from true bits
- [consensus] [\#1690 ](https://github.com/tendermint/tendermint/issues/1690 ) Wait for
timeoutPrecommit before starting next round
- [consensus] [\#1745 ](https://github.com/tendermint/tendermint/issues/1745 ) Wait for
Proposal or timeoutProposal before entering prevote
- [consensus] \#2642 Only propose ValidBlock, not LockedBlock
- [consensus] \#2642 Initialized ValidRound and LockedRound to -1
2018-10-09 10:31:21 -07:00
- [consensus] \#1637 Limit the amount of evidence that can be included in a
block
2018-10-19 10:49:04 -07:00
- [evidence] \#2515 Fix db iter leak (@goolAdapter)
- [libs/event] \#2518 Fix event concurrency flaw (@goolAdapter)
- [node] \#2434 Make node respond to signal interrupts while sleeping for genesis time
2018-10-11 20:37:21 -07:00
- [state] \#2616 Pass nil to NewValidatorSet() when genesis file's Validators field is nil
2018-10-19 10:49:04 -07:00
- [p2p] \#2555 Fix p2p switch FlushThrottle value (@goolAdapter)
2018-10-18 15:26:32 -07:00
- [p2p] \#2668 Reconnect to originally dialed address (not self-reported
address) for persistent peers
2018-10-19 10:49:04 -07:00