mirror of
https://github.com/tendermint/tendermint.git
synced 2026-09-07 00:26:58 +00:00
Merge branch 'develop' into jae/literefactor4
This commit is contained in:
+20
-2
@@ -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
@@ -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
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user