作者:JonathanKing,?ConnorDempsey,&?HoolieTejwani
尽管比特币和以太坊的兴起,以及DeFi、NFT、GameFi和DAO等新类别的出现,web3开发人员在全球3110万软件开发人员中的占比不到1%。
那么为什么如今web3的开发者这么少呢?一方面,web3开发人员可用的工具和基础设施远不如web2强大。这只会让在web3中开始构建、试验和部署变得更加困难。然而,这一切都在迅速改变,因为每月活跃的web3开发人员的数量在2021年底创下历史新高。为了支持这种不断增长的意外情况,一个充满活力的团队生态系统致力于简化整个web3开发人员的旅程,最终将帮助开启web3增长和创新的下一阶段。
在本期的AroundTheBlock中,我们将探索不断增长的web3开发者堆栈。
Web3开发人员堆栈
在Web2与Web3中构建
软件开发是构建计算机程序的过程。给定程序包含三个主要组件:
前端
后端
数据库
典型用户通过移动或桌面浏览器进行交互的前端在web2和web3中基本相同。像Uniswap这样的web3应用程序看起来与典型的web2应用程序相似,因为两个前端大部分都是使用React创建的——一个流行的web和移动应用程序开发人员框架。
这是web2和web3不同的地方。使web3的定义特征?成为可能的后端框架和数据库类型是新颖的和独特的。
web2应用程序在很大程度上依赖于中心化数据库,而web3应用程序则建立在去中心化数据库之上。这需要全新的后端和钱包等新的原语。
由于数十年的累积开发,帮助创建、部署和维护web2应用程序的工具对开发人员非常友好。开箱即用的解决方案、成熟的基础设施、共享代码库和易于使用的框架在很大程度上使web2中的构建变得轻而易举。
另一方面,Web3仍然需要专业知识来与复杂的基础设施进行交互,并且通常涉及许多冗余流程,因为堆栈开发程度较低,使得团队不得不重新发明轮子。也就是说,将帮助下一个100万+web3开发人员加入的工具正在迅速改进。
让我们逐层看看不断发展的Web3开发人员堆栈。
协议层
web3开发者必须做出的第一个决定是基于哪个区块链协议。基于比特币的构建与基于以太坊的构建完全不同,基于Solana与基于以太坊不同。
对于速度更快、成本更低的应用程序,开发人员可能希望基于Optimism*、?Arbitrum*等第二层协议。对于需要将价值从一条链转移到另一条链的应用程序而言,开发人员将希望利用Hop*?或?Synapse*等跨链桥。
一旦做出了这些决定,开发人员就可以开始整合构建模块,使用户应用程序成为可能。
基础设施原语
开发人员需要弄清楚的下一件事是他们的应用程序最终将如何与底层区块链交互。这就是基础设施原语发挥作用的地方。
节点基础设施——?节点是应用程序与区块链“发生”交互的地方。一旦用户与应用程序交互,它们是读取区块链状态并向其写入更新的计算机。CoinbaseCloud、?Infura?*和Alchemy?*等节点基础设施提供商让开发人员可以轻松设置、管理或访问区块链节点,从而为开发人员节省大量时间和资源。
钱包和密钥管理——?区块链钱包,如CoinbaseWallet,允许用户管理在web3应用程序中执行交易所需的私钥。Web3Auth?*或?PineStreetLabs?*等钱包和密钥管理提供商使开发人员能够在区块链钱包和面向用户的应用程序之间建立安全连接。
身份?——像ENS?*这样的协议在应用程序中充当用户的身份。Spruce?*提供框架和工具包,开发人员可以使用这些框架和工具包来验证用户凭据以验证以太坊上的操作。例如,开发人员可以使用SpruceID工具包授权用户使用其ENS帐户登录dApp。此外,像LitProtocol这样的公司提供开发者工具,用于授权使用其代币或NFT访问内容、软件和其他数据。
去中心化计算——?计算资源提供应用程序执行计算任务所依赖的处理能力。目前,大部分网络计算由AWS等中心化提供商提供。去中心化计算是向社区拥有的网络的转变,其中计算资源以低成本、无需许可的方式分布。AkashNetwork和Aleph.im等项目已经出现,提供高性能的点对点计算资源,并针对智能合约和区块链应用程序进行了优化。
去中心化存储——?将与给定web3应用程序相关的每条数据直接存储在区块链节点上的成本很高。web3开发人员无需将数据存储在中心化数据库上,而是可以对某些数据使用IPFS、?Arweave?*和?CeramicNetwork?*等点对点数据存储协议。例如,web3博客网站Mirror建立在以太坊上,但将实际博客内容存储在Arweave上。
预言机——?对于典型的以太坊应用程序,区块链存储交易历史和“状态”。然而,它不能本地存储来自外部源的数据并与之交互——即来自其他区块链的交易历史或“真实世界”数据,如旧金山的天气。这就是像Chainlink或Flux?*这样的预言机出现的地方,将区块链连接到链上和链下数据源。
互操作性?——存在许多不同的区块链,但很少有能够交换价值和利用跨链信息的能力。LayerZero?*和AstarNetwork?*等互操作性协议为开发人员提供SDK和API,以构建可移植且可以与不同区块链通信的dApp。
开发者工具
在允许应用程序与区块链网络交互的基础设施原语之上,是允许开发人员与上述原语交互的工具。
框架和IDE—?开发人员框架由其他开发人员创建的代码库组成,使开发更容易。Truffle、?Moralis?*、?Tatum和ThirdWeb?*等Web3框架让开发人员可以利用现有代码进行智能合约应用程序,因此他们不必从头开始构建所有内容。它们还允许开发人员测试和部署应用程序。Foundry和HardHat等集成开发环境(IDE)结合了通用源代码编辑器,并将自动化和调试工具构建到一个易于访问的单一界面中。
低代码/无代码?——?这些平台使面向用户的应用程序能够完全通过拖放界面快速设计/部署。像Settlemint这样的公司为开发人员提供了NFT的智能合约模板,以防止web3开发人员不得不重新发明轮子。
索引和查询?——?数据索引器帮助人们定位和访问底层数据库中的特定数据。在Web2中,谷歌搜索是最流行的数据索引服务,它允许用户以亚秒级的响应时间查询存储在在线数据库中的数据。在Web3中,去中心化索引服务正在兴起,以帮助dApp开发人员获取、处理和查询区块链数据。GraphProtocol?*、?Covalent?*和Coherent?*都提供API,用于从去中心化数据存储提供商和EVM兼容的区块链中提取和使用数据。
测试、模拟和监控——?在web3应用程序发布之前测试和模拟它们是很重要的。像Tenderly?*和Kurtosis*这样的公司提供了各种工具来模拟智能合约和交易,以及调试任何问题的工具。Blocknative?*提供仪表板和工具,用于在交易提交到链上之前对其进行监控。
安全和审计?——?鉴于智能合约利用的潜力,这些平台允许开发人员将安全和审计最佳实践应用到他们的应用程序中。OpenZeppelin?*、?Certik?*和Certora?*都为开发人员提供了各种服务、框架和监控工具,以减轻潜在的安全风险和漏洞。
消息传递?——Web3?应用程序通常涉及向最终用户发送各种通信。例如,加密钱包可能希望向用户推送有关交易确认的警报。?XMTPLabs?*和?EPNS等公司正在构建安全的消息传递协议和去中心化通信网络,以推动用户参与并为Web3应用程序中的这些通知提供动力。
分析——?有许多平台和服务可以让开发人员探索、分析、提取和可视化区块链数据。Dune?*、?Nansen?*和Messari?*均提供各种API和报告功能,以在web3应用程序中构建数据可视化功能。FlipsideCrypto?*提供SDK和API,以创建和共享有关各种加密项目的数据见解。
应用支持层
应用支持层将上述所有层与特定的web3用途联系起来。NFT、DAO、DeFi和游戏都有自己定制的开发者解决方案。
专注于NFT的工具为创建和管理NFT资产提供了基础设施。DAO工具为DAO创建、治理和资金管理提供解决方案。专注于DeFi的工具提供API,让开发人员可以访问各种DeFi原语。专注于游戏的工具为创建虚拟世界和基于区块链的游戏提供解决方案。?
不断发展的开发堆栈
上面提到的协议、基础设施和开发人员工具构成了新生的、但不断发展的web3开发人员堆栈。web3的模块化和可互操作性意味着堆栈可以以无穷无尽的方式组合以创建新的和有趣的应用程序。
虽然我们强调的框架和层可能保持不变,但我们继续看到新的开发人员工具原语出现,并预计整个堆栈在未来几年将发生巨大变化。
CoinbaseVentures将继续投资于下一代平台和开发人员工具,最终将数百万开发人员带入web3。如果您像我们一样致力于构建web3开发堆栈,我们很乐意收到您的来信。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。