-
Notifications
You must be signed in to change notification settings - Fork 492
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add SignalR websocket support to CCJ Tumbler and client #58
Comments
@wintercooled We need a notification something like this: Please update it when you finished. You can find phases here: https://github.com/nopara73/HiddenWallet/blob/zerolink/HiddenWallet/ChaumianCoinJoin/TumblerPhase.cs |
I have added code that will form the CCJ server. Will merge when tests are written. For information - this includes: Design is: A single instance of a CCJ class is created and made available to the MVC and SignalR code. On start up the client needs to connect to the CCJHub (SignalR). I have example code for this that can be added to HiddenWallet. From this point onward the client will receive broadcasts from CCJ and via the hub when a phase change occurs. For example - when all inputs have been received and the next phase (output submission) needs to be actioned. The MVC service accepts data via the api defined here: https://github.com/nopara73/HiddenWallet/blob/zerolink/HiddenWallet.Documentation/TumblerApiSpecs.md It also has access to the single instance CCJ class and submits data received for processing. When certain criteria are hit the CCJ class will inform the SignalR server to issue a broadcast message to the connected clients which will move on to using MVC to action the next step. Will merge into: HiddenWallet.ChaumianCoinJoin.Tumbler |
Status report: This issue is half implemented. The client side is needed. |
Working on the client now... |
Sample C# code here: https://github.com/wintercooled/HiddenWalletSignalRClient |
Awesome! Closing the issue. |
The clients must know when the tumbler changes states. One solution would be polling through http, but that's inefficient.
The correct solution would be implementing Tor circuit control in .net tor: #56
And implementing a websocket notification support to DotNetTor, so only one circuit gets the websocket notifications and yet the software could communicate different ones with the tumbler.
This is a bigger breath work, but we can do this:
When a wallet fires up, it register for tumbler websocket notification, even if the user is not intending to use the tumbling. so timing attacks will not be possible. This does not happen over Tor: But everything else tumbling related does, so the state monitoring identity is separated, so privacy loss won't happen.
The text was updated successfully, but these errors were encountered: