github.com/datachainlab/burrow@v0.25.0/CHANGELOG.md (about)

     1  # [Hyperledger Burrow](https://github.com/hyperledger/burrow) Changelog
     2  ## [Unreleased]
     3  ### Added
     4  - [CLI] Introduced burrow configure --pool for generation of multiple validator configs suitable for running on a single (or many) machines
     5  
     6  
     7  ## [0.25.0] - 2019-04-05
     8  ### Changed
     9  - [Tendermint] Upgraded to 0.31.2
    10  - [IAVL] upgraded to 0.12.2
    11  - [Config] Tendermint.TimeoutFactor moved to Execution.TimeoutFactor (and reused for NoConsensus mode)
    12  - [Kernel] Refactored and various exported methods changed
    13  
    14  ### Added
    15  - [CLI] Burrow deploy can now run multiple burrow deploy files (aka playbooks) and run them in parallel
    16  - [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 
    17  
    18  ### Fixed
    19  - [Execution] Fixed uint64 underflow (when subtracting fee from balance) not protected against in CallContext
    20  - [Tests] Various concurrency issues fixed in tests and execution tests parallelised
    21  
    22  
    23  
    24  ## [0.24.6] - 2019-03-19
    25  ### Changed
    26  - [RPC] 'blocks' on info RPC now lists blocks in ascending rather than descending height order
    27  
    28  ### Added
    29  - [CLI] Introduced burrow configure --pool for generation of multiple validator configs suitable for running on a single (or many) machines
    30  
    31  ### Fixed
    32  - [Metrics] Fix histogram statistics by making counts cumulative 
    33  
    34  
    35  ## [0.24.5] - 2019-03-14
    36  ### Changed
    37  - [Consensus] Tendermint timeouts configurable by a float factor from defaults and default change to 0.33 of Tendermint's default for smaller networks'
    38  - [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
    39  - [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)
    40  
    41  ### Added
    42  - [Logging] Add height to all logging messages
    43  - [RPC] Add LastBlockCommitDuration to SyncInfo
    44  
    45  ### Fixed
    46  - [Metrics] Replace use of Summary metrics when Histogram was intended
    47  
    48  
    49  ## [0.24.4] - 2019-03-08
    50  ### Changed
    51  - [EVM] Accept []byte nonce rather than enforcing the use of txs.Tx.TxHash()
    52  - [Crypto] Expose SequenceNonce helper to allow library users to use sequence-number based addresses for newly created contracts
    53  
    54  
    55  ## [0.24.3] - 2019-03-06
    56  ### Fixed
    57  - [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
    58  - [State] KVCache iterator fixed to use low, high interface as per DB, fixing CacheDB for use in Replay
    59  
    60  ### Added
    61  - [Logging] Included height in various execution log messages
    62  - [Transactor] Now provides SyncInfo in error message when there is a BroadcastTxSync timeout
    63  
    64  
    65  ## [0.24.2] - 2019-02-28
    66  ### Changed
    67  - [Genesis] Use HexBytes for Genesis AppHash
    68  
    69  ### Fixed
    70  - [Vent] Stop Vent from swallowing errors (e.g. GRPC streaming errors)
    71  - [Consensus] Updated to patched version of Tendermint that does not pull in go-ethereum dependency
    72  - [CLI] Removed duplicate -t flag from burrow configure
    73  
    74  
    75  ### Added
    76  - [Kernel] Added announce message for startup and shutdown including version, key address, and other useful metadata
    77  - [EVM] Attempt to provide REVERT reason where possible
    78  - [Vent] --abi and --spec can be provided multiple times to provide multiple paths to search
    79  
    80  
    81  ## [0.24.1] - 2019-02-28
    82  ### Changed
    83  - [ABI] abi.EncodeFunctionCall and AbiSpec.Pack now take a variadic ...interface{} type for function arguments rather than []string
    84  
    85  ### Fixed
    86  - [Deploy] Binary files are now written atomically to prevent issue with dependency libraries being momentarily truncated when deploying in parallel
    87  
    88  ### Added
    89  - [ABI] DecodeFunctionReturn re-exposed (formerly Packer then packer in 0.24.0) to make deploy API symmetrical
    90  
    91  
    92  ## [0.24.0] - 2019-02-26
    93  ### Changed
    94  - [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)
    95  - [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
    96  - [Consensus] Upgraded Tendermint to v0.30.1
    97  - [State] Upgraded IAVL to v0.12.1
    98  - [EVM] Integration tests upgraded to Solidity 0.5.4
    99  - [State] All state now stored in merkle tree via MutableForest
   100  - [State] Full validator state history stored in forest
   101  - [Vent] Updated EventSpec table specification configuration format
   102  - [Vent] Added support for managing Postgres triggers
   103  
   104  ### Fixed
   105  - [Transactor] Reduce TxExecution subscription overhead
   106  - [Transactor] Remove excessive debug subscription timeout
   107  - [State] Fixed issue with check-pointing that could cause divergent AppHash across node restarts- [pull request](https://github.com/hyperledger/burrow/pull/985)
   108  - [EVM] Implemented BLOCKHASH opcode
   109  - [EVM] Used correct callee STATICCALL to fix cross-contract queries
   110  - [Consensus] Guarded against total validator power overflow (as limited by Tendermint)
   111  
   112  ### Added
   113  - [EVM] Implemented [CREATE2 opcode](https://eips.ethereum.org/EIPS/eip-1014)
   114  - [EVM] Implemented [EXTCODEHASH opcode](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1052.md)
   115  - [Accounts] Add account GetStats to query endpoint
   116  - [Config] Expose AddrBookStrict from Tendermint
   117  - [Deploy] burrow deploy now prints events generated during transactions
   118  - [Deploy] burrow deploy can use key names where addresses are used
   119  - [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.
   120  - [Governance] Added command line and query introspection of proposals as well as burrow deploy support
   121  - [Vent] Merged Vent our SQL projection and mapping layer into the Burrow repository and binary via 'burrow vent'. See [Vent Readme](./vent/README.md)
   122  - [State] Improved read-write separation with RWTree and ImmutableForest data structures
   123  - [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
   124  
   125  
   126  
   127  ## [0.23.3] - 2018-12-19
   128  ### Fixed
   129  - [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.
   130  
   131  
   132  ## [0.23.2] - 2018-12-18
   133  Hotfix release for 0.23.1
   134  ### Fixed
   135  - [State] Fixed issue with checkpointing whereby RWTree would load its readTree from one version lower than it should.
   136  
   137  
   138  
   139  ## [0.23.1] - 2018-11-14
   140  ### Fixed
   141  - [EVM] state/Cache no longer allows SetStorage on accounts that do not exist
   142  - [GRPC] GetAccount on unknown account no longer causes a panic
   143  
   144  ### Added
   145  - [Docker] Added solc 0.4.25 binary to docker container so that burrow deploy has what it needs to function
   146  - [Execution] panics from executors are captured and pushed to error sink of TxExecution
   147  
   148  
   149  ## [0.23.0] - 2018-11-09
   150  ### Changed
   151  - [ABI] provides fast event lookup of EventID
   152  - [Events] BlockExecution now included full Tendermint block header as protobuf object rather than JSON string
   153  - [EVM] Nested call errors are now transmitted to EventSink (e.g. TxExecution) as events for better tracing and tests
   154  - [SNative] Permissions contract returns permission flag set not resultant permissions from setBase unsetBase and setGlobal
   155  - [EVM] Errors transmitted through errors.Pusher interface for more reliable capture from memory, stack, and elsewhere
   156  - [Governance] Breaking change to state structure due to governance storage in tree (state root hashes will not match)
   157  
   158  
   159  ### Fixed
   160  - [EVM] Issue where value was not transferred because VM call state was not synced
   161  - [EVM] Various issue where errors were swallowed (in particular - where calling an empty account and when a TX was invalid on delivery)
   162  - [EVM] When calling a non-existent account CreateAccount permission is checked on the caller not the caller's caller
   163  - [CLI] Version now contains date and commit
   164  - [Test] Burrow integration test runner shuts down Burrow correctly
   165  - [Serialisation] updated tmthrgd/go-hex to fallback on default encoding when lacking SSE 4.1 CPU instructions
   166  
   167  
   168  ### Added
   169  - [Deploy] Burrow deploy meta jobs reuses GRPC connection
   170  - [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.
   171  - [EVM] Added EVM State interface removing unnecessary cache layer (fixing various issues)
   172  - [EVM] Implemented STATICCALL opcode
   173  - [P2P] Added AuthorizedPeers config option to sync only with whitelisted peers exposed over ABCI query under key /p2p/filter/
   174  - [EVM] stack depth now dynamically allocated and exponentially grown in the same way as memory
   175  - [EVM] Solidity proxy call forwarding test
   176  
   177  ### Removed
   178  - MutableAccount and ConcreteAccount
   179  
   180  
   181  ## [0.22.0] - 2018-09-21
   182  ### Changed
   183  - Upgraded to Tendermint 0.24.0
   184  - Upgraded to IAVL 0.11.0
   185  
   186  ### Fixed
   187  - Fixed non-determinism in Governance Tx
   188  - Fixed various abi issues
   189  
   190  ### Added
   191  - burrow deploy displays revert reason when available
   192  - burrow deploy compiles contracts concurrently
   193  
   194  ## [0.21.0] - 2018-08-21
   195  ### Changed
   196  - Upgraded to Tendermint 0.23.0
   197  - Validator Set Power now takes Address
   198  - RPC/TM config renamed to RPC/Info
   199  
   200  ### Added
   201  - Burrow deploy creates devdoc
   202  - Docker image has org.label-schema labels
   203  
   204  ### Fixed
   205  - 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
   206  - Metrics server does not panic on empty block metas and recovers from other panics
   207  
   208  
   209  ## [0.20.1] - 2018-08-17
   210  ### Changed
   211  - The snatives functions have new signatures; string arguments are now string, not byte32.
   212  - The Solidity interface contracts can be generated using the "burrow snatives" command, and the make snatives target is gone.
   213  
   214  ### Fixed
   215  - 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.
   216  - CallTxSim and CallCodeSim now take same code path as real transactions (via CallContext)
   217  - Release our mempool signing lock once transactions have been CheckTx'd' to massively increase throughput.
   218  
   219  ### Added
   220  - Upgraded to Tendermint [0.22.8](https://github.com/tendermint/tendermint/compare/v0.22.4...v0.22.8) (from 0.22.4).
   221  - Support mempool signing for BroadcastTxAsync.
   222  - Reload log file (e.g. for logrotate) on SIGHUP and dump capture logs on SIGUSR1 and on shutdown (e.g. for debug).
   223  - File logger accepts {{.Timestamp}} in file names to generate a log file per run.
   224  - Ability to set --external-address on burrow configure and burrow start
   225  - Ability to set various command line options on burrow configure and burrow start and by BURROW_ prefixed environment variables
   226  - Exposed Tendermint SeedMode option
   227  
   228  
   229  ## [0.20.0] - 2018-07-24
   230  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.
   231  
   232  #### Breaking changes
   233  - Address format has been changed (by Tendermint and we have followed suite) - conversion is possible but simpler to regenerated keys
   234  - JSON-RPC interface has been removed
   235  - burrow-client has been removed
   236  - rpc/TM methods for events and broadcast have been removed
   237  
   238  #### Features
   239  - Tendermint 0.24.4
   240  - GovTx GRPC service. The validator set can be now be changed.
   241  - Enhanced GRPC services: NameReg, Transaction index, blocks service
   242  - Events GRPC service
   243  - Transaction Service can set value transferred
   244  
   245  #### Improvements
   246  - The output of "burrow keys export" can be templated
   247  
   248  #### Bug fixes
   249  - Fixed panic on nil bounds for blocks service
   250  
   251  
   252  
   253  ## [0.19.0] - 2018-06-26
   254  This is a major (pre-1.0.0) release that brings upgrades, safety improvements, cloud configuration, and GRPC endpoints to Burrow.
   255  
   256  #### Breaking changes
   257  In addition to breaking changes associated with Tendermint (see their changelog):
   258  - State checkpointing logic has changed which has we load based on blockchain
   259  - Event format has changed over rpc/V0 see execution/events/ package
   260  - On-disk keys format has change from monax-keys to be more standard burrow keys
   261  - Address format has been changed (by Tendermint and we have followed suite) - conversion is possible but simpler to regenerated keys
   262  
   263  #### Features
   264  - Tendermint 0.21.0
   265  - Implemented EVM opcodes: REVERT, INVALID, SHL, SAR, SHR, RETURNDATACOPY, RETURNDATASIZE
   266  - Add config templating with burrow configure --config-template-in --config-out
   267  - Add config templates for kubernetes
   268  - Integrate monax-keys as internal (default) or standalone keys service, key gen exposed over CLI
   269  - Use GRPC for keys
   270  - Add GRPC service for Transactor and Events
   271  - Store ExecutionEvent by height and index in merkle tree state
   272  - Add historical query for all time with GetEvents
   273  - Add streaming GRPC service for ExecutionEvents with query language over tags
   274  - Add metadata to ExecutionEvents
   275  - Add BlockExplorer CLI for forensics
   276  - Expose reason for REVERT
   277  - Add last_block_info healthcheck endpoint to rpc/TM
   278  -
   279  #### Improvements
   280  - 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
   281  - Maintain separate read-only tree in state so that long-running RPC request cannot block writes
   282  - Improve state safety
   283  - Improved input account server-side-signing
   284  - Increase subscription reap time on rpc/V0 to 20 seconds
   285  - Reorganise CLI
   286  - Improve internal serialisation
   287  - Refactor and modularise execution logic
   288  
   289  #### Bug fixes
   290  - Fix address generation from bytes mismatch
   291  
   292  
   293  
   294  ## [0.18.1]
   295  This is a minor release including:
   296  - Introduce InputAccount param for RPC/v0 for integration in JS libs
   297  - Resolve some issues with RPC/tm tests swallowing timeouts and not dealing with reordered events
   298  
   299  ## [0.18.0] - 2018-05-09
   300  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.
   301  
   302  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.
   303  
   304  #### Features
   305  - Substantial support for latest EVM and solidity 0.4.21+ (missing some opcodes that will be added shortly - see known issues)
   306  - Tendermint 0.18.0
   307  - All signing through monax-keys KeyClient connection (preparation for HSM and GPG based signing daemon)
   308  - 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.
   309  - Provide sequential signing when using transact family methods (above) - allowing 100s Tx per second with the same input account
   310  - Genesis making, config making, and key generation through 'burrow spec' and 'burrow configure'
   311  - Logging configuration language and text/template for output
   312  - Improved CLI UX and framework (mow.cli)
   313  - Improved configuration
   314  
   315  
   316  #### Internal Improvements
   317  - Refactored execution and provide interfaces for executor
   318  - Segregate EVM and blockchain state to act as better library
   319  - Panic recovery on TX execution
   320  - Stricter interface boundaries and immutability of core objects by default
   321  - Replace broken BlockCache with universal StateCache that doesn't write directly to DB
   322  - All dependencies upgraded, notably: tendermint/IAVL 0.7.0
   323  - Use Go dep instead of glide
   324  - PubSub event hub with query language
   325  - Heavily optimised logging
   326  - PPROF profiling server option
   327  - Additional tests in multiple packages including v0 RPC and concurrency-focussed test
   328  - Use Tendermint verifier for PrivValidator
   329  - Use monax/relic for project history
   330  - Run bosmarmot integration tests in CI
   331  - Update documentation
   332  - Numerous maintainability, naming, and aesthetic code improvements
   333  
   334  #### Bug fixes
   335  - Fix memory leak in BlockCache
   336  - Fix CPU usage in BlockCache
   337  - Fix SIGNEXTEND for negative numbers
   338  - Fix multiple execution level panics
   339  - Make Transactor work during tendermint recheck
   340  
   341  #### Known issues
   342  - 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)
   343  - Missing support for: RETURNDATACOPY and RETURNDATASIZE https://github.com/hyperledger/burrow/issues/705 (coming very soon)
   344  - Missing support for: INVALID https://github.com/hyperledger/burrow/issues/705 (coming very soon)
   345  - Missing support for: REVERT https://github.com/hyperledger/burrow/issues/600 (coming very soon)
   346  
   347  
   348  ## [0.17.1]
   349  Minor tweaks to docker build file
   350  
   351  ## [0.17.0] - 2017-09-04
   352  This is a service release with some significant ethereum/solidity compatibility improvements and new logging features. It includes:
   353  
   354  - [Upgrade to use Tendermint v0.9.2](https://github.com/hyperledger/burrow/pull/595)
   355  - [Implemented dynamic memory](https://github.com/hyperledger/burrow/pull/607) assumed by the EVM bytecode produce by solidity, fixing various issues.
   356  - 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.
   357  - Fix event unsubscription
   358  - Remove module-specific versioning
   359  - Rename suicide to selfdestruct
   360  - SNative tweaks
   361  
   362  Known issues:
   363  
   364  - 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.
   365  
   366  ## [0.16.3] - 2017-04-25
   367  This release adds an stop-gap fix to the Transact method so that it never
   368  transfers value with the CallTx is generates.
   369  
   370  We hard-code amount = fee so that no value is transferred
   371  regardless of fee sent. This fixes an invalid jump destination error arising
   372  from transferring value to non-payable functions with newer versions of solidity.
   373  By doing this we can resolve some issues with users of the v0 RPC without making
   374  a breaking API change.
   375  
   376  ## [0.16.2] - 2017-04-20
   377  This release finalises our accession to the Hyperledger project and updates our root package namespace to github.com/hyperledger/burrow.
   378  
   379  It also includes a bug fix for rpc/V0 so that BroadcastTx can accept any transaction type and various pieces of internal clean-up.
   380  
   381  ## [0.16.1] - 2017-04-04
   382  This release was an internal rename to 'Burrow' with some minor other attendant clean up.
   383  
   384  ## [0.16.0] - 2017-03-01
   385  This is a consolidation release that fixes various bugs and improves elements
   386  of the architecture across the Monax Platform to support a quicker release
   387  cadence.
   388  
   389  #### Features and improvements (among others)
   390  - [pull-510](https://github.com/hyperledger/burrow/pull/510) upgrade consensus engine to Tendermint v0.8.0
   391  - [pull-507](https://github.com/hyperledger/burrow/pull/507) use sha3 for snative addresses for future-proofing
   392  - [pull-506](https://github.com/hyperledger/burrow/pull/506) alignment and consolidation for genesis and config between tooling and chains
   393  - [pull-504](https://github.com/hyperledger/burrow/pull/504) relicense eris-db to Apache 2.0
   394  - [pull-500](https://github.com/hyperledger/burrow/pull/500) introduce more strongly types secure native contracts
   395  - [pull-499](https://github.com/hyperledger/burrow/pull/499) introduce word256 and remove dependency on tendermint/go-common
   396  - [pull-493](https://github.com/hyperledger/burrow/pull/493) re-introduce GenesisTime in GenesisDoc
   397  
   398  - 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.
   399  - Genesis making is improved and moved into eris-db.
   400  - 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).
   401  - Some documentation updates in code and in specs.
   402  - [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.
   403  
   404  #### Bugfixes (among others)
   405  - [pull-516](https://github.com/hyperledger/burrow/pull/516) Organize and add unit tests for rpc/v0
   406  - [pull-453](https://github.com/hyperledger/burrow/pull/453) Fix deserialisation for BroadcastTx on rpc/v0
   407  - [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
   408  - [pull-468](https://github.com/hyperledger/burrow/pull/468) correct specifications for params on unsubscribe on rpc/tendermint
   409  - [pull-465](https://github.com/hyperledger/burrow/pull/465) fix divergence from JSON-RPC spec for Response object
   410  - [pull-366](https://github.com/hyperledger/burrow/pull/366) correction to circle ci script
   411  - [pull-379](https://github.com/hyperledger/burrow/pull/379) more descriptive error message for eris-client
   412  
   413  
   414  ## [0.15.0]
   415  This release was elided to synchronise release versions with tooling
   416  
   417  ## [0.14.0]
   418  This release was elided to synchronise release versions with tooling
   419  
   420  ## [0.13.0]
   421  This release was elided to synchronise release versions with tooling
   422  
   423  ## [0.12.0]
   424  This release marks the start of Eris-DB as the full permissioned blockchain node
   425   of the Eris platform with the Tendermint permissioned consensus engine.
   426   This involved significant refactoring of almost all parts of the code,
   427   but provides a solid foundation to build the next generation of advanced
   428   permissioned smart contract blockchains.
   429  
   430   Many changes are under the hood but here are the main externally
   431   visible changes:
   432  
   433  - Features and improvements
   434    - Upgrade to Tendermint 0.6.0 in-process consensus
   435    - Support DELEGATECALL opcode in Ethereum Virtual Machine (important for solidity library calls)
   436    - ARM support
   437    - Docker image size reduced
   438    - Introduction of eris-client companion library for interacting with
   439    eris:db
   440    - Improved single configuration file for all components written by eris-cm
   441    - Allow multiple event subscriptions from same host under rpc/tendermint
   442  
   443  
   444  - Tool changes
   445    - Use glide instead of godeps for dependencies
   446  
   447  
   448  - Testing
   449    - integration tests over simulated RPC calls
   450    - significantly improved unit tests
   451    - the ethereum virtual machine and the consensus engine are now top-level
   452    components and are exposed to continuous integration tests
   453  
   454  
   455  - Bugfixes (incomplete list)
   456    - [EVM] Fix calculation of child CALL gaslimit (allowing solidity library calls to work properly)
   457    - [RPC/v0] Fix blocking event subscription in transactAndHold (preventing return in Javascript libraries)
   458    - [Blockchain] Fix getBlocks to respect block height cap.
   459  
   460  
   461  [Unreleased]: https://github.com/hyperledger/burrow/compare/v0.25.0...HEAD
   462  [0.25.0]: https://github.com/hyperledger/burrow/compare/v0.24.6...v0.25.0
   463  [0.24.6]: https://github.com/hyperledger/burrow/compare/v0.24.5...v0.24.6
   464  [0.24.5]: https://github.com/hyperledger/burrow/compare/v0.24.4...v0.24.5
   465  [0.24.4]: https://github.com/hyperledger/burrow/compare/v0.24.3...v0.24.4
   466  [0.24.3]: https://github.com/hyperledger/burrow/compare/v0.24.2...v0.24.3
   467  [0.24.2]: https://github.com/hyperledger/burrow/compare/v0.24.1...v0.24.2
   468  [0.24.1]: https://github.com/hyperledger/burrow/compare/v0.24.0...v0.24.1
   469  [0.24.0]: https://github.com/hyperledger/burrow/compare/v0.23.3...v0.24.0
   470  [0.23.3]: https://github.com/hyperledger/burrow/compare/v0.23.2...v0.23.3
   471  [0.23.2]: https://github.com/hyperledger/burrow/compare/v0.23.1...v0.23.2
   472  [0.23.1]: https://github.com/hyperledger/burrow/compare/v0.23.0...v0.23.1
   473  [0.23.0]: https://github.com/hyperledger/burrow/compare/v0.22.0...v0.23.0
   474  [0.22.0]: https://github.com/hyperledger/burrow/compare/v0.21.0...v0.22.0
   475  [0.21.0]: https://github.com/hyperledger/burrow/compare/v0.20.1...v0.21.0
   476  [0.20.1]: https://github.com/hyperledger/burrow/compare/v0.20.0...v0.20.1
   477  [0.20.0]: https://github.com/hyperledger/burrow/compare/v0.19.0...v0.20.0
   478  [0.19.0]: https://github.com/hyperledger/burrow/compare/v0.18.1...v0.19.0
   479  [0.18.1]: https://github.com/hyperledger/burrow/compare/v0.18.0...v0.18.1
   480  [0.18.0]: https://github.com/hyperledger/burrow/compare/v0.17.1...v0.18.0
   481  [0.17.1]: https://github.com/hyperledger/burrow/compare/v0.17.0...v0.17.1
   482  [0.17.0]: https://github.com/hyperledger/burrow/compare/v0.16.3...v0.17.0
   483  [0.16.3]: https://github.com/hyperledger/burrow/compare/v0.16.2...v0.16.3
   484  [0.16.2]: https://github.com/hyperledger/burrow/compare/v0.16.1...v0.16.2
   485  [0.16.1]: https://github.com/hyperledger/burrow/compare/v0.16.0...v0.16.1
   486  [0.16.0]: https://github.com/hyperledger/burrow/compare/v0.15.0...v0.16.0
   487  [0.15.0]: https://github.com/hyperledger/burrow/compare/v0.14.0...v0.15.0
   488  [0.14.0]: https://github.com/hyperledger/burrow/compare/v0.13.0...v0.14.0
   489  [0.13.0]: https://github.com/hyperledger/burrow/compare/v0.12.0...v0.13.0
   490  [0.12.0]: https://github.com/hyperledger/burrow/commits/v0.12.0