I finished the Tor integration and tested it on Ubuntu and Windows 7. It works flawlessly.Setting up Tor
There is no need for the user to do any settings manually, except that the user has to make sure Tor is in the PATH of its operating system.Local vs remote
If the Tumbler is running locally, it will not use Tor. Therefore a remote server is needed for testing. For this purpose I used @NicolasDorier 's testnet tumbler server, which can be set up in the client.config file as follows: tumbler.server=http://testnet.ntumblebit.metaco.com.What it does?
Whenever any HTTP request is sent to the Tumbler the it checks if the identity the software wants to send the request is the same as the last request was sent with and if it's not it chanes Tor circuit, before the request is sent.
An identity is defined by TumbleBit's Alice Bob role's and the cycle they are in.Example: CHANGE IP: 0 sec Alice 1152052 POST /api/v1/tumblers/0/clientchannels/confirm CHANGE IP: 4 sec Alice 1152054 POST /api/v1/tumblers/0/clientchannels/ CHANGE IP: 0 sec Bob 1152052 POST /api/v1/tumblers/0/channels/ Bob 1152052 POST /api/v1/tumblers/0/channels/1152052/a914ae1cb6ddde39f7b9fe4d8027fbe06809d8d057cd87/signhashes Bob 1152052 POST /api/v1/tumblers/0/channels/1152052/a914ae1cb6ddde39f7b9fe4d8027fbe06809d8d057cd87/checkrevelation CHANGE IP: 0 sec Bob 1152058 GET /api/v1/tumblers/0/vouchers/ Additional notes / ToDo Big picture
This is the last major milestone that'll make TumbleBit protocol implementation a complete Bitcoin anonymity technique. The rest is UX, bug fixing and optimization.