From b6da8880c22202a7061ae2093ef01819438a136e Mon Sep 17 00:00:00 2001 From: Ismail Khoffi Date: Fri, 12 Apr 2019 14:24:51 +0200 Subject: [PATCH 1/2] prepare v0.31.4 release: - prep changelog - add missing changelog entries - fix minor glitch in existing changelog (v0.31.2) - bump versions --- CHANGELOG.md | 39 ++++++++++++++++++++++++++++++++++++++- CHANGELOG_PENDING.md | 14 +------------- version/version.go | 2 +- 3 files changed, 40 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 52a926aed..d14f6851c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,42 @@ # Changelog +## v0.31.4 + +*April 12th, 2019* + +This release fixes a regression from v0.31.3 which used the peer's `SocketAddr` to add the peer to +the address book. This swallowed the peer's self-reported port which is important in case of reconnect. +It brings back `NetAddress()` to `NodeInfo` and uses it instead of `SocketAddr` for adding peers. +Additionally, it improves response time on the `/validators` or `/status` RPC endpoints. +As a side-effect it makes these RPC endpoint more difficult to DoS and fixes a performance degradation in `ExecCommitBlock`. + +Special thanks to external contributors on this release: +@brapse, @guagualvcha, @mydring + +### BREAKING CHANGES: + +* Go API + - [p2p] [\#3545](https://github.com/tendermint/tendermint/pull/3545) The `AddrBook` interface method `MarkAsGood` now only takes a `p2p.ID` instead of a `p2p.NetAddress` + - [p2p] [\#3011](https://github.com/tendermint/tendermint/pull/3011) Remove `ListOfKnownAddresses` from the `AddrBook` interface + +### IMPROVEMENTS: +- [p2p] [\#3463](https://github.com/tendermint/tendermint/pull/3463) Do not log "Can't add peer's address to addrbook" error for a private peer +- [p2p] [\#3547](https://github.com/tendermint/tendermint/pull/3547) Fix a couple of annoying typos (@mdyring) + +### BUG FIXES: + +- [docs] [\#3514](https://github.com/tendermint/tendermint/issues/3514) Fix block.Header.Time description (@melekes) +- [p2p] [\#2716](https://github.com/tendermint/tendermint/issues/2716) Check if we're already connected to peer right before dialing it (@melekes) +- [p2p] [\#3545](https://github.com/tendermint/tendermint/issues/3545) Add back `NetAddress()` to `NodeInfo` and use it instead of peer's `SocketAddr()` when adding a peer to the `PEXReactor` (potential fix for [\#3532](https://github.com/tendermint/tendermint/issues/3532)) +- [state] [\#3438](https://github.com/tendermint/tendermint/pull/3438) + Persist validators every 100000 blocks even if no changes to the set + occurred (@guagualvcha). This + 1) Prevents possible DoS attack using `/validators` or `/status` RPC + endpoints. Before response time was growing linearly with height if no + changes were made to the validator set. + 2) Fixes performance degradation in `ExecCommitBlock` where we call + `LoadValidators` for each `Evidence` in the block. + ## v0.31.3 *April 1st, 2019* @@ -35,7 +72,7 @@ Special thanks to external contributors on this release: * Apps * Go API -- [libs/autofile] [\#3504](https://github.com/tendermint/tendermint/issues/3504) Remove unused code in autofile package. Deleted functions: `Group.Search`, `Group.FindLast`, `GroupReader.ReadLine`, `GroupReader.PushLine`, `MakeSimpleSearchFunc` (@guagualvcha) + - [libs/autofile] [\#3504](https://github.com/tendermint/tendermint/issues/3504) Remove unused code in autofile package. Deleted functions: `Group.Search`, `Group.FindLast`, `GroupReader.ReadLine`, `GroupReader.PushLine`, `MakeSimpleSearchFunc` (@guagualvcha) * Blockchain Protocol diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index 33f5f27ce..bcb2af539 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -1,4 +1,4 @@ -## v0.31.2 +## v0.31.5 ** @@ -17,17 +17,5 @@ ### FEATURES: ### IMPROVEMENTS: -- [p2p] [\#3463](https://github.com/tendermint/tendermint/pull/3463) Do not log "Can't add peer's address to addrbook" error for a private peer ### BUG FIXES: - -- [state] [\#3438](https://github.com/tendermint/tendermint/pull/3438) - Persist validators every 100000 blocks even if no changes to the set - occurred (@guagualvcha). This - 1) Prevents possible DoS attack using `/validators` or `/status` RPC - endpoints. Before response time was growing linearly with height if no - changes were made to the validator set. - 2) Fixes performance degradation in `ExecCommitBlock` where we call - `LoadValidators` for each `Evidence` in the block. -- [p2p] \#2716 Check if we're already connected to peer right before dialing it (@melekes) -- [docs] \#3514 Fix block.Header.Time description (@melekes) diff --git a/version/version.go b/version/version.go index a42a8f005..9ba38de6c 100644 --- a/version/version.go +++ b/version/version.go @@ -20,7 +20,7 @@ const ( // Must be a string because scripts like dist.sh read this file. // XXX: Don't change the name of this variable or you will break // automation :) - TMCoreSemVer = "0.31.3" + TMCoreSemVer = "0.31.4" // ABCISemVer is the semantic version of the ABCI library ABCISemVer = "0.16.0" From def5c8cf124ff58cc9c4a61ea017808a0c81c722 Mon Sep 17 00:00:00 2001 From: Ismail Khoffi Date: Fri, 12 Apr 2019 16:48:34 +0200 Subject: [PATCH 2/2] address review comments: (#3550) - mention ADR in release summary - remove [p2p] api changes - amend v0.31.3 log to contain note about breaking change --- CHANGELOG.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d14f6851c..057b2e7be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,16 +9,12 @@ the address book. This swallowed the peer's self-reported port which is importan It brings back `NetAddress()` to `NodeInfo` and uses it instead of `SocketAddr` for adding peers. Additionally, it improves response time on the `/validators` or `/status` RPC endpoints. As a side-effect it makes these RPC endpoint more difficult to DoS and fixes a performance degradation in `ExecCommitBlock`. +Also, it contains an [ADR](https://github.com/tendermint/tendermint/pull/3539) that proposes decoupling the +responsibility for peer behaviour from the `p2p.Switch` (by @brapse). Special thanks to external contributors on this release: @brapse, @guagualvcha, @mydring -### BREAKING CHANGES: - -* Go API - - [p2p] [\#3545](https://github.com/tendermint/tendermint/pull/3545) The `AddrBook` interface method `MarkAsGood` now only takes a `p2p.ID` instead of a `p2p.NetAddress` - - [p2p] [\#3011](https://github.com/tendermint/tendermint/pull/3011) Remove `ListOfKnownAddresses` from the `AddrBook` interface - ### IMPROVEMENTS: - [p2p] [\#3463](https://github.com/tendermint/tendermint/pull/3463) Do not log "Can't add peer's address to addrbook" error for a private peer - [p2p] [\#3547](https://github.com/tendermint/tendermint/pull/3547) Fix a couple of annoying typos (@mdyring) @@ -45,6 +41,12 @@ This release includes two security sensitive fixes: it ensures generated private keys are valid, and it prevents certain DNS lookups that would cause the node to panic if the lookup failed. +### BREAKING CHANGES: +* Go API + - [crypto/secp256k1] [\#3439](https://github.com/tendermint/tendermint/issues/3439) + The `secp256k1.GenPrivKeySecp256k1` function has changed to guarantee that it returns a valid key, which means it + will return a different private key than in previous versions for the same secret. + ### BUG FIXES: - [crypto/secp256k1] [\#3439](https://github.com/tendermint/tendermint/issues/3439)