Tags: elvis88/burrow
Tags
- [EVM] state/Cache no longer allows SetStorage on accounts that do n… …ot exist - [GRPC] GetAccount on unknown account no longer causes a panic - [Docker] Added solc 0.4.25 binary to docker container so that burrow deploy has what it needs to function - [Execution] panics from executors are captured and pushed to error sink of TxExecution
- [ABI] provides fast event lookup of EventID - [Events] BlockExecution now included full Tendermint block header as protobuf object rather than JSON string - [EVM] Nested call errors are now transmitted to EventSink (e.g. TxExecution) as events for better tracing and tests - [SNative] Permissions contract returns permission flag set not resultant permissions from setBase unsetBase and setGlobal - [EVM] Errors transmitted through errors.Pusher interface for more reliable capture from memory, stack, and elsewhere - [Governance] Breaking change to state structure due to governance storage in tree (state root hashes will not match) - [EVM] Issue where value was not transferred because VM call state was not synced - [EVM] Various issue where errors were swallowed (in particular - where calling an empty account and when a TX was invalid on delivery) - [EVM] When calling a non-existent account CreateAccount permission is checked on the caller not the caller's caller - [CLI] Version now contains date and commit - [Test] Burrow integration test runner shuts down Burrow correctly - [Serialisation] updated tmthrgd/go-hex to fallback on default encoding when lacking SSE 4.1 CPU instructions - [Deploy] Burrow deploy meta jobs reuses GRPC connection - [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. - [EVM] Added EVM State interface removing unnecessary cache layer (fixing various issues) - [EVM] Implemented STATICCALL opcode - [P2P] Added AuthorizedPeers config option to sync only with whitelisted peers exposed over ABCI query under key /p2p/filter/ - [EVM] stack depth now dynamically allocated and exponentially grown in the same way as memory - [EVM] Solidity proxy call forwarding test - MutableAccount and ConcreteAccount
Merge pull request hyperledger-archives#918 from hyperledger/develop Merge for v0.22.0
- Upgraded to Tendermint 0.23.0 - Validator Set Power now takes Address - RPC/TM config renamed to RPC/Info - Burrow deploy creates devdoc - Docker image has org.label-schema labels - 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 - Metrics server does not panic on empty block metas and recovers from other panics
- The snatives functions have new signatures; string arguments are no… …w string, not byte32. - The Solidity interface contracts can be generated using the "burrow snatives" command, and the make snatives target is gone. - 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. - CallTxSim and CallCodeSim now take same code path as real transactions (via CallContext) - Upgraded to Tendermint [0.22.8](tendermint/tendermint@v0.22.4...v0.22.8) (from 0.22.4). - Support mempool signing for BroadcastTxAsync. - Reload log file (e.g. for logrotate) on SIGHUP and dump capture logs on SIGUSR1 and on shutdown (e.g. for debug). - File logger accepts {{.Timestamp}} in file names to generate a log file per run. - Ability to set --external-address on burrow configure and burrow start - Ability to set various command line options on burrow configure and burrow start and by BURROW_ prefixed environment variables - Exposed Tendermint SeedMode option - Release our mempool signing lock once transactions have been CheckTx'd' to massively increase throughput.
This is a major (pre-1.0.0) release that introduces the ability to ch… …ange the validator set through GovTx, transaction execution history, and fuller GRPC endpoint. - Address format has been changed (by Tendermint and we have followed suite) - conversion is possible but simpler to regenerated keys - JSON-RPC interface has been removed - burrow-client has been removed - rpc/TM methods for events and broadcast have been removed - Tendermint 0.24.4 - GovTx GRPC service. The validator set can be now be changed. - Enhanced GRPC services: NameReg, Transaction index, blocks service - Events GRPC service - Transaction Service can set value transferred - The output of "burrow keys export" can be templated - Fixed panic on nil bounds for blocks service
This is a major (pre-1.0.0) release that brings upgrades, safety impr… …ovements, cloud configuration, and GRPC endpoints to Burrow. In addition to breaking changes associated with Tendermint (see their changelog): - State checkpointing logic has changed which has we load based on blockchain - Event format has changed over rpc/V0 see execution/events/ package - On-disk keys format has change from monax-keys to be more standard burrow keys - Address format has been changed (by Tendermint and we have followed suite) - conversion is possible but simpler to regenerated keys - Tendermint 0.21.0 - Implemented EVM opcodes: REVERT, INVALID, SHL, SAR, SHR, RETURNDATACOPY, RETURNDATASIZE - Add config templating with burrow configure --config-template-in --config-out - Add config templates for kubernetes - Integrate monax-keys as internal (default) or standalone keys service, key gen exposed over CLI - Use GRPC for keys - Add GRPC service for Transactor and Events - Store ExecutionEvent by height and index in merkle tree state - Add historical query for all time with GetEvents - Add streaming GRPC service for ExecutionEvents with query language over tags - Add metadata to ExecutionEvents - Add BlockExplorer CLI for forensics - Expose reason for REVERT - Add last_block_info healthcheck endpoint to rpc/TM - - 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 - Maintain separate read-only tree in state so that long-running RPC request cannot block writes - Improve state safety - Improved input account server-side-signing - Increase subscription reap time on rpc/V0 to 20 seconds - Reorganise CLI - Improve internal serialisation - Refactor and modularise execution logic - Fix address generation from bytes mismatch
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. 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. - Substantial support for latest EVM and solidity 0.4.21+ (missing some opcodes that will be added shortly - see known issues) - Tendermint 0.18.0 - All signing through monax-keys KeyClient connection (preparation for HSM and GPG based signing daemon) - 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. - Provide sequential signing when using transact family methods (above) - allowing 100s Tx per second with the same input account - Genesis making, config making, and key generation through 'burrow spec' and 'burrow configure' - Logging configuration language and text/template for output - Improved CLI UX and framework (mow.cli) - Improved configuration - Refactored execution and provide interfaces for executor - Segregate EVM and blockchain state to act as better library - Panic recovery on TX execution - Stricter interface boundaries and immutability of core objects by default - Replace broken BlockCache with universal StateCache that doesn't write directly to DB - All dependencies upgraded, notably: tendermint/IAVL 0.7.0 - Use Go dep instead of glide - PubSub event hub with query language - Heavily optimised logging - PPROF profiling server option - Additional tests in multiple packages including v0 RPC and concurrency-focussed test - Use Tendermint verifier for PrivValidator - Use monax/relic for project history - Run bosmarmot integration tests in CI - Update documentation - Numerous maintainability, naming, and aesthetic code improvements - Fix memory leak in BlockCache - Fix CPU usage in BlockCache - Fix SIGNEXTEND for negative numbers - Fix multiple execution level panics - Make Transactor work during tendermint recheck - 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) - Missing support for: RETURNDATACOPY and RETURNDATASIZE hyperledger-archives#705 (coming very soon) - Missing support for: INVALID hyperledger-archives#705 (coming very soon) - Missing support for: REVERT hyperledger-archives#600 (coming very soon)
PreviousNext