If all of the advertisements in the oldest segment of an advertisement chain no longer advertise valid content, then it may be reasonable for the provider to have a way to stop serving those advertisements. The reasons for doing so are:
Reduce storage used for old outdated advertisements
Prevent indexers from traversing empty end segment of chain
Even if all of the advertisements at the oldest end of the advertisement chain have been deleted by removal ads later in the chain, indexers will still traverse those advertisements looking for non-deleted advertisements. This incurs a chain traversal for each indexer that could be prevented if a chain truncation mechanism were available.
Chain truncation may also be wanted in cases where a lost/corrupt database results in older advertisement data being unavailable and unrecoverable, yet it is not desirable to start an entirely new chain. Indexing will not be able to proceed unless the unavailable end of the chain is understood by indexers to be truncated.
Possible truncation mechanisms:
Publish a new advertisement with a new TruncateAt field that specifies where to end traversal of the ad chain.
Return NotFound or new Truncated error when fetching advertisement after truncation point.
Requiring a new advertisement that specifies chain truncation is explicit, so cannot happen due to some error condition as interpreting an error can.
Off the top of my head, here is a list of things to consider:
We should think about security implications of proceeding with ad ingest when the entire ad chain is not retrievable or truncated with some unseen ads.
How would this impact retrieval incentives, provider reputation scoring, etc.?
How would this impact finality of a federated IPNI network?
If all of the advertisements in the oldest segment of an advertisement chain no longer advertise valid content, then it may be reasonable for the provider to have a way to stop serving those advertisements. The reasons for doing so are:
Even if all of the advertisements at the oldest end of the advertisement chain have been deleted by removal ads later in the chain, indexers will still traverse those advertisements looking for non-deleted advertisements. This incurs a chain traversal for each indexer that could be prevented if a chain truncation mechanism were available.
Chain truncation may also be wanted in cases where a lost/corrupt database results in older advertisement data being unavailable and unrecoverable, yet it is not desirable to start an entirely new chain. Indexing will not be able to proceed unless the unavailable end of the chain is understood by indexers to be truncated.
Possible truncation mechanisms:
TruncateAt
field that specifies where to end traversal of the ad chain.NotFound
or newTruncated
error when fetching advertisement after truncation point.Requiring a new advertisement that specifies chain truncation is explicit, so cannot happen due to some error condition as interpreting an error can.