All Versions
157
Latest Version
Avg Release Cycle
26 days
Latest Release
-

Changelog History
Page 9

  • v0.31.8 Changes

    July 29, 2019

    July 29, 2019

    ๐Ÿš€ This releases fixes one bug in the PEX reactor and adds a recover to the Go's ABCI server, which allows it to properly cleanup.

    ๐Ÿ‘Œ IMPROVEMENTS:

    • [abci] #3809 Recover from application panics in server/socket_server.go to allow socket cleanup (@ruseinov)

    ๐Ÿ› BUG FIXES:

    • [p2p] #3338 Prevent "sent next PEX request too soon" errors by not calling ensurePeers outside of ensurePeersRoutine
  • v0.31.7 Changes

    June 04, 2019

    June 3, 2019

    ๐Ÿš€ This releases fixes a regression in the mempool introduced in v0.31.6. The regression caused the invalid committed txs to be proposed in blocks over and over again.

    ๐Ÿ› BUG FIXES:

    • ๐Ÿšš [mempool] #3699 Remove all committed txs from the mempool. This reverts the change from v0.31.6 where we only remove valid txs from the mempool. Note this means malicious proposals can cause txs to be dropped from the mempools of other nodes by including them in blocks before they are valid. See #3322.
  • v0.31.6 Changes

    May 30, 2019

    May 31st, 2019

    ๐Ÿš€ This release contains many fixes and improvements, primarily for p2p functionality. ๐Ÿ”’ It also fixes a security issue in the mempool package.

    ๐Ÿš€ With this release, Tendermint now supports boltdb, although ๐Ÿ†“ in experimental mode. Feel free to try and report to us any findings/issues. ๐Ÿ— Note also that the build tags for compiling CLevelDB have changed.

    ๐Ÿš€ Special thanks to external contributors on this release: @guagualvcha, @james-ray, @gregdhill, @climber73, @yutianwu, @carlosflrs, @defunctzombie, @leoluk, @needkane, @CrocdileChan

    ๐Ÿ’ฅ BREAKING CHANGES:

    • Go API
      • [libs/common] Removed deprecated PanicSanity, PanicCrisis, PanicConsensus and PanicQ
      • [mempool, state] #2659 Mempool now an interface that lives in the mempool package. See issue and PR for more details.
      • [p2p] #3346 Reactor#InitPeer method is added to Reactor interface
      • [types] #1648 Commit#VoteSignBytes signature was changed

    ๐Ÿ”‹ FEATURES:

    • [node] #2659 Add node.Mempool() method, which allows you to access mempool
    • ๐Ÿ‘ [libs/db] #3604 Add experimental support for bolt db (etcd's fork of bolt) (@CrocdileChan)

    ๐Ÿ‘Œ IMPROVEMENTS:

    • [cli] #3585 Add --keep-addr-book option to unsafe_reset_all cmd to not clear the address book (@climber73)
    • [cli] #3160 Add --config=<path-to-config> option to testnet cmd (@gregdhill)
    • [cli] #3661 Add --hostname-suffix, --hostname and --random-monikers options to testnet cmd for greater peer address/identity generation flexibility.
    • [crypto] #3672 Return more info in the AddSignatureFromPubKey error
    • [cs/replay] #3460 Check appHash for each block
    • [libs/db] #3611 Conditional compilation
    • [node] #3362 Return an error if persistent_peers list is invalid (except when IP lookup fails)
    • ๐ŸŒฒ [p2p] #3463 Do not log "Can't add peer's address to addrbook" error for a private peer (@guagualvcha)
    • [p2p] #3531 Terminate session on nonce wrapping (@climber73)
    • ๐Ÿ‘€ [pex] #3647 Dial seeds, if any, instead of crawling peers first (@defunctzombie)
    • ๐Ÿ‘ [rpc] #3534 Add support for batched requests/responses in JSON RPC
    • ๐Ÿ‘€ [rpc] #3362 /dial_seeds & /dial_peers return errors if addresses are incorrect (except when IP lookup fails)

    ๐Ÿ› BUG FIXES:

    • [consensus] #3067 Fix replay from appHeight==0 with validator set changes (@james-ray)
    • [consensus] #3304 Create a peer state in consensus reactor before the peer is started (@guagualvcha)
    • [lite] #3669 Add context parameter to RPC Handlers in proxy routes (@yutianwu)
    • ๐Ÿšš [mempool] #3322 When a block is committed, only remove committed txs from the mempool that were valid (ie. ResponseDeliverTx.Code == 0)
    • ๐Ÿšš [p2p] #3338 Ensure RemovePeer is always called before InitPeer (upon a peer reconnecting to our node)
    • ๐Ÿ‘€ [p2p] #3532 Limit the number of attempts to connect to a peer in seed mode to 16 (as a result, the node will stop retrying after a 35 hours time window)
    • ๐Ÿ‘€ [p2p] #3362 Allow inbound peers to be persistent, including for seed nodes.
    • ๐Ÿ‘€ [pex] #3603 Dial seeds when addrbook needs more addresses (@defunctzombie)

    OTHERS:

    • ๐Ÿ›  [networks] fixes ansible integration script (@carlosflrs)
  • v0.31.5 Changes

    April 16, 2019

    April 16th, 2019

    ๐Ÿš€ This release fixes a regression from v0.31.4 where, in existing chains that โฌ†๏ธ were upgraded, /validators could return an empty validator set. This is true for almost all heights, given the validator set remains the same.

    ๐Ÿš€ Special thanks to external contributors on this release: @brapse, @guagualvcha, @dongsam, @phucc

    ๐Ÿ‘Œ IMPROVEMENTS:

    • [libs/common] CMap: slight optimization in Keys() and Values() (@phucc)
    • [gitignore] gitignore: add .vendor-new (@dongsam)

    ๐Ÿ› BUG FIXES:

    • [state] #3537 LoadValidators: do not return an empty validator set
    • [blockchain] #3457 Fix "peer did not send us anything" in fast_sync mode when under high pressure
  • v0.31.4 Changes

    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. Also, it contains an ADR 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

    ๐Ÿ‘Œ IMPROVEMENTS:

    • ๐ŸŒฒ [p2p] #3463 Do not log "Can't add peer's address to addrbook" error for a private peer
    • โœ๏ธ [p2p] #3547 Fix a couple of annoying typos (@mdyring)

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ“„ [docs] #3514 Fix block.Header.Time description (@melekes)
    • [p2p] #2716 Check if we're already connected to peer right before dialing it (@melekes)
    • [p2p] #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)
    • [state] #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 Changes

    April 1st, 2019

    ๐Ÿš€ 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 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 Ensure generated private keys are valid by randomly sampling until a valid key is found. Previously, it was possible (though rare!) to generate keys that exceeded the curve order. Such keys would lead to invalid signatures.
    • [p2p] #3522 Memoize socket address in peer connections to avoid DNS lookups. Previously, failed DNS lookups could cause the node to panic.
  • v0.31.2 Changes

    March 30th, 2019

    ๐Ÿš€ This release fixes a regression from v0.31.1 where Tendermint panics under mempool load for external ABCI apps.

    ๐Ÿš€ Special thanks to external contributors on this release: @guagualvcha

    ๐Ÿ’ฅ BREAKING CHANGES:

    • CLI/RPC/Config

    • Apps

    • Go API

      • [libs/autofile] #3504 Remove unused code in autofile package. Deleted functions: Group.Search, Group.FindLast, GroupReader.ReadLine, GroupReader.PushLine, MakeSimpleSearchFunc (@guagualvcha)
    • Blockchain Protocol

    • P2P Protocol

    ๐Ÿ”‹ FEATURES:

    ๐Ÿ‘Œ IMPROVEMENTS:

    • ๐Ÿš€ [circle] #3497 Move release management to CircleCI

    ๐Ÿ› BUG FIXES:

    • [mempool] #3512 Fix panic from concurrent access to txsMap, a regression for external ABCI apps introduced in v0.31.1
  • v0.31.1 Changes

    March 27th, 2019

    ๐Ÿš€ This release contains a major improvement for the mempool that reduce the amount of sent data by about 30% ๐Ÿ‘€ (see some numbers below). ๐Ÿ›  It also fixes a memory leak in the mempool and adds TLS support to the RPC server by providing a certificate and key in the config.

    ๐Ÿš€ Special thanks to external contributors on this release: @brapse, @guagualvcha, @HaoyangLiu, @needkane, @TraceBundy

    ๐Ÿ’ฅ BREAKING CHANGES:

    • CLI/RPC/Config

    • Apps

    • Go API

      • [crypto] #3426 Remove Ripemd160 helper method (@needkane)
      • [libs/common] #3429 Remove RepeatTimer (also TimerMaker and Ticker interface)
      • [rpc/client] #3458 Include NetworkClient interface into Client interface
      • [types] #3448 Remove method PB2TM.ConsensusParams
    • Blockchain Protocol

    • P2P Protocol

    ๐Ÿ”‹ FEATURES:

    • [rpc] #3419 Start HTTPS server if rpc.tls_cert_file and rpc.tls_key_file are provided in the config (@guagualvcha)

    ๐Ÿ‘Œ IMPROVEMENTS:

    • ๐Ÿ“„ [docs] #3140 Formalize proposer election algorithm properties
    • ๐Ÿ“„ [docs] #3482 Fix broken links (@brapse)
    • [mempool] #2778 No longer send txs back to peers who sent it to you. Also, limit to 65536 active peers. This vastly improves the bandwidth consumption of nodes. โœ… For instance, for a 4 node localnet, in a test sending 250byte txs for 120 sec. at 500 txs/sec (total of 15MB):
      • total bytes received from 1st node:
        • before: 42793967 (43MB)
        • after: 30003256 (30MB)
      • total bytes sent to 1st node:
        • before: 30569339 (30MB)
        • after: 19304964 (19MB)
    • [p2p] #3475 Simplify GetSelectionWithBias for addressbook (@guagualvcha)
    • [rpc/lib/client] #3430 Disable compression for HTTP client to prevent GZIP-bomb DoS attacks (@guagualvcha)

    ๐Ÿ› BUG FIXES:

    • โšก๏ธ [blockchain] #2699 Update the maxHeight when a peer is removed
    • [mempool] #3478 Fix memory-leak related to broadcastTxRoutine (@HaoyangLiu)
  • v0.31.0 Changes

    March 16th, 2019

    ๐Ÿš€ Special thanks to external contributors on this release: @danil-lashin, @guagualvcha, @siburu, @silasdavis, @srmo, @Stumble, @svenstaro

    ๐Ÿš€ This release is primarily about the new pubsub implementation, dubbed pubsub 2.0, and related changes, like configurable limits on the number of active RPC subscriptions at a time (max_subscription_clients). Pubsub 2.0 is an improved version of the older pubsub that is non-blocking and has a nicer API. Note the improved pubsub API also resulted in some improvements to the HTTPClient interface and the API for WebSocket subscriptions. This release also adds a configurable limit to the mempool size (max_txs_bytes, default 1GB) and a configurable timeout for the /broadcast_tx_commit endpoint.

    ๐Ÿ‘€ See the v0.31.0 Milestone for more details.

    Friendly reminder, we have a bug bounty program.

    ๐Ÿ’ฅ BREAKING CHANGES:

    • CLI/RPC/Config

      • [config] #2920 Remove consensus.blocktime_iota parameter
      • [rpc] #3227 New PubSub design does not block on clients when publishing messages. Slow clients may miss messages and receive an error, terminating the subscription.
      • [rpc] #3269 Limit number of unique clientIDs with open subscriptions. Configurable via rpc.max_subscription_clients
      • [rpc] #3269 Limit number of unique queries a given client can subscribe to at once. Configurable via rpc.max_subscriptions_per_client.
      • [rpc] #3435 Default ReadTimeout and WriteTimeout changed to 10s. WriteTimeout can increased by setting rpc.timeout_broadcast_tx_commit in the config.
      • [rpc/client] #3269 Update EventsClient interface to reflect new pubsub/eventBus API ADR-33. This includes Subscribe, Unsubscribe, and UnsubscribeAll methods.
    • Apps

      • [abci] #3403 Remove time_iota_ms from BlockParams. This is a ConsensusParam but need not be exposed to the app for now.
      • [abci] #2920 Rename consensus_params.block_size to consensus_params.block in ABCI ConsensusParams
    • Go API

      • [libs/common] TrapSignal accepts logger as a first parameter and does not block anymore
      • previously it was dumping "captured ..." msg to os.Stdout
      • TrapSignal should not be responsible for blocking thread of execution
      • [libs/db] #3397 Add possibility to Close() Batch to prevent memory leak when using ClevelDB. (@Stumble)
      • [types] #3354 Remove RoundState from EventDataRoundState
      • [rpc] #3435 StartHTTPServer / StartHTTPAndTLSServer now require a Config (use rpcserver.DefaultConfig)
    • Blockchain Protocol

    • P2P Protocol

    ๐Ÿ”‹ FEATURES:

    • ๐Ÿ”ง [config] #3269 New configuration values for controlling RPC subscriptions:
      • rpc.max_subscription_clients sets the maximum number of unique clients with open subscriptions
      • rpc.max_subscriptions_per_clientsets the maximum number of unique subscriptions from a given client
      • rpc.timeout_broadcast_tx_commit sets the time to wait for a tx to be committed during /broadcast_tx_commit
    • [types] #2920 Add time_iota_ms to block's consensus parameters (not exposed to the application)
    • [lite] #3269 Add /unsubscribe_all endpoint to unsubscribe from all events
    • [mempool] #3079 Bound mempool memory usage via the mempool.max_txs_bytes configuration value. Set to 1GB by default. The mempool's current txs_total_bytes is exposed via total_bytes field in /num_unconfirmed_txs and /unconfirmed_txs RPC endpoints.

    ๐Ÿ‘Œ IMPROVEMENTS:

    • ๐Ÿ‘• [all] #3385, #3386 Various linting improvements
    • ๐Ÿ“ฆ [crypto] #3371 Copy in secp256k1 package from go-ethereum instead of importing go-ethereum (@silasdavis)
    • ๐Ÿš€ [deps] #3382 Don't pin repos without releases
    • โšก๏ธ [deps] #3357, #3389, #3392 Update gogo/protobuf, golang/protobuf, levigo, golang.org/x/crypto
    • [libs/common] #3238 exit with zero (0) code upon receiving SIGTERM/SIGINT
    • [libs/db] #3378 CLevelDB#Stats now returns the following properties:
      • leveldb.num-files-at-level{n}
      • leveldb.stats
      • leveldb.sstables
      • leveldb.blockpool
      • leveldb.cachedblock
      • leveldb.openedtables
      • leveldb.alivesnaps
      • leveldb.aliveiters
    • ๐Ÿ”จ [privval] #3351 First part of larger refactoring that clarifies and separates concerns in the privval package.

    ๐Ÿ› BUG FIXES:

    • [blockchain] #3358 Fix timer leak in BlockPool (@guagualvcha)
    • โœ… [cmd] #3408 Fix testnet command's panic when creating non-validator configs (using --n flag) (@srmo)
    • [libs/db/remotedb/grpcdb] #3402 Close Iterator/ReverseIterator after use
    • ๐Ÿ“„ [libs/pubsub] #951, #1880 Use non-blocking send when dispatching messages ADR-33
    • [lite] #3364 Fix /validators and /abci_query proxy endpoints (@guagualvcha)
    • [p2p/conn] #3347 Reject all-zero shared secrets in the Diffie-Hellman step of secret-connection
    • [p2p] #3369 Do not panic when filter times out
    • [p2p] #3359 Fix reconnecting report duplicate ID error due to race condition between adding peer to peerSet and starting it (@guagualvcha)
  • v0.30.2 Changes

    March 10th, 2019

    ๐Ÿš€ This release fixes a CLevelDB memory leak. It was happening because we were not ๐Ÿ‘€ closing the WriteBatch object after use. See levigo's godoc for the Close method. Special thanks goes to @Stumble who both reported an issue in cosmos-sdk and provided a ๐Ÿ›  fix here.

    ๐Ÿ’ฅ BREAKING CHANGES:

    • Go API
      • [libs/db] #3842 Add Close() method to Batch interface (@Stumble)

    ๐Ÿ› BUG FIXES:

    • [libs/db] #3842 Fix CLevelDB memory leak (@Stumble)