Skip to content
This repository has been archived by the owner on May 13, 2022. It is now read-only.

Releases: hyperledger-archives/burrow

v0.26.2

19 Jun 12:14
468279f
Compare
Choose a tag to compare

Fixed

  • [Blockchain] Persist LastBlockTime in Blockchain - before this patch LastBlockTime would only be set correctly after the first block had been received after a node is restarted - this can lead to non-determinism in the EVM via the TIMESTAMP opcode that use the LastBlockTime which is itself sourced from Tendermint's block header (from their implementation of BFT time). Implementing no empty blocks made observing this bug more likely by increasing the amount of time spent in a bad state (LastBlockTime is initially set to GenesisTime).

v0.26.1

16 Jun 12:44
d3282a0
Compare
Choose a tag to compare

Changed

  • [CLI] 'burrow dump' renamed 'burrow dump remote'
  • [Consensus] By default Burrow no longer creates empty blocks at the end of a round - though does make on every 5 minutes by default. Set CreateEmptyBlocks to "never" or omit to create no blocks unless there are transactions, or "always" to generate blocks even when there are no transactions.
  • [State] Burrow state does not store empty blocks in the execution event store even when Tendermint creates them.
  • [Build] 'make install_burrow' is now just 'make install'

Fixed

  • [Deploy] Always read TxExecution exception in Burrow deploy to avoid panics later on
  • [Restore] Set restore transaction hash to non-zero (sha256 of original ChainID + Height)
  • [Vent] --txs and --blocks now actually enable their respective tables in the Vent database
  • [Consensus] Tendermint config CreateEmptyBlocks, CreateEmptyBlocksInterval now work as intended and prevent empty blocks being produced (except when needed for proof purposes) or when the interval expires (when set)

Added

  • [Dump] burrow dump now has local variant that produces a dump directly from a compatible burrow directory rather than over GRPC. If dumping/restoring between state-incompatible versions use burrow dump remote.

v0.26.0

14 Jun 11:55
6f813f9
Compare
Choose a tag to compare

Changed

  • [Vent] The chain id is stored in the SQL Tables
  • [CLI] Command line arguments have changed

Fixed

  • [Tendermint] Disable default Tendermint TxIndexer - for which we have no use but puts extra load on DB
  • [Tendermint] The CreateEmptyBlocks and CreateEmptyBlocksInterval now works
  • [State] Empty blocks are not longer stored
  • [State] Genesis doc is no longer persisted at every block
  • [State] Store TxExecutions as single entry per block, rather than one per Event

Add

  • [Vent] vent can restore tables from vent log using new vent restore command

v0.25.1

03 May 16:17
6002c8f
Compare
Choose a tag to compare

Changed

  • [Config] Split ListenAddress into ListenHost and ListenPort to ease parsing in the Helm charts
  • [CLI] Burrow restore now always fails if state is detected but can be made --silent
  • [CLI] No dump client timeout by default
  • [Deploy] Reduced the default logging level to trace instead of info
  • [Build] Switched to Go modules

Fixed

  • [Keys] Resolved an issue where the keyStore wasn't built when using the remote keys client.
  • [Deploy] Fix nil dereference in query error path, check constructor args in BuildJob

v0.25.0

09 Apr 09:31
888297d
Compare
Choose a tag to compare

Changed

  • [Tendermint] Upgraded to 0.31.2
  • [IAVL] upgraded to 0.12.2
  • [Config] Tendermint.TimeoutFactor moved to Execution.TimeoutFactor (and reused for NoConsensus mode)
  • [Kernel] Refactored and various exported methods changed

Added

  • [CLI] Burrow deploy can now run multiple burrow deploy files (aka playbooks) and run them in parallel
  • [Consensus] Now possible to run Burrow without Tendermint in 'NoConsensus' mode by setting Tendermint.Enabled = false for faster local testing. Execution.TimeoutFactor can be used to control how regularly Burrow commits (and is used

Fixed

  • [Execution] Fixed uint64 underflow (when subtracting fee from balance) not protected against in CallContext
  • [Tests] Various concurrency issues fixed in tests and execution tests parallelised

v0.24.6

19 Mar 17:48
ec25392
Compare
Choose a tag to compare

Changed

  • [RPC] 'blocks' on info RPC now lists blocks in ascending rather than descending height order

Added

  • [CLI] Introduced burrow configure --pool for generation of multiple validator configs suitable for running on a single (or many) machines

Fixed

  • [Metrics] Fix histogram statistics by making counts cumulative

v0.24.5

14 Mar 12:29
5c1e505
Compare
Choose a tag to compare

Changed

  • [Consensus] Tendermint timeouts configurable by a float factor from defaults and default change to 0.33 of Tendermint's default for smaller networks'
  • [Transactor] Hard-coded timeout removed from transactor and added to TxEnvelopeParam for client specified server-side timeout (in case of longer confirmation times such as when some validators are unavailable
  • [Logging] ExcludeTrace config inverted to Trace and now defaults to false (i.e. no trace/debug logging). Default log output now excludes Tendermint logging (and is therefore much less talkative)

Added

  • [Logging] Add height to all logging messages
  • [RPC] Add LastBlockCommitDuration to SyncInfo

Fixed

  • [Metrics] Replace use of Summary metrics when Histogram was intended

v0.24.3

06 Mar 15:33
d07b1d5
Compare
Choose a tag to compare

Fixed

  • [State] Avoid stack traces which may be code-path-dependent or non-deterministic from being pushed to TxExecutions and so to merkle state where they can lead to breaking consensus
  • [State] KVCache iterator fixed to use low, high interface as per DB, fixing CacheDB for use in Replay

Added

  • [Logging] Included height in various execution log messages
  • [Transactor] Now provides SyncInfo in error message when there is a BroadcastTxSync timeout

v0.24.2

01 Mar 16:43
79b57ff
Compare
Choose a tag to compare

Changed

  • [Genesis] Use HexBytes for Genesis AppHash

Fixed

  • [Vent] Stop Vent from swallowing errors (e.g. GRPC streaming errors)
  • [Consensus] Updated to patched version of Tendermint that does not pull in go-ethereum dependency
  • [CLI] Removed duplicate -t flag from burrow configure

Added

  • [Kernel] Added announce message for startup and shutdown including version, key address, and other useful metadata
  • [EVM] Attempt to provide REVERT reason where possible
  • [Vent] --abi and --spec can be provided multiple times to provide multiple paths to search

v0.24.0

27 Feb 13:43
2964a12
Compare
Choose a tag to compare

Changed

  • [EVM] Use TxHash to allow predictable sequence numbers for account creation (allows proposal mechanism to aggregate transactions and execute in a BatchTx) - pull request
  • [State] Introduced MutableForest and change state layout to a streaming model that amongst other things should not blow the GRPC message size for large transactions
  • [Consensus] Upgraded Tendermint to v0.30.1
  • [State] Upgraded IAVL to v0.12.1
  • [EVM] Integration tests upgraded to Solidity 0.5.4
  • [State] All state now stored in merkle tree via MutableForest
  • [State] Full validator state history stored in forest
  • [Vent] Updated EventSpec table specification configuration format
  • [Vent] Added support for managing Postgres triggers

Fixed

  • [Transactor] Reduce TxExecution subscription overhead
  • [Transactor] Remove excessive debug subscription timeout
  • [State] Fixed issue with check-pointing that could cause divergent AppHash across node restarts- pull request
  • [EVM] Implemented BLOCKHASH opcode
  • [EVM] Used correct callee STATICCALL to fix cross-contract queries
  • [Consensus] Guarded against total validator power overflow (as limited by Tendermint)

Added

  • [EVM] Implemented CREATE2 opcode
  • [EVM] Implemented EXTCODEHASH opcode
  • [Accounts] Add account GetStats to query endpoint
  • [Config] Expose AddrBookStrict from Tendermint
  • [Deploy] burrow deploy now prints events generated during transactions
  • [Deploy] burrow deploy can use key names where addresses are used
  • [Governance] Added threshold-based governance via Proposal mechanism which allows entities with Root permission to propose and vote on batches of transactions to be executed on a running network with no single entity being able to do so.
  • [Governance] Added command line and query introspection of proposals as well as burrow deploy support
  • [Vent] Merged Vent our SQL projection and mapping layer into the Burrow repository and binary via 'burrow vent'. See Vent Readme
  • [State] Improved read-write separation with RWTree and ImmutableForest data structures
  • [State] Implemented dump/restore to port state between different version of Burrow or to compress the execution of a chain (with a proof) onto a fresh chain