Web3 Tech Stack
Jan 13, 2023
The article discusses the differences between building web2 and web3 applications. Web2 refers to the current internet, while web3 is the next generation of the internet, known as the “internet of value”. This blog explains the various technologies used to build web2 apps and their equivalents in web3. Web2 applications can be broken down into 3 main layers: front-end, back-end, and an API layer.
Building web2 Applications
Back-end: The server is written in either NodeJs or Python.
Database: Web2 applications use centralized databases like Firebase or MongoDB.
Cloud Infrastructure: Providers such as AWS, Azure, or GCP provide the necessary computing for deploying your applications on the cloud.
API layer: Consists of all the 3rd-party services you use in order to connect the front-end and the back-end like Stripe for payments or SendGrid for email delivery.
Building web3 Applications
Choosing the Blockchain
The most crucial part of the web3 ecosystem is deciding the blockchain on which you are building the dApp. There could be several factors like transaction throughput, gas fees, and interoperability to choose which blockchain ecosystem would be the most suitable fit according to the dApp you are building. Examples of these Blockchain ecosystems could be Ethereum, Solana, or even Layer 2s like Polygon or Starknet.
Accessing Blockchain Functionality
Once you are done choosing the blockchain, you need an API service provider like QuickNode or Moralis that allows developers to access the functionality of the blockchain and perform common tasks such as creating and managing smart contracts, sending and receiving transactions, and querying the state of the blockchain.
Storing Media Files
Large media files are essentially stored in a p2p file storage system, which is the next component of the tech stack. The most commonly used solutions would be IPFS and Arweave which allow peer-to-peer storage for your media files. They enable web3 applications to store large amounts of data in a decentralized way, which can improve the security, reliability, and scalability of the application. You can use services like Filecoin, Storj, etc to host these files.
Storing on-chain data is extremely expensive and slow. Storing 1Mb of data on Ethereum costs around 10k USD and it is definitely not feasible to store the amount of data that we are used to in web2 applications. Polybase lets you store data off-chain and generate proofs to the root blockchain for state changes. Storing all your structured data on Ethereum would mean your data is replicated across all the nodes in the network, which makes it slow and expensive. However, if you are using a centralized database, all the data is replicated just once, so if the database server is down, your data becomes unavailable. Using a service like Polybase would let you turn the knob and specify how many times you want your data to replicate so that your data is never unavailable.
In summary, building web3 applications involves some differences from building web2 applications, primarily in the use of blockchain technology and decentralized storage solutions. However, many of the same concepts and technologies used in web2 development can be applied to web3, and developers who are familiar with web2 technologies can transition to web3 by learning about the specific blockchain ecosystems and tools available. Overall, web3 offers new opportunities for creating secure, decentralized applications that can take advantage of the value and trust provided by blockchain technology.