See all apps


Submitted on April 04, 2013

What problem are you intending to solve?

We are building a peer-to-peer content delivery network (CDN) that will make the web faster, more reliable, and help sites to reduce bandwidth costs.

What is the technological approach, or development roadmap?

PeerCDN serves a site's static assets (like images, streaming videos, and file downloads) over a peer-to-peer network made up of the visitors currently on a website. It's completely powered by JavaScript, so visitors don't need to install anything!

Play PeerCDN screencast

PeerCDN will help to reverse the dangerous trend of Internet censorship and centralization of important web services. PeerCDN utilizes WebRTC to establish peer-to-peer connections between a site's visitors. We're incredibly excited about the potential for WebRTC to make the "distributed web" into a reality. We want to see more websites powered by peer-to-peer. Site hosting should be democratic, ad hoc, and immune to government censorship.

PeerCDN helps users in several ways:

1. Internet Freedom

The web is under attack from greedy Internet service providers, intrusive governments, and powerful corporations. Not only is the success of the Internet at stake here, but also the success of modern democracy. The web is such a powerful force in the world for freedom of thought, freedom of information, and freedom of expression. We should not let anyone — especially powerful companies and governments — curtail, block, censor, slow down, spy on, exclusivize, or centralize the web.

One important way we can fight censorship and centralization of the internet is by developing peer-to-peer web technologies using WebRTC that help to reverse this trend. That is what we're doing with PeerCDN.

2. Better web surfing experience

Sites that include the PeerCDN JavaScript tag will be faster and more reliable than other websites. By chunking static files into small pieces and finding the fastest peer to download each piece from, PeerCDN improves response times and reduces server costs for the site owner, and more importantly, ensures the fastest possible load time for site visitors.

PeerCDN-enabled sites can handle sudden traffic spikes with ease. Files in high demand will be quickly and cost-effectively delivered by peers, while long tail content can be reliably served from normal web servers or a traditional CDN. More visitors = more peers hosting content.

And since sites using PeerCDN will pay less for server and bandwidth, they can show fewer ads and other annoying content to their visitors in order to pay the bills!

3. New types of web applications

We expect developers will use PeerCDN to build entirely new types of bandwidth-intensive web apps, which would never have been possible before due to prohibitive cost. We're excited to see how people use PeerCDN (and WebRTC) for this purpose.

4. Simplicity and control

We're aiming for copy-and-paste simplicity. Site owners just need to paste a script tag into their site! The site will instantly be faster, use less bandwidth, and be more resilient to sudden bursts of traffic. It does not require users to install any software, or have any visible UI for the user to configure. Users even have the option to opt-out of sharing their upload bandwidth if they wish.

How will end users interact with it, and how will they benefit?

See above. PeerCDN makes sites faster, more reliable, and cheaper for site owners to run, and ensures the fastest possible load time for site visitors.

How will your app leverage the 1Gbps, sliceable and deeply programmable network?

People use all kinds of different devices and networks to access their favorite websites. It is hard to predict how users will connect to the net. From home internet connections, to public WiFi at coffee shops, to super-fast university networks, to many possible different NAT configurations, options abound. In short, networks come in all shapes and sizes. In order to ensure that PeerCDN is reliable and performant for users on all types of devices and networks, we want to do significant testing in real-world network scenarios. With access to a programmable and high performance network like GENI, we can create virtual networks that simulate real-world network topologies and ensure that PeerCDN performs well in all cases.

Further application information

Additional supporting information, materials and resources

Read about project updates - project blog

Will your work be beta-ready by the end of the Development Challenge?

Yes. We already have a working prototype (which is featured in the [screencast][1]) and we expect to have a product that works on real-world websites within the next 3 months. [1]:

How much effort do you expect this work to take?

A lot. The WebRTC standard is a moving target, and we're employing many browser hacks to make things work reliably everywhere. Security and privacy are also important issues that we must get right for this work in practice.

Do you need help?

Yes, we'd love to talk with the folks who are working on WebRTC at Mozilla!

If you can help let them know in the comments below.


and team members

Feross Aboukhadijeh and Abi Raja are both 22 years old, and recently graduated from Stanford University. Feross has worked at Facebook, Quora, and Intel, and taught computer science to Stanford undergrads for 7 quarters. He did research in the Stanford human-computer interaction and computer security labs, and led the Stanford chapter of the ACM (the comp sci club) for 3 years. Abi has worked at AVOS Systems, Bubbli and Palantir and also taught computer science to Stanford undergrads for 4 quarters. He has worked on a number of open source JavaScript projects including Mozilla Ubiquity. His Firefox extension was a runner-up in the Extend Firefox 3 Contest back in the days of yore. Feross and Abi enjoy participating in and winning hackathons. One fun project they built together is Fling ( Fling lets you send songs, videos, web urls from your phone to your desktop with a flick of your wrist.

comments powered by Disqus