Skip to content

Release/v0.25.0#2467

Merged
ebuchman merged 50 commits intomasterfrom
release/v0.25.0
Sep 23, 2018
Merged

Release/v0.25.0#2467
ebuchman merged 50 commits intomasterfrom
release/v0.25.0

Conversation

@ebuchman
Copy link
Contributor

v0.25.0!

ebuchman and others added 30 commits September 7, 2018 07:47
Merge master back to develop
* Start of ADR

* flesh out abci events and errors adrs

* adr: move 012 to 023

* adr-022: add note from cwgoes
* md links dont work in slate

* docs: link to rpc

* docs: use unsafe_reset_all

* do not advertise unsafe_reset_priv_validator
* remove ConsensusParams.TxSize and ConsensusParams.BlockGossip

Refs #2347

* block part size is now fixed

Refs #2347

* use max data size, not max bytes for tx limit

Refs #2347
* Make mempool aware of MaxGas requirement

* update spec

* Add tests

* Switch GasWanted from kv store to persistent kv store

* Fix typo in test name

* switch back to using kvstore, not persistent kv store
also, return ErrNotStarted when trying to stop a not-running service
* Enforce file permissions in case they've changed

* test behaviour for autofile

* use testify in tests and rename `fInf` to `fileInfo`

* return an error if file permissions have changed

- if we can't read the file, we'll still panic

* get rid of "github.com/pkg/errors" dependency

* address review comments:

- prefix instead of suffix
- add state to err and construct formatting in Error() method

* address review comments:

- move error to libs/errors
* [rpc] transform /status result.node_info.other into map
* amino does not support maps, duh

Refs #2391
* update DOCS_README
* add spec to docs & other lil fixes (#2402)
Why:
original fork is abandoned and not supported anymore.

Changes:
- LevelDB 1.19 (LevelDB and Snappy are both compiled and linked statically, so while you will not need them installed on your target machine, you should have a roughly compatible version of libstdc++.)
- snappy and lz4 libs included by default
otherwise we're benchmarking overriding single key (because hash stays
the same!)
BlockIntervalSeconds metric & DB tests cleanup & benchmark improv.
This is the implementation for the design described in ADR 12[0]. It's
the first step of a larger refactor of the p2p package as tracked in
interface bundling all concerns of low-level connection handling and
isolating the rest of peer lifecycle management from the specifics of
the low-level internet protocols. Even if the swappable implementation
will never be utilised, already the isolation of conn related code in
one place will help with the reasoning about execution path and
addressation of security sensitive issues surfaced through bounty
programs and audits.

We deliberately decided to not have Peer filtering and other management
in the Transport, its sole responsibility is the translation of
connections to Peers, handing those to the caller fully setup. It's the
responsibility of the caller to reject those and or keep track. Peer
filtering will take place in the Switch and can be inspected in a the
following commit.

This changeset additionally is an exercise in clean separation of logic
and other infrastructural concerns like logging and instrumentation. By
leveraging a clean and minimal interface. How this looks can be seen in
a follow-up change.

Design #2069[2]
Refs #2067[3]
Fixes #2047[4]
Fixes #2046[5]

changes:
* describe Transport interface
* implement new default Transport: MultiplexTransport
* test MultiplexTransport with new constraints
* implement ConnSet for concurrent management of net.Conn, synchronous
to PeerSet
* implement and expose duplicate IP filter
* implemnt TransportOption for optional parametirisation

[0] https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-012-peer-transport.md
[1] #2067
[2] #2069
[3] #2067
[4] #2047
[5] #2046
We are swapping the exisiting listener implementation with the newly
introduced Transport and its default implementation MultiplexTransport,
removing a large chunk of old connection setup and handling scattered
over the Peer and Switch code. The Switch requires a Transport now and
handles externally passed Peer filters.
Handshaker was removed from proxy package so it can be called
independently of starting the abci app connections and can return a
result to the caller.
We didn't use this code anywhere in the codebase. As such, we probably
should reduce the surface area we support. In the event that we do
in fact require 256 bit words inside of tendermint, we should adapt
the stdlibs' internal word representations, which also handles SIMD.

Inside of the SDK, a separate solution for big ints / larger words
is employed, which uses big ints. This in turn does utilize the stdlibs
SIMD support.
melekes and others added 10 commits September 20, 2018 11:14
* Add /consensus_params endpoint
* Incorporated change #2415 (comment)
* Fixed an error in pervious commit
* readme: add some libs to semver

* changelog: some updates
* follow up to removing some consensus params Refs #2382
* change args type to int64 in state#makeParams
* make valsCount and evidenceCount ints again
* MaxEvidenceBytesPerBlock: include magic number in godoc
* [spec] creating a proposal
* test state#TxFilter
* panic if MaxDataBytes is less than 0
* fixes after review
* use amino#UvarintSize to calculate overhead
https://github.com/tendermint/go-amino/blob/0c74291f3bb61e24f8ea1d13148cece479f79d35/encoder.go#L85-L90
* avoid cyclic imports
* you can do better Go, come on
* remove testdouble package
* ungitignore
* add docs/.vuepress to enable local builds
* config.js needs to be here, one less step
* docs: make spec in sidebar nicer
* docs: local build instructions
Closes: #2460

* Pass http.ServeTLS() errors back to the caller
* Update CHANGELOG
* Amend StartHTTPServer() too for consistency's sake
* Revert "Amend StartHTTPServer() too for consistency's sake"
This reverts commit 23bfb4c.
@ebuchman
Copy link
Contributor Author

ebuchman commented Sep 21, 2018

We should improve https://github.com/tendermint/tendermint/blob/release/v0.25.0/docs/introduction/install.md#compile-with-cleveldb-support. Can we remove the sudo 's there? We should also add instructions for mac. And we might want to mention this in the running in production docs, that goleveldb has issues and that you probably want to build with C.

We should sync with @tendermint/sre about updating the rest of the build pipeline to use CLevelDB in a future release.

@codecov-io
Copy link

codecov-io commented Sep 21, 2018

Codecov Report

Merging #2467 into master will increase coverage by 0.61%.
The diff coverage is 62.88%.

@@            Coverage Diff            @@
##           master   #2467      +/-   ##
=========================================
+ Coverage   61.08%   61.7%   +0.61%     
=========================================
  Files         197     198       +1     
  Lines       16302   16358      +56     
=========================================
+ Hits         9958   10093     +135     
+ Misses       5482    5437      -45     
+ Partials      862     828      -34
Impacted Files Coverage Δ
libs/common/byteslice.go 0% <ø> (-40%) ⬇️
config/config.go 82.58% <ø> (ø) ⬆️
consensus/wal.go 61.24% <ø> (ø) ⬆️
libs/common/string.go 76.66% <ø> (+15.12%) ⬆️
rpc/core/routes.go 0% <ø> (ø) ⬆️
rpc/lib/client/ws_client.go 56.77% <ø> (ø)
p2p/peer.go 58.64% <ø> (+0.69%) ⬆️
libs/common/int.go 100% <ø> (+82.14%) ⬆️
config/toml.go 53.19% <ø> (ø) ⬆️
rpc/core/pipe.go 30.23% <0%> (-1.48%) ⬇️
... and 62 more

@ebuchman
Copy link
Contributor Author

ebuchman commented Sep 21, 2018

TODO


## v0.25.0

*September 22, 2018*
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use ISO 8601 as recommended byt he Government of Canada?

https://camo.githubusercontent.com/915b7be44ada53c290eb157634330494ebe3e30a/68747470733a2f2f676f646f632e6f72672f6769746875622e636f6d2f676f6c616e672f6764646f3f7374617475732e737667
)](https://godoc.org/github.com/tendermint/tendermint)
[![Go version](https://img.shields.io/badge/go-1.9.2-blue.svg)](https://github.com/moovweb/gvm)
[![Go version](https://img.shields.io/badge/go-1.10.4-blue.svg)](https://github.com/moovweb/gvm)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not 1.11?

Copy link
Contributor

@xla xla left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 :octocat: :shipit: 🍡

Left some small comments, most of the changes I reviewed independently already. CHANGELOG look well prepared.

This also refactors the prior mempool to filter to be known as
"precheck filter" and this new filter is called "postcheck filter"

This PR also fixes a bug where the precheck filter previously didn't
account for the amino overhead, which could a maliciously sized tx to
halt blocks from getting any txs in them.

* Move maxGas outside of function definition to avoid race condition
* Type filter funcs and make public
* Use helper method for post check
* Remove superfluous Filter suffix
* Move default pre/post checks into package
* Fix broken references
* Fix typos
* Expand on examples for checks
CHANGELOG.md Outdated

IMPROVEMENTS:
- [libs/db] [\#2371](https://github.com/tendermint/tendermint/issues/2371) Output error instead of panic when the given `db_backend` is not initialised (@bradyjoestar)
- [libs] [\#2286](https://github.com/tendermint/tendermint/issues/2286) Enforce 0600 permissions on `autofile` and `db/fsdb`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Panic if permissions change. I don't think it's the same as Enforce ...

@ebuchman ebuchman mentioned this pull request Sep 23, 2018
* mempool: update some comments

* make build_c

* docs: notes about databases and WAL files

* docs: determinism. closes #1279

* docs: small note about query paths. closes #2090

* docs: gas

* docs: abci consensus params
@ebuchman ebuchman merged commit cd172ac into master Sep 23, 2018
@ebuchman ebuchman deleted the release/v0.25.0 branch September 23, 2018 05:33
iKapitonau pushed a commit to scrtlabs/tendermint that referenced this pull request Jul 10, 2024
cboh4 pushed a commit to scrtlabs/tendermint that referenced this pull request Apr 7, 2025
tendermint#2574)

…ks (backport tendermint#2467) (tendermint#2515)

Manual backport of cometbft/cometbft#2467

Co-authored-by: Andy Nogueira <me@andynogueira.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.