sync miners

This commit is contained in:
Anton Evangelatov 2020-06-29 17:06:04 +02:00
parent 666023f804
commit 909c12c6b4

View File

@ -3,8 +3,6 @@ package main
import ( import (
"context" "context"
"fmt" "fmt"
"math/rand"
"time"
"github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/build"
"github.com/testground/sdk-go/sync" "github.com/testground/sdk-go/sync"
@ -54,15 +52,15 @@ func runMiner(t *TestEnvironment) error {
stateMineNext := sync.State(fmt.Sprintf("mine-block-%d", i)) stateMineNext := sync.State(fmt.Sprintf("mine-block-%d", i))
t.SyncClient.MustSignalAndWait(ctx, stateMineNext, miners) t.SyncClient.MustSignalAndWait(ctx, stateMineNext, miners)
// add some random delay to encourage a different miner winning each round ch := make(chan struct{})
time.Sleep(time.Duration(100 + rand.Intn(int(100*time.Millisecond))))
err := miner.MineOne(ctx, func(mined bool) { err := miner.MineOne(ctx, func(mined bool) {
t.D().Counter(fmt.Sprintf("block.mine,miner=%s", myActorAddr)).Inc(1) t.D().Counter(fmt.Sprintf("block.mine,miner=%s", myActorAddr)).Inc(1)
close(ch)
}) })
if err != nil { if err != nil {
panic(err) panic(err)
} }
<-ch
} }
// signal the last block to make sure no miners are left stuck waiting for the next block signal // signal the last block to make sure no miners are left stuck waiting for the next block signal