Search the Community

Showing results for tags 'protocol'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Resilio Sync
    • Sync General Discussion
    • Sync Troubleshooting
    • Sync for NAS (Network Attached Storage)
    • Sync Stories
    • Developers
    • Feature Requests

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







Found 4 results

  1. Hi, why isn't Perfect Forward Secrecy ( implemented yet? The discussions about this security feature are long enough ongoing to recognize fmpov. Regardsb
  2. I am wondering BitTorrent Sync's protocol is same as BitTorrent !! I have read information about peer discovery or p2p protocol on What I want to know is what kind of protocol is used for BitTorrent sync when Syncing(or Transferring) the file. Sync also using choking or piece select algorithm just like a Bittorrent(read on ? can somebody let me know about that, or just please link to some page about protocol... I will use Bittorrent Sync on the environment of Lan without via internet. I am not native english speaker, so I am not sure that everyone can understand my question ..;;; thank you for taking some time for reading.
  3. I've been spending some time recently trying to figure out some of the details of BitTorrent Sync's network protocol. I really liked the idea of a p2p alternative to other cloud storage providers like dropbox etc. So I tried to find out the technical details behind the project. The official Technology page was a little sparse in that regard so I figured I'd have to dig in myself. I managed to start this as a university project (at the Vienna University of Technoligy in Austria). The goals are: Analyze the network protocol (and documenting it as far as possible) Discuss possible security issues (The official page claims it's very secure and throws around with words like AES and SHA2, but ) Don't get me wrong, I don't expect to find anything serious here as the basic idea seems pretty solid, but I think this claim has to be proven Write an open source library that allows other apps to communicate with btsync (not a full-blown sync app, just the basics) So, now to the fun stuff, I'll explain what I've found out so far: Secrets: The read only secret is basically just a hashed version of the normal secret (all code is valid python code (after importing hashlib.* and base64.*)): roSecret='R'+(b32encode(sha256(b32decode(secret)).digest())[:32]) The roSecret is hashed again. That hash is transmitted in LAN announces as well as to the tracker at shareHash=sha256(b32decode(roSecret[1:])).digest() That's about all the magic that's in the share secrets. Tracker: The Tracker protocol uses bencoded data. The request format is (I've conveted it to JSON for readability): { "peer": /* 20 bytes of binary randomness identifying this app instance" */, "share": /* 32 bytes (=256bits) SHA256 hash, see the Secret wiki page linked below for more info */, "m": "get_peers", "la": /* local IP + port in binary form (4 bytes IP + 2 bytes for the port) */ } The tracker's answer looks like that: { "m": "peers", "peers": [ { "a": /* 6bytes external ip+port of peer*/, "p": /* 20bytes peer id (random) */, "la": /* 6 bytes local IP+port of the peer */ }, /* all the other peers */ ], "ea": /* 6 bytes, external IP+port of the local peer *, "share": /* 32bytes shareHash */, "time": /* integer, unix timestamp */ } P2P: The peers use µTP for communication. On top of that, they seem to do a key handshake and submit the actual data. The details about that are still a little unclear (and have changed since the early 1.0.* releases), but I'll keep you updated as soon as I know more. I'm currently working on some Qt code (Qt's just the framework I'm used to, this might change if there's a good reason to) that reflects these protocol details. It's mostly based on what I've found out analyzing v1.0.116's protocol. I'll update it soon to support the new protocol used by 1.1.27. It can be found on GitHub. All the above details also are in the repo's wiki (feel free to contribute). Also let me give huge thanks to the BitTorrent Sync Team. They're doing great work (both in writing the app and in working with the community here on the forums).
  4. From what I've read in other posts it seems like you don't want to open-source the btsync app itself. But are there plans to provide a protocol specification (such that devs could write their own apps that communicate with the official clients)? This would enable an ecosystem to grow around your official app like it happened with bittorrent.