Merge branch 'develop' into jae/literefactor4

This commit is contained in:
Ethan Buchman
2018-07-23 23:28:14 -04:00
342 changed files with 30690 additions and 6538 deletions
+20 -2
View File
@@ -4,6 +4,9 @@ import (
"time"
crypto "github.com/tendermint/tendermint/crypto"
"github.com/tendermint/tendermint/crypto/ed25519"
"github.com/tendermint/tendermint/crypto/secp256k1"
"github.com/tendermint/tendermint/types"
)
@@ -20,7 +23,7 @@ type privKeys []crypto.PrivKey
func genPrivKeys(n int) privKeys {
res := make(privKeys, n)
for i := range res {
res[i] = crypto.GenPrivKeyEd25519()
res[i] = ed25519.GenPrivKey()
}
return res
}
@@ -29,7 +32,7 @@ func genPrivKeys(n int) privKeys {
func (pkz privKeys) Change(i int) privKeys {
res := make(privKeys, len(pkz))
copy(res, pkz)
res[i] = crypto.GenPrivKeyEd25519()
res[i] = ed25519.GenPrivKey()
return res
}
@@ -39,6 +42,21 @@ func (pkz privKeys) Extend(n int) privKeys {
return append(pkz, extra...)
}
// GenSecpPrivKeys produces an array of secp256k1 private keys to generate commits.
func GenSecpPrivKeys(n int) privKeys {
res := make(privKey, n)
for i := range res {
res[i] = secp256k1.GenPrivKey()
}
return res
}
// ExtendSecp adds n more secp256k1 keys (to remove, just take a slice).
func (pkz privKeys) ExtendSecp(n int) privKeys {
extra := GenSecpPrivKeys(n)
return append(v, extra...)
}
// ToValidators produces a valset from the set of keys.
// The first key has weight `init` and it increases by `inc` every step
// so we can have all the same weight, or a simple linear distribution
+2 -2
View File
@@ -12,14 +12,14 @@ func ValidateBlockMeta(meta *types.BlockMeta, sh types.SignedHeader) error {
return errors.New("expecting a non-nil BlockMeta")
}
// TODO: check the BlockID??
return ValidateHeader(meta.Header, sh)
return ValidateHeader(&meta.Header, sh)
}
func ValidateBlock(meta *types.Block, sh types.SignedHeader) error {
if meta == nil {
return errors.New("expecting a non-nil Block")
}
err := ValidateHeader(meta.Header, sh)
err := ValidateHeader(&meta.Header, sh)
if err != nil {
return err
}
+15 -14
View File
@@ -17,7 +17,7 @@ var (
testTime2 = time.Date(2017, 1, 2, 1, 1, 1, 1, time.UTC)
)
var hdrHeight11 = &types.Header{
var hdrHeight11 = types.Header{
Height: 11,
Time: testTime1,
ValidatorsHash: []byte("Tendermint"),
@@ -41,13 +41,13 @@ func TestValidateBlock(t *testing.T) {
// Start Header.Height mismatch test
{
block: &types.Block{Header: &types.Header{Height: 10}},
block: &types.Block{Header: types.Header{Height: 10}},
signedHeader: types.SignedHeader{Header: &types.Header{Height: 11}},
wantErr: "Header heights mismatched",
},
{
block: &types.Block{Header: &types.Header{Height: 11}},
block: &types.Block{Header: types.Header{Height: 11}},
signedHeader: types.SignedHeader{Header: &types.Header{Height: 11}},
},
// End Header.Height mismatch test
@@ -61,15 +61,15 @@ func TestValidateBlock(t *testing.T) {
{
block: &types.Block{Header: hdrHeight11},
signedHeader: types.SignedHeader{Header: hdrHeight11},
signedHeader: types.SignedHeader{Header: &hdrHeight11},
},
// End Header.Hash mismatch test
// Start Header.Data hash mismatch test
{
block: &types.Block{
Header: &types.Header{Height: 11},
Data: &types.Data{Txs: []types.Tx{[]byte("0xDE"), []byte("AD")}},
Header: types.Header{Height: 11},
Data: types.Data{Txs: []types.Tx{[]byte("0xDE"), []byte("AD")}},
},
signedHeader: types.SignedHeader{
Header: &types.Header{Height: 11},
@@ -79,8 +79,8 @@ func TestValidateBlock(t *testing.T) {
},
{
block: &types.Block{
Header: &types.Header{Height: 11, DataHash: deadBeefHash},
Data: &types.Data{Txs: deadBeefTxs},
Header: types.Header{Height: 11, DataHash: deadBeefHash},
Data: types.Data{Txs: deadBeefTxs},
},
signedHeader: types.SignedHeader{
Header: &types.Header{Height: 11},
@@ -119,17 +119,18 @@ func TestValidateBlockMeta(t *testing.T) {
},
{
meta: &types.BlockMeta{Header: new(types.Header)}, wantErr: "unexpected empty SignedHeader",
// meta: &types.BlockMeta{},
},
// Start Header.Height mismatch test
{
meta: &types.BlockMeta{Header: &types.Header{Height: 10}},
meta: &types.BlockMeta{Header: types.Header{Height: 10}},
signedHeader: types.SignedHeader{Header: &types.Header{Height: 11}},
wantErr: "Header heights mismatched",
},
{
meta: &types.BlockMeta{Header: &types.Header{Height: 11}},
meta: &types.BlockMeta{Header: types.Header{Height: 11}},
signedHeader: types.SignedHeader{Header: &types.Header{Height: 11}},
},
// End Header.Height mismatch test
@@ -143,12 +144,12 @@ func TestValidateBlockMeta(t *testing.T) {
{
meta: &types.BlockMeta{Header: hdrHeight11},
signedHeader: types.SignedHeader{Header: hdrHeight11},
signedHeader: types.SignedHeader{Header: &hdrHeight11},
},
{
meta: &types.BlockMeta{
Header: &types.Header{
Header: types.Header{
Height: 11,
ValidatorsHash: []byte("lite-test"),
// TODO: should be able to use empty time after Amino upgrade
@@ -163,7 +164,7 @@ func TestValidateBlockMeta(t *testing.T) {
{
meta: &types.BlockMeta{
Header: &types.Header{
Header: types.Header{
Height: 11, DataHash: deadBeefHash,
ValidatorsHash: []byte("Tendermint"),
Time: testTime1,
@@ -182,7 +183,7 @@ func TestValidateBlockMeta(t *testing.T) {
{
meta: &types.BlockMeta{
Header: &types.Header{
Header: types.Header{
Height: 11, DataHash: deadBeefHash,
ValidatorsHash: []byte("Tendermint"),
Time: testTime2,