Ono - Developer instructions
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.
- 4/30/2008: Opentracker code added
- 4/12/2008: First version of this site is released.
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").
- Nikola Borisov
- Xian Yi Teng
- We ask that you create an account on our website to access the software. Once you have created an account and logged in, download links will appear at the bottom of this page.
- Instructions for building Opentracker
- Get zlib-devel
- Get libhashish
- Download opentracker_ono.tar.gz from this page
- 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.
- Why not just use class C subnets, AS numbers or measurement-based techniques 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 infrastructure (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!