-
Notifications
You must be signed in to change notification settings - Fork 5
Home
James Haoran Qiu edited this page May 6, 2021
·
7 revisions
- broadcast(Message m)
- join(NodeProfile np)
- send(Packet p, String sender_ip, String receiver_ip)
- Reach all nodes (sufficient amount of nodes); [fault-tolerance/robustness]
- Secure/address threat models; [security]
- transport correct message (immune to falsifying msg, addressed by SGX);
- hide the topology (anonymity);
- malicious individuals (don't consider message changing on the wire), eclipse attack, Sybil attack, DDoS attack;
- Converge as fast as possible (route should be optimal & msg should have no redundancy); [efficiency]
- [packet] send/out (behavior the same)
- [packat] receive/in (contact node receive info from upper-layer ring and lower-layer ring, so send fake message to prev-contact nodes in upper/lower-layer rings)
- [time] change contact node periodically, not long enough for the attacker to statistically infer the difference
- hidden topology -> no specific target found -> random failure makes sense
- fault ratio analysis
- each ring contains
r
nodes, and each ring electsc
contact nodes; - random failure:
- ours: probabilitic reaching all remaining nodes with a sufficient probability;
- gossip: storge and communication overhead to reach all remaining nodes (with well connected graph);
- each ring contains
- message complexity
- Gossip:
O(Nm)
, wherem
is the routing table size; - HGFR:
O(N)
;
- Gossip:
- time complexity (communication rounds)
- Gossip:
O(N/r*logr)
, wherer
is the number of nodes on the ring; - HGFR:
O(logN)
;
- Gossip:
Settings:
- Traffic Control, to simulate real RTT, sleep after receiving packets if between:
- continents: 150~200ms (random)
- countries: 100~150ms (random)
- cities: 50~100ms (random)
- district: 20~50ms (random)
- within the same district: do not sleep;
- ID -> id|district|city|country|continents
- Solve docker problem: multi-swarm;
- Blockchain workload generator (oringinal version);
Comparison Targets:
- Kademlia (how to compare? simulate encryption-decryption time)
- Chord
- Pastry
- Tapestry
Fixed node number: Time / # of messages/operations
Fixed node number: # of messages sent / # of operations
- Time / # of nodes (fixed # of messages/operations)
- Message / # of nodes (fixed # of operations)
- Message Reachibility / Fault Ratio
- Time (extra message complexity) / Fault Ratio
- Wireshark packet watching in an interval, compare particular node & normal node
- Node Loss Recovery Time / # of existing nodes
- Node Join Boostrap Time / # of existing nodes