From be2a357102b69c729ff63c6bbb310ed3c4f5c0f6 Mon Sep 17 00:00:00 2001 From: Jeromy Date: Fri, 1 May 2020 12:42:59 -0700 Subject: [PATCH] winning post wants the actual epoch of the block, not the previous --- chain/stmgr/utils.go | 3 +-- chain/sync.go | 2 +- miner/miner.go | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/chain/stmgr/utils.go b/chain/stmgr/utils.go index a5b791b80..e6ba47665 100644 --- a/chain/stmgr/utils.go +++ b/chain/stmgr/utils.go @@ -479,8 +479,7 @@ func MinerGetBaseInfo(ctx context.Context, sm *StateManager, bcn beacon.RandomBe return nil, xerrors.Errorf("failed to marshal miner address: %w", err) } - // TODO: use the right dst, also NB: not using any 'entropy' in this call because nicola really didnt want it - prand, err := store.DrawRandomness(rbase.Data, crypto.DomainSeparationTag_WinningPoStChallengeSeed, round-1, buf.Bytes()) + prand, err := store.DrawRandomness(rbase.Data, crypto.DomainSeparationTag_WinningPoStChallengeSeed, round, buf.Bytes()) if err != nil { return nil, xerrors.Errorf("failed to get randomness for winning post: %w", err) } diff --git a/chain/sync.go b/chain/sync.go index a46f99c9a..e2a78ff46 100644 --- a/chain/sync.go +++ b/chain/sync.go @@ -752,7 +752,7 @@ func (syncer *Syncer) VerifyWinningPoStProof(ctx context.Context, h *types.Block rbase = h.BeaconEntries[len(h.BeaconEntries)-1] } - rand, err := store.DrawRandomness(rbase.Data, crypto.DomainSeparationTag_WinningPoStChallengeSeed, h.Height-1, buf.Bytes()) + rand, err := store.DrawRandomness(rbase.Data, crypto.DomainSeparationTag_WinningPoStChallengeSeed, h.Height, buf.Bytes()) if err != nil { return xerrors.Errorf("failed to get randomness for verifying winningPost proof: %w", err) } diff --git a/miner/miner.go b/miner/miner.go index 4543af22a..d1193ec0b 100644 --- a/miner/miner.go +++ b/miner/miner.go @@ -366,7 +366,7 @@ func (m *Miner) mineOne(ctx context.Context, addr address.Address, base *MiningB return nil, xerrors.Errorf("failed to marshal miner address: %w", err) } - rand, err := store.DrawRandomness(rbase.Data, crypto.DomainSeparationTag_WinningPoStChallengeSeed, base.TipSet.Height()+base.NullRounds, buf.Bytes()) + rand, err := store.DrawRandomness(rbase.Data, crypto.DomainSeparationTag_WinningPoStChallengeSeed, base.TipSet.Height()+base.NullRounds+1, buf.Bytes()) if err != nil { return nil, xerrors.Errorf("failed to get randomness for winning post: %w", err) }