Windows | Linux | OS X |
---|---|---|
TumbleBit implementation in .NET Core.
Cross-platform library, based on "TumbleBit: An Untrusted Bitcoin-Compatible Anonymous Payment Hub".
Another proof of concept implementation can be found in the old repository of TumbleBit.
An "easy" to understand explanation of the protocol has been presented by Ethan Heilman and Leen Al Shenibr at Scaling Bitcoin Milan, and on NTumbleBit implementation by Nicolas Dorier at Blockchain Core Camp Tokyo.
As a user, you will need:
- NET Core SDK 2.0
- At least Bitcoin Core 0.13.1 fully sync, rpc enabled.
On Tumbler server side, run Bitcoin Core with a big RPC work queue. TumbleBit has peak of activity making it likely to reach the limit.
bitcoind -rpcworkqueue=100
Alternatively, you can also put the rpcworkqueue=100
in the configuration file of your bitcoin instance.
As a developer, you need additionally one of those:
- Visual studio 2017 with update 3 (15.3) (Windows only)
- Visual studio code with C# Extension (Cross plateform)
If you have any issue, please check the FAQ, before posting an issue.
The current version has an implementation of:
- Puzzle Solver Algorithm
- Puzzle Promise Algorithm
- TumbleBit: Classic Tumbler Mode
- TOR integration for Tumbler server and client
- Localhost website as user interface for Tumbler server and Tumbler Client.
- TumbleBit: Uni-directional Payment Hub Mode
We recommend that you use Visual Studio Code, which is free IDE supporting C# development and testing.
We recommend that you use Visual studio 2017 for building and running the tests. You can of course use Visual use command line or Visual Studio Code as well.
Thanks to Boston University (Ethan Heilman, Leen AlShenibr, Foteini Baldimtsi, Alessandra Scafuro, and Sharon Goldberg) for inventing the TumbleBit protocol.
Thanks to Omar Sagga and Sharon Goldberg for the crypto review of TumbleBit, and PoupardStern and PermutationTest proofs.
Special thanks to @Yzord (aka @badass.sx on Stratis slack) and the dedicated TumbleBit testers in the Stratis team, which brought TumbleBit to the next level.
Thanks to Stratis to dedicate resources to develop NTumbleBit and integrate it to Breeze wallet.