fix(chainwatch): Ignore blocks missing from local blockstore during processing

This commit is contained in:
Mike Greenberg 2020-08-17 17:35:35 -04:00
parent 6734287789
commit 94e4f8d116

View File

@ -336,16 +336,19 @@ where rnk <= $1
} }
var c string var c string
if err := rows.Scan(&c); err != nil { if err := rows.Scan(&c); err != nil {
return nil, xerrors.Errorf("Failed to scan unprocessed blocks: %w", err) log.Errorf("Failed to scan unprocessed blocks: %s", err.Error())
continue
} }
ci, err := cid.Parse(c) ci, err := cid.Parse(c)
if err != nil { if err != nil {
return nil, xerrors.Errorf("Failed to parse unprocessed blocks: %w", err) log.Errorf("Failed to parse unprocessed blocks: %s", err.Error())
continue
} }
bh, err := p.node.ChainGetBlock(ctx, ci) bh, err := p.node.ChainGetBlock(ctx, ci)
if err != nil { if err != nil {
// this is a pretty serious issue. // this is a pretty serious issue.
return nil, xerrors.Errorf("Failed to get block header %s: %w", ci.String(), err) log.Errorf("Failed to get block header %s: %s", ci.String(), err.Error())
continue
} }
out[ci] = bh out[ci] = bh
if bh.Height < minBlock { if bh.Height < minBlock {