test/e2e: fix secp failures (#5649)

This commit is contained in:
Marko
2020-11-16 12:31:32 +01:00
committed by GitHub
parent 8aa47c7da5
commit e0950515ff
12 changed files with 47 additions and 22 deletions
+3 -1
View File
@@ -193,13 +193,15 @@ func (app *Application) validatorUpdates(height uint64) (abci.ValidatorUpdates,
if len(updates) == 0 {
return nil, nil
}
valUpdates := abci.ValidatorUpdates{}
for keyString, power := range updates {
keyBytes, err := base64.StdEncoding.DecodeString(keyString)
if err != nil {
return nil, fmt.Errorf("invalid base64 pubkey value %q: %w", keyString, err)
}
valUpdates = append(valUpdates, abci.Ed25519ValidatorUpdate(keyBytes, int64(power)))
valUpdates = append(valUpdates, abci.UpdateValidator(keyBytes, int64(power), app.cfg.KeyType))
}
return valUpdates, nil
}
+1
View File
@@ -22,6 +22,7 @@ type Config struct {
PrivValKey string `toml:"privval_key"`
PrivValState string `toml:"privval_state"`
Misbehaviors map[string]string `toml:"misbehaviors"`
KeyType string `toml:"key_type"`
}
// LoadConfig loads the configuration from disk.
-1
View File
@@ -1,2 +1 @@
[node.validator]
+5 -3
View File
@@ -67,7 +67,8 @@ type Node struct {
Name string
Testnet *Testnet
Mode Mode
Key crypto.PrivKey
PrivvalKey crypto.PrivKey
NodeKey crypto.PrivKey
IP net.IP
ProxyPort uint32
StartAt int64
@@ -142,7 +143,8 @@ func LoadTestnet(file string) (*Testnet, error) {
node := &Node{
Name: name,
Testnet: testnet,
Key: keyGen.Generate(manifest.KeyType),
PrivvalKey: keyGen.Generate(manifest.KeyType),
NodeKey: keyGen.Generate("ed25519"),
IP: ipGen.Next(),
ProxyPort: proxyPortGen.Next(),
Mode: ModeValidator,
@@ -447,7 +449,7 @@ func (n Node) AddressP2P(withID bool) string {
}
addr := fmt.Sprintf("%v:26656", ip)
if withID {
addr = fmt.Sprintf("%x@%v", n.Key.PubKey().Address().Bytes(), addr)
addr = fmt.Sprintf("%x@%v", n.NodeKey.PubKey().Address().Bytes(), addr)
}
return addr
}
+6 -5
View File
@@ -96,12 +96,12 @@ func Setup(testnet *e2e.Testnet) error {
return err
}
err = (&p2p.NodeKey{PrivKey: node.Key}).SaveAs(filepath.Join(nodeDir, "config", "node_key.json"))
err = (&p2p.NodeKey{PrivKey: node.NodeKey}).SaveAs(filepath.Join(nodeDir, "config", "node_key.json"))
if err != nil {
return err
}
(privval.NewFilePV(node.Key,
(privval.NewFilePV(node.PrivvalKey,
filepath.Join(nodeDir, PrivvalKeyFile),
filepath.Join(nodeDir, PrivvalStateFile),
)).Save()
@@ -201,8 +201,8 @@ func MakeGenesis(testnet *e2e.Testnet) (types.GenesisDoc, error) {
for validator, power := range testnet.Validators {
genesis.Validators = append(genesis.Validators, types.GenesisValidator{
Name: validator.Name,
Address: validator.Key.PubKey().Address(),
PubKey: validator.Key.PubKey(),
Address: validator.PrivvalKey.PubKey().Address(),
PubKey: validator.PrivvalKey.PubKey(),
Power: power,
})
}
@@ -324,6 +324,7 @@ func MakeAppConfig(node *e2e.Node) ([]byte, error) {
"persist_interval": node.PersistInterval,
"snapshot_interval": node.SnapshotInterval,
"retain_blocks": node.RetainBlocks,
"key_type": node.PrivvalKey.Type(),
}
switch node.ABCIProtocol {
case e2e.ProtocolUNIX:
@@ -366,7 +367,7 @@ func MakeAppConfig(node *e2e.Node) ([]byte, error) {
for height, validators := range node.Testnet.ValidatorUpdates {
updateVals := map[string]int64{}
for node, power := range validators {
updateVals[base64.StdEncoding.EncodeToString(node.Key.PubKey().Bytes())] = power
updateVals[base64.StdEncoding.EncodeToString(node.PrivvalKey.PubKey().Bytes())] = power
}
validatorUpdates[fmt.Sprintf("%v", height)] = updateVals
}
+1 -1
View File
@@ -22,7 +22,7 @@ func TestEvidence_Misbehavior(t *testing.T) {
for _, evidence := range block.Evidence.Evidence {
switch evidence := evidence.(type) {
case *types.DuplicateVoteEvidence:
if bytes.Equal(evidence.VoteA.ValidatorAddress, node.Key.PubKey().Address()) {
if bytes.Equal(evidence.VoteA.ValidatorAddress, node.PrivvalKey.PubKey().Address()) {
nodeEvidence = evidence
}
default:
+3 -3
View File
@@ -60,7 +60,7 @@ func TestValidator_Propose(t *testing.T) {
if node.Mode != e2e.ModeValidator {
return
}
address := node.Key.PubKey().Address()
address := node.PrivvalKey.PubKey().Address()
valSchedule := newValidatorSchedule(*node.Testnet)
expectCount := 0
@@ -90,7 +90,7 @@ func TestValidator_Sign(t *testing.T) {
if node.Mode != e2e.ModeValidator {
return
}
address := node.Key.PubKey().Address()
address := node.PrivvalKey.PubKey().Address()
valSchedule := newValidatorSchedule(*node.Testnet)
expectCount := 0
@@ -160,7 +160,7 @@ func (s *validatorSchedule) Increment(heights int64) {
func makeVals(valMap map[*e2e.Node]int64) []*types.Validator {
vals := make([]*types.Validator, 0, len(valMap))
for node, power := range valMap {
vals = append(vals, types.NewValidator(node.Key.PubKey(), power))
vals = append(vals, types.NewValidator(node.PrivvalKey.PubKey(), power))
}
return vals
}