Skip to content

Release/v0.28.0#3135

Merged
ebuchman merged 35 commits intomasterfrom
release/v0.28.0
Jan 16, 2019
Merged

Release/v0.28.0#3135
ebuchman merged 35 commits intomasterfrom
release/v0.28.0

Conversation

@ebuchman
Copy link
Contributor

ebuchman and others added 30 commits December 16, 2018 14:30
Merge pull request #3032 from tendermint/release/v0.27.3
* fix docs / proxy app, closes #2986

* counter_serial

* review comments

* list all possible options

* add changelog entries
because we pop txs from the front if the cache is full

Refs #3035
* update go version & other cleanup

* fix lints

* go one.eleven.four

* keep circle on 1.11.3 for now
* config: cors options are arrays of strings, not strings

Fixes #2980

* docs: update tendermint-core/configuration.html page

* set allow_duplicate_ip to false

* in `tendermint testnet`, set allow_duplicate_ip to true

Refs #2712

* fixes after Ismail's review
* add rpc to docs navbar and close #3000

* Update config.js
Merge master back to develop
* split immutable and mutable parts of priv_validator.json

* fix bugs

* minor changes

* retrig test

* delete scripts/wire2amino.go

* fix test

* fixes from review

* privval: remove mtx

* rearrange priv_validator.go

* upgrade path

* write tests for the upgrade

* fix for unsafe_reset_all

* add test

* add reset test
privval: remove GetAddress(), memoize pubkey
* add signing spec

* fixes from review

* more fixes

* fixes from review
* fix build scripts

Search for the right variable when introspecting Go code. `Version` was
renamed to `TMCoreSemVer`.

This is regression introduced in
b95ac68

* fix all `Version` introspections.

Use `TMCoreSemVer` instead of `Version`
* Don't use pointer receivers for PubKeyMultisigThreshold

* test that showcases panic when PubKeyMultisigThreshold are used in sdk:

 - deserialization will fail in `readInfo` which tries to read a
 `crypto.PubKey` into a `localInfo` (called by
  cosmos-sdk/client/keys.GetKeyInfo)

* Update changelog

* Rename routeTable to nameTable, multisig key is no longer a pointer

* sed -i 's/PubKeyAminoRoute/PubKeyAminoName/g' `grep -lrw PubKeyAminoRoute .`

upon Jae's request

* AminoRoutes -> AminoNames

* sed -e 's/PrivKeyAminoRoute/PrivKeyAminoName/g'

* Update crypto/encoding/amino/amino.go

Co-Authored-By: alessio <quadrispro@ubuntu.com>
* Ensure multisig keys have 20-byte address

Use crypto.AddressHash() to avoid returning 32-byte long address.

Closes: #3102

* fix pointer

* fix test
* update README

* fix from review
* p2p/conn: add failing tests

* p2p/conn: make SecretConnection thread safe

* changelog

* fix from review
* Close and recreate a RemoteSigner on err

* Update changelog

* Address Anton's comments / suggestions:

 - update changelog
 - restart TCPVal
 - shut down on `ErrUnexpectedResponse`

* re-init remote signer client with fresh connection if Ping fails

- add/update TODOs in secret connection
- rename tcp.go -> tcp_client.go, same with ipc to clarify their purpose

* account for `conn returned by waitConnection can be `nil`

- also add TODO about RemoteSigner conn field

* Tests for retrying: IPC / TCP

 - shorter info log on success
 - set conn and use it in tests to close conn

* Tests for retrying: IPC / TCP

 - shorter info log on success
 - set conn and use it in tests to close conn
 - add rwmutex for conn field in IPC

* comments and doc.go

* fix ipc tests. fixes #2677

* use constants for tests

* cleanup some error statements

* fixes #2784, race in tests

* remove print statement

* minor fixes from review

* update comment on sts spec

* cosmetics

* p2p/conn: add failing tests

* p2p/conn: make SecretConnection thread safe

* changelog

* IPCVal signer refactor

- use a .reset() method
- don't use embedded RemoteSignerClient
- guard RemoteSignerClient with mutex
- drop the .conn
- expose Close() on RemoteSignerClient

* apply IPCVal refactor to TCPVal

* remove mtx from RemoteSignerClient

* consolidate IPCVal and TCPVal, fixes #3104

- done in tcp_client.go
- now called SocketVal
- takes a listener in the constructor
- make tcpListener and unixListener contain all the differences

* delete ipc files

* introduce unix and tcp dialer for RemoteSigner

* rename files

- drop tcp_ prefix
- rename priv_validator.go to file.go

* bring back listener options

* fix node

* fix priv_val_server

* fix node test

* minor cleanup and comments
* Validating that there are txs in the query results before loop throught the array

* Created tests to validate the error has been fixed

* Added comments

* Fixing misspeling

* check if the variable "skipCount" is bigger than zero. If it is not, we set it to 0. If it, we do not do anything.

* using function that validates the skipCount variable

* undo Gopkg.lock changes
* Initial work towards making ConsensusCore spec complete

* Initial version of executor and complete consensus
* changelog pending and upgrading

* linkify and version bump

* changelog shuffle
As per #3115, adds simple Unix socket connect/accept deadline tests in
pretty much the same way as the TCP connect/accept deadline tests work.
This cuts out two tests by constructing test cases and iterating through
them, rather than having separate sets of tests for TCP and Unix listeners.
This is as per the feedback from #3121.
thanethomson and others added 4 commits January 15, 2019 18:17
* Adds a random suffix to temporary Unix sockets during testing

* Adds Unix domain socket tests for client (FAILING)

This adds Unix domain socket tests for the privval client. Right now,
one of the tests (TestRemoteSignerRetry) fails, probably because the
Unix domain socket state is known instantaneously on both sides by the
OS. Committing this to collaborate on the error.

* Removes extraneous logging

* Completes testing of Unix sockets client version

This completes the testing of the client connecting via Unix sockets.
There are two specific tests (TestSocketPVDeadline and
TestRemoteSignerRetryTCPOnly) that are only relevant to TCP connections.

* Renames test to show TCP-specificity

* Adds testing into closures for consistency (forgot previously)

* Moves test specific to RemoteSigner into own file

As per discussion on #3132, `TestRemoteSignerRetryTCPOnly` doesn't
really belong with the client tests. This moves it into its own file
related to the `RemoteSigner` class.
@codecov-io
Copy link

codecov-io commented Jan 16, 2019

Codecov Report

Merging #3135 into master will decrease coverage by 0.07%.
The diff coverage is 71.54%.

@@            Coverage Diff             @@
##           master    #3135      +/-   ##
==========================================
- Coverage   62.93%   62.85%   -0.08%     
==========================================
  Files         212      211       -1     
  Lines       17405    17396       -9     
==========================================
- Hits        10953    10935      -18     
- Misses       5534     5539       +5     
- Partials      918      922       +4
Impacted Files Coverage Δ
p2p/node_info.go 75.64% <ø> (ø) ⬆️
cmd/tendermint/commands/testnet.go 17.34% <0%> (-1.14%) ⬇️
cmd/tendermint/commands/gen_validator.go 0% <0%> (ø) ⬆️
rpc/core/tx.go 0% <0%> (ø) ⬆️
cmd/tendermint/commands/init.go 0% <0%> (ø) ⬆️
rpc/core/net.go 0% <0%> (ø) ⬆️
rpc/core/pipe.go 27.08% <0%> (-3.15%) ⬇️
cmd/tendermint/commands/reset_priv_validator.go 0% <0%> (ø) ⬆️
cmd/tendermint/commands/show_validator.go 0% <0%> (ø) ⬆️
cmd/tendermint/commands/run_node.go 0% <0%> (ø) ⬆️
... and 28 more

CHANGELOG.md Outdated
separating the `priv_validator.json` into distinct config and data files, and
refactoring the socket validator to support reconnections.

XXX: Please backup your existing `priv_validator.json` before using this
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
XXX: Please backup your existing `priv_validator.json` before using this
**Note:** Please backup your existing `priv_validator.json` before using this

CHANGELOG.md Outdated
- [p2p/conn] [\#3111](https://github.com/tendermint/tendermint/issues/3111) Make SecretConnection thread safe
- [rpc] [\#3053](https://github.com/tendermint/tendermint/issues/3053) Fix internal error in `/tx_search` when results are empty
(@gianfelipe93)
- [types] [\#2926](https://github.com/tendermint/tendermint/issues/2926) Do not panic if retrieving the private validator's public key fails
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: I probably wrote this but "retrieving the private validator's public key" reads a bit weirdly. Change to privval or remote signer?

Suggested change
- [types] [\#2926](https://github.com/tendermint/tendermint/issues/2926) Do not panic if retrieving the private validator's public key fails
- [types] [\#2926](https://github.com/tendermint/tendermint/issues/2926) Do not panic if retrieving the remote signer's public key fails


* [Cosmos SDK](http://github.com/cosmos/cosmos-sdk); a cryptocurrency application framework
* [Ethermint](http://github.com/cosmos/ethermint); Ethereum on Tendermint
* [Many more](https://tendermint.com/ecosystem)
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we want to link the community maintained list here, too?
https://forum.cosmos.network/t/list-of-projects-in-cosmos-tendermint-ecosystem/243

Copy link
Contributor

Choose a reason for hiding this comment

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

hmm, we should update the ecosystem.json - that URL is generated from: https://github.com/tendermint/tendermint/blob/master/docs/app-dev/ecosystem.json

UPGRADING.md Outdated

Please read carefully for details about upgrading.

XXX: Backup your `config/priv_validator.json`
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
XXX: Backup your `config/priv_validator.json`
**Note:** Backup your `config/priv_validator.json`

Height int64 `binary:"fixed64"`
Round int64 `binary:"fixed64"`
Timestamp time.Time
BlockID BlockID
Copy link
Contributor

@liamsi liamsi Jan 16, 2019

Choose a reason for hiding this comment

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

Not sure how this happened (again). Thought I've fixed this in
~~#3078.~~~

Oh NVM: #3078 is not included in this release!


The order should be:

BlockID   BlockID
Timestamp time.Time

It's correct in the go-code:

BlockID CanonicalBlockID
Timestamp time.Time

BlockID CanonicalBlockID
Timestamp time.Time

BlockID BlockID `json:"block_id"`
Timestamp time.Time `json:"timestamp"`

tendermint/types/vote.go

Lines 55 to 56 in dcb8f88

BlockID BlockID `json:"block_id"` // zero if vote is nil.
Timestamp time.Time `json:"timestamp"`

@ebuchman ebuchman mentioned this pull request Jan 16, 2019
4 tasks
Copy link
Contributor

@melekes melekes left a comment

Choose a reason for hiding this comment

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

@ebuchman ebuchman merged commit aa40cfc into master Jan 16, 2019
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.