https://github.com/keyan/bittorrent
[wip]
https://github.com/keyan/bittorrent
Last synced: about 1 year ago
JSON representation
[wip]
- Host: GitHub
- URL: https://github.com/keyan/bittorrent
- Owner: keyan
- Created: 2019-05-31T07:16:04.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2021-12-17T01:42:05.000Z (over 4 years ago)
- Last Synced: 2025-02-09T00:42:59.512Z (over 1 year ago)
- Language: Go
- Homepage:
- Size: 51.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# bittorrent
The perennial favorite programming pastime of yore.
## Usage
```
$ go build
$ ./bittorrent [torrent_file.torrent]
```
If no torrent file is provided then the default test file will be used, which is for the latest Debian ISO.
## Background
Implementation follows the [original BitTorrent spec][og_spec] and the [unofficial spec][other_spec] which has more details relevant for implementation.
## Notes
- Do requests to the tracker need to be truthful? Can we lie about how much we have downloaded/uploaded?
- No there doesn't seem to be a way to enforce honesty. More details about exploits and dishonesty in the protocol are covered [here][blackhat]
## TODO
- Would be interesting to implement an algorithm from the economics of BitTorrent paper: http://bittorrent.org/bittorrentecon.pdf
[og_spec]: http://bittorrent.org/beps/bep_0003.html
[other_spec]: https://wiki.theory.org/index.php/BitTorrentSpecification
[blackhat]: https://www.blackhat.com/presentations/bh-usa-09/BROOKS/BHUSA09-Brooks-BitTorrHacks-PAPER.pdf