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

Commit

Permalink
Merge pull request #822 from hyperledger/develop
Browse files Browse the repository at this point in the history
Merge Burrow 0.19.0 to master for release
  • Loading branch information
Casey Kuhlman authored Jun 26, 2018
2 parents c293e38 + 51df9a2 commit aaa3e9d
Show file tree
Hide file tree
Showing 445 changed files with 44,261 additions and 12,818 deletions.
3 changes: 2 additions & 1 deletion .circleci/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# docker build -t quay.io/monax/burrow:ci .
FROM golang:1.10.1-alpine3.7
MAINTAINER Monax <[email protected]>

ENV DOCKER_VERSION "17.12.1-ce"
# This is the image used by the Circle CI config in this directory pushed to quay.io/monax/bosmarmot:ci
# docker build -t quay.io/monax/burrow:ci -f ./.circleci/Dockerfile .
RUN apk add --update --no-cache nodejs netcat-openbsd git openssh-client make bash gcc g++ jq curl
RUN apk add --update --no-cache nodejs netcat-openbsd git openssh-client openssl make bash gcc g++ jq curl
# get docker client
RUN curl -L -o /tmp/docker-$DOCKER_VERSION.tgz https://download.docker.com/linux/static/stable/x86_64/docker-$DOCKER_VERSION.tgz \
&& tar -xz -C /tmp -f /tmp/docker-$DOCKER_VERSION.tgz \
Expand Down
46 changes: 46 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,50 @@
# Hyperledger Burrow Changelog
## Version 0.19.0
This is a major (pre-1.0.0) release that brings upgrades, safety improvements, cloud configuration, and GRPC endpoints to Burrow.

#### Breaking changes
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

#### Features
- 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
-
#### Improvements
- 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

#### Bug fixes
- Fix address generation from bytes mismatch



## Version 0.18.1
This is a minor release including:
- Introduce InputAccount param for RPC/v0 for integration in JS libs
- Resolve some issues with RPC/tm tests swallowing timeouts and not dealing with reordered events

## Version 0.18.0
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.

Expand Down
99 changes: 75 additions & 24 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 24 additions & 4 deletions Gopkg.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,32 @@
unused-packages = true
non-go = true

# From Tendermint
[[constraint]]
name = "github.com/tendermint/tendermint"
version = "=v0.20.0"
version = "=0.21.0"

# Because Tendermint did this, we have to...
[[constraint]]
name = "github.com/tendermint/go-amino"
version = "=0.9.9"

[[constraint]]
name = "github.com/tendermint/iavl"
version = "=0.8.0-rc0"

[[constraint]]
name = "github.com/prometheus/client_golang"
branch = "master"

[[override]]
name = "github.com/tendermint/tmlibs"
version = "~0.8.4"

# We don't care which version Tendermint wants
[[override]]
name = "google.golang.org/genproto"
revision = "7fd901a49ba6a7f87732eb344f6e3c5b19d1b200"
name = "github.com/golang/protobuf"
version = "~1.1.0"

[[override]]
name = "google.golang.org/grpc"
version = "~1.12.2"
25 changes: 20 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ BOSMARMOT_PROJECT := github.com/monax/bosmarmot
BOSMARMOT_GOPATH := ${REPO}/.gopath_bos
BOSMARMOT_CHECKOUT := ${BOSMARMOT_GOPATH}/src/${BOSMARMOT_PROJECT}

DOCKER_NAMESPACE := quay.io/monax
PROTO_FILES = $(shell find . -type f -name '*.proto')
PROTO_GO_FILES = $(patsubst %.proto, %.pb.go, $(PROTO_FILES))

### Formatting, linting and vetting

Expand Down Expand Up @@ -62,11 +63,23 @@ megacheck:
@go get honnef.co/go/tools/cmd/megacheck
@for pkg in ${PACKAGES_NOVENDOR}; do megacheck "$$pkg"; done

keys/pbkeys/keys.pb.go: keys/pbkeys/keys.proto
@protoc -I ./keys/pbkeys keys/pbkeys/keys.proto --go_out=plugins=grpc:keys/pbkeys
# Protobuffing
.PHONY: protobuf_deps
protobuf_deps:
@go get -u github.com/golang/protobuf/protoc-gen-go

### Dependency management for github.com/hyperledger/burrow
# Implicit compile rule for GRPC/proto files
%.pb.go: %.proto
protoc -I ${GOPATH}/src ${REPO}/$< --go_out=plugins=grpc:${GOPATH}/src

.PHONY: protobuf
protobuf: $(PROTO_GO_FILES)

.PHONY: clean_protobuf
clean_protobuf:
@rm -f $(PROTO_GO_FILES)

### Dependency management for github.com/hyperledger/burrow
# erase vendor wipes the full vendor directory
.PHONY: erase_vendor
erase_vendor:
Expand All @@ -81,7 +94,7 @@ reinstall_vendor: erase_vendor
# delete the vendor directy and pull back using dep lock and constraints file
# will exit with an error if the working directory is not clean (any missing files or new
# untracked ones)
.PHONY: ensure_vendor
.PHONY: ensure_vendor protobuf
ensure_vendor: reinstall_vendor
@scripts/is_checkout_dirty.sh

Expand Down Expand Up @@ -162,6 +175,8 @@ test_keys: build_db

.PHONY: test_integration
test_integration: test_keys
@go test -tags integration ./rpc/rpcevents/integration
@go test -tags integration ./rpc/rpctransactor/integration
@go test -tags integration ./rpc/v0/integration
@go test -tags integration ./rpc/tm/integration

Expand Down
Loading

0 comments on commit aaa3e9d

Please sign in to comment.