Web3堆栈概述

Web3 堆栈开发人员指南

在Alchemy,我们将Web3定义为基于区块链技术的去中心化的互联网生态系统。

首先,作为开发人员和构建人员,我们在理解去中心化时,通常会提起碎片化的技术堆栈概念。虽然Web3仍然处于新生阶段并在迅速发展,但我们发现它的基础构件已经开始成形。

为了更好地理解Web3和去中心化互联网的内部工作原理,让我们直接进入Web3开发堆栈。

Web3堆栈概述

在较高的层次上,构建任何Web3应用程序都需要深入理解区块链网络、Web3基础设施和Web3开发环境。

Web3网络层

Web3技术堆栈的基础是区块链网络层。Web2应用程序依赖于中心化数据库,而Web3应用程序构建在区块链架构之上,以实现无需信任和无需许可的访问。

网络层:基础区块链架构

在选择构建去中心化应用程序(dApp)的区块链网络时,开发人员有两个主要选择:兼容EVM的区块链和不兼容EVM的区块链。

EVM 区块链

以太坊一直是Web3开发的主要框架,其虚拟环境(即其以太坊虚拟机或EVM)存储帐户和余额等关键信息。以太坊的虚拟机还存储了一个机器状态,它能够根据EVM制定的一组预定义规则,随着每个新区块的变化而变化。对于开发人员来说,最重要的是,EVM为智能合约的存储和执行提供了一个框架,允许开发人员对链上逻辑进行编程。

随着以太坊区块链和EVM的兴起,许多旨在解决以太坊可扩展性限制或昂贵交易成本的不同网络都选择开发与EVM完全兼容的框架。这意味着与 EVM 兼容的链都共享相同的软件层——即 Solidity——运行智能合约。

与EVM兼容的区块链允许开发人员利用专门为EVM链构建的所有相同的工具、文档和社区,以此节省时间和金钱。

EVM 区块链示例

  • 以太坊- 原始 EVM 智能合约平台

  • Polygon - 以太坊侧链

  • Arbitrum - 使用 Optimistic rollups和多轮欺诈证明的L2区块链

  • Optimism - 使用 Optimistic rollups 和单轮欺诈证明的L2区块链

  • Hermez - 由 Polygon 管理的 ZK-rollups以太坊L2网络

  • ZKSync - 使用 SNARK 的 ZK-rollups以太坊L2网络

  • Starknet - 使用 STARK 的 ZK-rollups以太坊L2网络

  • Avalanche - 与 EVM 兼容的L1

  • Cronos - 与EVM 兼容的L1

3个最佳的Web3开发环境

在选择构建 dApp 的区块链网络时,Web3开发人员应该考虑可用的开发人员工具的深度和广度。幸运的是,EVM兼容链受益于多年的以太坊开发,在开发环境方面有许多久经考验的选择。

Hardhat

Hardhat是一个javascript软件开发环境,允许开发人员编译、测试、部署和调试以太坊软件,Hardhat可以通过灵活的插件进行扩充,使开发人员能够轻松自定义本地区块链开发环境,并附带一套强大的故障排除和调试文档集。

Truffle

一个由三种不同的,基于javascript的开发工具组成的套件——Truffle、Ganache和Drizzle——Truffle帮助构建者编译、测试和部署EVM代码,同时也为前端dApp开发提供工具。

  • Truffle——主要的开发环境、测试框架和部署管道

  • Ganache——允许开发人员快速创建本地区块链

  • Drizzle——各种前端库,用来连接前端组件和智能合约

Brownie

作为基于python框架的,用于EVM开发的替代品,Brownie提供了一套完整的Web3开发工具,主要基于Web3 .py包构建,用于编译、测试和部署dApp。

非 EVM 区块链

最近,开发人员开始在区块链上构建更多不遵循以太坊框架的dapp,因此不兼容EVM。

非EVM网络工程师认为,EVM链太受以太坊框架的限制,而选择通过设计新的结构进行创新。一般来说,非EVM区块链从一开始就具有数据和交易可扩展性,并允许较高的TPS。

非 EVM 区块链的示例

  • Flow - L1,使用 Cadence,Flow 的原生的面向资源的编程语言

  • NEAR - L1,其智能合约使用 Rust 或 Assemblyscript

  • Solana - 使用 Rust C、C++ 的L1智能合约

  • Terra - 将 Rust 用于智能合约的L1

非 EVM 区块链开发环境

虽然对于非EVM链有一些开发环境还不太成熟,但一些网络已经开始为各自的链提供开发工具。

Flow让开发者能够使用原生的Visual Studio Code Extension测试Cadence智能合约的漏洞。

另一个非EVM开发环境的例子是Anchor,它允许构建和测试 Solana 合约,具有与 Solidity 和 Truffle 类似的感觉。总的来说,Anchor 的环境降低了 Rust 和 Solana 开发的障碍。

我应该使用什么区块链网络?

由于单个区块链通常具有独特的架构和共识机制,它们不可避免地会针对特定的用例进行更好的优化。因此,我们坚定地相信一个多链Web3的未来。

考虑到可互操作工具的日益多样化,EVM框架是一个极其丰富的环境。此外,EVM兼容性为用户和开发人员提供了一个更流畅的过程,可以通过跨链dApp移动流动性,并提供了熟悉的用户和开发人员体验。对于早期的开发人员和新协议,我们相信围绕EVM兼容的区块链进行开发,利用现有的工具、基础设施和开发人员文档,是一个令人信服的条件。

话虽如此,我们也认识到非EVM区块链对于更有经验的开发人员的利基功能,他们不断增长的社区基础,以及对早期开发人员工具支持的增加。

区块链交互层

在选择了区块链网络之后,Web3堆栈中的下一步是区块链交互层。这一层允许开发人员和用户向区块链读取和写入数据。

区块链交互层:用于向区块链网络读取/写入数据的开发人员构建块。

如果我们不熟悉区块链是如何工作的,这里有一个快速的回顾。

  • 区块链由数据区块组成。

  • 区块存储在分布式节点上。

  • 区块链中的每个节点都充当一个“迷你服务器”,它允许操作者读写数据区块。

  • 添加到区块链的任何区块都必须在网络上的所有节点之间传播,以实现同步。

在考虑Web3框架中的数据访问层时,链上存储是标准,因为它本质上是不可变的,并允许任何公众个人查看/验证它。

与区块浏览器一样,数据提供者是区块链交互层的关键部分。对于初学者来说,它们提供了一个进入较低网络层的窗口,并作为一个在线资源,用于检索有关交易、地址余额、gas 费用等的实时和历史数据。区块浏览器通常用于查找支付的关键细节、确定不同交易的状态或简单地了解区块链使用的总体趋势。数据提供者为公众提供了阅读和解释区块链的能力。

Web3基础设施挑战

但是,如果没有适当的基础设施需求,访问和与区块链数据交互可能会非常困难。

由于直接在链上写入数据不具有成本效益,Web3开发人员使用EVM链的内置日志功能,这样智能合约就可以通过solidity事件以一种可搜索、成本效益高的方式在链上“打印”信息。虽然日志记录可以降低存储成本,并且是对区块链进行读写的最流行方式,但它需要一个强大的区块链交互层,以确保开发人员能够在事件发出时捕获它们。

运行节点 与 使用节点服务提供者

从历史上看,使用区块链交互层需要运行一个自托管、自维护的节点。这是一个昂贵且耗时的过程,仅运行一个以太坊节点的平均成本为8.6万美元/年。开发人员没有构建协议和dapp,而是发现自己将工程资源花费在管理节点的bug、回归、磁盘问题、CPU流量峰值等方面。

运行我们自己的节点的成本导致了Alchemy的创建。在其核心,Alchemy公开了一套API,供开发人员在无需管理节点的情况下与区块链进行交互。

作为一个多链Web3的坚定支持者,Alchemy 的 API 套件在单一熟悉的 API 框架内提供跨L1(包括以太坊网络)、L2(包括 Arbitrum 和 Optimism)、侧链(包括 Polygon)和非 EVM 兼容的 L1(如 Flow)的多链支持。

最终,Alchemy允许区块链开发人员对整个Web3网络层进行可靠和可扩展的访问,从而使他们能够专注于构建Web3堆栈。

Web3表示层

表示层:更高级别的软件抽象和前端库

在许多方面,Web3表示层紧密地反映了Web2开发的许多方面。

为了创建和开发前端组件,许多开发人员转向历经过检验的React.js库。有了大量的开发人员和Web3社区的追随者,它已经成为事实上的Web3前端的标准。

Web2和Web3前端栈的一个不同之处是用于与区块链数据交互的特定库。

当与数据访问层交互时,Web3的dApp 倾向于使用Ether.js 或 Web3.js,而不是更典型的 HTTP 请求库,如 Axios 和 Fetch。特别是,Ethers.js 和 Web3.js 都自然支持对托管在区块链交互层上的区块链节点的远程过程调用 (RPC),从而能够更无缝地集成到开发人员的Web3技术堆栈中,并在区块链读写数据。

如何在 Ether.js 和 Web3.js 之间进行选择

在决定是选择Ether.js 还是 Web3.js时,有几点需要考虑。

Ether.js 是一个更轻量级的、对开发人员友好的库,具有强大的文档。虽然许多早期开发人员和资深开发人员都是通过Ether.js 开发dApp的,但它由少数人维护,限制了库的开发。

Web3.js拥有最多的分叉/提交,也是被使用最多次的以太坊javascript库。虽然它也被广泛使用,但它缺乏ether文档的广度和深度,可能不是早期Web3开发人员的最佳选择。

Web3.js的另一个替代品是Alchemy Web3,它是一个带有附加API方法、升级的websocket支持和自动重试功能的分支,允许开发者更轻松地采用。

去中心化的存储

虽然区块链为去中心化状态管理、智能合约存储/执行和交易价值提供了一个媒介,但更高级别的应用程序需要额外的组件。对于图像、视频和gif等前端内容,区块链存储非常昂贵,效率也非常低。去中心化存储填补了这一空白。

一种解决方案是IPFS (Interplanetary File System),这是一个由节点组成的分布式网络,每个人在其中存储和共享文件、网站、应用程序和数据。随着NFT的兴起,IPFS的使用激增,经常作为NFT媒体资产的底层存储介质。

另一个流行的去中心化存储解决方案是Arweave,它旨在激励个人永久存储数据。通过Arweave网络,矿工提供存储空间以换取代币,协议本身确保存储的数据在所有节点上保持正确和一致。

Web3应用层

在Web3的背景下,应用层涵盖了DeFi、NFT、身份与认证、数据与分析以及许多其他令人兴奋的dApp类别。总之,这些去中心化的Web3应用包括一些最大的Web3公司,如OpenSea、Uniswap和Aave。

作为开发人员,这通常是最有趣的构建层。可以混合和匹配不同的去中心化应用程序,将强大的原语组合成新的、复杂的产品。

应用层主要允许公共消费者(其中许多人可能不完全理解Web3开发的复杂性)轻松地与直观的前端交互。最终,用户友好型前端让公众能够在日常生活中利用去中心化的互联网。

总结

随着Web3从目前的状态发展到成熟,肯定会有范式的转变,新的Web3基础设施工具,以及很多需要学习的东西。

24小时热点

ibox数藏平台暴雷!彻底的凉凉了!

因为NFT的爆火,连着NFT相关平台也是热度高涨,可是越是爆 ... 置顶

129971

现在是投资加密货币的好时机吗?

最近加密市场不断下行,市场情绪低靡,大多数山寨币已显颓势,尽 ...

334

布洛克

Web3在遥远的未来?不 它已经来了

FaceBook更名MeTa,让元宇宙一词火爆出圈,一时风头 ...

4884

大币网

数藏平台的合规与利润博弈:藏品滞销、用户流失VS炒作不断、平台稳赚

在众多二级市场平台的围剿中,幻核、鲸探等大厂的用户正在流失。 ...

21455

汤姆猫元宇宙

X2earn: 最容易理解的Web3范式之一

目录: 1.    X2earn: 最容易理解的 ...

13266

Lootcakes免费游戏网络

区块链信息服务备案管理系统备案

区块链信息服务备案仅对备案主体所从事的区块链信息服务进行登记 ...

236983

NFTs代售

如何解决DAO内冲突?

本文深入探讨了正视 DAO 内冲突的重要性,并提供了解决 D ...

11030

阿瓦隆矿机

Web3 有7大颠覆性概念

要想在未来取得成功,你现在必须要学习 web3 了。 ...

6672

一棵树的声音

7 个板块的Web3 社交赛道蓬勃发展

Web3 社交赛道蓬勃发展,50 个入选项目来自社交通讯、社 ...

2890

宙核

Web3 领域开拓组织创意生产的新方式(之二)

受访者一致认为「人们现在最容易获得报酬的方式是通过资助」,这 ...

2167

大币网

Vitalik 上海峰会演讲全文:以太坊合并或将在 8 月开始

Vitalik Buterin 分享了以太坊合并等最新进展, ...

12563

CryptoRank

热点专题

以游戏带动引擎发展实现功能迭代与技术演进

游戏引擎作为游戏创作工具与游戏运行的底层控制器,着力于在虚拟 ... 置顶

14157

2021年打假总结:存活近3年 疯狂的“传销币”GEC是怎么苟延残喘至今?

币圈从来不缺乏资金盘或是传销币,但多数都不长久,一夜之间项目 ...

2744532

加密兔

2021年打假总结:Pi Network项目的传销性质Pi币

曾经,号称“走路就能赚钱”拥有大量用户和广泛影响的国内APP ...

1760770

加密兔

柴犬币SHIB来了

受狗狗币启发,柴犬币(SHIB)近两天被创造出来。

1181279

Luart

非常硬核的LP流动性挖矿的核算

2021年1月19日20:00MDX正式上线交易挖矿和流动性 ...

1044005

RMRK

什么是去中心化交易所(DEX)?

去中心化交易所是一个基于区块链的交易所,它不将用户资金和个人 ...

1033883

bitFlyer交易所

骗走了中国人5000亿MBI集团的“易物币”长什么样的

人性终究还是舍弃不掉自己贪婪的一面! 今年10月 ...

788961

a16z

在Mdex上挖矿教程

Mdex是火币生态链上的去中心化交易所,Mdex挖矿于1月1 ...

736117

大都会资本

国内460种传销币套路和骗子币名单大曝光

全员警惕!!!国内460种传销币套路和骗子币名单大曝光(附全 ...

657074

Coin Metrics

国家区块链相关政策汇总

据零壹智库不完全统计,截至2019年12月,国家层面共计出台 ...

625471

利得链

最近央行提出的DC/EP是什么?

2019年8月10日,央行结算司副司长穆长春发表演讲,介绍了 ...

617791

网络资源