v1.27.0-a #10

Closed
jonathanface wants to merge 473 commits from v1.27.0-a into master
2 changed files with 19 additions and 12 deletions
Showing only changes of commit 1645c32997 - Show all commits

View File

@ -26,30 +26,36 @@ import (
func TestEthBlockHashesCorrect_MultiBlockTipset(t *testing.T) { func TestEthBlockHashesCorrect_MultiBlockTipset(t *testing.T) {
// miner is connected to the first node, and we want to observe the chain // miner is connected to the first node, and we want to observe the chain
// from the second node. // from the second node.
blocktime := 250 * time.Millisecond blocktime := 100 * time.Millisecond
n1, m1, m2, ens := kit.EnsembleOneTwo(t, n1, m1, m2, ens := kit.EnsembleOneTwo(t,
kit.MockProofs(), kit.MockProofs(),
kit.ThroughRPC(), kit.ThroughRPC(),
) )
ens.InterconnectAll().BeginMining(blocktime) ens.InterconnectAll().BeginMining(blocktime)
{
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
n1.WaitTillChain(ctx, kit.HeightAtLeast(abi.ChainEpoch(5))) n1.WaitTillChain(ctx, kit.HeightAtLeast(abi.ChainEpoch(5)))
defer cancel() cancel()
}
var n2 kit.TestFullNode var n2 kit.TestFullNode
ens.FullNode(&n2, kit.ThroughRPC()).Start().Connect(n2, n1) ens.FullNode(&n2, kit.ThroughRPC()).Start().Connect(n2, n1)
{
// find the first tipset where all miners mined a block. // find the first tipset where all miners mined a block.
ctx, cancel = context.WithTimeout(context.Background(), 5*time.Minute) ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
n2.WaitTillChain(ctx, kit.BlocksMinedByAll(m1.ActorAddr, m2.ActorAddr)) n2.WaitTillChain(ctx, kit.BlocksMinedByAll(m1.ActorAddr, m2.ActorAddr))
defer cancel() cancel()
}
head, err := n2.ChainHead(context.Background()) head, err := n2.ChainHead(context.Background())
require.NoError(t, err) require.NoError(t, err)
ctx := context.Background()
// let the chain run a little bit longer to minimise the chance of reorgs // let the chain run a little bit longer to minimise the chance of reorgs
n2.WaitTillChain(ctx, kit.HeightAtLeast(head.Height()+50)) n2.WaitTillChain(ctx, kit.HeightAtLeast(head.Height()+10))
tsk := head.Key() tsk := head.Key()
for i := 1; i <= int(head.Height()); i++ { for i := 1; i <= int(head.Height()); i++ {

View File

@ -256,8 +256,6 @@ func (bm *BlockMiner) MineBlocksMustPost(ctx context.Context, blocktime time.Dur
} }
func (bm *BlockMiner) MineBlocks(ctx context.Context, blocktime time.Duration) { func (bm *BlockMiner) MineBlocks(ctx context.Context, blocktime time.Duration) {
time.Sleep(time.Second)
// wrap context in a cancellable context. // wrap context in a cancellable context.
ctx, bm.cancel = context.WithCancel(ctx) ctx, bm.cancel = context.WithCancel(ctx)
@ -278,8 +276,11 @@ func (bm *BlockMiner) MineBlocks(ctx context.Context, blocktime time.Duration) {
default: default:
} }
now := time.Duration(time.Now().UnixNano())
delay := blocktime - (now % blocktime)
select { select {
case <-time.After(blocktime): case <-time.After(delay):
case <-ctx.Done(): case <-ctx.Done():
return return
} }