Merge pull request #74 from filecoin-project/bug-fixes
A couple of bug fixes
This commit is contained in:
commit
2256a7237c
@ -2,8 +2,11 @@ package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"time"
|
||||
|
||||
"github.com/testground/sdk-go/sync"
|
||||
)
|
||||
|
||||
func runBootstrapper(t *TestEnvironment) error {
|
||||
@ -35,10 +38,12 @@ func runMiner(t *TestEnvironment) error {
|
||||
done := make(chan struct{})
|
||||
go func() {
|
||||
defer close(done)
|
||||
for mine {
|
||||
var i int
|
||||
for i = 0; mine; i++ {
|
||||
|
||||
// synchronize all miners to mine the next block
|
||||
t.RecordMessage("synchronizing all miners to mine next block")
|
||||
t.RecordMessage("synchronizing all miners to mine next block [%d]", i)
|
||||
stateMineNext := sync.State(fmt.Sprintf("mine-block-%d", i))
|
||||
t.SyncClient.MustSignalAndWait(ctx, stateMineNext, miners)
|
||||
|
||||
// add some random delay to encourage a different miner winning each round
|
||||
@ -51,6 +56,11 @@ func runMiner(t *TestEnvironment) error {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
// signal the last block to make sure no miners are left stuck waiting for the next block signal
|
||||
// while the others have stopped
|
||||
stateMineLast := sync.State(fmt.Sprintf("mine-block-%d", i))
|
||||
t.SyncClient.MustSignalEntry(ctx, stateMineLast)
|
||||
}()
|
||||
|
||||
// wait for a signal from all clients to stop mining
|
||||
|
@ -4,12 +4,11 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"crypto/rand"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
//"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/filecoin-project/go-address"
|
||||
@ -31,6 +30,7 @@ import (
|
||||
"github.com/filecoin-project/lotus/node/modules/lp2p"
|
||||
modtest "github.com/filecoin-project/lotus/node/modules/testing"
|
||||
"github.com/filecoin-project/lotus/node/repo"
|
||||
|
||||
"github.com/filecoin-project/specs-actors/actors/abi"
|
||||
"github.com/filecoin-project/specs-actors/actors/abi/big"
|
||||
"github.com/filecoin-project/specs-actors/actors/builtin"
|
||||
@ -38,11 +38,13 @@ import (
|
||||
"github.com/filecoin-project/specs-actors/actors/builtin/power"
|
||||
"github.com/filecoin-project/specs-actors/actors/builtin/verifreg"
|
||||
"github.com/filecoin-project/specs-actors/actors/crypto"
|
||||
|
||||
"github.com/ipfs/go-datastore"
|
||||
logging "github.com/ipfs/go-log/v2"
|
||||
libp2p_crypto "github.com/libp2p/go-libp2p-core/crypto"
|
||||
"github.com/libp2p/go-libp2p-core/peer"
|
||||
ma "github.com/multiformats/go-multiaddr"
|
||||
|
||||
"github.com/testground/sdk-go/run"
|
||||
"github.com/testground/sdk-go/runtime"
|
||||
"github.com/testground/sdk-go/sync"
|
||||
@ -75,7 +77,6 @@ var (
|
||||
|
||||
stateReady = sync.State("ready")
|
||||
stateDone = sync.State("done")
|
||||
stateMineNext = sync.State("mine-next")
|
||||
stateStopMining = sync.State("stop-mining")
|
||||
)
|
||||
|
||||
@ -111,6 +112,7 @@ type InitialBalanceMsg struct {
|
||||
|
||||
type PresealMsg struct {
|
||||
Miner genesis.Miner
|
||||
Seqno int64
|
||||
}
|
||||
|
||||
type GenesisMsg struct {
|
||||
@ -306,7 +308,7 @@ func prepareMiner(t *TestEnvironment) (*Node, error) {
|
||||
|
||||
t.RecordMessage("Miner Info: Owner: %s Worker: %s", genMiner.Owner, genMiner.Worker)
|
||||
|
||||
presealMsg := &PresealMsg{Miner: *genMiner}
|
||||
presealMsg := &PresealMsg{Miner: *genMiner, Seqno: t.GroupSeq}
|
||||
t.SyncClient.Publish(ctx, presealTopic, presealMsg)
|
||||
|
||||
// then collect the genesis block and bootstrapper address
|
||||
@ -636,6 +638,10 @@ func collectPreseals(t *TestEnvironment, ctx context.Context, miners int) ([]*Pr
|
||||
}
|
||||
}
|
||||
|
||||
sort.Slice(preseals, func(i, j int) bool {
|
||||
return preseals[i].Seqno < preseals[j].Seqno
|
||||
})
|
||||
|
||||
return preseals, nil
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user