-
Notifications
You must be signed in to change notification settings - Fork 451
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
Multi-Chain live edge traversal with random walks #2458
Comments
Design for a dispersy modification to use trust based peer selection: Currently dispersy keeps a list of around 11 peers that are selected by random walks. Every 5 seconds a random peer is replaced. To make this trust based:
Since low scoring peers have a higher chance to be replaced, this should converge the list to a list of peers with high scores. However, since there is still a chance that the best peer is replaced, ( (1-alpha)^10 * alpha) ) to avoid clogging top contributors. The crawling incorporates all 2 hop flows from the last x blocks. Based on previous crawls the score will also incorporate multi hop flows. To incorporate more 3 hop flows, after step 1: |
Johan: Specs for this component: Basic functioning hearsay mechanism. Low-risk conservative design. |
Fault resilience and a design without any probability of cascading failure Random graph sampling is safe, but not resilient against resource exhaustion attack. |
The key challenge and danger for 2016 and 2017 is that we DDoS ourself. In scientific turns this is the problem of load balancing. The sybil attack is more medium to long-term. Hence my expressed desire for a conservative design, that just works. |
Key piece of theory for msc thesis "Problem Description": https://www.semanticscholar.org/paper/Estimating-and-Sampling-Graphs-with-Ribeiro-Towsley/2337ba01e237a47c5f965474c1f2d4f4ee4f2643 |
Simulation results show that a "Pim-Rank" biased walk on the network gives network overloads at certain nodes. Simulation with 720 nodes and 45000 edges. One or more nodes get 14000 requests to process, while the average outgoing load is making 720 requests (1 req / 5 sec for 1h) |
I think this issue should be closed or reassigned to @qstokkink |
As both Tribler and IPv8 have a live edge implementation, I will close this. |
Goal: every peer conducts a crawl of it's neighbors and stores a duplicate of their complete chain.
This walk is random and resilient against peer failure.
Approach: each peer conducts a keep-alive to a peer which is Multichain record is created with. Incoming introduction-responses are given to any peer to which we have a Multichain record. The result is a graph traversal across Multichain edges, live edges as only online peers are eligible.
Each random walk starts at yourself. A random walk is conducted of, for instance, 4 steps deep. After these steps a teleport home is conducted. Each visit of a peer results in the crawling of one or more Multichain records. Shown above is the effect of repeated random walks and the resulting graph sampling.
Open questions: consider any Multichain record, or only incoming/outgoing edges as a walk candidate.
The text was updated successfully, but these errors were encountered: