ucl-infosec / loopix Goto Github PK
View Code? Open in Web Editor NEWThe public repository of the Loopix mix system
License: BSD 2-Clause "Simplified" License
The public repository of the Loopix mix system
License: BSD 2-Clause "Simplified" License
I'll start by explaining the setup. I have 1 provider and 2 mixnodes running between 2 machines. I'm trying to add a client to each machine. I've double checked the database format and information, all of which is properly done.
When I try to use run_client.py script, I get this message:
Current Path: /home/vecow1/loopix/loopix
Unhandled error in Deferred:
I'm not sure whats happening here. Opening up loopix_client.py I can see that there is supposed to be more output, such as starting message handling/processing. Also, once this error is generated I see a steady stream of subscriptions from the client (in the provider window), like the client is stuck in a loop subscribing to the provider (EDIT: that's supposed to happen).
I tried to research the error and found this but I am at this point unfamiliar with the twisted package and can't make much of what is going on. I can provide more debugging information as needed.
EDIT: After going further into loopix_client.py I see that twisted.internet.task is used to constantly loop the subscribe_to_provider function. Currently looking into twisted.internet.defer to temporarily enable debugging.
EDIT 2: Enabling debugging gave me a stack trace from defer, here it is:
File "/home/vecow1/loopix/loopix/loopix_client.py", line 42, in startProtocol
I: self.get_provider_data()
I: File "/home/vecow1/loopix/loopix/loopix_client.py", line 60, in get_provider_data
I: d = twisted.names.client.getHostByName(self.provider.host)
Digging into twisted I see that twisted.names.client.getHostByName is used for resolving addresses via DNS. The host attribute of a provider object is the IP address of the provider, so this line is trying to resolve an IPv4 address to an IPv4 address. By replacing self.provider.host with self.provider.name, and adding the correct entry to the OSes hosts file, this issue is resolved.
I had to install the following packages in a clean Debian VM to reach the point where I can ask fabric to execute a given task.
Maybe you can include them in setup.py.
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.