This PR attempts to solve issue #2193, which is about manifests being garbage collected, causing publishers data to be inaccessible and (as a result) the content repair process to fail.
The alternative instead, is to always attempt content repair through a fixed publisher provided through a CLI flag, instead of the derived from the manifest.
This solution:
rolls back most changes from #2175 (this code is put into the global-pinning-manifest-publisher branch should we need it later)
adapts code from #2183 due to implementation similarities
said PR is now on hold since this solution excludes the publisher fallback implementation
Implementation details
adds a Recovery Publisher flag on boot-up
without this flag set, no content repair will be attempted
the flag will be passed to the NewRecoveryHook func and used thereafter
only this sole publisher will be use for all content repair processes (this can later be expanded to 1 feed per root hash as specified in #2193)
functions queryRecoveryFeed, getFeedTopicAndUser, getFeedContent and publisherToAddress were added from #2183 to make the code in the prod package more readable
all the code related to the publisher field in manifests is rolled back
This PR attempts to solve issue #2193, which is about manifests being garbage collected, causing publishers data to be inaccessible and (as a result) the content repair process to fail.
The alternative instead, is to always attempt content repair through a fixed publisher provided through a CLI flag, instead of the derived from the manifest.
This solution:
global-pinning-manifest-publisher
branch should we need it later)Implementation details
NewRecoveryHook
func and used thereafterqueryRecoveryFeed
,getFeedTopicAndUser
,getFeedContent
andpublisherToAddress
were added from #2183 to make the code in theprod
package more readablepublisher
field in manifests is rolled backprod
tests are adapted as a consequencecloses #2193