or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing
xxxxxxxxxx
Secure Kademlia Library
Summary
DAS Networking in Ethereum requires lots of small blob samples to be placed in a distributed network where arbitrary nodes can query "the network" to make sure these samples are available.
What this "network" actually looks like is still an open question, but there seems to be high level consensus on its process and design:
Motivation
This structured network, where anyone can participate, has a lot of nice properties for distributing small chunks of data across an ever-changing set of data and peers, but this thing comes with major drawbacks.
Most notably, anyone can spin up a bunch of node ids and have a disproportionately large amount of control over data and data flow within the network. These are sybil attacks.
A secure kademlia overlay can help mitigate adversaries wishing to cause harm and seems to important piece of the puzzle to making DAS Networking happen.
Within this crate, I modify libp2p's rust implementation of the kademlia protocol to create a "hardened version" of our Kademlia DHT.
High Level Roadmap
1. Fork Libp2p's implementation of a Kademlia library.
Questions:
Resources:
2. Implement S/Kad Modifications
Inspired by Dankrad's S/Kademlia document:
Libp2p already implemented this. See here.
It might be worth implementing the modified version of parallel lookups, where disjoint lookups kick in if the original lookup doesn't work, as seen in Dankrad's optimizations of S/Kademlia.
*Might stick with a proof of work requirement for node id generation in initial creation of the library (if it's easier) to get the interface down.
Instead of replicated storage for a value being defined by length of the kbucket variable (really used for redundancy of overlay connectivity), we define the replicated storage of a sample by a seperate variable.
Expose same functionality as Kademlia:
3. Integrate with discv5 (via overlay protocol)
Our secure routing table needs to follow specialized rules. Where and how should these rules be implemented?
I believe these questions fall under the umbrella of the Portal Network's Overlay Routing Table functionality.
Questions:
Or some sort of logical interface that plugs into arbitrary DHTs?
Resources: