Opened at 2013-03-19T07:44:42Z
#1933 new enhancement
announcement seqnums: respond to state-rollback
Reported by: | warner | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | undecided |
Component: | code-network | Version: | 1.9.2 |
Keywords: | Cc: | ||
Launchpad Bug: |
Description
In the #1767 sequence-number-based introducer announcements fix, we deferred a few TODO items:
- if a publisher receives its own announcement (same pubkey, valid signature) with a higher seqnum, or with an equal seqnum but different contents, immediately raise its seqnum to be one higher than the received value and re-publish all announcements
- if a subscriber receives an annoucement that is older (lower seqnum or same-seqnum-different-contents) than what it has remembered for that index (index=pubkey+servicename), send the remembered announcement back to the publisher (so they can learn about their rollback and perform thing 1 above)
The introducer server (while we still have one, e.g. until distributed/gossip-based introduction happens) is the best place to notice the rollback and tell the publisher, perhaps in the return value from the remote_publish_v2() method. Other introducer clients should do the same thing, but all they can do is publish the stored announcement on the same channel (service name) as the original, which the publisher may not be listening to (like a storage server who doesn't subscribe to "storage" because they don't care).