Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply to Tendermint 0.33.3 #68

Merged
merged 139 commits into from
Apr 27, 2020
Merged
Show file tree
Hide file tree
Changes from 137 commits
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
88ac31f
docs: update theme version (#4315)
tac0turtle Jan 17, 2020
a3dc82b
deps: bump github.com/spf13/viper from 1.6.1 to 1.6.2 (#4318)
dependabot-preview[bot] Jan 17, 2020
b50cb26
rpc: check nil blockmeta (#4320)
tac0turtle Jan 17, 2020
9cbfe79
tests: bind test servers to 127.0.0.1 (#4322)
erikgrinaker Jan 18, 2020
2d510d2
rpc: PR#4320 follow up (#4323)
melekes Jan 20, 2020
5f2f975
adr: ADR-052: Tendermint Mode (#4302)
dongsam Jan 22, 2020
f95409e
lite2: move AutoClient into Client (#4326)
melekes Jan 22, 2020
1905ef7
lite2: improve auto update (#4334)
melekes Jan 22, 2020
082e211
docs: minor doc fixes (#4335)
tac0turtle Jan 23, 2020
696e13e
adr: ADR-051: Double Signing Risk Reduction (#4262)
dongsam Jan 24, 2020
48be9bc
Add IPv6 support for P2P integration tests (#4340)
Jan 27, 2020
59a922d
lite2: add Start, TrustedValidatorSet funcs (#4337)
melekes Jan 27, 2020
d90dc9d
rpc: add sort_order option to tx_search (#4342)
melekes Jan 27, 2020
6f93cfa
lite2: rename alternative providers to witnesses (#4344)
melekes Jan 28, 2020
c5ecd80
docs: update links to rpc (#4348)
tac0turtle Jan 28, 2020
85244a4
lite2: refactor cleanup() (#4343)
cmwaters Jan 28, 2020
587ac3a
node: use GRPCMaxOpenConnections when creating the gRPC server (#4349)
melekes Jan 29, 2020
79b99f0
lite2: batch save & delete operations in DB store (#4345)
melekes Jan 29, 2020
8b80de8
build(deps): bump google.golang.org/grpc from 1.26.0 to 1.27.0 (#4355)
dependabot-preview[bot] Jan 29, 2020
71d50f7
lite2: panic if witness is on another chain (#4356)
cmwaters Jan 30, 2020
b04b752
Add ADR-053: State Sync Prototype (#4352)
erikgrinaker Jan 30, 2020
ca03e43
deps: bump github.com/golang/protobuf from 1.3.2 to 1.3.3 (#4359)
dependabot-preview[bot] Jan 30, 2020
81e3cca
docs: update npm dependencies (#4364)
tessr Feb 3, 2020
1edb542
lite2: make witnesses mandatory (#4358)
melekes Feb 3, 2020
fa34ff9
abci: fix broken spec link (#4366)
tessr Feb 3, 2020
9b9f1be
docs: update guides proto paths (#4365)
tac0turtle Feb 3, 2020
df3eee4
lite2: replace primary provider with alternative when unavailable (#4…
cmwaters Feb 4, 2020
bb7a80e
lite2: fetch missing headers (#4362)
cmwaters Feb 6, 2020
af37db3
lite2: cross-check new header with all witnesses (#4373)
cmwaters Feb 6, 2020
3e2f299
deps: bump google.golang.org/grpc from 1.27.0 to 1.27.1 (#4372)
dependabot-preview[bot] Feb 6, 2020
66a544a
Fix broken /docs/spec links (#4376)
erikgrinaker Feb 7, 2020
b2832c6
lite2: validate TrustOptions, add NewClientFromTrustedStore (#4374)
melekes Feb 7, 2020
5ac81eb
docs: fix incorrect link (#4377)
erikgrinaker Feb 7, 2020
aeb6cc4
lite2: return if there are no headers in RemoveNoLongerTrustedHeaders…
melekes Feb 7, 2020
31fd99a
proto: add buf and protogen script (#4369)
tac0turtle Feb 11, 2020
da813e4
lite2: manage witness dropout (#4380)
cmwaters Feb 11, 2020
c494070
docs: fix spec links (#4384)
tac0turtle Feb 11, 2020
9a9e8c5
proto: minor linting to proto files (#4386)
tac0turtle Feb 11, 2020
4787f7c
refactored lite client tests
Feb 11, 2020
ab6ac6d
lite2: improve string output of all existing providers (#4387)
melekes Feb 11, 2020
16aae3a
Merge branch 'master' into callum/clean-lite-tests
melekes Feb 11, 2020
831ed8f
Merge pull request #4389 from tendermint/callum/clean-lite-tests
cmwaters Feb 11, 2020
b712c1c
autofile: resolve relative paths (#4390)
erikgrinaker Feb 11, 2020
2b709e7
make: remove sentry setup cmds (#4383)
tac0turtle Feb 12, 2020
67837e5
readme: fix link to original paper (#4391)
tac0turtle Feb 12, 2020
fb5751d
release: minor release 0.33.1 (#4401)
tac0turtle Feb 13, 2020
42d8bc5
upgrade: update upgrade.md for protobuf changes
tac0turtle Feb 13, 2020
e62b21c
Merge pull request #4404 from tendermint/rc2/0.33.1
Feb 13, 2020
774aff5
docs: update Light Client Protocol page (#4405)
melekes Feb 14, 2020
3b5794f
adr: light client implementation (#4397)
melekes Feb 14, 2020
30e5619
Merge branch 'v0.33' into release/v0.33.1
Feb 14, 2020
ec9424c
Merge pull request #4402 from tendermint/release/v0.33.1
melekes Feb 14, 2020
5f5e0e1
makefile: place phony markers after targets (#4408)
erikgrinaker Feb 14, 2020
58620af
lite2: modified sequence method to match bisection (#4403)
cmwaters Feb 14, 2020
c56fd04
lite2: disconnect from bad nodes (#4388)
melekes Feb 14, 2020
da88130
Docs staging (#4407)
fadeev Feb 15, 2020
5ea1ff9
rpc: fix issue with multiple subscriptions (#4406)
antho1404 Feb 17, 2020
f5901ea
lite2: divide verify functions (#4412)
cmwaters Feb 18, 2020
6c67e24
dep: bump gokit dep (#4424)
tac0turtle Feb 18, 2020
68f37ff
Use uint64 for consensus.Reactor.SwitchToConsensus() blocksSynced (#4…
erikgrinaker Feb 19, 2020
c680507
dep: maunally bump dep (#4436)
tac0turtle Feb 19, 2020
b09cdaf
rpc: fix tx_search pagination with ordered results (#4437)
erikgrinaker Feb 19, 2020
1874a97
lite: modified bisection to loop (#4400)
cmwaters Feb 19, 2020
403f43a
rpc: fix txsearch tests (#4438)
erikgrinaker Feb 19, 2020
ee993ba
blockchain: add v2 reactor (#4361)
brapse Feb 19, 2020
b7dab3b
consensus: reduce log severity for ErrVoteNonDeterministicSignature (…
tau3 Feb 19, 2020
7ab81a7
deps: bump github.com/stretchr/testify from 1.4.0 to 1.5.0 (#4435)
dependabot-preview[bot] Feb 19, 2020
24c8b35
rpc: fix TxSearch test nits (#4446)
erikgrinaker Feb 20, 2020
d00384f
build(deps): bump github.com/stretchr/testify from 1.5.0 to 1.5.1 (#4…
dependabot-preview[bot] Feb 20, 2020
8010f3b
build(deps): bump github.com/spf13/cobra from 0.0.3 to 0.0.6 (#4440)
dependabot-preview[bot] Feb 20, 2020
8f48c49
Fix some golangci-lint warnings (#4448)
erikgrinaker Feb 20, 2020
2c7af01
lite2: return already verified headers and verify earlier headers (#4…
cmwaters Feb 20, 2020
b0683b7
p2p: use curve25519.X25519() instead of ScalarMult() (#4449)
erikgrinaker Feb 21, 2020
8d1198b
ADR-053: update with implementation plan after prototype (#4427)
erikgrinaker Feb 21, 2020
c63fd32
circleci: run P2P IPv4 and IPv6 tests in parallel (#4459)
erikgrinaker Feb 21, 2020
fe11219
Fix unexported returns (#4450)
erikgrinaker Feb 21, 2020
f934ca8
lite2: don't save intermediate headers (#4452)
cmwaters Feb 24, 2020
25d92d0
types: VerifyCommitX return when +2/3 sigs are verified (#4445)
Feb 25, 2020
c4f7256
lite2: store current validator set (#4472)
melekes Feb 26, 2020
9231b52
lite2: cross-check first header and update tests (#4471)
cmwaters Feb 26, 2020
6daea31
lite2: remove expiration checks on functions that don't require them …
melekes Feb 26, 2020
b5ce8f2
deps: bump github.com/tendermint/tm-db from 0.4.0 to 0.4.1 (#4476)
dependabot-preview[bot] Feb 26, 2020
b9535a2
blockchain (v2): comment out TestReactorTerminationScenarios (#4480)
melekes Feb 26, 2020
c45baa0
blockchain (v2): async testing notes (#4484)
brapse Feb 27, 2020
875b106
github: edit templates for use in issues and pull requests (#4483)
tac0turtle Feb 27, 2020
6be0e13
lite2: prune-headers (#4478)
cmwaters Feb 27, 2020
b5f6bfa
lite2: return height as 2nd return param in TrustedValidatorSet (#4479)
melekes Feb 27, 2020
3f883bb
lite2: actually run example tests + clock drift (#4487)
melekes Feb 27, 2020
7814430
JSON tests related changes (#4461)
Shivani912 Feb 28, 2020
b73c0b7
build(deps): bump github.com/golang/protobuf from 1.3.3 to 1.3.4 (#4485)
dependabot-preview[bot] Feb 28, 2020
c837a57
rpc: stop txSearch result processing if context is done (#4418)
gterzian Feb 28, 2020
a122a55
docs: adr-046 add bisection algorithm details (#4496)
melekes Feb 28, 2020
6cebba5
swagger: update swagger port (#4498)
tac0turtle Feb 28, 2020
6f6843e
circleci: fix reproducible builds test (#4497)
erikgrinaker Feb 28, 2020
6c9e9b2
tool: add Mergify (#4490)
tac0turtle Feb 28, 2020
d1f7ef6
mergify: remove unnecessary conditions (#4501)
erikgrinaker Feb 28, 2020
72488db
mergify: use strict merges (#4502)
erikgrinaker Feb 28, 2020
c5fe733
test: simplified txsearch cancellation test (#4500)
erikgrinaker Feb 28, 2020
3f18e22
rpc: keep the original subscription "id" field when new RPCs come in …
michaelfig Feb 29, 2020
c33576e
example/kvstore: return ABCI query height (#4509)
erikgrinaker Mar 1, 2020
9bf8f41
lite2: fix tendermint lite sub command (#4505)
melekes Mar 2, 2020
67224fd
docs: `tendermint node --help` dumps all supported flags (#4511)
melekes Mar 2, 2020
51e1b4e
rpc: remove BlockStoreRPC in favor of BlockStore (#4510)
melekes Mar 2, 2020
3b2e1f2
cmd: show useful error when tm not initialised (#4512)
melekes Mar 2, 2020
a60d032
docs: write about debug kill and dump (#4516)
melekes Mar 3, 2020
c518a06
deps: bump github.com/Workiva/go-datastructures (#4519)
dependabot-preview[bot] Mar 3, 2020
ff78651
lite: add helper functions for initiating the light client (#4486)
cmwaters Mar 3, 2020
891afc2
cmd: fix debug kill and change debug dump archive filename format (#4…
melekes Mar 3, 2020
61380ff
build(deps): bump github.com/prometheus/client_golang (#4525)
dependabot-preview[bot] Mar 4, 2020
9e5b4af
.github: add markdown link checker (#4513)
tessr Mar 4, 2020
4936b23
adr-047: evidence handling (#4429)
melekes Mar 5, 2020
4c8e3c8
fix: proto-breakage (#4506)
mergify[bot] Mar 5, 2020
632b53d
fix addrbook tests (#4526)
mergify[bot] Mar 5, 2020
3a695d4
docs: fix links (#4531)
mergify[bot] Mar 5, 2020
7d00117
readme: add discord to readme (#4533)
mergify[bot] Mar 5, 2020
431618c
lite2: remove auto update (#4535)
melekes Mar 6, 2020
d3f965b
lite2: indicate success/failure of Update (#4536)
melekes Mar 6, 2020
bc89aad
rpc: create buffered subscriptions on /subscribe (#4521)
melekes Mar 6, 2020
b6f0aa3
lite2: replace primary when providing invalid header (#4523)
cmwaters Mar 6, 2020
f17717f
adr: crypto encoding for proto (#4481)
tac0turtle Mar 9, 2020
73c19bd
CONTRIBUTING: include instructions for installing protobuf
tessr Mar 9, 2020
cb8a2cc
build(deps): bump github.com/Workiva/go-datastructures (#4545)
dependabot-preview[bot] Mar 10, 2020
31bea92
libs/kv: remove unused type KI64Pair (#4542)
tessr Mar 10, 2020
c534291
rc1/v0.33.2(#4541)
tac0turtle Mar 11, 2020
b215e07
Merge pull request #4550 from tendermint/release/v0.33.2
melekes Mar 11, 2020
2544a5c
noop commit (#4553)
melekes Mar 11, 2020
7a3fac9
Apply Tendermint 0.33.1
zemyblue Mar 31, 2020
4473f22
Apply Tendermint 0.33.2
zemyblue Mar 31, 2020
591ab93
* Fix mod error
zemyblue Apr 1, 2020
2b22e4c
Remove checking breaking changes of protobuf in the CI
zemyblue Apr 1, 2020
0c0cb9f
mempool: reserve IDs in InitPeer instead of AddPeer
tessr Mar 27, 2020
9821af8
p2p: limit the number of incoming connections
melekes Apr 3, 2020
62c1a13
update changelog and version
melekes Apr 3, 2020
13eff7f
Merge pull request from GHSA-v24h-pjjv-mcp6
alessio Apr 9, 2020
373b978
Merge commit '13eff7f7ed80bb5deb8d294998dc429b29bf9fe3' into tendermi…
zemyblue Apr 20, 2020
555de6b
Merge pull request #65 from zemyblue/apply_0.33.3
zemyblue Apr 21, 2020
2bba46d
Merge branch 'tendermint_release' into feature/apply_0.33.3
zemyblue Apr 21, 2020
40befa3
Fix `TestReactorHelperMode` error in the `blockchain/v2/reactor_test.go`
zemyblue Apr 21, 2020
763b7c5
fix lint warnings.
zemyblue Apr 21, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 21 additions & 6 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ executors:
- image: tendermintdev/docker-website-deployment
environment:
AWS_REGION: us-east-1
protoc:
docker:
- image: tendermintdev/docker-protoc

commands:
checkout_with_submodules:
Expand Down Expand Up @@ -92,6 +95,12 @@ jobs:
root: "/tmp/bin"
paths:
- "."
proto-lint:
executor: protoc
steps:
- checkout
- run:
command: make proto-lint

test_abci_apps:
executor: golang
Expand Down Expand Up @@ -179,12 +188,16 @@ jobs:
GOPATH: /home/circleci/.go_workspace
machine:
image: circleci/classic:latest
parameters:
ipv:
type: integer
default: 4
steps:
- checkout_with_submodules
- make_libsodium
- run: mkdir -p $GOPATH/src/github.com/tendermint
- run: ln -sf /home/circleci/project $GOPATH/src/github.com/tendermint/tendermint
- run: bash test/p2p/circleci.sh
- run: bash test/p2p/circleci.sh << parameters.ipv >>
- store_artifacts:
path: /home/circleci/project/test/p2p/logs

Expand Down Expand Up @@ -254,7 +267,7 @@ jobs:
# source /tmp/workspace/release-version.source
# if test ${CIRCLE_NODE_INDEX:-0} == 0 ;then export GOOS=linux GOARCH=amd64 && export OUTPUT=build/tendermint_${GOOS}_${GOARCH} && make build && python -u scripts/release_management/zip-file.py ;fi
# if test ${CIRCLE_NODE_INDEX:-0} == 1 ;then export GOOS=darwin GOARCH=amd64 && export OUTPUT=build/tendermint_${GOOS}_${GOARCH} && make build && python -u scripts/release_management/zip-file.py ;fi
# if test x${CIRCLE_NODE_INDEX:-0} == 2 ;then export GOOS=windows GOARCH=amd64 && export OUTPUT=build/tendermint_${GOOS}_${GOARCH} && make build && python -u scripts/release_management/zip-file.py ;fi
# if test ${CIRCLE_NODE_INDEX:-0} == 2 ;then export GOOS=windows GOARCH=amd64 && export OUTPUT=build/tendermint_${GOOS}_${GOARCH} && make build && python -u scripts/release_management/zip-file.py ;fi
# if test ${CIRCLE_NODE_INDEX:-0} == 3 ;then export GOOS=linux GOARCH=arm && export OUTPUT=build/tendermint_${GOOS}_${GOARCH} && make build && python -u scripts/release_management/zip-file.py ;fi
# - persist_to_workspace:
# root: build
Expand Down Expand Up @@ -339,6 +352,7 @@ jobs:
name: Build tendermint
no_output_timeout: 20m
command: |
sudo apt-get update
sudo apt-get install -y ruby
bash -x ./scripts/gitian-build.sh all
for os in darwin linux windows; do
Expand Down Expand Up @@ -373,13 +387,10 @@ jobs:
# command: |
# set -x
# export PATH=~/.local/bin:$PATH

# # install node and dredd
# ./scripts/get_nodejs.sh

# # build the binaries with a proper version of Go
# docker run --rm -v "$PWD":/go/src/github.com/tendermint/tendermint -w /go/src/github.com/tendermint/tendermint golang make build-linux build-contract-tests-hooks

# # This docker image works with go 1.7, we can install here the hook handler that contract-tests is going to use
# go get github.com/snikch/goodman/cmd/goodman
# make contract-tests
Expand Down Expand Up @@ -408,6 +419,7 @@ workflows:
- test_abci_apps:
requires:
- setup_dependencies
- proto-lint
- test_abci_cli:
requires:
- setup_dependencies
Expand All @@ -423,7 +435,10 @@ workflows:
- localnet:
requires:
- setup_dependencies
- test_p2p
# - test_p2p
- test_p2p:
name: test_p2p_ipv6
ipv: 6
- reproducible_builds:
filters:
branches:
Expand Down
35 changes: 29 additions & 6 deletions .github/ISSUE_TEMPLATE/feature-request.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,34 @@ name: Feature Request
about: Create a proposal to request a feature

---
<!--
Please describe *in detail* the feature/behavior/change you'd like to see.

Be ready for followup questions, and please respond in a timely
manner.
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
v ✰ Thanks for opening an issue! ✰
v Before smashing the submit button please review the template.
v Word of caution: poorly thought-out proposals may be rejected
v without deliberation
☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -->

Word of caution: poorly thought out proposals may be rejected without deliberation
-->
## Summary

<!-- Short, concise description of the proposed feature -->

## Problem Definition

<!-- Why do we need this feature?
What problems may be addressed by introducing this feature?
What benefits does Tendermint stand to gain by including this feature?
Are there any disadvantages of including this feature? -->

## Proposal

<!-- Detailed description of requirements of implementation -->

____

#### For Admin Use

- [ ] Not duplicate issue
- [ ] Appropriate labels applied
- [ ] Appropriate contributors tagged
- [ ] Contributor assigned/self-assigned
29 changes: 20 additions & 9 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,24 @@
<!--
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
v ✰ Thanks for creating a PR! ✰
v Before smashing the submit button please review the checkboxes.
v If a checkbox is n/a - please still include it but + a little note why
☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -->

Thanks for filing a PR! Before hitting the button, please check the following items.
Please note that every non-trivial PR must reference an issue that explains the
changes in the PR.
Closes: #XXX

## Description

<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review.
-->

* [ ] Referenced an issue explaining the need for the change
* [ ] Updated all relevant documentation in docs
* [ ] Updated all code comments where relevant
* [ ] Wrote tests
* [ ] Updated CHANGELOG_PENDING.md

______

For contributor use:

- [ ] Wrote tests
- [ ] Updated CHANGELOG_PENDING.md
- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
- [ ] Updated relevant documentation (`docs/`) and code comments
- [ ] Re-reviewed `Files changed` in the Github PR explorer
10 changes: 10 additions & 0 deletions .github/workflows/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: Check Markdown links
on: push
jobs:
markdown-link-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: gaurav-nelson/github-action-markdown-link-check@0.6.0
with:
folder-path: "docs"
2 changes: 1 addition & 1 deletion .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ linters:
- interfacer
- lll
- misspell
- maligned
# - maligned
- nakedret
- prealloc
- scopelint
Expand Down
9 changes: 9 additions & 0 deletions .mergify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
pull_request_rules:
- name: automerge to master with label S:automerge and branch protection passing
conditions:
- base=master
- label=S:automerge
actions:
merge:
method: squash
strict: true
137 changes: 137 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,142 @@
# Changelog

## v0.33.3

*April 6, 2020*

This security release fixes:

### Denial of service 1

Tendermint 0.33.2 and earlier does not limit P2P connection requests number.
For each p2p connection, Tendermint allocates ~0.5MB. Even though this
memory is garbage collected once the connection is terminated (due to duplicate
IP or reaching a maximum number of inbound peers), temporary memory spikes can
lead to OOM (Out-Of-Memory) exceptions.

Tendermint 0.33.3 (and 0.32.10) limits the total number of P2P incoming
connection requests to to `p2p.max_num_inbound_peers +
len(p2p.unconditional_peer_ids)`.

Notes:

- Tendermint does not rate limit P2P connection requests per IP (an attacker
can saturate all the inbound slots);
- Tendermint does not rate limit HTTP(S) requests. If you expose any RPC
endpoints to the public, please make sure to put in place some protection
(https://www.nginx.com/blog/rate-limiting-nginx/). We may implement this in
the future ([\#1696](https://github.com/tendermint/tendermint/issues/1696)).

### Denial of service 2

Tendermint 0.33.2 and earlier does not reclaim `activeID` of a peer after it's
removed in `Mempool` reactor. This does not happen all the time. It only
happens when a connection fails (for any reason) before the Peer is created and
added to all reactors. `RemovePeer` is therefore called before `AddPeer`, which
leads to always growing memory (`activeIDs` map). The `activeIDs` map has a
maximum size of 65535 and the node will panic if this map reaches the maximum.
An attacker can create a lot of connection attempts (exploiting Denial of
service 1), which ultimately will lead to the node panicking.

Tendermint 0.33.3 (and 0.32.10) claims `activeID` for a peer in `InitPeer`,
which is executed before `MConnection` is started.

Notes:

- `InitPeer` function was added to all reactors to combat a similar issue -
[\#3338](https://github.com/tendermint/tendermint/issues/3338);
- Denial of service 2 is independent of Denial of service 1 and can be executed
without it.

**All clients are recommended to upgrade**

Special thanks to [fudongbai](https://hackerone.com/fudongbai) for finding
and reporting this.

Friendly reminder, we have a [bug bounty
program](https://hackerone.com/tendermint).

### SECURITY:

- [mempool] Reserve IDs in InitPeer instead of AddPeer (@tessr)
- [p2p] Limit the number of incoming connections (@melekes)

## v0.33.2

*March 11, 2020*

Special thanks to external contributors on this release:
@antho1404, @michaelfig, @gterzian, @tau3, @Shivani912

Friendly reminder, we have a [bug bounty program](https://hackerone.com/tendermint).

### BREAKING CHANGES:

- CLI/RPC/Config
- [cli] [\#4505](https://github.com/tendermint/tendermint/pull/4505) `tendermint lite` sub-command new syntax (@melekes):
`lite cosmoshub-3 -p 52.57.29.196:26657 -w public-seed-node.cosmoshub.certus.one:26657
--height 962118 --hash 28B97BE9F6DE51AC69F70E0B7BFD7E5C9CD1A595B7DC31AFF27C50D4948`

- Go API
- [lite2] [\#4535](https://github.com/tendermint/tendermint/pull/4535) Remove `Start/Stop` (@melekes)
- [lite2] [\#4469](https://github.com/tendermint/tendermint/issues/4469) Remove `RemoveNoLongerTrustedHeaders` and `RemoveNoLongerTrustedHeadersPeriod` option (@cmwaters)
- [lite2] [\#4473](https://github.com/tendermint/tendermint/issues/4473) Return height as a 2nd param in `TrustedValidatorSet` (@melekes)
- [lite2] [\#4536](https://github.com/tendermint/tendermint/pull/4536) `Update` returns a signed header (1st param) (@melekes)


### IMPROVEMENTS:

- [blockchain/v2] [\#4361](https://github.com/tendermint/tendermint/pull/4361) Add reactor (@brapse)
- [cmd] [\#4515](https://github.com/tendermint/tendermint/issues/4515) Change `tendermint debug dump` sub-command archives filename's format (@melekes)
- [consensus] [\#3583](https://github.com/tendermint/tendermint/issues/3583) Reduce `non-deterministic signature` log noise (@tau3)
- [examples/kvstore] [\#4507](https://github.com/tendermint/tendermint/issues/4507) ABCI query now returns the proper height (@erikgrinaker)
- [lite2] [\#4462](https://github.com/tendermint/tendermint/issues/4462) Add `NewHTTPClient` and `NewHTTPClientFromTrustedStore` (@cmwaters)
- [lite2] [\#4329](https://github.com/tendermint/tendermint/issues/4329) modified bisection to loop (@cmwaters)
- [lite2] [\#4385](https://github.com/tendermint/tendermint/issues/4385) Disconnect from bad nodes (@melekes)
- [lite2] [\#4398](https://github.com/tendermint/tendermint/issues/4398) Add `VerifyAdjacent` and `VerifyNonAdjacent` funcs (@cmwaters)
- [lite2] [\#4426](https://github.com/tendermint/tendermint/issues/4426) Don't save intermediate headers (@cmwaters)
- [lite2] [\#4464](https://github.com/tendermint/tendermint/issues/4464) Cross-check first header (@cmwaters)
- [lite2] [\#4470](https://github.com/tendermint/tendermint/issues/4470) Fix inconsistent header-validatorset pairing (@melekes)
- [lite2] [\#4488](https://github.com/tendermint/tendermint/issues/4488) Allow local clock drift -10 sec. (@melekes)
- [p2p] [\#4449](https://github.com/tendermint/tendermint/pull/4449) Use `curve25519.X25519()` instead of `ScalarMult` (@erikgrinaker)
- [types] [\#4417](https://github.com/tendermint/tendermint/issues/4417) **VerifyCommitX() functions should return as soon as +2/3 threshold is reached** (@alessio).
- [libs/kv] [\#4542](https://github.com/tendermint/tendermint/pull/4542) remove unused type KI64Pair (@tessr)

### BUG FIXES:

- [cmd] [\#4303](https://github.com/tendermint/tendermint/issues/4303) Show useful error when Tendermint is not initialized (@melekes)
- [cmd] [\#4515](https://github.com/tendermint/tendermint/issues/4515) **Fix `tendermint debug kill` sub-command** (@melekes)
- [rpc] [\#3935](https://github.com/tendermint/tendermint/issues/3935) **Create buffered subscriptions on `/subscribe`** (@melekes)
- [rpc] [\#4375](https://github.com/tendermint/tendermint/issues/4375) Stop searching for txs in `/tx_search` upon client timeout (@gterzian)
- [rpc] [\#4406](https://github.com/tendermint/tendermint/pull/4406) Fix issue with multiple subscriptions on the websocket (@antho1404)
- [rpc] [\#4432](https://github.com/tendermint/tendermint/issues/4432) Fix `/tx_search` pagination with ordered results (@erikgrinaker)
- [rpc] [\#4492](https://github.com/tendermint/tendermint/issues/4492) Keep the original subscription "id" field when new RPCs come in (@michaelfig)


## v0.33.1

*Feburary 13, 2020*

Special thanks to external contributors on this release:
@princesinha19

Friendly reminder, we have a [bug bounty
program](https://hackerone.com/tendermint).

### FEATURES:

- [rpc] [\#3333](https://github.com/tendermint/tendermint/issues/3333) Add `order_by` to `/tx_search` endpoint, allowing to change default ordering from asc to desc (@princesinha19)

### IMPROVEMENTS:

- [proto] [\#4369](https://github.com/tendermint/tendermint/issues/4369) Add [buf](https://buf.build/) for usage with linting and checking if there are breaking changes with the master branch.
- [proto] [\#4369](https://github.com/tendermint/tendermint/issues/4369) Add `make proto-gen` cmd to generate proto stubs outside of GOPATH.

### BUG FIXES:

- [node] [\#4311](https://github.com/tendermint/tendermint/issues/4311) Use `GRPCMaxOpenConnections` when creating the gRPC server, not `MaxOpenConnections`
- [rpc] [\#4319](https://github.com/tendermint/tendermint/issues/4319) Check `BlockMeta` is not nil in `/block` & `/block_by_hash`

## v0.33

Special thanks to external contributors on this release: @mrekucci, @PSalant726, @princesinha19, @greg-szabo, @dongsam, @cuonglm, @jgimeno, @yenkhoon
Expand Down
7 changes: 2 additions & 5 deletions CHANGELOG_PENDING.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
## v0.33.1
## v0.33.4

\*\*

Special thanks to external contributors on this release:

Friendly reminder, we have a [bug bounty
program](https://hackerone.com/tendermint).
Friendly reminder, we have a [bug bounty program](https://hackerone.com/tendermint).

### BREAKING CHANGES:

Expand All @@ -28,5 +27,3 @@ program](https://hackerone.com/tendermint).
### IMPROVEMENTS:

### BUG FIXES:


24 changes: 23 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ at the RFC stage will build collective understanding of the dimensions
of the problems and help structure conversations around trade-offs.

When the problem is well understood but the solution leads to large
strucural changes to the code base, these changes should be proposed in
structural changes to the code base, these changes should be proposed in
the form of an [Architectural Decision Record
(ADR)](./docs/architecture/). The ADR will help build consensus on an
overall strategy to ensure the code base maintains coherence
Expand Down Expand Up @@ -98,6 +98,28 @@ need. Instead of running `go get -u=patch`, which will update anything,
specify exactly the dependency you want to update, eg.
`GO111MODULE=on go get -u github.com/tendermint/go-amino@master`.

## Protobuf

We use [Protocol Buffers](https://developers.google.com/protocol-buffers) along with [gogoproto](https://github.com/gogo/protobuf) to generate code for use across Tendermint Core.

For linting and checking breaking changes, we use [buf](https://buf.build/). If you would like to run linting and check if the changes you have made are breaking then you will have to install the needed dependencies with `make buf`. Then the linting cmd will be `make proto-lint` and the breaking changes check will be `make proto-check-breaking`.

To generate new stubs based off of your changes you can run `make proto-gen` after installing `protoc` and gogoproto.

### Installation Instructions

To install `protoc`, download an appropriate release (https://github.com/protocolbuffers/protobuf) and then move the provided binaries into your PATH (follow instructions in README included with the download).

To install `gogoproto`, do the following:

```sh
$ go get github.com/gogo/protobuf/gogoproto
$ cd $GOPATH/pkg/mod/github.com/gogo/protobuf@v1.3.1 # or wherever go get installs things
$ make install
```

You should now be able to run `make proto-gen` from inside the root Tendermint directory to generate new files from proto files.

## Vagrant

If you are a [Vagrant](https://www.vagrantup.com/) user, you can get started
Expand Down
Loading