CacheCash Hackathon: It Takes a Village (or a Lab…)

2017-08-15 · Posted by: Lois Anne DeLong · Categories: CacheCash · Comments

A hackathon can be likened to the barn raisings of old, in which a community would come together for one day to build a barn or a home for a neighbor. Like those earlier communal activities, a hackathon involves a group of individuals collaborating on one shared project within a set time period. On Friday, July 28, SSL brought members of its community together—Vladimir Diaz, Sebastien Awwad, Lukas Pühringer, Artiom Baloian, Santiago Torres Arias, Ghada Almashaqbeh, and Justin Cappos— to collaborate on a demo for one of the lab’s sprouting projects, CacheCash. As described by Almashaqbeh, a lead researcher on the project, the demo prepared that day offers a “full-fledged prototype of the content distribution service supported by CacheCash.”

One of the newer lab initiatives, CacheCash is a cryptocurrency that provides a decentralized, adaptable, and low-overhead approach to the construction of dynamic CDNs. By having end users organically set up new caches to serve content as they collect cryptocurrency payments, CacheCash bypasses the mediator stage of content delivery network (CDN) companies, and enables caches to dynamically come and go as demand for them dictates. In addition, CacheCash addresses the security issues often encountered in monetary-incentivized distributed systems through a variety of cryptographic and financial techniques, yet adds only minimal overhead. Thus, it is an innovative way of utilizing cryptocurrencies to provide a useful service.

The demo represents an important step forward in implementing and deploying CacheCash. Almashaqbeh observed that the project team has already “implemented the core functionality that allows content providers to construct dynamic content delivery networks (CDNs),” so the hackathon demo focused on “showing potential clients how to retrieve video content.” The new website “displays informative messages about the operations that happen behind the scenes while the video is being retrieved,” including the number of contacted caches, their IP addresses, the number and sizes of data blocks retrieved, and any delayed responses from the caches.

Other tasks completed during the Hackathon were:

  • Preparing a manual for CacheCash that offers a high-level technical description of its design, and documents all the steps needed to compile code for a reference implementation of the project.
  • Investigating the selection algorithms of other caches and evaluating their effect on levels of service quality. This is essential because, according to Almashaqbeh, “the current implementation of CacheCash selects caches in a random fashion to serve client requests.” The algorithms included both those that adopt locality and those that adopt bandwidth as the selection criteria.
  • Creating a “dockerized” version of CacheCash that can automate the testing/deployment process. This version is a repository containing all the necessary components to download and run the program. A potential demo user can now “simply clone the repository, run docker-compose and try out CacheCash on her browser,” according to Torres Arias, who created it.

As a side task during the Hackathon, unrelated to the demo website, the team investigated a few cryptocurrency options to support the monetary incentives in the system. One such option was implementing CacheCash as a token on top of Ethereum, an open software platform, based on blockchain technology, which enables developers to build and deploy decentralized applications. The team looked at the overhead generated by making payments using the “smart contracts” functionality supported by Ethereum. The results suggest such an option would greatly increase the cost of CDN service for CacheCash. Hence, the team is now looking into ways to either optimize the smart contract code, or switch efforts to a different cryptocurrency system.

In looking back on the work accomplished, Almashaqbeh reported that the next step will be to try running the demo “on a larger scale across different geographic areas.” It should be available to those interested in trying it out by the end of August.