Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make ostracon/main based on Tendermint v0.34.8 #194

Merged
merged 330 commits into from
Jul 5, 2021
Merged

Make ostracon/main based on Tendermint v0.34.8 #194

merged 330 commits into from
Jul 5, 2021

Conversation

torao
Copy link
Contributor

@torao torao commented Mar 5, 2021

Closes: #XXX

Description

This PR migrates all previous changes and fixes of Ostracon (formerly LINE Blockchain) applied in Tendermint v0.33.x to ostracon/main, which is based on Tendermint v0.34.8. In addition to Tendermint v0.34.8, Ostracon introduces or fixes the following features:

  • Proposer election scheme has been changed from predictable round-robin to more secure weighted random sampling based on StakingPower. This uses VRF as a non-falsifiable cryptographic pseudo-random number generator.
  • In order to modify the incentive scheme, we have changed the consensus to elect a part of the Validators as Voters. We have also changed a part of ABCI to distribute the votes of the selected Voters in the Cosmos SDK reward distribution.
  • In addition to ed25519, BLS has been added experimentally to the signature scheme for consensus. The BLS signatures contained in a commit are aggregated into a single signature, which is expected to reduce communication costs and storage size.
  • Reactor has been modified to run asynchronously to improve performance.

Note for reviewers:

  • Setting up the CI environment, testing, LINTing, etc. are going to do in later tasks. Please ignore these checks in this PR.
  • The specification of each feature should be pointed out in a separate issue.

For contributor use:

  • Wrote tests
  • Updated CHANGELOG_PENDING.md
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
  • Updated relevant documentation (docs/) and code comments
  • Re-reviewed Files changed in the Github PR explorer

@torao torao changed the base branch from develop to v0.34.x March 5, 2021 07:54
@torao torao marked this pull request as draft March 5, 2021 07:55
@torao torao force-pushed the apply_v0.34.8 branch 2 times, most recently from 9c3dcb5 to efd45b1 Compare April 5, 2021 09:01
@torao torao force-pushed the apply_v0.34.8 branch 4 times, most recently from 204e82d to cf662fb Compare April 21, 2021 08:28
@torao torao force-pushed the apply_v0.34.8 branch 3 times, most recently from 2dafb55 to b8261cf Compare April 30, 2021 09:57
@torao torao self-assigned this Jun 29, 2021
@torao torao added the G: epic Granularity: Epic issue label Jun 29, 2021
@torao torao added this to the initial ebony milestone Jun 29, 2021
blockchain/v2/reactor.go Outdated Show resolved Hide resolved
tools/tm-signer-harness/internal/test_harness_test.go Outdated Show resolved Hide resolved
@Kynea0b
Copy link
Contributor

Kynea0b commented Jun 30, 2021

This folder libs/autofile/_test_HtEYbTB5QlzT is probably an unnecessary folder, so please delete it.

CHANGELOG_OF_TENDERMINT.md Outdated Show resolved Hide resolved
blockchain/v2/reactor.go Outdated Show resolved Hide resolved
blockchain/v2/reactor.go Outdated Show resolved Hide resolved
consensus/byzantine_test.go Outdated Show resolved Hide resolved
consensus/reactor.go Outdated Show resolved Hide resolved
consensus/state.go Outdated Show resolved Hide resolved
crypto/bls/bls.go Outdated Show resolved Hide resolved
crypto/bls/bls.go Outdated Show resolved Hide resolved
crypto/composite/composite.go Outdated Show resolved Hide resolved
crypto/composite/composite.go Outdated Show resolved Hide resolved
libs/autofile/_test_HtEYbTB5QlzT/myfile.000 Outdated Show resolved Hide resolved
rpc/client/mocks/client.go Outdated Show resolved Hide resolved
Copy link
Member

@tnasu tnasu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I finished the first review. Please check my comments include nit feedbacks.

config/toml.go Outdated Show resolved Hide resolved
consensus/reactor.go Outdated Show resolved Hide resolved
consensus/state.go Outdated Show resolved Hide resolved
evidence/pool_test.go Outdated Show resolved Hide resolved
libs/autofile/_test_HtEYbTB5QlzT/myfile.000 Outdated Show resolved Hide resolved
rpc/client/rpc_test.go Show resolved Hide resolved
rpc/core/doc.go Show resolved Hide resolved
scripts/add_validator.sh Outdated Show resolved Hide resolved
scripts/current_branch_lint.sh Outdated Show resolved Hide resolved
scripts/prepare_dredd_test.sh Outdated Show resolved Hide resolved
@tnasu
Copy link
Member

tnasu commented Jul 2, 2021

For building, could you patch the below? (Using 1.15-alpine)

$ git diff
diff --git a/Makefile b/Makefile
index 1c6b0c0e8f..d84c821bf8 100644
--- a/Makefile
+++ b/Makefile
@@ -251,7 +251,7 @@ DOCKER_HOME = /go/src/github.com/tendermint/tendermint
 DOCKER_CMD = docker run --rm \
                         -v `pwd`:$(DOCKER_HOME) \
                         -w $(DOCKER_HOME)
-DOCKER_IMG = golang:1.14.6-alpine3.12
+DOCKER_IMG = golang:1.15-alpine
 BUILD_CMD = apk add --update --no-cache git make gcc libc-dev build-base curl jq file gmp-dev clang \
        && cd $(DOCKER_HOME) \
        && make build
diff --git a/networks/local/localnode/Dockerfile b/networks/local/localnode/Dockerfile
index f47557fca3..ee3a366620 100644
--- a/networks/local/localnode/Dockerfile
+++ b/networks/local/localnode/Dockerfile
@@ -1,4 +1,4 @@
-FROM golang:1.14-alpine
+FROM golang:1.15-alpine
 MAINTAINER Greg Szabo <greg@tendermint.com>
 
 RUN apk update && \
diff --git a/tools/proto/Dockerfile b/tools/proto/Dockerfile
index 5008226904..a056f307e0 100644
--- a/tools/proto/Dockerfile
+++ b/tools/proto/Dockerfile
@@ -1,6 +1,6 @@
 FROM bufbuild/buf:latest as buf
 
-FROM golang:1.14-alpine3.11 as builder
+FROM golang:1.15-alpine as builder
 
 RUN apk add --update --no-cache build-base curl git upx && \
   rm -rf /var/cache/apk/*

Ref:

$ find ./ -type d -name .git -prune -o -type f | xargs grep alpine
.//tools/proto/Dockerfile:FROM golang:1.14-alpine3.11 as builder
.//tools/proto/Dockerfile:FROM alpine:edge
.//tools/proto/Dockerfile:RUN echo 'http://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories && \
.//DOCKER/Dockerfile:FROM golang:1.15-alpine as builder
.//DOCKER/Dockerfile:FROM golang:1.15-alpine
.//Makefile:DOCKER_IMG = golang:1.14.6-alpine3.12
.//networks/local/localnode/Dockerfile:FROM golang:1.14-alpine
grep: .//.git: Is a directory

types/voter_set_test.go Outdated Show resolved Hide resolved
types/voter_set_test.go Outdated Show resolved Hide resolved
types/validator_set_test.go Outdated Show resolved Hide resolved
types/validator_set_test.go Outdated Show resolved Hide resolved
types/validator_set_test.go Outdated Show resolved Hide resolved
@torao torao force-pushed the apply_v0.34.8 branch 2 times, most recently from 0eb453f to 76eab22 Compare July 2, 2021 08:37
@Kynea0b Kynea0b self-requested a review July 2, 2021 10:56
@Kynea0b
Copy link
Contributor

Kynea0b commented Jul 2, 2021

LGTM

test/maverick/consensus/state.go Outdated Show resolved Hide resolved
consensus/state_test.go Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
G: epic Granularity: Epic issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants