Skip to content

Commit

Permalink
feat: optimize BlockMsgsForTipset
Browse files Browse the repository at this point in the history
  • Loading branch information
LinZexiao committed Aug 30, 2023
1 parent f52bb35 commit 46b8ad0
Showing 1 changed file with 27 additions and 3 deletions.
30 changes: 27 additions & 3 deletions pkg/chain/message_store.go
Original file line number Diff line number Diff line change
Expand Up @@ -386,13 +386,37 @@ func (ms *MessageStore) LoadTipSetMessage(ctx context.Context, ts *types.TipSet)
return nil, errors.Errorf("failed to load state tree")
}

useIds := false
selectMsg := func(m *types.Message) (bool, error) {
var sender address.Address
if ts.Height() >= ms.fkCfg.UpgradeHyperdriveHeight {
sender, err = st.LookupID(m.From)
if err != nil {
return false, err
if useIds {
sender, err = st.LookupID(m.From)
if err != nil {
return false, fmt.Errorf("failed to resolve sender: %w", err)
}
} else {
if m.From.Protocol() != address.ID {
// we haven't been told to use IDs, just use the robust addr
sender = m.From
} else {
// uh-oh, we actually have an ID-sender!
useIds = true
for robust, nonce := range applied {
resolved, err := st.LookupID(robust)
if err != nil {
return false, fmt.Errorf("failed to resolve sender: %w", err)
}
applied[resolved] = nonce
}

sender, err = st.LookupID(m.From)
if err != nil {
return false, fmt.Errorf("failed to resolve sender: %w", err)
}
}
}

} else {
sender = m.From
}
Expand Down

0 comments on commit 46b8ad0

Please sign in to comment.