Ruby on Rails for the Blockchain

Chris Metcalfe
The Hedge Blog
Published in
4 min readJan 30, 2019

Abstraction is our way to Traction

Web 2.0 really exploded when everyone with an idea could easily share it. Not only did MySpace, YouTube, and Blogger make it easy for anyone with an internet connection to be able to post content online, the tools that allowed developers to actually create these platforms were starting to become robust and easy-to-use.

With the release of web frameworks like Ruby on Rails and Django it was never easier to create web applications. Anyone who has worked with Ruby on Rails has surely done the ‘Getting Started’ exercise which walks you through creating a blog publishing application. As Web 2.0 allowed anyone to create a blog post with minimal effort, Ruby on Rails allowed anyone to create an entire blogging platform with minimal effort. Integrate that shiny new blogging platform with Stripe, and seven lines of code later you now have a business which can charge customers. With a few clicks on Heroku you can now have it deployed and ready for business. An online business that once would have cost millions of dollars to launch, can now be done with only a few Red Bulls and a long weekend.

In software, the speed of innovation is oftentimes tied directly to developer velocity — how much can a developer produce per hour worked. As the Web 2.0 era matured and web frameworks became popular, developer velocity and thus innovation, went through the roof! As Marc Andreessen stated, “software began to eat the world.”

So what made all this possible? Frameworks and platforms. Web application frameworks like Ruby on Rails and front end frameworks like Angular and Bootstrap gave birth to the full stack developer. Stripe, a complete payments platform made accepting payments simple, and Heroku — a cloud platform as a service made infrastructure management a breeze.

What do these frameworks and platforms have in common? Abstraction! The challenges that were common to anyone building an online business were abstracted away. Clean, easy to use interfaces were provided to previously complex problems.

As time goes on, we start to see bigger blocks being developed. Source: Wikimedia

As more and more abstraction occurred, the blocks used to build a business became larger and larger. Have you seen how much of your business you can build on Stripe’s product offering? As more abstraction occurs, your time is freed and you’re able to focus most of it on what uniquely makes your business different and valuable.

Enter blockchain and Web 3.0

DApp developers now have a whole new bucket of challenges they must address before they have a working product or business. Many of these challenges are not differentiators, yet developers need to spend valuable time on them before really getting down to business and address the value defining work.

Some of the challenges common to most projects:

Key management / recovery:

  • How are keys generated and where are they stored?
  • How do new users get started with your application? Are they required to bring their own keys? Do they generate new ones?
  • What happens when someone loses their keys or their keys are compromised?

Transaction generation / signing:

  • Do I need to generate the raw transactions myself?
  • Do I need to perform signing operations myself and understand low level cryptographic formatting and operations?

Network interaction / node management:

  • Which network is best suited for my dApp?
  • How does my dApp talk to the network?
  • Do we need to run our own node?
  • What are the security concerns? Should we be concerned about DDOS protection?

User Experience / onboarding:

  • How are users going to get started? Is there a lot of upfront education required? (This is a new paradigm after all)
  • How do we prove this user is who they say they are?
  • What information does a user need to provide when they sign up? Is there a Facebook Login or Google Sign In button so users can join my dApp and the network with one click?

I’m sure I’ve missed plenty of other big areas and I’d love to hear your thoughts in the comments — but frameworks and platforms need to be developed which address these challenges before we can expect rapid innovation and developer velocity increases again.

Hedge is aiming to abstract away the difficulty in securely generating and storing keys, and all aspects of key management. Key management is a pain, and we want to make it as easy as Stripe did with payments. We hope that by providing this essential building block, key management is one less thing you need to worry about.

As protocols like MarkerDAO, dYdX, Dharma and Augur are starting to launch and gain adoption, we’re starting to see some foundational building blocks emerge which one can use to build a business. As Chris Dixon mentions, “we’re starting to see compositionality,” as these building blocks are put together in unique ways. However our current set of available building blocks is limited to about ten. There aren’t too many interesting things you can build with only ten blocks. Once hundreds of these foundational blocks are developed we’ll start to see an explosion in innovation, just as we did during the Web 2.0 era. We’re getting there, brick by brick.

--

--

Chris Metcalfe
The Hedge Blog

Co-founder, CTO of Hedge (usehedge.com) - Software Engineer, Entrepreneur, Blockchain Enthusiast