Update ibc imports
This commit is contained in:
parent
624133ad92
commit
40bb1fdca5
@ -80,13 +80,13 @@ func postPacketTxCmd(cmd *cobra.Command, args []string) error {
|
||||
return txcmd.DoTx(post.Wrap())
|
||||
}
|
||||
|
||||
func readSeed() (seed certifiers.Seed, err error) {
|
||||
func readSeed() (fc certifiers.FullCommit, err error) {
|
||||
name := viper.GetString(FlagSeed)
|
||||
if name == "" {
|
||||
return seed, errors.New("You must specify a seed file")
|
||||
return fc, errors.New("You must specify a commit file")
|
||||
}
|
||||
|
||||
err = readFile(name, &seed)
|
||||
err = readFile(name, &fc)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@ -28,19 +28,19 @@ func TestIBCRegister(t *testing.T) {
|
||||
appHash2 := []byte{12, 34, 56, 78}
|
||||
|
||||
// badSeed doesn't validate
|
||||
badSeed := genEmptySeed(keys2, "chain-2", 123, appHash, len(keys2))
|
||||
badSeed := genEmptyCommit(keys2, "chain-2", 123, appHash, len(keys2))
|
||||
badSeed.Header.AppHash = appHash2
|
||||
|
||||
cases := []struct {
|
||||
seed certifiers.Seed
|
||||
seed certifiers.FullCommit
|
||||
checker errors.CheckErr
|
||||
}{
|
||||
{
|
||||
genEmptySeed(keys, "chain-1", 100, appHash, len(keys)),
|
||||
genEmptyCommit(keys, "chain-1", 100, appHash, len(keys)),
|
||||
errors.NoErr,
|
||||
},
|
||||
{
|
||||
genEmptySeed(keys, "chain-1", 200, appHash, len(keys)),
|
||||
genEmptyCommit(keys, "chain-1", 200, appHash, len(keys)),
|
||||
IsAlreadyRegisteredErr,
|
||||
},
|
||||
{
|
||||
@ -48,7 +48,7 @@ func TestIBCRegister(t *testing.T) {
|
||||
IsInvalidCommitErr,
|
||||
},
|
||||
{
|
||||
genEmptySeed(keys2, "chain-2", 123, appHash2, 5),
|
||||
genEmptyCommit(keys2, "chain-2", 123, appHash2, 5),
|
||||
errors.NoErr,
|
||||
},
|
||||
}
|
||||
@ -78,45 +78,45 @@ func TestIBCRegisterPermissions(t *testing.T) {
|
||||
foobaz := sdk.Actor{App: "foo", Address: []byte("baz")}
|
||||
|
||||
cases := []struct {
|
||||
seed certifiers.Seed
|
||||
seed certifiers.FullCommit
|
||||
registrar sdk.Actor
|
||||
signer sdk.Actor
|
||||
checker errors.CheckErr
|
||||
}{
|
||||
// no sig, no registrar
|
||||
{
|
||||
seed: genEmptySeed(keys, "chain-1", 100, appHash, len(keys)),
|
||||
seed: genEmptyCommit(keys, "chain-1", 100, appHash, len(keys)),
|
||||
checker: errors.NoErr,
|
||||
},
|
||||
// sig, no registrar
|
||||
{
|
||||
seed: genEmptySeed(keys, "chain-2", 100, appHash, len(keys)),
|
||||
seed: genEmptyCommit(keys, "chain-2", 100, appHash, len(keys)),
|
||||
signer: foobaz,
|
||||
checker: errors.NoErr,
|
||||
},
|
||||
// registrar, no sig
|
||||
{
|
||||
seed: genEmptySeed(keys, "chain-3", 100, appHash, len(keys)),
|
||||
seed: genEmptyCommit(keys, "chain-3", 100, appHash, len(keys)),
|
||||
registrar: foobar,
|
||||
checker: errors.IsUnauthorizedErr,
|
||||
},
|
||||
// registrar, wrong sig
|
||||
{
|
||||
seed: genEmptySeed(keys, "chain-4", 100, appHash, len(keys)),
|
||||
seed: genEmptyCommit(keys, "chain-4", 100, appHash, len(keys)),
|
||||
signer: foobaz,
|
||||
registrar: foobar,
|
||||
checker: errors.IsUnauthorizedErr,
|
||||
},
|
||||
// registrar, wrong sig
|
||||
{
|
||||
seed: genEmptySeed(keys, "chain-5", 100, appHash, len(keys)),
|
||||
seed: genEmptyCommit(keys, "chain-5", 100, appHash, len(keys)),
|
||||
signer: baz,
|
||||
registrar: foobar,
|
||||
checker: errors.IsUnauthorizedErr,
|
||||
},
|
||||
// registrar, proper sig
|
||||
{
|
||||
seed: genEmptySeed(keys, "chain-6", 100, appHash, len(keys)),
|
||||
seed: genEmptyCommit(keys, "chain-6", 100, appHash, len(keys)),
|
||||
signer: foobar,
|
||||
registrar: foobar,
|
||||
checker: errors.NoErr,
|
||||
@ -151,7 +151,7 @@ func TestIBCUpdate(t *testing.T) {
|
||||
keys := certifiers.GenValKeys(7)
|
||||
appHash := []byte{0, 4, 7, 23}
|
||||
start := 100 // initial height
|
||||
root := genEmptySeed(keys, "chain-1", 100, appHash, len(keys))
|
||||
root := genEmptyCommit(keys, "chain-1", 100, appHash, len(keys))
|
||||
|
||||
keys2 := keys.Extend(2)
|
||||
keys3 := keys2.Extend(2)
|
||||
@ -165,47 +165,47 @@ func TestIBCUpdate(t *testing.T) {
|
||||
require.Nil(err, "%+v", err)
|
||||
|
||||
cases := []struct {
|
||||
seed certifiers.Seed
|
||||
seed certifiers.FullCommit
|
||||
checker errors.CheckErr
|
||||
}{
|
||||
// same validator, higher up
|
||||
{
|
||||
genEmptySeed(keys, "chain-1", start+50, []byte{22}, len(keys)),
|
||||
genEmptyCommit(keys, "chain-1", start+50, []byte{22}, len(keys)),
|
||||
errors.NoErr,
|
||||
},
|
||||
// same validator, between existing (not most recent)
|
||||
{
|
||||
genEmptySeed(keys, "chain-1", start+5, []byte{15, 43}, len(keys)),
|
||||
genEmptyCommit(keys, "chain-1", start+5, []byte{15, 43}, len(keys)),
|
||||
errors.NoErr,
|
||||
},
|
||||
// same validators, before root of trust
|
||||
{
|
||||
genEmptySeed(keys, "chain-1", start-8, []byte{11, 77}, len(keys)),
|
||||
genEmptyCommit(keys, "chain-1", start-8, []byte{11, 77}, len(keys)),
|
||||
IsHeaderNotFoundErr,
|
||||
},
|
||||
// insufficient signatures
|
||||
{
|
||||
genEmptySeed(keys, "chain-1", start+60, []byte{24}, len(keys)/2),
|
||||
genEmptyCommit(keys, "chain-1", start+60, []byte{24}, len(keys)/2),
|
||||
IsInvalidCommitErr,
|
||||
},
|
||||
// unregistered chain
|
||||
{
|
||||
genEmptySeed(keys, "chain-2", start+60, []byte{24}, len(keys)/2),
|
||||
genEmptyCommit(keys, "chain-2", start+60, []byte{24}, len(keys)/2),
|
||||
IsNotRegisteredErr,
|
||||
},
|
||||
// too much change (keys -> keys3)
|
||||
{
|
||||
genEmptySeed(keys3, "chain-1", start+100, []byte{22}, len(keys3)),
|
||||
genEmptyCommit(keys3, "chain-1", start+100, []byte{22}, len(keys3)),
|
||||
IsInvalidCommitErr,
|
||||
},
|
||||
// legit update to validator set (keys -> keys2)
|
||||
{
|
||||
genEmptySeed(keys2, "chain-1", start+90, []byte{33}, len(keys2)),
|
||||
genEmptyCommit(keys2, "chain-1", start+90, []byte{33}, len(keys2)),
|
||||
errors.NoErr,
|
||||
},
|
||||
// now impossible jump works (keys -> keys2 -> keys3)
|
||||
{
|
||||
genEmptySeed(keys3, "chain-1", start+100, []byte{44}, len(keys3)),
|
||||
genEmptyCommit(keys3, "chain-1", start+100, []byte{44}, len(keys3)),
|
||||
errors.NoErr,
|
||||
},
|
||||
}
|
||||
@ -227,7 +227,7 @@ func TestIBCCreatePacket(t *testing.T) {
|
||||
appHash := []byte{1, 2, 3, 4}
|
||||
start := 100 // initial height
|
||||
chainID := "cosmos-hub"
|
||||
root := genEmptySeed(keys, chainID, start, appHash, len(keys))
|
||||
root := genEmptyCommit(keys, chainID, start, appHash, len(keys))
|
||||
|
||||
// create the app and register the root of trust (for chain-1)
|
||||
ctx := stack.MockContext("hub", 50)
|
||||
|
||||
@ -17,11 +17,11 @@ const (
|
||||
// newCertifier loads up the current state of this chain to make a proper certifier
|
||||
// it will load the most recent height before block h if h is positive
|
||||
// if h < 0, it will load the latest height
|
||||
func newCertifier(store state.SimpleDB, chainID string, h int) (*certifiers.InquiringCertifier, error) {
|
||||
func newCertifier(store state.SimpleDB, chainID string, h int) (*certifiers.Inquiring, error) {
|
||||
// each chain has their own prefixed subspace
|
||||
p := newDBProvider(store)
|
||||
|
||||
var seed certifiers.Seed
|
||||
var seed certifiers.FullCommit
|
||||
var err error
|
||||
if h > 0 {
|
||||
// this gets the most recent verified seed below the specified height
|
||||
@ -55,7 +55,7 @@ func newDBProvider(store state.SimpleDB) *dbProvider {
|
||||
|
||||
var _ certifiers.Provider = &dbProvider{}
|
||||
|
||||
func (d *dbProvider) StoreSeed(seed certifiers.Seed) error {
|
||||
func (d *dbProvider) StoreSeed(seed certifiers.FullCommit) error {
|
||||
// TODO: don't duplicate data....
|
||||
b := wire.BinaryBytes(seed)
|
||||
d.byHash.Set(seed.Hash(), b)
|
||||
@ -63,7 +63,7 @@ func (d *dbProvider) StoreSeed(seed certifiers.Seed) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *dbProvider) GetByHeight(h int) (seed certifiers.Seed, err error) {
|
||||
func (d *dbProvider) GetByHeight(h int) (seed certifiers.FullCommit, err error) {
|
||||
b, _ := d.byHeight.LTE(uint64(h))
|
||||
if b == nil {
|
||||
return seed, certifiers.ErrSeedNotFound()
|
||||
@ -72,7 +72,7 @@ func (d *dbProvider) GetByHeight(h int) (seed certifiers.Seed, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (d *dbProvider) GetByHash(hash []byte) (seed certifiers.Seed, err error) {
|
||||
func (d *dbProvider) GetByHash(hash []byte) (seed certifiers.FullCommit, err error) {
|
||||
b := d.byHash.Get(hash)
|
||||
if b == nil {
|
||||
return seed, certifiers.ErrSeedNotFound()
|
||||
@ -83,7 +83,7 @@ func (d *dbProvider) GetByHash(hash []byte) (seed certifiers.Seed, err error) {
|
||||
|
||||
// GetExactHeight is like GetByHeight, but returns an error instead of
|
||||
// closest match if there is no exact match
|
||||
func (d *dbProvider) GetExactHeight(h int) (seed certifiers.Seed, err error) {
|
||||
func (d *dbProvider) GetExactHeight(h int) (seed certifiers.FullCommit, err error) {
|
||||
seed, err = d.GetByHeight(h)
|
||||
if err != nil {
|
||||
return
|
||||
|
||||
@ -10,7 +10,7 @@ import (
|
||||
"github.com/tendermint/light-client/certifiers"
|
||||
)
|
||||
|
||||
func assertSeedEqual(t *testing.T, s, s2 certifiers.Seed) {
|
||||
func assertSeedEqual(t *testing.T, s, s2 certifiers.FullCommit) {
|
||||
assert := assert.New(t)
|
||||
assert.Equal(s.Height(), s2.Height())
|
||||
assert.Equal(s.Hash(), s2.Hash())
|
||||
@ -75,16 +75,16 @@ func TestDBProvider(t *testing.T) {
|
||||
checkProvider(t, p, "test-db", "bling")
|
||||
}
|
||||
|
||||
func makeSeeds(keys certifiers.ValKeys, count int, chainID, app string) []certifiers.Seed {
|
||||
func makeSeeds(keys certifiers.ValKeys, count int, chainID, app string) []certifiers.FullCommit {
|
||||
appHash := []byte(app)
|
||||
seeds := make([]certifiers.Seed, count)
|
||||
seeds := make([]certifiers.FullCommit, count)
|
||||
for i := 0; i < count; i++ {
|
||||
// two seeds for each validator, to check how we handle dups
|
||||
// (10, 0), (10, 1), (10, 1), (10, 2), (10, 2), ...
|
||||
vals := keys.ToValidators(10, int64(count/2))
|
||||
h := 20 + 10*i
|
||||
check := keys.GenCheckpoint(chainID, h, nil, vals, appHash, 0, len(keys))
|
||||
seeds[i] = certifiers.Seed{check, vals}
|
||||
seeds[i] = certifiers.FullCommit{check, vals}
|
||||
}
|
||||
return seeds
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@ func NewMockChain(chainID string, numKeys int) MockChain {
|
||||
|
||||
// GetRegistrationTx returns a valid tx to register this chain
|
||||
func (m MockChain) GetRegistrationTx(h int) RegisterChainTx {
|
||||
seed := genEmptySeed(m.keys, m.chainID, h, m.tree.Hash(), len(m.keys))
|
||||
seed := genEmptyCommit(m.keys, m.chainID, h, m.tree.Hash(), len(m.keys))
|
||||
return RegisterChainTx{seed}
|
||||
}
|
||||
|
||||
@ -42,18 +42,17 @@ func (m MockChain) MakePostPacket(packet Packet, h int) (
|
||||
PostPacketTx, UpdateChainTx) {
|
||||
|
||||
post := makePostPacket(m.tree, packet, m.chainID, h)
|
||||
seed := genEmptySeed(m.keys, m.chainID, h+1, m.tree.Hash(), len(m.keys))
|
||||
seed := genEmptyCommit(m.keys, m.chainID, h+1, m.tree.Hash(), len(m.keys))
|
||||
update := UpdateChainTx{seed}
|
||||
|
||||
return post, update
|
||||
}
|
||||
|
||||
func genEmptySeed(keys certifiers.ValKeys, chain string, h int,
|
||||
appHash []byte, count int) certifiers.Seed {
|
||||
func genEmptyCommit(keys certifiers.ValKeys, chain string, h int,
|
||||
appHash []byte, count int) certifiers.FullCommit {
|
||||
|
||||
vals := keys.ToValidators(10, 0)
|
||||
cp := keys.GenCheckpoint(chain, h, nil, vals, appHash, 0, count)
|
||||
return certifiers.Seed{cp, vals}
|
||||
return keys.GenFullCommit(chain, h, nil, vals, appHash, 0, count)
|
||||
}
|
||||
|
||||
func makePostPacket(tree *iavl.Tree, packet Packet, fromID string, fromHeight int) PostPacketTx {
|
||||
|
||||
@ -32,7 +32,7 @@ func init() {
|
||||
|
||||
// RegisterChainTx allows you to register a new chain on this blockchain
|
||||
type RegisterChainTx struct {
|
||||
Seed certifiers.Seed `json:"seed"`
|
||||
Seed certifiers.FullCommit `json:"seed"`
|
||||
}
|
||||
|
||||
// ChainID helps get the chain this tx refers to
|
||||
@ -56,7 +56,7 @@ func (r RegisterChainTx) Wrap() sdk.Tx {
|
||||
|
||||
// UpdateChainTx updates the state of this chain
|
||||
type UpdateChainTx struct {
|
||||
Seed certifiers.Seed `json:"seed"`
|
||||
Seed certifiers.FullCommit `json:"seed"`
|
||||
}
|
||||
|
||||
// ChainID helps get the chain this tx refers to
|
||||
|
||||
Loading…
Reference in New Issue
Block a user