Closed qstokkink closed 3 years ago
We will be needing a body of scripts to communicate with external bootstrapping nodes using their respective protocols.
Delving into all available options and protocol specifications is a bit much to handle for a single person. Therefore, I invite anyone with a passing interest in this to create and contribute their scripts for their favorite external protocol 😃
If you want to take on one of the mechanisms, please post that here so we don't do double-work.
Hmm, adding bootstrapping capabilities using IRC (specifically the freenode.net servers) would be interesting. I will consider implementing it if I find some time during the upcoming holiday 👍
Another hurdle is that these capabilities most likely require additional libraries/dependencies to be added. We probably want to have conditional imports here, and disable the bootstrap method if its dependencies cannot be imported.
Cool, thanks. I'll also add that hurdle in the O.P.
Since bootstrap methods have to be explicitly loaded from the configuration, I do think that crashing on a failed module load is appropriate though.
Once the basic infrastructure is available I'll look into hooking in Bittorrent DHT bootstrap nodes, perhaps to accompany the initial PR.
We can use bootstrap servers from external parties in our stack. We already have lazy resolution of DNS names, external mechanisms can use the exact same method.
Note that external bootstrap servers have different protocols, so these will have to be modularized.
Proposed design:
ipv8.bootstrap
module.ipv8.bootstrap
module.Community.bootstrap()
to call on the (new) bootstrap manager with aservice_id
(the community prefix)./ipv8/configuration.py
file.Possible hurdles:
The interface custom scripts should fill, would be the following: