Skip to content

Commit

Permalink
Merge pull request #10397 from filecoin-project/asr/fix-genesis-state…
Browse files Browse the repository at this point in the history
…-compute

fix: state: short-circuit genesis state computation
  • Loading branch information
arajasek authored Mar 6, 2023
2 parents 6ecf9aa + 74d94af commit b88ecb7
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
10 changes: 9 additions & 1 deletion chain/consensus/compute_state.go
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ func (t *TipSetExecutor) ApplyBlocks(ctx context.Context,
}
rErr := t.reward(ctx, vmi, em, epoch, ts, params)
if rErr != nil {
return cid.Undef, cid.Undef, xerrors.Errorf("error applying reward: %w", err)
return cid.Undef, cid.Undef, xerrors.Errorf("error applying reward: %w", rErr)
}
}

Expand Down Expand Up @@ -308,6 +308,14 @@ func (t *TipSetExecutor) ExecuteTipSet(ctx context.Context,
}
}

if ts.Height() == 0 {
// NB: This is here because the process that executes blocks requires that the
// block miner reference a valid miner in the state tree. Unless we create some
// magical genesis miner, this won't work properly, so we short circuit here
// This avoids the question of 'who gets paid the genesis block reward'
return blks[0].ParentStateRoot, blks[0].ParentMessageReceipts, nil
}

var parentEpoch abi.ChainEpoch
pstate := blks[0].ParentStateRoot
if blks[0].Height > 0 {
Expand Down
8 changes: 0 additions & 8 deletions chain/stmgr/execute.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,6 @@ func (sm *StateManager) TipSetState(ctx context.Context, ts *types.TipSet) (st c

sm.stlk.Unlock()

if ts.Height() == 0 {
// NB: This is here because the process that executes blocks requires that the
// block miner reference a valid miner in the state tree. Unless we create some
// magical genesis miner, this won't work properly, so we short circuit here
// This avoids the question of 'who gets paid the genesis block reward'
return ts.Blocks()[0].ParentStateRoot, ts.Blocks()[0].ParentMessageReceipts, nil
}

st, rec, err = sm.tsExec.ExecuteTipSet(ctx, sm, ts, sm.tsExecMonitor, false)
if err != nil {
return cid.Undef, cid.Undef, err
Expand Down

0 comments on commit b88ecb7

Please sign in to comment.