shadow / shadow-plugin-tor

A Shadow plug-in that runs the Tor anonymity software

Home Page:https://shadow.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Using Shadow and Tor Plugin while developing alternative Tor client

mdccxv opened this issue · comments

I am planning to develop an alternative Tor client, more as a discardable prototype and a way to deepen knowledge about onion routing. I am currently looking for tools that would support my effort.
Now, I see that Shadow coupled with Tor Plugin allow to simulate a complex Tor network running various experiments, yet it is not clear to me if I can somehow interface with the simulated network from the external application. In other words, if I start to develop a program that would be essentially a Tor relay node, can I use Shadow Tor to test it?

See the documentation on shadow plugins. If your client is written in C or C++, it should be fairly straightforward to get it working with shadow; if it's in another language, it would be possible but likely very difficult to do.

See also shadow/shadow#764 for my answer to a related question about using Shadow for mixnets.

Thank you both for the answers. From your comments and links I can see a stress on C/C++ as most pain-free and straightforward way to go about it. My technology of choice is Dart and it is somehow important for me to stick with it, also I am probably not so well versed in C or C++ (for now).
@robgjansen do you think that this future Shadow v2 that you mention in another thread would make it any easier to interface with it?

@robgjansen do you think that this future Shadow v2 that you mention in another thread would make it any easier to interface with it?

Yes, absolutely Shadow v2 will make it easier to run applications written in languages other than C/C++. I don't yet have a solid timeframe for when v2 will be ready. It likely won't be stable for a few months, but I think we'll have a buggy version out sooner than that which you could play with at your own risk :)

Shadow v2 development is taking place in the dev branch on the main shadow repo if you want to follow along. (It's still not considered stable at this point, but we are making good progress!)