geektoni / whanau-sybil-proof-dht Goto Github PK
View Code? Open in Web Editor NEWImplementation of Whanau, a Sybil-proof Distributed Hash Table, using Peersim.
Implementation of Whanau, a Sybil-proof Distributed Hash Table, using Peersim.
Implement an Observer that extracts the distribution of the keys in the different layers, in order to assert whether the current implementation of the clustering attack is actually effective and realistic.
This is the list of experiments which needs to be done in order to evaluate the algorithm:
Number of Lookup messages used decreases as table size increase (we assume to use just 3 layers)
(Table size, number of nodes, percentage attack edges)
Number of lookup message used varying the percentage of attack edges (we assume to just use 3 layers and to fix the tables size to the optimal value for the network)
(Percentage of attack edges, table size, network size)
Number of lookup message is constant if there is no attack (the number of layers is fixed to 3)
(Network size, table size)
Number of layer improves quality
(attack edges, table size, network size, layer size)
Now there's only one integer accumulating the number of tries and the number of messages sent around. Doesn't it make sense to insert a new counter?
NOTE: the writer on file needs the counter of tries to be 'clean' in order to work properly
Should I fix it?
I think that sybil nodes should just make the query fail, simulating a 'missing_key' error in the query.
As written in the paper (end of paragraph 5.1)
Then, honest nodes might have to send many useless query messages to Sybil nodes before eventually querying an honest node
To implement this we should tweak the function randomWalk()
in order to stop the walk when a sybil node is encountered. Right now, sybil nodes just don't reply if they are asked for the value, but I think is a behaviour too gentle and not realistic
This will enable us to generate more realistic social network datasets.
The WhanauLookup control needs to be updated in order to record certain parameters for each
execution. It should be able to:
lookup()
had to retry in order to find a key;@andreazampieri When I try to run it using python3
I get this message:
Traceback (most recent call last):
File "show_keys.py", line 52, in <module>
mng.window.showMaximized()
File "/usr/lib/python3.5/tkinter/__init__.py", line 1952, in __getattr__
return getattr(self.tk, attr)
AttributeError: '_tkinter.tkapp' object has no attribute 'showMaximized'
Apparently, it seems to be a problem related to the backend used to show the plot. See this answer
on Stackoverflow for a solution. https://stackoverflow.com/questions/12439588/how-to-maximize-a-plt-show-window-using-python/22418354#22418354
Sybil node should be able to:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.