尽管比特币和以太网的兴起,以及DeFi、NFT、GameFi、DAO等新类别的出现,web3开发者占全球3110万软件开发者的比例仍不到1%。
那么,为什么现在web3的开发者这么少呢? 另一方面,web3开发人员可用的工具和基础设施远不如web2强大。 这只会使在web3上构建、试验和部署更加困难。 但是,由于每月活跃的web3开发者数量在2021年末创下历史新高,所有这些都在迅速变化。 为了支持这些意想不到的增长,充满活力的团队生态系统致力于简化整个web3开发人员的旅程,最终将有助于开启web3发展和创新的下一个阶段。
本期的Around The Block探索web3开发人员堆栈的数量不断增加。
Web3开发人员堆栈
[ xy 001 ]在Web3和Web3上构建[ xy 002 ] [ xy 001 ]软件开发是构建计算机程序的过程。 指定的程序包括三个主要组件:
前端
后端[用户看不见的地方]
数据库(存储重要数据的位置)
典型用户在移动或桌面浏览器上的前端在web2和web3上几乎相同。 web3APP应用程序(如Uniswap )类似于常见的web2APP应用程序。 这是因为这两个前端大部分都是使用React创建的——通用web/移动APP开发人员框架。
这是web2和web3的不同之处。 允许web3定义特性(用户定义的所有权)的后端框架和数据库类型新颖独特。
[ xy001 ] web2APP应用严重依赖中心化数据库,而web3APP应用建立在中心化数据库(区块链)之上。 这需要新的原语,如新的后端和钱包。由于几十年的累积开发帮助创建、部署和维护web2APP应用程序的工具对开发人员非常有用。 现成的解决方案、成熟的基础架构、共享代码库和易于使用的框架使构建web2变得非常容易。
另一方面,Web3仍然需要与复杂的基础设施进行交互的专业知识,包含了很多冗长的过程。 由于堆栈开发程度低,团队不得不重新发明车轮。 也就是说,帮助以下100万web3开发人员参与的工具正在迅速改善。
按层次(而非详细)查看不断增长的Web3开发人员堆栈(代表Coinbase Ventures产品组合公司)。
协议层
web3开发人员必须做出的第一个决定是基于哪个区块链协议? 比特币基础的构建与以太网基础的构建完全不同,Solana基础和以太网基础不同。 比
速度更快、成本更低的APP部署,开发人员可能希望基于Optimism*、Arbitrum*等第2层协议。 在需要将价值从一个链条转移到另一个链条的APP应用中,开发人员希望使用Hop*或Synapse*等交叉链桥。
做出这些决定后,开发人员可以开始集成构建模块并启用用户APP。
基础设施原句
开发人员必须弄清的下一件事是APP应用最终如何与底层区块链进行交互。 这就是基础设施原语发挥作用的地方。
节点基础结构——节点是APP应用程序与区块链“交互”的地方。 当用户与APP应用程序交互时,它将成为读取块链状态并写入更新的计算机。 使用节点基础架构提供程序(如Coinbase Cloud、Infura *和Alchemy * ),开发人员可以轻松配置、管理和访问块链节点,从而大大节省开发人员的时间和资源。
钱包和密钥管理——区块链钱包(如coinbasewallet )允许用户管理在web3APP中执行事务所需的私钥。 使用Web3Auth *和Pine Street Labs *等钱包和密钥管理提供程序,开发人员可以在块链钱包和用户APP应用程序之间建立安全连接。
身份——ens*这样的协议在APP应用程序中充当用户。 Spruce *提供了一个框架和工具包,开发人员可使用该框架和工具包验证用户凭据以及以太体上的操作。 例如开发人员可以使用Spruce ID工具包允许用户使用ENS帐户登录到dApp。 此外,像Lit Protocol这样的公司还提供开发人员工具用于通过、令牌或NFT授予对内容、软件和其他数据的访问权限。
去中心化计算——计算资源提供APP应用执行计算任务所需的处理能力。 目前,大多数网络计算由AWS等中心化提供商提供。 去中心化计算是向社区所拥有的网络的转移,其中计算资源以低成本、无需许可的方式分布。 Akash Network和Aleph.im等项目问世,提供了高性能的点对点计算资源,针对智能合约和区块链APP应用进行了优化。
取消集中存储——将每个与特定web3APP应用程序相关的数据直接存储在块链节点上是昂贵的。 web3开发人员不需要将数据存储在集中的数据库中相反,您可以将点对点数据存储协议(如IPFS、Arweave *和Ceramic Network * )用于某些数据。 例如,web3博客网站Mirror成立于以太坊上但是,我会将实际的博客内容保存在Arweave中。
针对典型的以太网APP应用,区块链存储交易历史和“状态”(余额、智能合约和其他变量)。 但是不能在本地存储和交换来自外部源的数据。 ——,即来自旧金山天气等其他区块链的交易历史和“现实世界”数据。 这就是Chainlink和Flux *这样的预言机出现的地方将块链连接到链上和链下数据源。
虽然互操作性——中存在许多不同的块链,但是能够交换价值并有效利用链间信息的能力很少。 互操作性协议(如LayerZero *和Astar Network * )为开发者提供SDK和API,以构建可移植的、可与不同区块链通信的dApp。
开发人员工具
是一种允许开发者在基础设施原语的基础上与上述原语进行交互的工具,APP应用可以与块链网络进行交互。
框架和IDE —开发人员框架由其他开发人员编写的代码库组成,因此易于开发。 Web3框架(如Truffle、Moralis *、Tatum和ThirdWeb * )允许开发人员使用现有代码执行智能约定APP,因此不需要从头开始构建所有内容。 开发人员还可以测试和部署APP应用程序。 集成开发环境(IDE ),如Foundry和HardHat,结合了通用的源代码编辑器,并在一个易于访问的界面中构建了自动化和调试工具。
低代码/无代码——这些平台使用户APP应用程序可以通过拖放界面完全快速地设计和部署。 像Settlemint这样的公司向开发者提供NFT的智能合同模板这是为了防止web3开发者不得不重新发明车轮。
索引和查询——数据索引器可帮助搜索和访问底层数据库中的特定数据。 在Web2上,谷歌搜索是最受欢迎的数据索引服务中选择所需的族。 用户可以按亚秒级响应时间查询在线数据库中存储的数据。 在Web3中,集中式索引服务正在兴起,以帮助dApp开发人员获取、处理和查询块链数据。 Graph Protocol *、Covalent *和Coherent *提供了用于从EVM兼容块链中提取和使用数据的API。
测试、模拟和监视3354在web3APP应用程序发布之前进行测试和模拟很重要。 Tenderly *和Kurtosis *等企业提供了智能合约和模拟交易的工具和用于调试所有问题的工具。 Blocknative *提供了在事务提交到链之前进行监控的仪表板和工具。
考虑安全和审计——智能合约的使用可能性中选择所需的族。 这些平台使开发人员能够将安全和审核最佳做法应用于APP应用。 OpenZeppelin *、Certik *和Certora *为开发人员提供了各种服务、框架和监控工具为了降低潜在的安全风险和脆弱性。
消息传递—— web3APP应用程序通常包括与最终用户的各种通信。 例如,加密钱包可能希望向用户推送有关交易确认的警报。 XMTP Labs *和EPNS等公司正在构建安全的消息传递协议和中心通信网络,以促进用户参与,并为web3APP包中的这些通知提供动力。
分析——提供了许多平台和服务,开发人员可以在其中搜索、分析、提取和可视化块链数据。 Dune *、Nansen *和Messari *提供了多种API和报告功能,在web3APP应用程序中构建数据可视化功能。 Flipside Crypto *提供SDK和API,以创建和共享各种加密项目的数据见解。
[ xy 001 ] APP应用程序支持层[ xy 002 ][ xy001 ] [ xy 002 ] [ xy001 ] APP应用支持层将上述所有层与特定的web3用途联系起来。 NFT、DAO、DeFi和游戏都有自己的开发者解决方案。NFT专用工具为创建和管理NFT资产提供基础设施。 DAO工具为DAO创建(Syndicate * )、Samudai * )、治理(Snapshot * )、资金管理(Utopia Labs * )提供解决方案。 专门针对DeFi的工具提供API允许开发人员访问各种DeFi原语。 专门用于游戏的工具(Venly * (,Joyride * )、Horizon Blockchain Games * ) )为创建虚拟世界和基于块链的游戏提供了解决方案。
不断发展的开发堆栈
上述协议、基础架构和开发人员工具构成了新的web3开发人员堆栈。 web3的模块化和互操作性意味着可以无限地组合堆栈,创建新的有趣的APP应用程序。
尽管强调的框架和层可能不会改变,但我们仍然看到新开发人员工具的原语出现预计整个堆栈在未来几年将发生巨大变化。
Coinbase Ventures将继续投资新一代平台和开发者工具,最终将数百万开发者带入web3。 如果你像我们一样致力于构建web3开发堆栈,我很乐意收到你的来信。