Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SPIKE][P2P] Configuration - Peer Discovery and Dynamic Peer Addition/Removal - Research Gemini Algorithm #16

Closed
jessicadaugherty opened this issue Oct 11, 2022 · 5 comments
Assignees

Comments

@jessicadaugherty
Copy link
Contributor

jessicadaugherty commented Oct 11, 2022

Objective

Research Gemini DHT algorithm to determine if and/or how we apply the functionality in V1 P2P peer discovery and dynamic peer addition/removal (churn) as part of the Raintree algorithm implementation, as well as how it would be implemented alongside other P2P libraries or tooling such as LibP2P. Ideally done in parallel with #17

Origin Document

Initial research concluded that the Gemini algorithm was the best solution due to its simplicity, scalability, and efficiency:

V1 P2P discovery

You can learn more about the Gemini algorithm here:

Gemini: Probabilistic Routing Algorithm in Structured P2P Overlay

As we continue to tackle Raintree tech debt and prepare to integrate the Persistence module with P2P, we should revisit this research to confirm that the Gemini algorithm is the right solution as it relates to Peer Discovery and Churn with a focus on:

  • Sufficiency
  • Simplicity
  • Scalability
  • Efficiency
  • Extensibility / modularity

Additionally, if we do not leverage LibP2P for Peer Discovery and Churn, we should revisit that library prior to finishing the complete P2P module in case there are other elements of the library we wish to integrate and if LibP2P will be compatible with Gemini for Peer Discovery and Churn with a focus on:

  • Peer Discovery
  • Churn
  • Session Management
  • Transport Layer Security

Goals

  • Summarize research learnings and recommendations on leveraging the Gemini algorithm and recommended next steps (if any)

Deliverable

  • Determine if we should use the Gemini or a similar DHT algorithm for peer discovery and churn as part of the Raintree implementation
  • Determine if Gemini is compatible with LibP2P (if we choose to use that library)
  • Research and document the Gemini algorithm as it pertains to Raintree (and, if relevant LibP2P) in a 1-2 pager that includes:
    • Implementation plans (creating stories)
    • (if relevant) how the algorithm will interact with LibP2P

Non-goals / Non-deliverables

  • Implementing Gemini

Creator: @jessicadaugherty

@jessicadaugherty jessicadaugherty changed the title [SPIKE][P2P] Peer Discovery and Dynamic Peer Addition/Removal - Research Gemini Algorithm [SPIKE][P2P] Configuration - Peer Discovery and Dynamic Peer Addition/Removal - Research Gemini Algorithm Oct 11, 2022
@jessicadaugherty jessicadaugherty transferred this issue from pokt-network/pocket Oct 11, 2022
@jessicadaugherty
Copy link
Contributor Author

@andrewnguyen22 @deblasis for your review

@jessicadaugherty jessicadaugherty changed the title [SPIKE][P2P] Configuration - Peer Discovery and Dynamic Peer Addition/Removal - Research Gemini Algorithm [SPIKE][P2P] Configuration - Peer Discovery and Dynamic Peer Addition/Removal - Research Gemini Algorithm/DHT solutions Oct 11, 2022
@jessicadaugherty jessicadaugherty changed the title [SPIKE][P2P] Configuration - Peer Discovery and Dynamic Peer Addition/Removal - Research Gemini Algorithm/DHT solutions [SPIKE][P2P] Configuration - Peer Discovery and Dynamic Peer Addition/Removal - Research Gemini Algorithm/DHT Solutions Oct 11, 2022
@jessicadaugherty jessicadaugherty changed the title [SPIKE][P2P] Configuration - Peer Discovery and Dynamic Peer Addition/Removal - Research Gemini Algorithm/DHT Solutions [SPIKE][P2P] Configuration - Peer Discovery and Dynamic Peer Addition/Removal - Research Gemini Algorithm Oct 12, 2022
@deblasis
Copy link
Contributor

@andrewnguyen22 @deblasis for your review

Nice work! The only thing is that I am not sure about the word "Configuration" in the title. Same applies to #17

@jessicadaugherty
Copy link
Contributor Author

Ty @deblasis :) I added configuration per the roadmap:

P2P - Configuration
Peer discovery
Dynamic peer addition / removal

So P2P = the epic, configuration = the feature set and peer discovery/dynamic peer = components that will be broken into user stories/tasks, such as "research Gemini". Lmk if this convention is confusing for you, though and I can re-organize np.

@deblasis
Copy link
Contributor

I see. Gotcha. No need to reorganize anything. Thank you @jessicadaugherty!

@Olshansk
Copy link
Member

@jessicadaugherty We can remove the "Testing Methodology" and "General Issue Delivierables" from this issue.

Might also be worth mentioning explicitly some of the points added in #17 regarding other elements of LibP2P (session management and transport layer security) that were excluded here.

@jessicadaugherty jessicadaugherty moved this from Up Next to Backlog in V1 Dashboard Dec 1, 2022
@jessicadaugherty jessicadaugherty closed this as not planned Won't fix, can't repro, duplicate, stale Dec 13, 2022
Repository owner moved this from Backlog to Done in V1 Dashboard Dec 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

3 participants