Open gammazero opened 9 months ago
Thank you for including the PR comments in the document.
Indexers are not required to validate that SeqNum is monotonically increasing
My sense is that flexing on this significantly reduces the effectiveness of Sequence numbers.
IPIP process
It seems like we are moving towards a world where there are different versions of IPNI spec, and indexers/providers that comply with different versions. This is not a blocker for now but I think we should think about introducing some kind of versioning to allow a user to infer what they can expect from an indexer instance. For example, assuming we make the validation of sequence number strict then another indexer can rely on it to concretely infer their lag in ingestion. They can also infer that some other indexer that does not support the newer spec cannot be relied upon to offer such insight. This allows backward compatibility while at the same time offer meaningful usefulness in exchange for protocol changes.
Does not seem necessary, since this only adds information and does not change protocol behavior. I will add a new subsection to the doc, and then we can decide if a separate doc is warranted.
Use sequence numbers. (added to spec)
Use sequence numbers (added to spec)
Reset means set back to 0, allowed when there are 9007199254740992 advertisements on the chain. (clarified in new subsection)
If present then it is included in the data that the advertisement signature is calculated over. (in doc)
Indexers are not required to validate that
SeqNum
is monotonically increasing, but an incorrect sequence number may result in incorrect indexing information or may be ignored resulting in some indexing features being unavailable for that chain's provider. If an indexer depends on the sequence number for more than display and reporting purposes, it can choose not index advertisement chains that do not have a monotonically increasingSeqNum
.No behavior change, only additional info, so seems like new doc not needed. However, if an IPIP process is the way we want to handle all protocol updates, then we can do it that way.