IPFS Stash — Local IPFS for everyone #ETHDenver2019

Nico Valencia
2C | Two’s Complement
6 min readFeb 19, 2019
Post demo at ETH Denver 2019

Katy Jeremko and I made our way to Denver Colorado this weekend for ETHDenver — a globally attended Ethereum developer conference and hackathon. We pulled our first all-nighter since college, saw dozens of inspiring projects, and actually enjoyed buying food with crypto (nice work Jonathan Palmer, Brian Ethier, and Austin Griffith)!

ETHDenver 2019 was a huge success, hosting 1,500 attendees, 750 hackers, and resulting in over 170 #buidlathon teams. Contestants had less than 36 hours to complete and demo their project. Most teams worked all night, just to finish in time.

The Ethereum community has poured its heart into building a technical ecosystem that provides self sovereign identity in developing nations, easy to use transparent social funding, and low cost censorship resistance. We wanted to contribute to a project that’s supporting this sort of impact, and realized that it’s still very difficult to understand, and use, many of these highly-technical projects.

Technical Primer

If you are familiar with Ethereum and IFPS, keep scrolling a bit.

Ethereum is a software project that unlocks the potential of idle computers, cell phones, and other assorted hardware devices around the world. Devices running this software can collaborate with each other safely, using cryptography to ensure security in a way that wasn’t accessible at a global computing scale in the past.

IPFS is a file storage counterpart to Ethereum. If Ethereum is running all the code (like a world-wide super computer), IPFS is like the giant hard drive that stores all the files, and makes them easy for everyone to access.

These decentralized technologies sound amazing in a theoretical sense, but their value can’t fully be appreciated until enough participants (like you) decide to use them. Imagine the first telephone… not very valuable on its own, but provides huge value once adopted.

IPFS Current State

Anyone can run IPFS on their computer to store, access, and share files. IPFS makes browsing the internet faster — for example: if you load a webpage from the internet, it might ask your neighbor’s computer for that data, rather than going all the way to another state or country to load it from an expensive server. It also safeguards against censorship, document identity fraud, and a host of other cloud storage safety issues.

Only problem: it’s still early on, and very difficult to use.

This is actually me reviewing a commit, but you get the idea…

Our Project — Stash

In light of this challenge, we designed and built a browser extension to show how decentralizing and saving files can be as easy as easy as clicking on them.

We began with the question:

What task in the Ethereum ecosystem can we simplify into a single click?

Technically, a developer can setup an IPFS environment, configure the APIs, and expose a local endpoint that allows for adding, pinning, creating a mutable file system (MFS) directory, and moving content hashes to and from… but can we get someone non-technical to do it in a single click?

With the Stash Chrome extension, adding files to IPFS is as easy as clicking them.

After clicking on files you want save, you can open the IPFS “Stashboard” to view and organize your files into “stashes”.

Files on your “Stashboard” can be removed or sent to a “Stash” for later.

Building Stash felt like we were experimenting in a way that encouraged more thought around usability and experience of decentralized tech for the average person.

Stats

  • 2 people: designer and developer duo
  • 22 hours 10 minutes of non-stop hacking
  • 1 hour 33 minutes of sleep
  • 42,168 lines of code (including vendor)
  • 207 stickers collected
  • $100 of Buffidai spent [mostly] on food trucks

Impact

This year’s theme at ETH Denver was social impact. IPFS could help target areas of low internet connectivity and censorship. The teams who have brought world-changing technology, like Ethereum and IPFS, need as much community support as possible with one thing: adoption.

We had a blast prototyping ways to explain and provide IPFS to a normal internet user. If you’d like to help with social impact, and understand the basic value of decentralized technologies (or any technology, for that matter), we’d encourage you to do the same. The more ideas and concepts we can prototype, the quicker these technologies can be adopted and bring value to underserved communities.

Vision

Our project was just for fun, but our minds went wild brainstorming potentially impactful uses:

  • Storing important public government records in areas of low internet connectivity or potentially corrupted local agencies
  • Efficiently and affordably storing internal corporate files, with even greater redundancy (safety) than cloud hosting
  • Stand-alone native application that fleshes out the user interface, mimicking native file systems like Finder in Mac, and Explorer in Windows
  • Leveraging an in-browser IPFS node, using something like ipfs js, to make the entire installation process a single click
  • Collaborating with browser developers to build native IPFS support into a pre-existing widely adopted web browser

Learnings

Naming things is super important

During our user experimentation and judging, our biggest sticking point was naming. What do you call a thing that you want to save? Data? A File? Sometimes it’s an image… or a video. But what if it’s just a sentence from a blog? Or a series of articles on Medium?

We tried to keep our domain name to a single word: stash — described as: a bucket for holding things from the internet. First we tried “buckets”, “folders”, “directories”, and “collections”. Typically, we’d love to do real user testing at scale, but the dozens of friendly hackers nearby were very helpful at 2am in the morning.

Browser vendors should support IPFS

There are a few obvious, and many not-so-obvious incentives for existing browser vendors not to support decentralized technologies, but performance alone is a solid reason to at least experiment with native IPFS implementations.

Imagine if every browser could share public resources with the closest nearby device. Imagine if that website could be built out of bits and pieces from your colleagues’ computers, rather than on expensive servers a thousand miles away. Shoutout to open source contributors already working on this with Brave.

Hackathons are free training workshops

After paying for several (very helpful) training workshops in the past, this weekend reminded me of how much you can learn from a hackathon for free. Dozens of participants attended purely for support — to help hackers experiment, debug, and learn. A building full of concentrated developers, designers, and entrepreneurs really helps get the brain going.

Huge shoutout to teammates from Textile and Pinata for sharing their knowledge about IPFS with us. They helped vet our ideas, and got us from zero to working knowledge in under an hour. We tried to return the favor to others as best we could, so thanks guys! It was an amazing experience to see so many passionate hackers in one building at ETHDenver 2019, and hope to see everyone again next year!

Never doubt that a small group of thoughtful, committed citizens can change the world. Indeed, it is the only thing that ever has. — Margaret Mead

--

--