Welcome to the first in a series where FISSION interviews projects that integrate IPFS and other similar technologies.
This post highlights an ETHNewYork submission from Auston Bunsen and Jonathan Biro called 0xSU, or Ethereum Short URLs: "Decentralized URL shortener. First we'll look at how the project works, followed by a few questions FISSION asked the team about their background.
Hackathon Devpost: https://devpost.com/software/0xsu-ethereum-short-urls
GitHub repo: https://github.com/du4e
How 0xSU works
"Think of it like goo.gl except it can't be taken down." In theory, URL shorteners could censor a link or decline to continue forwarding requests. By deploying to the public Ethereum chain, creating open source proxy servers and utilising a distributed storage layer like IPFS, much of that risk is avoided.
Before using 0xSU, users need to make sure they have either a traditional web-browser like Chrome plus wallet extension (ie Metamask) or through a Web3 browser like Status or Coinbase Wallet. If that's ready, they can navigate to 0xSU.co with the URL they want to shorten and store immutably. The web3 frontend is hosted through IPFS, meaning everything needed to make this work properly already exists outside of a centralised server. Currently, the node is hosted through Digital Ocean.
Once on the site, users submit the link along with a small amount of Ether to cover associated gas costs. Under the hood, the link is written into the contract (address on Etherscan) as a key value pair: the full link and the shortened one. The backend sits onchain in the contract, accessed via either a helper js library or one of the open source 0xsu.co proxy servers: flask, sinatra, or express.
Additionally, the url shortener doesn't work without an http redirect, so they wrote open source forwarding proxies that enable this and anyone can run. The project currently uses Quiknode as the Web3 provider to supply a node that the forwarders can hook into.
Given that the code is open source, anyone could fork the front end and run their own forwarding instance. In the future, users could get served ads to offset the cost of forwarding. Alternatively, the team is also looking at integrating the Gas Station Network, a collaboration between Ethereum organisations that cover the cost of gas for onboarding new users and subsidised apps.
In the future, the project will have to consider the implications of state rent. Users, or the Gas Station Network might have to provide an additional payment to wake a dormant contract back into state. A partial workaround for this could be to cache the high traffic URLs in something like Heroku.
Future UI improvements might include adding a Wyre integration to allow users to use credit cards instead of maintaining a compatible wallet. The team hopes to continue working on it as a side project.
Here's a quick video demo of 0xSU in action:
Finally, here's a set of questions we had the team answer:
What is your developer background?
Auston: I am a self-taught developer who started writing code about 12 years ago. I am always interested in learning new languages & Solidity / Ethereum are super powerful conceptually.
What got you into Ethereum / IPFS / decentralisation initially?
Jon: I found the idea of the blockchain and its serverless application fascinating. I wanted to learn more and my research told me the Ethereum network is the best run place to start.
Auston: For me it started in 2011 when my friend Michael had a little hacker meetup & decided to talk about bitcoin. I dismissed it initially but eventually came around to the idea. Finally my friend Kai reached out in 2017 & told me about Ethereum, that’s when I really started to dive deep, as I realized there was now a censorship resistant platform that could be built upon.
Where do you go to read tech news / developer news?
Jon: hackernoon, medium, techcrunch, dev.to
Auston: I love hacker news! Twitter is always fun to discover random things & on occasion, Hacker Noon.
Do you listen to any technology or developer podcasts?
Jon: I would if I found the time.
Auston: Shill time! I have been working on a podcast for a few weeks with my friend Jose, you can go listen to it on the Devshirts' site.
In general, talk about your hackathon experience? Highs / lows?
Jon: Was pretty interesting and inspiring. It was my first time and I didn’t know where to begin, but luckily I teamed up with Auston who is a nice guy & helped guide me.
Auston: It was really invigorating to see so many people hyped up about Ethereum & working on Dapps. I definitely appreciated the sponsor dev support, we launched a node on quiknode.io and got some help from then sendwyre.com team. Also was super cool to get some help from Vitalik himself debugging an issue with our smart contract.
What inspired the project?
Goo.gl had been taken down which is a shame because it was a useful service, and we wanted to make sure that couldn’t happen again by using the blockchain.
What made you want to integrate IPFS?
Auston: IPFS is a project I’ve known about since 2017 that again I thought would be a super awesome way to distribute copies of content on.
What challenges did you experience integrating IPFS?
Auston: None really, it was actually super easy for the most part. However I had to find a guide that showed me to how to point a domain at the IPFS node.
What was the most useful feedback you received from judges or other hackathon participants?
There were other apps and apis that could make what we did cheaper and faster, but we kept it simple. Also the positive attitude of the judges was really nice to have, they were really onboard with the fact that we deployed to main net, etc.
Any plans to keep working on the project?
Would definitely love to integrate Stripe to make it possible to pay for link shortening with a credit/debit card, get more people running a forwarding server & perhaps integrate the gas station network to let people pay with BAT or by watching ads.
In hindsight what’s something you may have done differently for either the project or the hackathon?
Auston: Jon would have liked to integrate more sponsors, but I’m actually really happy with the outcome.
Any side projects or interests you would like to shill?
Thanks Jon & Auston for spending time to help get this ready for others to learn from. We'll be posting other IPFS projects on this blog as well >> be sure to check back soon.
Our first product is an IPFS add-on for Heroku. Interested in testing it out when we launch? Join us and sign up as an alpha tester on ProductHunt.