mirror of
https://github.com/tendermint/tendermint.git
synced 2026-06-01 03:46:22 +00:00
e2e: ensure evidence validator set matches nodes validator set (#6712)
This commit is contained in:
@@ -56,7 +56,7 @@ abci_protocol = "grpc"
|
||||
persist_interval = 3
|
||||
perturb = ["kill"]
|
||||
privval_protocol = "grpc"
|
||||
retain_blocks = 5
|
||||
retain_blocks = 7
|
||||
|
||||
[node.validator04]
|
||||
abci_protocol = "builtin"
|
||||
@@ -80,7 +80,7 @@ start_at = 1010
|
||||
fast_sync = "v0"
|
||||
persistent_peers = ["validator01", "validator02", "validator03", "validator04", "validator05"]
|
||||
perturb = ["restart"]
|
||||
retain_blocks = 5
|
||||
retain_blocks = 7
|
||||
|
||||
[node.full02]
|
||||
mode = "full"
|
||||
|
||||
@@ -48,7 +48,7 @@ const (
|
||||
PerturbationPause Perturbation = "pause"
|
||||
PerturbationRestart Perturbation = "restart"
|
||||
|
||||
EvidenceAgeHeight int64 = 5
|
||||
EvidenceAgeHeight int64 = 7
|
||||
EvidenceAgeTime time.Duration = 500 * time.Millisecond
|
||||
)
|
||||
|
||||
|
||||
@@ -43,15 +43,15 @@ func InjectEvidence(testnet *e2e.Testnet, amount int) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
lightEvidenceCommonHeight := blockRes.Block.Height
|
||||
evidenceHeight := blockRes.Block.Height
|
||||
waitHeight := blockRes.Block.Height + 3
|
||||
duplicateVoteHeight := waitHeight
|
||||
|
||||
nValidators := 100
|
||||
valRes, err := client.Validators(context.Background(), &lightEvidenceCommonHeight, nil, &nValidators)
|
||||
valRes, err := client.Validators(context.Background(), &evidenceHeight, nil, &nValidators)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
valSet, err := types.ValidatorSetFromExistingValidators(valRes.Validators)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -65,21 +65,20 @@ func InjectEvidence(testnet *e2e.Testnet, amount int) error {
|
||||
|
||||
// wait for the node to reach the height above the forged height so that
|
||||
// it is able to validate the evidence
|
||||
status, err := waitForNode(targetNode, waitHeight, 30*time.Second)
|
||||
_, err = waitForNode(targetNode, waitHeight, 30*time.Second)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
duplicateVoteTime := status.SyncInfo.LatestBlockTime
|
||||
|
||||
var ev types.Evidence
|
||||
for i := 1; i <= amount; i++ {
|
||||
if i%lightClientEvidenceRatio == 0 {
|
||||
ev, err = generateLightClientAttackEvidence(
|
||||
privVals, lightEvidenceCommonHeight, valSet, testnet.Name, blockRes.Block.Time,
|
||||
privVals, evidenceHeight, valSet, testnet.Name, blockRes.Block.Time,
|
||||
)
|
||||
} else {
|
||||
ev, err = generateDuplicateVoteEvidence(
|
||||
privVals, duplicateVoteHeight, valSet, testnet.Name, duplicateVoteTime,
|
||||
privVals, evidenceHeight, valSet, testnet.Name, blockRes.Block.Time,
|
||||
)
|
||||
}
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user