mirror of
https://github.com/sot-tech/mochi.git
synced 2026-07-27 17:48:11 -07:00
clean the slate!
This commit is contained in:
@@ -1,99 +0,0 @@
|
||||
# Chihaya
|
||||
|
||||
[](https://godoc.org/github.com/chihaya/chihaya)
|
||||
[](https://en.wikipedia.org/wiki/BSD_licenses#2-clause_license_.28.22Simplified_BSD_License.22_or_.22FreeBSD_License.22.29)
|
||||
[](https://travis-ci.org/chihaya/chihaya)
|
||||
[](https://quay.io/repository/jzelinskie/chihaya)
|
||||
|
||||
Chihaya is a high-performance [BitTorrent tracker] written in the Go
|
||||
programming language. It is still heavily under development and the current
|
||||
`master` branch should probably not be used in production
|
||||
(unless you know what you're doing).
|
||||
|
||||
Current features include:
|
||||
|
||||
- Public tracker feature-set with full compatibility with what exists of the BitTorrent spec
|
||||
- Low resource consumption, and fast, asynchronous request processing
|
||||
- Full IPv6 support, including handling for dual-stacked peers
|
||||
- Extensive metrics for visibility into the tracker and swarm's performance
|
||||
- Ability to prioritize peers in local subnets to reduce backbone contention
|
||||
- JWT Validation to approve the usage of a given infohash.
|
||||
|
||||
Planned features include:
|
||||
|
||||
- Private tracker feature-set with compatibility for a [Gazelle]-like deployment (WIP)
|
||||
|
||||
[BitTorrent tracker]: http://en.wikipedia.org/wiki/BitTorrent_tracker
|
||||
[gazelle]: https://github.com/whatcd/gazelle
|
||||
|
||||
## When would I use Chihaya?
|
||||
|
||||
Chihaya is a eventually meant for every kind of BitTorrent tracker deployment.
|
||||
Chihaya has been used to replace instances of [opentracker] and also instances of [ocelot].
|
||||
Chihaya handles torrent announces and scrapes in memory.
|
||||
However, using a backend driver, Chihaya can also asynchronously provide deltas to maintain a set of persistent data without throttling a database.
|
||||
This is particularly useful behavior for private tracker use-cases.
|
||||
|
||||
[opentracker]: http://erdgeist.org/arts/software/opentracker
|
||||
[ocelot]: https://github.com/WhatCD/Ocelot
|
||||
|
||||
## Running Chihaya
|
||||
|
||||
### Configuration
|
||||
|
||||
Copy [`example_config.json`] to your choice of location, and update the values as required.
|
||||
An explanation of the available keys can be found in [CONFIGURATION.md].
|
||||
|
||||
[`example_config.json`]: https://github.com/chihaya/chihaya/blob/master/example_config.json
|
||||
[CONFIGURATION.md]: https://github.com/chihaya/chihaya/blob/master/CONFIGURATION.md
|
||||
|
||||
### Docker
|
||||
|
||||
```sh
|
||||
$ docker pull quay.io/jzelinskie/chihaya:latest
|
||||
$ export CHIHAYA_LOG_LEVEL=5 # most verbose, and the default
|
||||
$ docker run -p 6880-6882:6880-6882 -v $PATH_TO_DIR_WITH_CONF_FILE:/config:ro -e quay.io/jzelinskie/chihaya:latest -v=$CHIHAYA_LOG_LEVEL
|
||||
```
|
||||
|
||||
## Developing Chihaya
|
||||
|
||||
### Building & Installing
|
||||
|
||||
Chihaya requires Go 1.5+ (preferrably the latest stable Go), [Godep], and a [Go environment] previously set up.
|
||||
|
||||
[Godep]: https://github.com/tools/godep
|
||||
[Go environment]: https://golang.org/doc/code.html
|
||||
|
||||
```sh
|
||||
$ export GOPATH=$PWD/chihaya
|
||||
$ git clone https://github.com/chihaya/chihaya.git chihaya/src/github.com/chihaya/chihaya
|
||||
$ cd chihaya/src/github.com/chihaya/chihaya/cmd/chihaya/
|
||||
$ godep restore
|
||||
$ go install github.com/chihaya/chihaya/cmd/chihaya
|
||||
```
|
||||
|
||||
### Testing
|
||||
|
||||
Chihaya has end-to-end test coverage for announces in addition to unit tests for isolated components.
|
||||
To run the tests, use:
|
||||
|
||||
```sh
|
||||
$ cd $GOPATH/src/github.com/chihaya/chihaya
|
||||
$ godep go test -v ./...
|
||||
```
|
||||
|
||||
There is also a set of benchmarks for performance-critical sections of Chihaya.
|
||||
These can be run similarly:
|
||||
|
||||
```sh
|
||||
$ cd $GOPATH/src/github.com/chihaya/chihaya
|
||||
$ godep go test -v ./... -bench .
|
||||
```
|
||||
|
||||
### Contributing
|
||||
|
||||
See [CONTRIBUTING.md] for guidelines to contributing to the project.
|
||||
Feel free to make issues or ask questions.
|
||||
Our maintainers are also always idle in #chihaya on freenode.
|
||||
|
||||
[CONTRIBUTING.md]: https://github.com/chihaya/chihaya/blob/master/CONTRIBUTING.md
|
||||
Reference in New Issue
Block a user