chore(index-provider): ad chain with corrupted blocks
Description
When pulling advertisements from the Ursa index-provider endpoint, the indexer performs a number of checks. If any of these checks fail for any block, the entire chain ingestion process fails. In the past, one of the checks was the list of addresses in the advertisement. Although this issue was resolved in issue #382, nodes that have already locally published chains with corrupted blocks will never be indexed by the indexer. This is because the history of these nodes is corrupted due to the bug.
Notes
One immediate approach would be to make sure all the checks are done locally as well but then when local checks fail, the listed of multihashes for the ad is not persisted(but it can be generated via dag traversal, doing this for all cids is an overhead). Another approach would be to store the list of multihashes, this list can be used to reproduce a the full blockchain and the corrupted one can be garbage collected.
Checklist
- [ ] I have ensured that my version is up-to-date
- [ ] I have ensured that my issue is reproducible
- [ ] I have ensured that my issue is not a duplicate