You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

45 lines
1.1 KiB

package main
import (
"fmt"
"time"
e2e "github.com/tendermint/tendermint/test/e2e/pkg"
)
const interphaseWaitPeriod = 5
// Wait waits for a number of blocks to be produced, and for all nodes to catch
// up with it.
func Wait(testnet *e2e.Testnet, blocks int64) error {
block, _, err := waitForHeight(testnet, 0)
if err != nil {
return err
}
waitFor := block.Height + blocks
logger.Info(fmt.Sprintf("Waiting for all nodes to reach height %v...", waitFor))
_, err = waitForAllNodes(testnet, waitFor, 20*time.Second)
if err != nil {
return err
}
return nil
}
// WaitForAllMisbehaviors calculates the height of the last misbehavior and ensures the entire
// testnet has surpassed this height before moving on to the next phase
func waitForAllMisbehaviors(testnet *e2e.Testnet) error {
_, _, err := waitForHeight(testnet, lastMisbehaviorHeight(testnet))
return err
}
func lastMisbehaviorHeight(testnet *e2e.Testnet) int64 {
lastHeight := testnet.InitialHeight
for _, n := range testnet.Nodes {
for height := range n.Misbehaviors {
if height > lastHeight {
lastHeight = height
}
}
}
return lastHeight + interphaseWaitPeriod
}