If you’ve been paying attention to what’s going on in the tech world, you’ve probably come across Web3. Though we have all gotten used to Web 2.0, Web3 is coming, and looking like it will be the new standard in years to come if trends continue. This means that developers will have to learn their way around Web3, and it’s better to do so sooner rather than later.
Compared to Web 2.0’s developer ecosystem, Web3’s is very small. However, the Web3 developer ecosystem is snowballing, and it is becoming more and more vital that developers learn what the Web3 tech stack includes. If you’re hip, you probably know that it relies on blockchain for decentralization and that identity is proven through cryptocurrency wallets. There’s a chance you’ve heard of distributed storage solutions such as the InterPlanetary File System (IPFS).
The Web3 stack is comprised of the following:
Blockchain development environment
API (Indexing & querying)
Client (frameworks and libraries)
There are many ways in which this stack differs from traditional web architecture, and Web3’s tools, technologies, and ecosystem are much less mature than Web2 also. Approaching it from a web infrastructure perspective, the prominent differences involve what many consider to be “backend” technologies, but they are usually discussed in terms of “protocols” in Web3.
Furthermore, identity and how we deal with identity are different on the front end. Since virtually all of the data is public, you don’t need to know anything about the user to read data. However, you usually need to connect to the user’s wallet when writing data. This is either done on a desktop app– the user usually has a browser extension for their wallet, which automatically injects a global window object for the network (e.g., Solana, Ethereum, Arweave)– or on mobile. After signing a transaction, you will be allowed to authenticate in a wallet app and redirect.
If you’ve experimented with buying cryptocurrencies, NFTs or dapps (decentralized applications), you’ve more than likely used MetaMask (including browser extensions for Chrome, Firefox and Chromium-based browsers like Brave). Owned by ConsenSys, MetaMask justifiably refers to itself as “the leading Ethereum software company.”
ConsenSys also controls Truffle, one of the leading integrated development environments (IDEs) in Web3. The IDE is a “development environment, testing framework and asset pipeline for blockchains using the Ethereum Virtual Machine (EVM).” It offers “smart contract lifecycle management” and “automated contract testing,” among other things.
LEARNING ETHEREUM & RUST
Most developers now understand what blockchain is– a veritable distributed ledger of data. However, there are a few different types of blockchains, the two most important being Bitcoin and Ethereum. In contrast to Bitcoin, Ethereum is a fully programmable “Turing-complete” computer.
Ethereum’s programmable nature has led the way for Web3. You can build pretty much anything on top of Ethereum. In terms of Web 2.0, it is a web platform. Not only is Ethereum the largest Web3 platform, but it is also compatible with some of the other blockchains. Learning how to use Ethereum is the main on-ramp to becoming a Web3 developer.
Some say that Solidity and Rust are the most used and in-demand languages for smart contract development. Also, since experienced smart contract programmers are relatively rare, they can easily achieve salaries in the mid-hundreds of thousands of dollars per year. Some of the most experienced ones are pulling in upwards of $1 million per year.
STORING DATA & QUERYING IT
Storing and using data is one of the trickiest parts of Web3 development. Though blockchains are good chains of immutable data, they are terrible at storing and processing large amounts of data (especially for dapps). This is where file storage protocols like IPFS, Arweave and Filecoin come in.
Arweave, an open-source project, self-describes as “a protocol that allows you to store data permanently, sustainably, with a single upfront fee.” Essentially a peer-to-peer (P2P) network, it, unfortunately, comes with its own set of crypto buzzwords. Its mining mechanism is called “Succinct Proofs of Random Access (SPoRAs).” Developers can deploy apps to the “permaweb” (“a permanent and decentralized web built on top of the Arweave”).
Dapp developers have the additional complication of having the option to use “off-chain” solutions, meaning the data is stored somewhere other than the main blockchain. There are two common forms of this, and they are “sidechains” (secondary blockchains) and “Layer 2” (L2) solutions (think Bitcoin Lightning Network and Ethereum Plasma). For more on how to approach data management in Web3, click here.
The process of indexing and querying data on the blockchain is a relatively new area of development. The Graph, among other things, enables developers to query directly from L1 or L2 chains using GraphQL within the application.
WEB DEVELOPERS & DECENTRALIZATION
From the vantage point of a developer, Web3 seems to be in a transition period, and it appears to be trying to rely less on centralized services like Coinbase, OpenSea and Alchemy. Doing that is where all the complexity comes in, though, because absolute decentralization is a challenging task for dapps.
We’ll see how the evolution of the Web3 stack throughout 2022. In the meantime, it would behoove you to peruse Nader Dabit’s Web3 developer’s guide if you want to learn more.