So You'd Like To Use Ono Peer Selection In Your Application...
As you've probably heard by now, the Ono plugin for the Azureus BitTorrent client is extremely effective at locating nearby peers, doing so with vanishingly small overheads. If you're a developer working on a distributed system, you may wonder how to make Ono's positioning service work for you. Fortunately, Ono's biased peer selection is not limited to Azureus, BitTorrent or Java. On this page, you'll find all resources related to porting your application to use Ono.
To begin, we've provided a boiled-down version of our original service, which
is written in Java. To enable support for Ono biased peer selection in the greater BitTorrent
community, we have also developed an extension to the OpenTracker distribution. Both
of these packages are available here. As
ports to other languages become available, we will post them here; if you successfully
port Ono to another language, please send it to us by contacting
Links to the files are located here.
News
- 4/30/2008: Opentracker code added
- 4/12/2008: First version of this site is released.
Why Ono?
Ono is the Hawaiian word not only for the King Mackerel fish, but also for "good to eat". The word has an extremely positive connotation, and we hope you'll find our plugin as tasty as Ono itself. The Ono fish is also known as the "wahoo", a feeling that we hope you'll express upon noticing the increased efficiency of your deployments. Finally, Ono merges the theme of our research group (the Aqualab) with that of the first CDN we used for network measurements--Akamai (Hawaiian for "clever").
People
Contributors
- Nikola Borisov
- Xian Yi Teng
Resources
-
We ask that you complete the following form to access the code. All fields are optional and none of your personal information will be shared. As a benefit, we will notify you of Ono release updates if you provide your e-mail address.
- License: This software is released under the
GPL, if you need a different license, please contact
. Scripts for running the software are located in the src folder.
- Get zlib-devel
- Get libhashish
- Get opentracker_ono.tar.gz (from the download menu above)
- Follow instructions in README
Frequently Asked Questions
- Does this really work? In a paper pending publication, we show that our lightweight approach significantly reduces cross-ISP traffic and over 33% of the time it selects peers along paths that are within a single autonomous system (AS). Further, we find that our system locates peers along paths that have two orders of magnitude lower latency and 30% lower loss rates than those picked at random, and that these high-quality paths can lead to significant improvements in transfer rates.
- What are the dependencies for the Ono peer selection service? The only dependencies are a list of CDN names and the ability to perform DNS lookups. If you reached this page, you have met the requirements. Both of these are provided by the default distribution.
- Can I get a version of your software with a non-GPL license?
For details regarding non-GPL licensing of our software, contact us at
. - Why not just use class C subnets, AS numbers or measurement-based techiques for figuring out peer locality? While heuristic-based approaches such as class C subnets and AS numbers also scale well, the position information gained through them is not terribly useful and does not take into account dynamic network conditions. Ono, on the other hand, finds peers that are near one another by relying on preexisting infrastucture (CDNs) that perform extensive Internet measurements. Results from our early experience with this technique show that CDN-based clustering of peers is quite effective in practice.
- Does this work with my operating system? In short, yes. Ono primarily relies on DNS to perform its functionality and we provide a 100% Java DNS implementation, so it should work anywhere that Java works. It has been extensively tested to work in Windows and Linux environments, and lightly tested in Mac environments. If you encounter a problem, please let us know!