github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/CHANGELOG.md (about)

     1  # [Hyperledger Burrow](https://github.com/hyperledger/burrow) Changelog
     2  ## [0.34.4] - 2021-07-23
     3  ### Changed
     4  - [JS] Make deploy and deployContract take deps argument consisting of deployment options and library object. The library object makes it easier to pass an identical object with the addresses of commonly used libraries under their canonical names.
     5  
     6  
     7  ## [0.34.3] - 2021-07-19
     8  ### Fixed
     9  - [JS] Fix spelling of 'contractName' in solts, add contract name to contract object.
    10  
    11  ### Added
    12  - [JS] Added option to build.ts code generation to not fail on Solidity compiler warnings, which is now the default. Warnings are still logged to stderr
    13  
    14  
    15  ## [0.34.2] - 2021-07-09
    16  ### Fixed
    17  - [Build] Add 0.34.1 changes!
    18  
    19  
    20  ## [0.34.1] - 2021-07-09
    21  ### Fixed
    22  - [JS] build function does not swallow errors without a formattedMessage, chdir into basepath before build so solc imports work as expected
    23  
    24  
    25  ## [0.34.0] - 2021-05-28
    26  ### Changed
    27  - [JS] Provider interface no longer depends on GRPC types to improve compatibility between versions of Burrow.js and ease of extension
    28  - [JS] Use non-unique marker interface to indicate stream cancellation in event reducer (again for compatibility between versions and extensibility)
    29  - [Go] Upgrade to Go 1.16
    30  
    31  ### Fixed
    32  - [JS] Fix codegen silently swallowing collisions of abi files (renamed from .bin to .abi) and use hierarchical directory structure to further reduce chance of collision
    33  - [JS] Just depende on @ethersproject/abi rather than entire umbrella project
    34  
    35  ### Added
    36  - [JS] Include deployedBycode and optionally submit ABI's to Burrow's contract metadata store on deploy
    37  
    38  
    39  ## [0.33.1] - 2021-05-24
    40  ### Fixed
    41  - [JS] Return bytesNN as Buffer to agree with typings
    42  
    43  ### Added
    44  - [JS] Inline sources and source maps
    45  
    46  
    47  ## [0.33.0] - 2021-05-24
    48  ### Changed
    49  - [JS] Changed Burrow interface and renamed Burrow client object to to Client (merging in features needed for solts support)
    50  
    51  ### Fixed
    52  - [JS] Fixed RLP encoding extra leading zeros on uint64 (thanks Matthieu Vachon!)
    53  - [JS] Improved compatibility with legacy Solidity bytes types and padding conventions
    54  - [Events] Fixed Burrow event stream wrongly switching to streaming mode for block ranges that are available in state (when the latest block is an empty block - so not stored in state)
    55  
    56  ### Added
    57  - [JS] Added Solidity-to-Typescript code generation support (merging in solts) - this provides helpers (build.ts, api.ts) to compile Solidity files into corresponding .abi.ts files that include types for functions, events, the ABI, and EVM bytecode, and includes bindings into Burrow JS to deploy and interact with contracts via Typescript/Javascript with strong static types
    58  - [JS] Improved interactions with events which can now be queried over any range and with strong types, see the listenerFor, reduceEvents, readEvents, and iterateEvents functions.
    59  
    60  
    61  ## [0.32.1] - 2021-05-15
    62  ### Changed
    63  - [Execution] CallErrors no longer emit very long rather pointless (since there is no tooling to help interpret them currently) EVM call traces
    64  - [JS] Return byte arrays as Buffers from decode (only return fixed-width byteNN types as hex strings)
    65  
    66  
    67  ## [0.32.0] - 2021-05-14
    68  ### Changed
    69  - [JS] Significant refactor/rewrite of Burrow.js into idiomatic Typescript including some breaking changes to API
    70  - [JS] Change to use ethers.js for ABI encoding
    71  
    72  ### Fixed
    73  - [State] Fixed cache-concurrency bug (https://github.com/hyperledger/burrow/commit/314357e0789b0ec7033a2a419b816d2f1025cad0) and ensured consistency snapshot is used when performing simulated call reads
    74  - [Web3] Omit empty values from JSONRPC calls
    75  
    76  ### Added
    77  - [Tendermint] Added support for passing node options to Tendermint - e.g. custom reactors (thanks @nmanchovski!)
    78  - [JS] Historic events can now be requested via API
    79  - [JS] Contract deployments will now include ABIs via contract metadata so Burrow's ABI registry can be used
    80  
    81  
    82  ## [0.31.3] - 2020-03-25
    83  ### Fixed
    84  - [Dump] Make load from dump set tx index so BlockAccumulator continuity conditions are met
    85  - [Dump] Improve error messages
    86  
    87  
    88  ## [0.31.2] - 2020-03-24
    89  ### Fixed
    90  - [Dump] Stop TxStack EventStream consumer from rejecting events from dump/restored chain because they lack tx Envelopes (as they are intended to to keep dump format minimal)
    91  - [Genesis] Fix hash instability introduced by accidentally removing omitempty from AppHash in genesis
    92  
    93  ### Added
    94  - [Vent] Implement throttling on Ethereum Vent consumer via --max-request-rate=<requests / time base> flag to 'vent start'
    95  
    96  
    97  ## [0.31.1] - 2020-03-19
    98  ### Changed
    99  - [Repo] main branch replaces master as per Hyperledger TSC guidelines
   100  
   101  ### Fixed
   102  - [Docker] Make sure default testnet mode works when running docker images
   103  - [Vent] Use appropriately sized database integral types for EVM integer types (i.e. numeric for uint64 and bigger)
   104  - [Vent] Ethereum block consumer now correctly reads to an _inclusive_ block batch end height
   105  - [Web3] Handle integer ChainID for web3 consistently; return hex-encoded numeric value from web3 RPC, also allow overriding of genesis-hash derived ChainID so Burrow can be connected with from metamask
   106  
   107  ### Added
   108  - [Build] Build dev docker and JS releases by force pushing to prerelease branch
   109  - [Vent] Expose BlockConsumerConfig to adjust backoff and read characteristics
   110  - [Vent] Add vent-side continuity test over blocks (to double-check exactly once delivery of events)
   111  
   112  
   113  ## [0.31.0] - 2020-03-10
   114  ### Changed
   115  - [Tendermint] Upgraded to Tendermint 0.34.3
   116  - [Docker] Image will now start testnet by default
   117  
   118  ### Added
   119  - [Vent] Added support for building Vent SQL tables from Ethereum web3 JSONRPC chains (useful for oracles/state channels with layer 1)
   120  - [Vent] Added Status to healthcheck endpoint on Vent
   121  - [Natives] Implemented ecrecover using btcec (revised key handling)
   122  - [Engine] Implement cross-engine dispatch
   123  - [WASM] Implement cross-engine calls and calls to precompiles
   124  - [WASM] Significantly extend eWASM support and implement functions
   125  - [WASM] Add printing debug functions
   126  - [WASM] Implement CREATE, GETTXGASPRICE, GETBLOCKDIFFICULTY, SELFDESTRUCT eWASM functions (thanks Yoongbok Lee!)
   127  - [WASM/JS] JS library supports deploying WASM code
   128  - [Deploy] Can specify WASM in playbook
   129  - [EVM] Implement CHAINID and DIFFICULTY opcodes
   130  - [Query] PEG query grammar now supports Not ("NOT") and NotEqual ("!=") operators
   131  
   132  ### Fixed
   133  - [Deploy] Fix flaky parallel tests
   134  - [EVM] Use correct opcode for create2 (thanks Vitali Grabovski!)
   135  - [ABI] Check length of input before decoding (thanks Tri-stone!)
   136  - [WASM] Constructor argument handling
   137  - [RLP] Incorrect use of offsets for longer bytes strings
   138  - [RLP] Use minimal encoding for length prefixes (no leading zeros)
   139  - [Web3] Generate correct encoding hash for RawTx (ChainID in hash digest but not payload)
   140  - [Web3] Generate canonical weird Ethereum hex
   141  - [State] Fix read concurrency in RWTree (on which state is based) removing need for CallSim lock workaround
   142  
   143  ### Security
   144  - Updated elliptic JS dep to 6.5.3
   145  - Updated lodash to 4.17.19
   146  
   147  
   148  ## [0.30.5] - 2020-07-09
   149  ### Added
   150  - [Vent] Add BytesToHex flag on projection field mappings that causes bytes fields (e.g. bytes32) solidity fields to be hex-encoded and mapped to varchar(64) rather than bytea/blob columns in postgres/sqlite
   151  
   152  
   153  ## [0.30.4] - 2020-04-05
   154  ### Added
   155  - [Build] Added Helm chart
   156  - [State] Account now has EVMOpcodeBitset field to support upcoming EVM fixes
   157  
   158  ### Fixed
   159  - [JS] Github actions release of JS lib
   160  
   161  
   162  ## [0.30.3] - 2020-04-05
   163  ### Added
   164  - [CLI] Made previously internal Solidity Go fixtures compilation available through 'burrow compile'
   165  - [TS] Default ts client interface implementation
   166  
   167  
   168  ## [0.30.2] - 2020-03-13
   169  ### Fixed
   170  - [RPC] add mutex to callSim and callCode
   171  
   172  
   173  ## [0.30.1] - 2020-03-06
   174  ### Fixed
   175  - [CLI/Tx] Unbond formulation now specifies amount
   176  
   177  
   178  ## [0.30.0] - 2020-03-05
   179  ### Changed
   180  - [JS] Partial rewrite of client API in typescript
   181  
   182  ### Fixed
   183  - [State] Blockchain now commits initial AppHash to avoid IAVL panic
   184  
   185  
   186  ## [0.29.8] - 2020-02-11
   187  ### Fixed
   188  - [ABI] Fix failure to convert crypto.Address to EVMAddress (https://github.com/hyperledger/burrow/issues/1326)
   189  
   190  
   191  ## [0.29.7] - 2020-01-27
   192  ### Fixed
   193  - [Build] Updates to CI build process
   194  
   195  
   196  ## [0.29.6] - 2020-01-22
   197  ### Changed
   198  - [CLI] Burrow dump can now stream to STDOUT
   199  
   200  ### Fixed
   201  - [NPM] Burrow-js is now published via an auth token
   202  
   203  
   204  ## [0.29.5] - 2019-12-09
   205  ### Security
   206  - [Tendermint] Upgraded to v0.32.8, checkTxAsync now includes node ID
   207  
   208  ### Changed
   209  - [Vent] Sync every block height to DB and send height notification from _vent_chain table so downstream can check DB sync without --blocks
   210  - [RPC/Query] GetName now returns GRPC NotFound status (rather than unknown) when a requested key is not set.
   211  
   212  ### Fixed
   213  - [Execution] Simulated calls (e.g. query contracts) now returns the height of the state on which the query was run. Useful for downstream sync.
   214  
   215  
   216  ## [0.29.4] - 2019-11-22
   217  ### Changed
   218  - [Build] Move to solidity 0.5.12
   219  
   220  
   221  ## [0.29.3] - 2019-10-16
   222  ### Changed
   223  - [NPM] Point package.json to index.js
   224  
   225  
   226  ## [0.29.2] - 2019-10-15
   227  ### Changed
   228  - [NPM] Publish with index.js in TLD
   229  
   230  
   231  ## [0.29.1] - 2019-10-10
   232  ### Changed
   233  - [State] Split metadata and account state to be kinder to downstream EVM integrators
   234  
   235  
   236  ## [0.29.0] - 2019-10-08
   237  ### Changed
   238  - [Config] Reverted rename of ValidatorAddress to Address in config (each Burrow node has a specific validator key it uses for signing whether or not it is running as a validator right now)
   239  
   240  ### Fixed
   241  - [EVM] Return integer overflow error code (not stack overflow) for integer overflow errors
   242  - [Docs] Fix broken examples
   243  - [Deploy] Set input on QueryContract jobs correctly
   244  - [EVM] Fix byte-printing for DebugOpcodes run mode
   245  - [Crypto] Use Tendermint-compatible secp256k1 addressing
   246  - [Natives] Make natives first class contracts and establish Dispatcher and Callable as a common calling convention for natives, EVM, and WASM (pending for WASM).
   247  - [Natives] Fix Ethereum precompile addresses (addresses were padded on right instead of the left)
   248  
   249  
   250  ### Added
   251  - [Web3] Implemented Ethereum web3 JSON RPC including sendRawTransaction!
   252  - [Docs] Much docs (see also: https://www.hyperledger.org/blog/2019/10/08/burrow-the-boring-blockchain)
   253  - [Docs] Generate github pages docs index with docsify: https://hyperledger.github.io/burrow/
   254  - [JS] Publish burrow.js to @hyperledger/burrow
   255  - [State] Store EVM ABI and contract metadata on-chain see [GetMetadata](https://github.com/hyperledger/burrow/blob/e80aad5d8fac1f67dbfec61ea75670f9a38c61a1/protobuf/rpcquery.proto#L25)
   256  - [Tendermint] Upgrade to v0.32.3
   257  - [Execution] Added IdentifyTx for introducing nodes (binding their NodeID to ValidatorAddress)
   258  - [Natives] Implement Ethereum precompile number 5 - modular exponentiation
   259  
   260  
   261  
   262  ## [0.28.2] - 2019-08-21
   263  ### Fixed
   264  - [Vent] The new decode event ABI _before_ filter provides more keys but means vent must have access to all possible LogEvent ABIs when it is started. This is not practical in general so we now will will only err if an event matches but we have no ABI. This means we might not notice we have forgot to include an ABI since an event that _would_ have matched on an ABI spec field (prefixed 'Event') will not just not match, and so fail silently.
   265  
   266  
   267  ## [0.28.1] - 2019-08-21
   268  ### Fixed
   269  - [Vent] Log for _vent_log insert now faithfully captures what is being inserted
   270  - [Vent] Remove arbitrary 100 character limits on system table text fields
   271  
   272  ### Added
   273  - [JS] Burrow.js now included in Burrow repo and tested with Burrow CI! Future burrow.js releases will now match version of Burrow.
   274  
   275  
   276  ## [0.28.0] - 2019-08-14
   277  ### Changed
   278  - [State] IterateStreamEvents now takes inclusive start and end points (end used to be exclusive) avoid bug-prone conversion
   279  - [Dump] Improved structure and API
   280  - [Dump] Default to JSON output and use protobuf for binary output
   281  
   282  ### Fixed
   283  - [Dump] Fix dump missing events emitted at end height provided
   284  - [Dump] EVM events were not dumped if no height was provided to burrow dump remote commandline
   285  - [RPC/Info] Fix panic in /names and implement properly - now accepts a 'regex' parameter which is a regular expression to match names. Empty for all names.
   286  - [Configure] burrow configure flags --separate-genesis-doc and --pool now work together
   287  
   288  ### Added
   289  - [State] Burrow now remembers contact ABIs (which describe how to pack bits when calling contracts) - burrow deploy and vent will both use chain-hosted ABI if they are available
   290  - [State] Bond and unbond transactions are now implement to allow validators to transfer native token into validator power.
   291  - [Dump] Better tests, mock, and benchmarks - suitable for profiling IAVL
   292  - [Events] Filters now support OR connective
   293  - [Vent] Projection filters can now have filters longer than 100 characters.
   294  - [Vent] Falls back to local ABI
   295  - [CLI/RPC] Contracts now hold metadata, including contract name, source file, and function names
   296  
   297  
   298  
   299  ## [0.27.0] - 2019-06-23
   300  ### Added
   301  - [WASM] Support for WASM contracts written in Solidity compiled using solang
   302  
   303  ### Fixed
   304  -[RPC/Transact] CallCodeSim and CallTxSim were run against uncommitted checker state rather than committed state were all other reads are routed. They were also passed through Transactor for no particularly good reason. This changes them to run against committed DB state and removes the code path through Transactor.
   305  
   306  ### Changed
   307  - [State] TxExecution's Envelope now stored in state so will be reproduced in Vent Tx tables and over RPC, and so matches TxExecutions served from *Sync rpctransact methods
   308  
   309  
   310  ## [0.26.2] - 2019-06-19
   311  ### Fixed
   312  - [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).
   313  
   314  
   315  ## [0.26.1] - 2019-06-16
   316  ### Changed
   317  - [CLI] 'burrow dump' renamed 'burrow dump remote'
   318  - [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.
   319  - [State] Burrow state does not store empty blocks in the execution event store even when Tendermint creates them.
   320  - [Build] 'make install_burrow' is now just 'make install'
   321  
   322  ### Fixed
   323  - [Deploy] Always read TxExecution exception in Burrow deploy to avoid panics later on
   324  - [Restore] Set restore transaction hash to non-zero (sha256 of original ChainID + Height)
   325  - [Vent] --txs and --blocks now actually enable their respective tables in the Vent database
   326  - [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)
   327  
   328  ### Added
   329  - [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.
   330  
   331  
   332  ## [0.26.0] - 2019-06-14
   333  ### Changed
   334  - [Vent] The chain id is stored in the SQL Tables
   335  - [CLI] Command line arguments have changed
   336  
   337  ### Fixed
   338  - [Tendermint] Disable default Tendermint TxIndexer - for which we have no use but puts extra load on DB
   339  - [Tendermint] The CreateEmptyBlocks and CreateEmptyBlocksInterval now works
   340  - [State] Empty blocks are not longer stored
   341  - [State] Genesis doc is no longer persisted at every block
   342  - [State] Store TxExecutions as single entry per block, rather than one per Event
   343  ### Add
   344  - [Vent] vent can restore tables from vent log using new vent restore command
   345  
   346  
   347  ## [0.25.1] - 2019-05-03
   348  ### Changed
   349  - [Config] Split ListenAddress into ListenHost and ListenPort to ease parsing in the Helm charts
   350  - [CLI] Burrow restore now always fails if state is detected but can be made --silent
   351  - [CLI] No dump client timeout by default
   352  - [Deploy] Reduced the default logging level to trace instead of info
   353  - [Build] Switched to Go modules
   354  
   355  ### Fixed
   356  - [Keys] Resolved an issue where the keyStore wasn't built when using the remote keys client.
   357  - [Deploy] Fix nil dereference in query error path, check constructor args in BuildJob
   358  
   359  
   360  ## [0.25.0] - 2019-04-05
   361  ### Changed
   362  - [Tendermint] Upgraded to 0.31.2
   363  - [IAVL] upgraded to 0.12.2
   364  - [Config] Tendermint.TimeoutFactor moved to Execution.TimeoutFactor (and reused for NoConsensus mode)
   365  - [Kernel] Refactored and various exported methods changed
   366  
   367  ### Added
   368  - [CLI] Introduced burrow configure --pool for generation of multiple validator configs suitable for running on a single (or many) machines
   369  - [CLI] Burrow deploy can now run multiple burrow deploy files (aka playbooks) and run them in parallel
   370  - [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
   371  
   372  ### Fixed
   373  - [Execution] Fixed uint64 underflow (when subtracting fee from balance) not protected against in CallContext
   374  - [Tests] Various concurrency issues fixed in tests and execution tests parallelised
   375  
   376  
   377  
   378  ## [0.24.6] - 2019-03-19
   379  ### Changed
   380  - [RPC] 'blocks' on info RPC now lists blocks in ascending rather than descending height order
   381  
   382  ### Added
   383  - [CLI] Introduced burrow configure --pool for generation of multiple validator configs suitable for running on a single (or many) machines
   384  
   385  ### Fixed
   386  - [Metrics] Fix histogram statistics by making counts cumulative
   387  
   388  
   389  ## [0.24.5] - 2019-03-14
   390  ### Changed
   391  - [Consensus] Tendermint timeouts configurable by a float factor from defaults and default change to 0.33 of Tendermint's default for smaller networks'
   392  - [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
   393  - [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)
   394  
   395  ### Added
   396  - [Logging] Add height to all logging messages
   397  - [RPC] Add LastBlockCommitDuration to SyncInfo
   398  
   399  ### Fixed
   400  - [Metrics] Replace use of Summary metrics when Histogram was intended
   401  
   402  
   403  ## [0.24.4] - 2019-03-08
   404  ### Changed
   405  - [EVM] Accept []byte nonce rather than enforcing the use of txs.Tx.TxHash()
   406  - [Crypto] Expose SequenceNonce helper to allow library users to use sequence-number based addresses for newly created contracts
   407  
   408  
   409  ## [0.24.3] - 2019-03-06
   410  ### Fixed
   411  - [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
   412  - [State] KVCache iterator fixed to use low, high interface as per DB, fixing CacheDB for use in Replay
   413  
   414  ### Added
   415  - [Logging] Included height in various execution log messages
   416  - [Transactor] Now provides SyncInfo in error message when there is a BroadcastTxSync timeout
   417  
   418  
   419  ## [0.24.2] - 2019-02-28
   420  ### Changed
   421  - [Genesis] Use HexBytes for Genesis AppHash
   422  
   423  ### Fixed
   424  - [Vent] Stop Vent from swallowing errors (e.g. GRPC streaming errors)
   425  - [Consensus] Updated to patched version of Tendermint that does not pull in go-ethereum dependency
   426  - [CLI] Removed duplicate -t flag from burrow configure
   427  
   428  
   429  ### Added
   430  - [Kernel] Added announce message for startup and shutdown including version, key address, and other useful metadata
   431  - [EVM] Attempt to provide REVERT reason where possible
   432  - [Vent] --abi and --spec can be provided multiple times to provide multiple paths to search
   433  
   434  
   435  ## [0.24.1] - 2019-02-28
   436  ### Changed
   437  - [ABI] abi.EncodeFunctionCall and AbiSpec.Pack now take a variadic ...interface{} type for function arguments rather than []string
   438  
   439  ### Fixed
   440  - [Deploy] Binary files are now written atomically to prevent issue with dependency libraries being momentarily truncated when deploying in parallel
   441  
   442  ### Added
   443  - [ABI] DecodeFunctionReturn re-exposed (formerly Packer then packer in 0.24.0) to make deploy API symmetrical
   444  
   445  
   446  ## [0.24.0] - 2019-02-26
   447  ### Changed
   448  - [EVM] Use TxHash to allow predictable sequence numbers for account creation (allows proposal mechanism to aggregate transactions and execute in a BatchTx) - [pull request](https://github.com/hyperledger/burrow/pull/969)
   449  - [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
   450  - [Consensus] Upgraded Tendermint to v0.30.1
   451  - [State] Upgraded IAVL to v0.12.1
   452  - [EVM] Integration tests upgraded to Solidity 0.5.4
   453  - [State] All state now stored in merkle tree via MutableForest
   454  - [State] Full validator state history stored in forest
   455  - [Vent] Updated EventSpec table specification configuration format
   456  - [Vent] Added support for managing Postgres triggers
   457  
   458  ### Fixed
   459  - [Transactor] Reduce TxExecution subscription overhead
   460  - [Transactor] Remove excessive debug subscription timeout
   461  - [State] Fixed issue with check-pointing that could cause divergent AppHash across node restarts- [pull request](https://github.com/hyperledger/burrow/pull/985)
   462  - [EVM] Implemented BLOCKHASH opcode
   463  - [EVM] Used correct callee STATICCALL to fix cross-contract queries
   464  - [Consensus] Guarded against total validator power overflow (as limited by Tendermint)
   465  
   466  ### Added
   467  - [EVM] Implemented [CREATE2 opcode](https://eips.ethereum.org/EIPS/eip-1014)
   468  - [EVM] Implemented [EXTCODEHASH opcode](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1052.md)
   469  - [Accounts] Add account GetStats to query endpoint
   470  - [Config] Expose AddrBookStrict from Tendermint
   471  - [Deploy] burrow deploy now prints events generated during transactions
   472  - [Deploy] burrow deploy can use key names where addresses are used
   473  - [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.
   474  - [Governance] Added command line and query introspection of proposals as well as burrow deploy support
   475  - [Vent] Merged Vent our SQL projection and mapping layer into the Burrow repository and binary via 'burrow vent'. See [Vent Readme](./vent/vent.md)
   476  - [State] Improved read-write separation with RWTree and ImmutableForest data structures
   477  - [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
   478  
   479  
   480  
   481  ## [0.23.3] - 2018-12-19
   482  ### Fixed
   483  - [State] Since State hash is not unique (i.e if we make no writes) by storing the CommitID by AppHash we can overwrite an older CommitID with a newer one leading us to load the wrong tree version to overwrite in case of loading from a checkpoint.
   484  
   485  
   486  ## [0.23.2] - 2018-12-18
   487  Hotfix release for 0.23.1
   488  ### Fixed
   489  - [State] Fixed issue with checkpointing whereby RWTree would load its readTree from one version lower than it should.
   490  
   491  
   492  
   493  ## [0.23.1] - 2018-11-14
   494  ### Fixed
   495  - [EVM] state/Cache no longer allows SetStorage on accounts that do not exist
   496  - [GRPC] GetAccount on unknown account no longer causes a panic
   497  
   498  ### Added
   499  - [Docker] Added solc 0.4.25 binary to docker container so that burrow deploy has what it needs to function
   500  - [Execution] panics from executors are captured and pushed to error sink of TxExecution
   501  
   502  
   503  ## [0.23.0] - 2018-11-09
   504  ### Changed
   505  - [ABI] provides fast event lookup of EventID
   506  - [Events] BlockExecution now included full Tendermint block header as protobuf object rather than JSON string
   507  - [EVM] Nested call errors are now transmitted to EventSink (e.g. TxExecution) as events for better tracing and tests
   508  - [SNative] Permissions contract returns permission flag set not resultant permissions from setBase unsetBase and setGlobal
   509  - [EVM] Errors transmitted through errors.Pusher interface for more reliable capture from memory, stack, and elsewhere
   510  - [Governance] Breaking change to state structure due to governance storage in tree (state root hashes will not match)
   511  
   512  
   513  ### Fixed
   514  - [EVM] Issue where value was not transferred because VM call state was not synced
   515  - [EVM] Various issue where errors were swallowed (in particular - where calling an empty account and when a TX was invalid on delivery)
   516  - [EVM] When calling a non-existent account CreateAccount permission is checked on the caller not the caller's caller
   517  - [CLI] Version now contains date and commit
   518  - [Test] Burrow integration test runner shuts down Burrow correctly
   519  - [Serialisation] updated tmthrgd/go-hex to fallback on default encoding when lacking SSE 4.1 CPU instructions
   520  
   521  
   522  ### Added
   523  - [Deploy] Burrow deploy meta jobs reuses GRPC connection
   524  - [Governance] Added proposal mechanism (via ProposalTx) that allows bulk atomic update of smart contracts and changing network parameters via a threshold voting mechanism. This allows some level of network evolution without any single trusted party or hard forks. This should be considered alpha level functionality.
   525  - [EVM] Added EVM State interface removing unnecessary cache layer (fixing various issues)
   526  - [EVM] Implemented STATICCALL opcode
   527  - [P2P] Added AuthorizedPeers config option to sync only with whitelisted peers exposed over ABCI query under key /p2p/filter/
   528  - [EVM] stack depth now dynamically allocated and exponentially grown in the same way as memory
   529  - [EVM] Solidity proxy call forwarding test
   530  
   531  ### Removed
   532  - MutableAccount and ConcreteAccount
   533  
   534  
   535  ## [0.22.0] - 2018-09-21
   536  ### Changed
   537  - Upgraded to Tendermint 0.24.0
   538  - Upgraded to IAVL 0.11.0
   539  
   540  ### Fixed
   541  - Fixed non-determinism in Governance Tx
   542  - Fixed various abi issues
   543  
   544  ### Added
   545  - burrow deploy displays revert reason when available
   546  - burrow deploy compiles contracts concurrently
   547  
   548  ## [0.21.0] - 2018-08-21
   549  ### Changed
   550  - Upgraded to Tendermint 0.23.0
   551  - Validator Set Power now takes Address
   552  - RPC/TM config renamed to RPC/Info
   553  
   554  ### Added
   555  - Burrow deploy creates devdoc
   556  - Docker image has org.label-schema labels
   557  
   558  ### Fixed
   559  - Upgrade to IAVL 0.10.0 and load previous versions immutably on boot - for chains with a long history > 20 minute load times could be observed because every previous root was being loaded from DB rather than lightweight version references as was intended
   560  - Metrics server does not panic on empty block metas and recovers from other panics
   561  
   562  
   563  ## [0.20.1] - 2018-08-17
   564  ### Changed
   565  - The snatives functions have new signatures; string arguments are now string, not byte32.
   566  - The Solidity interface contracts can be generated using the "burrow snatives" command, and the make snatives target is gone.
   567  
   568  ### Fixed
   569  - TxExecutions that were exceptions (for example those that were REVERTed) will no longer have their events emitted from ExecutionEventsServer.GetEvents. They remain stored in state for the time being.
   570  - CallTxSim and CallCodeSim now take same code path as real transactions (via CallContext)
   571  - Release our mempool signing lock once transactions have been CheckTx'd' to massively increase throughput.
   572  
   573  ### Added
   574  - Upgraded to Tendermint [0.22.8](https://github.com/tendermint/tendermint/compare/v0.22.4...v0.22.8) (from 0.22.4).
   575  - Support mempool signing for BroadcastTxAsync.
   576  - Reload log file (e.g. for logrotate) on SIGHUP and dump capture logs on SIGUSR1 and on shutdown (e.g. for debug).
   577  - File logger accepts {{.Timestamp}} in file names to generate a log file per run.
   578  - Ability to set --external-address on burrow configure and burrow start
   579  - Ability to set various command line options on burrow configure and burrow start and by BURROW_ prefixed environment variables
   580  - Exposed Tendermint SeedMode option
   581  
   582  
   583  ## [0.20.0] - 2018-07-24
   584  This is a major (pre-1.0.0) release that introduces the ability to change the validator set through GovTx, transaction execution history, and fuller GRPC endpoint.
   585  
   586  #### Breaking changes
   587  - Address format has been changed (by Tendermint and we have followed suite) - conversion is possible but simpler to regenerated keys
   588  - JSON-RPC interface has been removed
   589  - burrow-client has been removed
   590  - rpc/TM methods for events and broadcast have been removed
   591  
   592  #### Features
   593  - Tendermint 0.24.4
   594  - GovTx GRPC service. The validator set can be now be changed.
   595  - Enhanced GRPC services: NameReg, Transaction index, blocks service
   596  - Events GRPC service
   597  - Transaction Service can set value transferred
   598  
   599  #### Improvements
   600  - The output of "burrow keys export" can be templated
   601  
   602  #### Bug fixes
   603  - Fixed panic on nil bounds for blocks service
   604  
   605  
   606  
   607  ## [0.19.0] - 2018-06-26
   608  This is a major (pre-1.0.0) release that brings upgrades, safety improvements, cloud configuration, and GRPC endpoints to Burrow.
   609  
   610  #### Breaking changes
   611  In addition to breaking changes associated with Tendermint (see their changelog):
   612  - State checkpointing logic has changed which has we load based on blockchain
   613  - Event format has changed over rpc/V0 see execution/events/ package
   614  - On-disk keys format has change from monax-keys to be more standard burrow keys
   615  - Address format has been changed (by Tendermint and we have followed suite) - conversion is possible but simpler to regenerated keys
   616  
   617  #### Features
   618  - Tendermint 0.21.0
   619  - Implemented EVM opcodes: REVERT, INVALID, SHL, SAR, SHR, RETURNDATACOPY, RETURNDATASIZE
   620  - Add config templating with burrow configure --config-template-in --config-out
   621  - Add config templates for kubernetes
   622  - Integrate monax-keys as internal (default) or standalone keys service, key gen exposed over CLI
   623  - Use GRPC for keys
   624  - Add GRPC service for Transactor and Events
   625  - Store ExecutionEvent by height and index in merkle tree state
   626  - Add historical query for all time with GetEvents
   627  - Add streaming GRPC service for ExecutionEvents with query language over tags
   628  - Add metadata to ExecutionEvents
   629  - Add BlockExplorer CLI for forensics
   630  - Expose reason for REVERT
   631  - Add last_block_info healthcheck endpoint to rpc/TM
   632  -
   633  #### Improvements
   634  - Implement checkpointing when saving application and blockchain state in commit - interrupted commit rolls burrow back to last block whereon it can catch up using Tendermint
   635  - Maintain separate read-only tree in state so that long-running RPC request cannot block writes
   636  - Improve state safety
   637  - Improved input account server-side-signing
   638  - Increase subscription reap time on rpc/V0 to 20 seconds
   639  - Reorganise CLI
   640  - Improve internal serialisation
   641  - Refactor and modularise execution logic
   642  
   643  #### Bug fixes
   644  - Fix address generation from bytes mismatch
   645  
   646  
   647  
   648  ## [0.18.1]
   649  This is a minor release including:
   650  - Introduce InputAccount param for RPC/v0 for integration in JS libs
   651  - Resolve some issues with RPC/tm tests swallowing timeouts and not dealing with reordered events
   652  
   653  ## [0.18.0] - 2018-05-09
   654  This is an extremely large release in terms of lines of code changed addressing several years of technical debt. Despite this efforts were made to maintain external interfaces as much as possible and an extended period of stabilisation has taken place on develop.
   655  
   656  A major strand of work has been in condensing previous Monax tooling spread across multiple repos into just two. The Hyperledger Burrow repo and [Bosmarmot](http://github.com/monax/bosmarmot). Burrow is now able to generate chains (replacing 'monax chains make') with 'burrow spec' and 'burrow configure'. Our 'EPM' contract deployment and testing tool, our javascript libraries, compilers, and monax-keys are avaiable in Bosmarmot (the former in the 'bos' tool). Work is underway to pull monax-keys into the Burrow project, and we will continue to make Burrow as self-contained as possible.
   657  
   658  #### Features
   659  - Substantial support for latest EVM and solidity 0.4.21+ (missing some opcodes that will be added shortly - see known issues)
   660  - Tendermint 0.18.0
   661  - All signing through monax-keys KeyClient connection (preparation for HSM and GPG based signing daemon)
   662  - Address-based signing (Burrow acts as delegate when you send transact, transactAndHold, send, sendAndHold, and transactNameReg a parameter including input_account (hex address) instead of priv_key.
   663  - Provide sequential signing when using transact family methods (above) - allowing 100s Tx per second with the same input account
   664  - Genesis making, config making, and key generation through 'burrow spec' and 'burrow configure'
   665  - Logging configuration language and text/template for output
   666  - Improved CLI UX and framework (mow.cli)
   667  - Improved configuration
   668  
   669  
   670  #### Internal Improvements
   671  - Refactored execution and provide interfaces for executor
   672  - Segregate EVM and blockchain state to act as better library
   673  - Panic recovery on TX execution
   674  - Stricter interface boundaries and immutability of core objects by default
   675  - Replace broken BlockCache with universal StateCache that doesn't write directly to DB
   676  - All dependencies upgraded, notably: tendermint/IAVL 0.7.0
   677  - Use Go dep instead of glide
   678  - PubSub event hub with query language
   679  - Heavily optimised logging
   680  - PPROF profiling server option
   681  - Additional tests in multiple packages including v0 RPC and concurrency-focussed test
   682  - Use Tendermint verifier for PrivValidator
   683  - Use monax/relic for project history
   684  - Run bosmarmot integration tests in CI
   685  - Update documentation
   686  - Numerous maintainability, naming, and aesthetic code improvements
   687  
   688  #### Bug fixes
   689  - Fix memory leak in BlockCache
   690  - Fix CPU usage in BlockCache
   691  - Fix SIGNEXTEND for negative numbers
   692  - Fix multiple execution level panics
   693  - Make Transactor work during tendermint recheck
   694  
   695  #### Known issues
   696  - Documentation rot - some effort has been made to update documentation to represent the current state but in some places it has slipped help can be found (and would be welcomed) on: [Hyperledger Burrow Chat](https://chat.hyperledger.org/channel/burrow)
   697  - Missing support for: RETURNDATACOPY and RETURNDATASIZE https://github.com/hyperledger/burrow/issues/705 (coming very soon)
   698  - Missing support for: INVALID https://github.com/hyperledger/burrow/issues/705 (coming very soon)
   699  - Missing support for: REVERT https://github.com/hyperledger/burrow/issues/600 (coming very soon)
   700  
   701  
   702  ## [0.17.1]
   703  Minor tweaks to docker build file
   704  
   705  ## [0.17.0] - 2017-09-04
   706  This is a service release with some significant ethereum/solidity compatibility improvements and new logging features. It includes:
   707  
   708  - [Upgrade to use Tendermint v0.9.2](https://github.com/hyperledger/burrow/pull/595)
   709  - [Implemented dynamic memory](https://github.com/hyperledger/burrow/pull/607) assumed by the EVM bytecode produce by solidity, fixing various issues.
   710  - Logging sinks and configuration - providing a flexible mechanism for configuring log flows and outputs see [logging section in readme](https://github.com/hyperledger/burrow#logging). Various other logging enhancements.
   711  - Fix event unsubscription
   712  - Remove module-specific versioning
   713  - Rename suicide to selfdestruct
   714  - SNative tweaks
   715  
   716  Known issues:
   717  
   718  - SELFDESTRUCT opcode causes a panic when an account is removed. A [fix](https://github.com/hyperledger/burrow/pull/605) was produced but was [reverted](https://github.com/hyperledger/burrow/pull/636) pending investigation of a possible regression.
   719  
   720  ## [0.16.3] - 2017-04-25
   721  This release adds an stop-gap fix to the Transact method so that it never
   722  transfers value with the CallTx is generates.
   723  
   724  We hard-code amount = fee so that no value is transferred
   725  regardless of fee sent. This fixes an invalid jump destination error arising
   726  from transferring value to non-payable functions with newer versions of solidity.
   727  By doing this we can resolve some issues with users of the v0 RPC without making
   728  a breaking API change.
   729  
   730  ## [0.16.2] - 2017-04-20
   731  This release finalises our accession to the Hyperledger project and updates our root package namespace to github.com/hyperledger/burrow.
   732  
   733  It also includes a bug fix for rpc/V0 so that BroadcastTx can accept any transaction type and various pieces of internal clean-up.
   734  
   735  ## [0.16.1] - 2017-04-04
   736  This release was an internal rename to 'Burrow' with some minor other attendant clean up.
   737  
   738  ## [0.16.0] - 2017-03-01
   739  This is a consolidation release that fixes various bugs and improves elements
   740  of the architecture across the Monax Platform to support a quicker release
   741  cadence.
   742  
   743  #### Features and improvements (among others)
   744  - [pull-510](https://github.com/hyperledger/burrow/pull/510) upgrade consensus engine to Tendermint v0.8.0
   745  - [pull-507](https://github.com/hyperledger/burrow/pull/507) use sha3 for snative addresses for future-proofing
   746  - [pull-506](https://github.com/hyperledger/burrow/pull/506) alignment and consolidation for genesis and config between tooling and chains
   747  - [pull-504](https://github.com/hyperledger/burrow/pull/504) relicense eris-db to Apache 2.0
   748  - [pull-500](https://github.com/hyperledger/burrow/pull/500) introduce more strongly types secure native contracts
   749  - [pull-499](https://github.com/hyperledger/burrow/pull/499) introduce word256 and remove dependency on tendermint/go-common
   750  - [pull-493](https://github.com/hyperledger/burrow/pull/493) re-introduce GenesisTime in GenesisDoc
   751  
   752  - Logging system overhauled based on the central logging interface of go-kit log. Configuration lacking in this release but should be in 0.16.1. Allows powerful routing, filtering, and output options for better operations and increasing the observability of an eris blockchain. More to follow.
   753  - Genesis making is improved and moved into eris-db.
   754  - Config templating is moved into eris-db for better synchronisation of server config between the consumer of it (eris-db) and the producers of it (eris cli and other tools).
   755  - Some documentation updates in code and in specs.
   756  - [pull-462](https://github.com/hyperledger/burrow/pull/499) Makefile added to capture conventions around building and testing and replicate them across different environments such as continuous integration systems.
   757  
   758  #### Bugfixes (among others)
   759  - [pull-516](https://github.com/hyperledger/burrow/pull/516) Organize and add unit tests for rpc/v0
   760  - [pull-453](https://github.com/hyperledger/burrow/pull/453) Fix deserialisation for BroadcastTx on rpc/v0
   761  - [pull-476](https://github.com/hyperledger/burrow/pull/476) patch EXTCODESIZE for native contracts as solc ^v0.4 performs a safety check for non-zero contract code
   762  - [pull-468](https://github.com/hyperledger/burrow/pull/468) correct specifications for params on unsubscribe on rpc/tendermint
   763  - [pull-465](https://github.com/hyperledger/burrow/pull/465) fix divergence from JSON-RPC spec for Response object
   764  - [pull-366](https://github.com/hyperledger/burrow/pull/366) correction to circle ci script
   765  - [pull-379](https://github.com/hyperledger/burrow/pull/379) more descriptive error message for eris-client
   766  
   767  
   768  ## [0.15.0]
   769  This release was elided to synchronise release versions with tooling
   770  
   771  ## [0.14.0]
   772  This release was elided to synchronise release versions with tooling
   773  
   774  ## [0.13.0]
   775  This release was elided to synchronise release versions with tooling
   776  
   777  ## [0.12.0]
   778  This release marks the start of Eris-DB as the full permissioned blockchain node
   779   of the Eris platform with the Tendermint permissioned consensus engine.
   780   This involved significant refactoring of almost all parts of the code,
   781   but provides a solid foundation to build the next generation of advanced
   782   permissioned smart contract blockchains.
   783  
   784   Many changes are under the hood but here are the main externally
   785   visible changes:
   786  
   787  - Features and improvements
   788    - Upgrade to Tendermint 0.6.0 in-process consensus
   789    - Support DELEGATECALL opcode in Ethereum Virtual Machine (important for solidity library calls)
   790    - ARM support
   791    - Docker image size reduced
   792    - Introduction of eris-client companion library for interacting with
   793    eris:db
   794    - Improved single configuration file for all components written by eris-cm
   795    - Allow multiple event subscriptions from same host under rpc/tendermint
   796  
   797  
   798  - Tool changes
   799    - Use glide instead of godeps for dependencies
   800  
   801  
   802  - Testing
   803    - integration tests over simulated RPC calls
   804    - significantly improved unit tests
   805    - the ethereum virtual machine and the consensus engine are now top-level
   806    components and are exposed to continuous integration tests
   807  
   808  
   809  - Bugfixes (incomplete list)
   810    - [EVM] Fix calculation of child CALL gaslimit (allowing solidity library calls to work properly)
   811    - [RPC/v0] Fix blocking event subscription in transactAndHold (preventing return in Javascript libraries)
   812    - [Blockchain] Fix getBlocks to respect block height cap.
   813  
   814  
   815  [0.34.4]: https://github.com/hyperledger/burrow/compare/v0.34.3...v0.34.4
   816  [0.34.3]: https://github.com/hyperledger/burrow/compare/v0.34.2...v0.34.3
   817  [0.34.2]: https://github.com/hyperledger/burrow/compare/v0.34.1...v0.34.2
   818  [0.34.1]: https://github.com/hyperledger/burrow/compare/v0.34.0...v0.34.1
   819  [0.34.0]: https://github.com/hyperledger/burrow/compare/v0.33.1...v0.34.0
   820  [0.33.1]: https://github.com/hyperledger/burrow/compare/v0.33.0...v0.33.1
   821  [0.33.0]: https://github.com/hyperledger/burrow/compare/v0.32.1...v0.33.0
   822  [0.32.1]: https://github.com/hyperledger/burrow/compare/v0.32.0...v0.32.1
   823  [0.32.0]: https://github.com/hyperledger/burrow/compare/v0.31.3...v0.32.0
   824  [0.31.3]: https://github.com/hyperledger/burrow/compare/v0.31.2...v0.31.3
   825  [0.31.2]: https://github.com/hyperledger/burrow/compare/v0.31.1...v0.31.2
   826  [0.31.1]: https://github.com/hyperledger/burrow/compare/v0.31.0...v0.31.1
   827  [0.31.0]: https://github.com/hyperledger/burrow/compare/v0.30.5...v0.31.0
   828  [0.30.5]: https://github.com/hyperledger/burrow/compare/v0.30.4...v0.30.5
   829  [0.30.4]: https://github.com/hyperledger/burrow/compare/v0.30.3...v0.30.4
   830  [0.30.3]: https://github.com/hyperledger/burrow/compare/v0.30.2...v0.30.3
   831  [0.30.2]: https://github.com/hyperledger/burrow/compare/v0.30.1...v0.30.2
   832  [0.30.1]: https://github.com/hyperledger/burrow/compare/v0.30.0...v0.30.1
   833  [0.30.0]: https://github.com/hyperledger/burrow/compare/v0.29.8...v0.30.0
   834  [0.29.8]: https://github.com/hyperledger/burrow/compare/v0.29.7...v0.29.8
   835  [0.29.7]: https://github.com/hyperledger/burrow/compare/v0.29.6...v0.29.7
   836  [0.29.6]: https://github.com/hyperledger/burrow/compare/v0.29.5...v0.29.6
   837  [0.29.5]: https://github.com/hyperledger/burrow/compare/v0.29.4...v0.29.5
   838  [0.29.4]: https://github.com/hyperledger/burrow/compare/v0.29.3...v0.29.4
   839  [0.29.3]: https://github.com/hyperledger/burrow/compare/v0.29.2...v0.29.3
   840  [0.29.2]: https://github.com/hyperledger/burrow/compare/v0.29.1...v0.29.2
   841  [0.29.1]: https://github.com/hyperledger/burrow/compare/v0.29.0...v0.29.1
   842  [0.29.0]: https://github.com/hyperledger/burrow/compare/v0.28.2...v0.29.0
   843  [0.28.2]: https://github.com/hyperledger/burrow/compare/v0.28.1...v0.28.2
   844  [0.28.1]: https://github.com/hyperledger/burrow/compare/v0.28.0...v0.28.1
   845  [0.28.0]: https://github.com/hyperledger/burrow/compare/v0.27.0...v0.28.0
   846  [0.27.0]: https://github.com/hyperledger/burrow/compare/v0.26.2...v0.27.0
   847  [0.26.2]: https://github.com/hyperledger/burrow/compare/v0.26.1...v0.26.2
   848  [0.26.1]: https://github.com/hyperledger/burrow/compare/v0.26.0...v0.26.1
   849  [0.26.0]: https://github.com/hyperledger/burrow/compare/v0.25.1...v0.26.0
   850  [0.25.1]: https://github.com/hyperledger/burrow/compare/v0.25.0...v0.25.1
   851  [0.25.0]: https://github.com/hyperledger/burrow/compare/v0.24.6...v0.25.0
   852  [0.24.6]: https://github.com/hyperledger/burrow/compare/v0.24.5...v0.24.6
   853  [0.24.5]: https://github.com/hyperledger/burrow/compare/v0.24.4...v0.24.5
   854  [0.24.4]: https://github.com/hyperledger/burrow/compare/v0.24.3...v0.24.4
   855  [0.24.3]: https://github.com/hyperledger/burrow/compare/v0.24.2...v0.24.3
   856  [0.24.2]: https://github.com/hyperledger/burrow/compare/v0.24.1...v0.24.2
   857  [0.24.1]: https://github.com/hyperledger/burrow/compare/v0.24.0...v0.24.1
   858  [0.24.0]: https://github.com/hyperledger/burrow/compare/v0.23.3...v0.24.0
   859  [0.23.3]: https://github.com/hyperledger/burrow/compare/v0.23.2...v0.23.3
   860  [0.23.2]: https://github.com/hyperledger/burrow/compare/v0.23.1...v0.23.2
   861  [0.23.1]: https://github.com/hyperledger/burrow/compare/v0.23.0...v0.23.1
   862  [0.23.0]: https://github.com/hyperledger/burrow/compare/v0.22.0...v0.23.0
   863  [0.22.0]: https://github.com/hyperledger/burrow/compare/v0.21.0...v0.22.0
   864  [0.21.0]: https://github.com/hyperledger/burrow/compare/v0.20.1...v0.21.0
   865  [0.20.1]: https://github.com/hyperledger/burrow/compare/v0.20.0...v0.20.1
   866  [0.20.0]: https://github.com/hyperledger/burrow/compare/v0.19.0...v0.20.0
   867  [0.19.0]: https://github.com/hyperledger/burrow/compare/v0.18.1...v0.19.0
   868  [0.18.1]: https://github.com/hyperledger/burrow/compare/v0.18.0...v0.18.1
   869  [0.18.0]: https://github.com/hyperledger/burrow/compare/v0.17.1...v0.18.0
   870  [0.17.1]: https://github.com/hyperledger/burrow/compare/v0.17.0...v0.17.1
   871  [0.17.0]: https://github.com/hyperledger/burrow/compare/v0.16.3...v0.17.0
   872  [0.16.3]: https://github.com/hyperledger/burrow/compare/v0.16.2...v0.16.3
   873  [0.16.2]: https://github.com/hyperledger/burrow/compare/v0.16.1...v0.16.2
   874  [0.16.1]: https://github.com/hyperledger/burrow/compare/v0.16.0...v0.16.1
   875  [0.16.0]: https://github.com/hyperledger/burrow/compare/v0.15.0...v0.16.0
   876  [0.15.0]: https://github.com/hyperledger/burrow/compare/v0.14.0...v0.15.0
   877  [0.14.0]: https://github.com/hyperledger/burrow/compare/v0.13.0...v0.14.0
   878  [0.13.0]: https://github.com/hyperledger/burrow/compare/v0.12.0...v0.13.0
   879  [0.12.0]: https://github.com/hyperledger/burrow/commits/v0.12.0