Merge pull request #1782 from Liamsi/merge-city

Merge go-crypto into tendermint
This commit is contained in:
Ethan Buchman
2018-06-21 15:53:02 -07:00
committed by GitHub
141 changed files with 2959 additions and 326 deletions

View File

@ -6,7 +6,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
crypto "github.com/tendermint/go-crypto"
crypto "github.com/tendermint/tendermint/crypto"
cmn "github.com/tendermint/tmlibs/common"
)

View File

@ -3,14 +3,13 @@ package types
import (
"time"
"github.com/tendermint/go-amino"
cmn "github.com/tendermint/tmlibs/common"
)
// Canonical json is amino's json for structs with fields in alphabetical order
// TimeFormat is used for generating the sigs
const TimeFormat = amino.RFC3339Millis
const TimeFormat = "2006-01-02T15:04:05.000Z"
type CanonicalJSONBlockID struct {
Hash cmn.HexBytes `json:"hash,omitempty"`

View File

@ -5,7 +5,7 @@ import (
"fmt"
"github.com/tendermint/go-amino"
"github.com/tendermint/go-crypto"
"github.com/tendermint/tendermint/crypto"
"github.com/tendermint/tmlibs/merkle"
)

View File

@ -5,7 +5,7 @@ import (
"io/ioutil"
"time"
"github.com/tendermint/go-crypto"
"github.com/tendermint/tendermint/crypto"
cmn "github.com/tendermint/tmlibs/common"
)

View File

@ -4,7 +4,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/tendermint/go-crypto"
"github.com/tendermint/tendermint/crypto"
)
func TestGenesisBad(t *testing.T) {
@ -18,7 +18,7 @@ func TestGenesisBad(t *testing.T) {
[]byte(`{"chain_id":"mychain","validators":[{}]}`), // missing validators
[]byte(`{"chain_id":"mychain","validators":null}`), // missing validators
[]byte(`{"chain_id":"mychain"}`), // missing validators
[]byte(`{"validators":[{"pub_key":{"type":"AC26791624DE60","value":"AT/+aaL1eB0477Mud9JMm8Sh8BIvOYlPGC9KkIUmFaE="},"power":10,"name":""}]}`), // missing chain_id
[]byte(`{"validators":[{"pub_key":{"type":"tendermint/PubKeyEd25519","value":"AT/+aaL1eB0477Mud9JMm8Sh8BIvOYlPGC9KkIUmFaE="},"power":"10","name":""}]}`), // missing chain_id
}
for _, testCase := range testCases {
@ -29,7 +29,7 @@ func TestGenesisBad(t *testing.T) {
func TestGenesisGood(t *testing.T) {
// test a good one by raw json
genDocBytes := []byte(`{"genesis_time":"0001-01-01T00:00:00Z","chain_id":"test-chain-QDKdJr","consensus_params":null,"validators":[{"pub_key":{"type":"AC26791624DE60","value":"AT/+aaL1eB0477Mud9JMm8Sh8BIvOYlPGC9KkIUmFaE="},"power":10,"name":""}],"app_hash":"","app_state":{"account_owner": "Bob"}}`)
genDocBytes := []byte(`{"genesis_time":"0001-01-01T00:00:00Z","chain_id":"test-chain-QDKdJr","consensus_params":null,"validators":[{"pub_key":{"type":"tendermint/PubKeyEd25519","value":"AT/+aaL1eB0477Mud9JMm8Sh8BIvOYlPGC9KkIUmFaE="},"power":"10","name":""}],"app_hash":"","app_state":{"account_owner": "Bob"}}`)
_, err := GenesisDocFromJSON(genDocBytes)
assert.NoError(t, err, "expected no error for good genDoc json")

View File

@ -3,7 +3,7 @@ package types
import (
"fmt"
"github.com/tendermint/go-crypto"
"github.com/tendermint/tendermint/crypto"
cmn "github.com/tendermint/tmlibs/common"
)

View File

@ -5,7 +5,7 @@ import (
"github.com/stretchr/testify/require"
"github.com/tendermint/go-crypto"
"github.com/tendermint/tendermint/crypto"
)
func TestHeartbeatCopy(t *testing.T) {
@ -28,7 +28,9 @@ func TestHeartbeatString(t *testing.T) {
require.Equal(t, hb.String(), "Heartbeat{1:000000000000 11/02 (0) <nil>}")
var key crypto.PrivKeyEd25519
hb.Signature = key.Sign([]byte("Tendermint"))
sig, err := key.Sign([]byte("Tendermint"))
require.NoError(t, err)
hb.Signature = sig
require.Equal(t, hb.String(), "Heartbeat{1:000000000000 11/02 (0) /FF41E371B9BF.../}")
}
@ -37,11 +39,11 @@ func TestHeartbeatWriteSignBytes(t *testing.T) {
hb := &Heartbeat{ValidatorIndex: 1, Height: 10, Round: 1}
bz := hb.SignBytes("0xdeadbeef")
// XXX HMMMMMMM
require.Equal(t, string(bz), `{"@chain_id":"0xdeadbeef","@type":"heartbeat","height":10,"round":1,"sequence":0,"validator_address":"","validator_index":1}`)
require.Equal(t, string(bz), `{"@chain_id":"0xdeadbeef","@type":"heartbeat","height":"10","round":"1","sequence":"0","validator_address":"","validator_index":"1"}`)
plainHb := &Heartbeat{}
bz = plainHb.SignBytes("0xdeadbeef")
require.Equal(t, string(bz), `{"@chain_id":"0xdeadbeef","@type":"heartbeat","height":0,"round":0,"sequence":0,"validator_address":"","validator_index":0}`)
require.Equal(t, string(bz), `{"@chain_id":"0xdeadbeef","@type":"heartbeat","height":"0","round":"0","sequence":"0","validator_address":"","validator_index":"0"}`)
require.Panics(t, func() {
var nilHb *Heartbeat

View File

@ -4,7 +4,7 @@ import (
"bytes"
"fmt"
"github.com/tendermint/go-crypto"
"github.com/tendermint/tendermint/crypto"
)
// PrivValidator defines the functionality of a local Tendermint validator
@ -63,7 +63,10 @@ func (pv *MockPV) GetPubKey() crypto.PubKey {
// Implements PrivValidator.
func (pv *MockPV) SignVote(chainID string, vote *Vote) error {
signBytes := vote.SignBytes(chainID)
sig := pv.privKey.Sign(signBytes)
sig, err := pv.privKey.Sign(signBytes)
if err != nil {
return err
}
vote.Signature = sig
return nil
}
@ -71,14 +74,20 @@ func (pv *MockPV) SignVote(chainID string, vote *Vote) error {
// Implements PrivValidator.
func (pv *MockPV) SignProposal(chainID string, proposal *Proposal) error {
signBytes := proposal.SignBytes(chainID)
sig := pv.privKey.Sign(signBytes)
sig, err := pv.privKey.Sign(signBytes)
if err != nil {
return err
}
proposal.Signature = sig
return nil
}
// signHeartbeat signs the heartbeat without any checking.
func (pv *MockPV) SignHeartbeat(chainID string, heartbeat *Heartbeat) error {
sig := pv.privKey.Sign(heartbeat.SignBytes(chainID))
sig, err := pv.privKey.Sign(heartbeat.SignBytes(chainID))
if err != nil {
return err
}
heartbeat.Signature = sig
return nil
}

View File

@ -5,7 +5,7 @@ import (
"fmt"
"time"
"github.com/tendermint/go-crypto"
"github.com/tendermint/tendermint/crypto"
)
var (

View File

@ -27,7 +27,11 @@ func TestProposalSignable(t *testing.T) {
signBytes := testProposal.SignBytes("test_chain_id")
signStr := string(signBytes)
expected := `{"@chain_id":"test_chain_id","@type":"proposal","block_parts_header":{"hash":"626C6F636B7061727473","total":111},"height":12345,"pol_block_id":{},"pol_round":-1,"round":23456,"timestamp":"2018-02-11T07:09:22.765Z"}`
expected := `{"@chain_id":"test_chain_id","@type":"proposal","block_parts_header":{"hash":"626C6F636B7061727473","total":"111"},"height":"12345","pol_block_id":{},"pol_round":"-1","round":"23456","timestamp":"2018-02-11T07:09:22.765Z"}`
if signStr != expected {
t.Errorf("Got unexpected sign string for Proposal. Expected:\n%v\nGot:\n%v", expected, signStr)
}
if signStr != expected {
t.Errorf("Got unexpected sign string for Proposal. Expected:\n%v\nGot:\n%v", expected, signStr)
}

View File

@ -7,7 +7,7 @@ import (
"time"
abci "github.com/tendermint/abci/types"
crypto "github.com/tendermint/go-crypto"
crypto "github.com/tendermint/tendermint/crypto"
)
//-------------------------------------------------------

View File

@ -5,7 +5,7 @@ import (
"github.com/stretchr/testify/assert"
abci "github.com/tendermint/abci/types"
crypto "github.com/tendermint/go-crypto"
crypto "github.com/tendermint/tendermint/crypto"
)
func TestABCIPubKey(t *testing.T) {

View File

@ -4,7 +4,7 @@ import (
"bytes"
"fmt"
"github.com/tendermint/go-crypto"
"github.com/tendermint/tendermint/crypto"
cmn "github.com/tendermint/tmlibs/common"
)

View File

@ -10,7 +10,7 @@ import (
"github.com/stretchr/testify/assert"
crypto "github.com/tendermint/go-crypto"
crypto "github.com/tendermint/tendermint/crypto"
cmn "github.com/tendermint/tmlibs/common"
)
@ -331,7 +331,9 @@ func TestValidatorSetVerifyCommit(t *testing.T) {
Type: VoteTypePrecommit,
BlockID: blockID,
}
vote.Signature = privKey.Sign(vote.SignBytes(chainID))
sig, err := privKey.Sign(vote.SignBytes(chainID))
assert.NoError(t, err)
vote.Signature = sig
commit := &Commit{
BlockID: blockID,
Precommits: []*Vote{vote},
@ -365,6 +367,6 @@ func TestValidatorSetVerifyCommit(t *testing.T) {
}
// test a good one
err := vset.VerifyCommit(chainID, blockID, height, commit)
err = vset.VerifyCommit(chainID, blockID, height, commit)
assert.Nil(t, err)
}

View File

@ -6,7 +6,7 @@ import (
"fmt"
"time"
crypto "github.com/tendermint/go-crypto"
crypto "github.com/tendermint/tendermint/crypto"
cmn "github.com/tendermint/tmlibs/common"
)

View File

@ -5,7 +5,7 @@ import (
"testing"
"time"
crypto "github.com/tendermint/go-crypto"
crypto "github.com/tendermint/tendermint/crypto"
cmn "github.com/tendermint/tmlibs/common"
tst "github.com/tendermint/tmlibs/test"
)

View File

@ -43,7 +43,7 @@ func TestVoteSignable(t *testing.T) {
signBytes := vote.SignBytes("test_chain_id")
signStr := string(signBytes)
expected := `{"@chain_id":"test_chain_id","@type":"vote","block_id":{"hash":"68617368","parts":{"hash":"70617274735F68617368","total":1000000}},"height":12345,"round":2,"timestamp":"2017-12-25T03:00:01.234Z","type":2}`
expected := `{"@chain_id":"test_chain_id","@type":"vote","block_id":{"hash":"68617368","parts":{"hash":"70617274735F68617368","total":"1000000"}},"height":"12345","round":"2","timestamp":"2017-12-25T03:00:01.234Z","type":2}`
if signStr != expected {
// NOTE: when this fails, you probably want to fix up consensus/replay_test too
t.Errorf("Got unexpected sign string for Vote. Expected:\n%v\nGot:\n%v", expected, signStr)

View File

@ -2,7 +2,7 @@ package types
import (
"github.com/tendermint/go-amino"
"github.com/tendermint/go-crypto"
"github.com/tendermint/tendermint/crypto"
)
var cdc = amino.NewCodec()