A look at the front-end
Everyone gets tired waiting for their large downloads to complete. BitTorrent is awesome, but you may not have a bunch of peers ready to seed it. Fastify, a download accelerator as a service, solves both these problems and regularly enables 4x download speeds.
What it does
The service accepts a URL and spits out a
.torrent file. This
.torrent file allows you to tap into Fastify's speedy seed servers for your download.
We even cache some downloads so popular downloads will be able to be pulled from Fastify even speedier!
Without any cache hits, we saw the following improvements in download speeds with our test files:
| | 512Mb | 1Gb | 2Gb | 5Gb | |-------------------|----------|--------|---------|---------| | Regular Download | 3 mins | 7 mins | 13 mins | 30 mins | | Fastify | 1.5 mins | 3 mins | 5 mins | 9 mins | |-------------------|----------|--------|---------|---------| | Effective Speedup | 2x | 2.33x | 2.6x | 3.3x |
test was performed with slices of the ubuntu 16.04 iso file, on the eduroam network
How we built it
Created an AWS cluster and began writing Go code to accept requests and the front-end to send them. Over time we added more workers to the AWS cluster and improved the front-end. Also, we generously received some well-needed Vitamin Water.
Challenges we ran into
The BitTorrent protocol and architecture was more complicated for seeding than we thought. We were able to create
.torrent files that enabled downloads on some BitTorrent clients but not others.
Also, our "buddy" (*cough* James *cough*) ditched our team, so we were down to only 2 people off the bat.
Accomplishments that we're proud of
We're able to accelerate large downloads by 2-5 times as fast as the regular download. That's only with a cluster of 4 computers.
What we learned
Bittorrent is tricky. James can't be trusted.
What's next for Fastify
More servers on the cluster. Demo soon too.