todo/Bittorrent-like featuresgit-annexhttp://git-annex.branchable.com/todo/Bittorrent-like_features/git-annexikiwiki2014-06-10T02:18:43ZGittorrenthttp://git-annex.branchable.com/todo/Bittorrent-like_features/comment_1_f4c110ef35ebf4fd89f06edf2c4f0c48/Gastlag2013-11-27T22:47:37Z2013-08-28T21:49:56Z
<p>May this could interest you : few years ago somes tried to mix Git and Bittorrent.</p>
<p>http://www.advogato.org/article/994.html
http://utsl.gen.nz/gittorrent/rfc.html
http://code.google.com/p/gittorrent/
https://git.wiki.kernel.org/index.php/SoC2010Application#Did_your_organization_participate_in_past_GSoCs.3F_If_so.2C_please_summarize_your_involvement_and_the_successes_and_challenges_of_your_participation</p>
Regarding the approach to connect all nodes in one network and stream from themhttp://git-annex.branchable.com/todo/Bittorrent-like_features/comment_2_83148bd5c5c5e6c2eff3ad6e1d4fb82c/Petr2013-12-29T07:32:06Z2013-12-29T07:32:05Z
Have a look at http://socialvpn.wordpress.com/. Behind that project is couple of interesting tools worth to investigate.
comment 3http://git-annex.branchable.com/todo/Bittorrent-like_features/comment_3_84f149b30de1562593623aa23dc0396c/Richard2014-01-02T01:31:05Z2014-01-02T01:31:05Z
<blockquote><p>git annex addurl http://cdimage.debian.org/debian-cd/current-live/amd64/bt-hybrid/debian-live-7.0.0-amd64-standard.iso.torrent</p></blockquote>
<p>This is bad idea; it means you will be reliant on torrent files and trackers when magnet links are the way to go.</p>
comment 4http://git-annex.branchable.com/todo/Bittorrent-like_features/comment_4_7c54c83e582c0d4848aaf3d70e312707/Richard2014-01-02T01:32:38Z2014-01-02T01:32:37Z
<p>There's a bittorrent library for Haskell, btw: http://hackage.haskell.org/package/bittorrent</p>
<p>Native support in form of a special remote would arguably be best...</p>
comment 5http://git-annex.branchable.com/todo/Bittorrent-like_features/comment_5_194dd0e8404ea72af9fb6ff34b994998/anarcat [id.koumbit.net]2014-04-01T04:43:16Z2014-04-01T04:43:16Z
<p>re #3, sure, magnet link support would be awesome as well but i'd prefer to start with something i could digest more easily.</p>
<p>looking at the source, it seems to me that the <a href="http://source.git-annex.branchable.com/?p=source.git;a=commitdiff;h=46b6d75">quvi implementation</a> could serve as an example as to how this would work. more particularly, there's this concept of a <a href="http://source.git-annex.branchable.com/?p=source.git;a=commitdiff;h=46b6d75#patch5">downloader</a> that can be used to tap into <code>addurl</code> directly. there's a check to see if the downloader is supported, for example.</p>
<p>so we would need:</p>
<ol>
<li>see if the URL / magnet link can be turned into a .torrent somehow</li>
<li>figure out what the filename(s!) will be</li>
<li>start the torrent and wait for its completion, ideally with some progress bar</li>
</ol>
<p>i asked around to see if transmission-remote could do this, because it would be nice if we could use an existing daemon (instead of having to rebootstrap the whole DHT at every download). so far, I can't see how it could be done cleanly - maybe we would need to use the simpler "bittorrent" commandline client, or maybe tap into libtorrent...</p>
<p>in any case, one of the key problems here is that addurl assumes that the URL maps to a single file, not a directory full of file, which is the way bittorrent works. I am not sure how to fix that assumption.</p>
comment 6http://git-annex.branchable.com/todo/Bittorrent-like_features/comment_6_489505da4143fb1c2bf21e7af695cdef/dhead2014-06-10T02:18:43Z2014-06-10T02:18:43Z
<p>What about Syncthing protocol ?
https://github.com/calmh/syncthing/blob/master/protocol/PROTOCOL.md</p>