Opened 4 years ago
Closed 3 years ago
#2038 closed enhancement (no response)
Pluggable Reseeding Logic
Reported by: | ocean1 | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | undecided |
Component: | router/netdb | Version: | 0.9.31 |
Keywords: | Cc: | ||
Parent Tickets: | Sensitive: | no |
Description
PROBLEM:
We need to be able to provide a custom implementation of the reseeding logic that a router uses when it first starts up. This goes beyond simply customizing the reseed urls (which can be done using a System property) to implementing a custom reseeding flow based on PKI. (The user has a Cert and the Cert is used to determine where she gets her reseeds.)
PROPOSED SOLUTION:
- ReseedChecker? should be an interface.
- The NetworkDatabaseFacade? interface should expose a 'setReseeder(Reseeder)'.
- I2P should provide some sort of pluggable service framework so that the I2PAppContext can instantiate a configurable implementation of the Reseeder interface and pass it to the NetworkDatabaseFacade?.
Subtickets
Change History (2)
comment:1 Changed 4 years ago by
Component: | router/general → router/netdb |
---|---|
Priority: | major → minor |
Status: | new → infoneeded_new |
Type: | task → enhancement |
comment:2 Changed 3 years ago by
Resolution: | → no response |
---|---|
Status: | infoneeded_new → closed |
no response.
Proxies added for 0.9.33 (#423 and #1130) and orchid could be done easily (#1841).
We didn't need or want a 'pluggable' infrastructure for those because we are still using HTTPS, just fetching through a proxy.
If we wanted some non-HTTPS way to get reseeds (say via bittorrent, as we do with router updates) then a pluggable (registration) system would be necessary.
But reseed is mostly for just-after-installation, so as I said above, this is mostly an installer problem. Even if we did have an interface, you'd need code to run very early after startup to get your reseed code registered quick before the reseed started. The timing would be messy.
Closing wontfix. If you have a rebuttal and can make a case, feel free to reopen.
As I stated on IRC, this is unlikely to happen. We have lots of configuration options already, that you can set up via your installer:
all of these config options are there to enable customization by users or by embedded applications.
On IRC it seemed that this was driven by the lack of an installer for your embedded application, so you had no way to include certificates. If so, that seems to be the issue. Put the certs where they're supposed to be.
If you do want a custom reseed implementation for some reason, just rewrite ReseedChecker?, or subclass it, there's no reason for us to "provide some sort of pluggable service framework".
If you have some specific reseed architecture in mind (other than just changing URLs and certificates) that would require some 'framework' please provide details.