The disruptive potential and explosive growth of programmable blockchains have fueled both optimism and cynicism alike. Optimists see an evolution of the read/write Web 2.0 that decentralizes ownership and empowers individual users. Cynics see hype, waste, and speculative mania.
After nearly five years of work in the Ethereum ecosystem, we’re increasingly optimistic. Web 3.0 projects have empowered us to think differently about how applications can be structured, and we’re beginning to see a coherent ecosystem that more fully embraces the Internet’s early promise of decentralization.
In this post, we’ll walk you through Web 3.0: what it is, solutions, and how we’re building the next generation of applications.
Contents:
- What is Web 3.0?
- Successful Blockchain Projects
- Other Work in Web3
- How We Build Web3 Applications
- Tech We Use
- Resources
What is Web 3.0?
Web 3.0 is a set of emerging tools, technologies, and protocols for building decentralized applications. Public programmable blockchains like Ethereum, distributed filesystems like IPFS, and decentralized datastores like Ceramic are building blocks for a new class of peer-to-peer applications accessible over the Web. Check out The Architecture of a Web 3.0 Application from Preethi Kasireddy to learn more about these tools and how they complement and challenge the centralized Web.
Successful Blockchain Projects
The speed of innovation in this space is dizzying, but our underlying principles remain the same, and continue to guide our approach to building distributed applications. We’ve helped clients leverage blockchain and web3 tools in a variety of ecosystems.
VulcanizeDB
We helped create VulcanizeDB, an open source data indexing and availability tool for Ethereum that syncs, transforms, and stores smart contract events and storage updates in a relational database.
WHAT WE DID
- Created Golang tools and libraries for extracting, decoding, and transforming EVM smart contract data
- Exposed data using Postgres and Postgraphile
- Maintained a fork of the go-ethereum client enabling subscriptions to smart contract storage changes
Interbank Lending Exchange
8th Light worked alongside an electronic interbank lending exchange to create a private ledger of trading activity and a custom, non-fungible token to reward and incentivize trades, deployed on a private blockchain.
WHAT WE DID
- Deployed a private proof-of-authority Ethereum chain to record trade and token data
- Wrote smart contracts for a custom ERC721 nonfungible token
- Created a React frontend dApp for market participants to view trade data and exchange tokens
Maker
Building on VulcanizeDB, we created a GraphQL API providing real time data about Maker’s multi-collateral Dai stablecoin protocol. Data from our API helped to power dashboards, keeper bots, and internal services at Maker.
WHAT WE DID
- Wrote custom Golang code to extract and transform Maker protocol data from contract storage
- Used Postgraphile to expose both low-level contract data and high-level views of auctions, vaults, and protocol parameters
- Designed and maintained infrastructure to support real time data at Maker scale
Other Work in Web3
In addition to our client work, 8th Light crafters have also participated in a number of hackathons facilitated by ETHGlobal. Throughout these projects, we’ve gained a better understanding of decentralized applications, and how the principles and practices that we use to create quality software translate to this new ecosystem. In any paradigm, we’re well-prepared to build iteratively and incrementally, and have confidence that what we’re building will work at the end.
Ride or Die
- Yield generating commitment contracts linked to Strava activity.
- Tech: Solidity, Hardhat, React
- Screenshot
- Project showcase
Doxx
- A Notion-inspired web3 notebook app using IPFS and Ceramic.
- Tech: Typescript, React, IPFS, Ceramic, Ethers.js, ENS
- Screenshot
- Demo
- Project showcase
Defragment.art
- Smart contracts to reconstitute fractionalized NFTs as derivative works.
- Tech: Solidity, Dapptools, Hardhat, React, useDapp, OpenZeppelin
- Demo
- Project showcase
How We Build Web3 Applications
Web3 applications are not one-size-fits-all. We help businesses discover and deliver custom blockchain solutions uniquely suited to their needs. Our iterative and collaborative approach is designed to minimize surprises and maximize impact.
Research
We start each engagement with a research and assessment phase to ensure we understand your business goals as well as your existing system's capacity to embrace new innovations.
Business Goals: We meet with various stakeholders across your business to understand the impact blockchain technologies could have.
Technical Discovery: We dive into your technical infrastructure and analyze existing architecture, code, testing, and delivery processes to better understand where blockchain technologies could provide value either by replacing or integrating with existing workflows and systems.
Planning
We synthesize our research into recommendations, and meet with your business and technical experts to develop use cases for how blockchain technologies could impact your business.
We build detailed project plans for selected use cases, including:
- Defining objectives
- Identifying timelines, milestones, and checkpoints
- Devising a risk mitigation plan
- Building out system architecture diagrams and low-fidelity storyboards to guide development efforts
After building a portfolio of potential use cases, we meet with your stakeholders to prioritize the projects based on expected return on investment and cost-benefit analysis for both short- and long-term goals.
Proof of Concept
We begin developing your highest-priority use case, gathering feedback from live users within your team.
Our software professionals deliver working software through an iterative, agile process that incorporates feedback at every stage of development.
Our iterative development process allows us to maintain a sharp focus on fulfilling a specific use case, and it also offers value that reverberates to other work as well. If we decide to pivot our Proof of Concept to a slightly different use case or start a brand new one altogether, we will always leave each iteration with a core asset of functioning software that we can leverage toward future development and trials.
Pilot
Having already incorporated feedback from key stakeholders and internal users, we will launch the working Proof of Concept application to external users, and begin measuring the possible impact of this product in the market and at scale.
At the conclusion of this phase, we will have a fully workable software product that has undergone extensive user testing. We will have sufficient data to determine the viability and market impact of the product, and can either release the product to the public, move on to building a new Proof of Concept that tests the next use case, or both.
Tech We Use
Web 3.0 leverages a long and constantly evolving suite of protocols and technologies. Below are a few of the tools we’ve used to craft decentralized applications:
- Geth
- levelDB
- Parity
- Ethers.js
- Typechain
- useDapp
- Hardhat
- Dapptools
- OpenZeppelin Contracts
- Ethereum
- Ceramic
- IPFS
Resources
Explore the basics of the technology and the social interactions that drive them:
- Decentralizing Ethereum Data with VulcanizeDB (Dec 27, 2019)
- Working with the Enemy: Why Blockchain Adoption is a Social Problem (April 23, 2019)
- NEW: Beyond the Buzzword: Navigating the Blockchain Hype - A Field Guide from 8th Light (Feb 12, 2019)
- Here's What Happened: Dave Hoover Introduces Ethereum Fundamentals and a Peek at Solidity (Dec 11, 2018)
Blockchain Primer
You can learn more about blockchains in our Field Guide. Published in early 2019, this downloadable PDF covers the basic concepts that made blockchains unique innovations. We establish a baseline understanding of what blockchains do well, what challenges they present, and how they’re already influencing projects around the world.
Interested in how 8th Light can move your Web 3.0 projects forward? Reach out!