加载中 ...
首页 > 股票 > 区块链 > 正文

Web3开发人员指南

2022-05-31 20:22:01 来源:广东财经网

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

首先,作为开发人员和建设者,我们理解去中心化通常会唤起碎片化技术堆栈的概念。虽然 Web3 确实仍处于萌芽状态并迅速发展,但我们发现它的基础构建块已经开始形成。

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

Web3 堆栈概述

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

Web3开发人员指南

Web3 网络层

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

Web3开发人员指南

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

EVM 区块链

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

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

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

EVM 区块链示例

以太坊

原创 EVM 智能合约平台

Polygon

以太坊侧链

Arbitrum

使用乐观汇总和多轮欺诈证明的第 2 层区块链

Optimism

使用 Optimistic rollups 和单轮欺诈证明的第 2 层区块链

Hermez

由 Polygon 管理的 ZK 汇总以太坊第 2 层网络

ZKSync

使用 SNARK 的 ZK 汇总以太坊第 2 层网络

Starknet

使用 STARK 的 ZK 汇总以太坊第 2 层网络

Avalanche

与 EVM 兼容的第 1 层

Chronos

与 EVM 兼容的第 1 层

3 个最佳 Web3 开发环境

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

1. Hardhat

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

2. Truffle

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

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

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

Drizzle - 各种前端库,用于将前端组件与智能合约连接起来

3.Brownie

作为用于 EVM 开发的基于 Python 的框架的 Hardhat 或 Truffle 的替代方案,Brownie提供了一整套 Web3 开发工具,主要由web3.py包构建,用于编译、测试和部署 dApp。

非 EVM 区块链

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

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

非 EVM 区块链示例

Flow - 第 1 层使用 Cadence,Flow 的原生面向资源的编程语言

NEAR - 第 1 层使用 Rust 或 Assemblyscript 进行智能合约

Solana - 使用 Rust C、C++ 的第 1 层智能合约

Terra - 将 Rust 用于智能合约的第 1 层

非 EVM 区块链开发环境

虽然非 EVM 链的开发环境不太成熟,但一些网络已经开始为各自的链带头开发工具。

Flow 使开发人员能够使用本地Visual Studio Code Extension测试 Cadence 智能合约的错误,这是最流行的 IDE(集成开发环境)之一。

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

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

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

EVM 框架是一个非常丰富的环境,因为它具有越来越多的可互操作工具。此外,EVM 兼容性为用户和开发人员提供了一个更流畅的流程,用于通过跨链 dApp 移动流动性,并提供熟悉的用户和开发人员体验。对于早期开发人员和新协议,我们认为围绕与 EVM 兼容的区块链进行开发以利用现有工具、基础设施和开发人员文档是一个令人信服的论据。

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

区块链交互层

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

Web3开发人员指南

如果您不熟悉区块链的工作原理,这里有一个快速回顾。

区块链由数据块组成。

块存储在分布式节点上。

区块链中的每个节点都充当“迷你服务器”,允许其操作员读取/写入数据块。

添加到区块链的任何块都必须在网络上的所有节点上传播以保持同步。

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

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

Web3 基础设施挑战

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

由于直接在链上写入数据不经济,Web3 开发人员使用 EVM 链的内置日志记录功能,以便智能合约可以通过 Solidity 事件以可搜索、经济高效的方式在链上“打印”信息。虽然日志记录以获得更便宜的存储并且是读取和写入区块链的最流行方式,但它需要一个强大的区块链交互层来确保开发人员能够在事件发出时捕获它们而不会失败。

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

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

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

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

最终,Alchemy 允许区块链开发人员对整个 Web3 网络层进行可靠且可扩展的访问,使他们能够专注于构建 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 之间进行选择

在选择 Ethers.js 和 Web3.js 时,有几点需要考虑。

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

Web3.js 拥有最多的分叉/提交,并且是最常用的以太坊 JavaScript 库。虽然它也被广泛使用,但它缺乏 Ethers 文档的广度和深度,可能不适合早期的 Web3 开发人员。

Web3.js 的另一个替代方案是Alchemy Web3,它是一个带有额外 API 方法、升级的 websocket 支持和已启用的自动重试的分支,允许开发人员更轻松地采用。

去中心化存储

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

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

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

Web3 应用层

Web3开发人员指南

在 Web3 的上下文中,应用层涵盖 DeFi、NFT、身份和认证、数据和分析以及许多其他令人兴奋的 dApp 类别。总之,这些分散的 Web3 应用程序包括一些最大的本地 Web3 公司,如 OpenSea、Uniswap 和 Aave。

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

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

立即开始在 Web3 堆栈上构建

随着 Web3 从当前状态发展到成熟,肯定会有范式转变、新的 Web3 基础设施工具和大量需要学习的东西。鉴于 Web3 技术栈的不断变化,开始使用它进行开发似乎令人生畏,但在 Web3 技术栈中定义的层仍然存在。

加入越来越多的开发者运动——包括 Web3 本地人和来自 Web2 的同路人——我们可以一起建设未来!

“广东财经网”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服邮箱1098101642@qq.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。

  • 声音提醒
  • 60秒后自动更新
  • 【民政部回应何时恢复婚姻登记】民政部社会事务司二级巡视员杨宗涛表示,婚姻登记场所是人群聚集场所,部分地区暂停婚姻登记工作是对人民群众安全负责。未停止登记的地方推广用电话、网络、qq群预约登记,控制登记人数,分批分段登记,减少人员聚集和在登记机关停留时间。已停止婚姻登记地方将根据当地疫情控制情况逐渐恢复。

    15:54
  • 欧洲央行副行长金多斯:欧洲央行还没有达到逆转利率。宽松政策的副作用更明显了。

    15:54
  • 财经网站Forexlive分析师Justin Low评瑞士1月CPI月率:尽管通胀年率保持稳定,但核心通胀率有所下降,这一点令人更加担忧。这只是进一步巩固了瑞士央行维持现有货币政策不变,并可能在未来寻求更多宽松措施的观点。

    15:54
  • 【武汉两大批发市场商户开业率超过80%】商务部市场建设司司长朱小良10日称,目前武汉生活必需品供应基本正常,除冷鲜肉、鲜叶菜等少数品种存在结构性短缺外,大部分重要生活物资供应充足,未发生明显抢购或脱销断档情况。当地白沙洲和四季美两大批发市场正常营业,商户开业率超过80%,日交易量上升至3000吨以上。(国是直通车)

    15:53
  • 【日本2019年经常项目顺差增长4.4%】日本财务省10日发布的国际收支初步统计报告显示,主要受外国人入境游消费扩大影响,2019年日本经常项目顺差增长4.4%。报告显示,2019年日本经常项目顺差为20.06万亿日元(1美元约合109.8日元)。其中,商品贸易方面,由于液化天然气价格下跌等因素,进口下降5.6%至75.56万亿日元;由于汽车部件及钢铁等产品出口减少,出口下降6.3%至76.12万亿日元。货物贸易顺差减少53.8%,为5536亿日元。(新华社)

    15:53
  • 欧元兑美元EUR/USD短线波动不大,现报1.0952。

    15:53
  • 瑞士1月CPI年率:0.2%,前值:0.2%,预期:0.1%;瑞士1月CPI月率:-0.2%,前值:0%,预期:-0.2%。

    15:52
  • 英镑兑美元GBP/USD短线走低13点,现报1.2890。

    15:52
  • 【宁德时代“供电”国产特斯拉 有望拉低售价20%】全国乘联会秘书长崔东树分析认为,“随着特斯拉国产化率提升和产能爬坡,未来特斯拉国产车型的价格下探空间还是很大的。”他预计今年下半年,国产Model 3车型的售价就有望降至25万元,降幅接近20%。(新京报)

    15:51
  • 【内蒙古:对不裁员或少裁员企业返还上年度50%失业保险费】据内蒙古新型冠状病毒肺炎疫情防控工作指挥部消息,疫情期间,内蒙古对不裁员或少裁员的企业返还上年度实际缴纳失业保险费的50%,对面临暂时性经营困难的中小企业,返还标准提高到上年度6个月企业及其职工缴纳社会保险费的50%。

    15:51
  • 【商务部:2019年服务进出口总额54152.9亿元 同比增长2.8%】商务部新闻发言人表示,2019年,在服务贸易创新发展试点等政策的激励下,我国服务贸易总体保持平稳向上态势,逆差明显下降,结构显著优化,高质量发展成效初步显现。全年服务进出口总额54152.9亿元(人民币,下同),同比增长2.8%。其中,出口总额19564.0亿元,同比增长8.9%;进口总额34588.9亿元,同比减少0.4%。(第一财经)

    15:51
  • 【振华股份:疫情导致下游客户开工推迟 产品库存上升】振华化学公告,公司目前生产经营稳定,所有产能均正常开工,原材料采购能基本满足生产需要,由于疫情导致下游客户开工推迟,公司出货量减少,产品库存有所上升。公司将根据客户需求、疫情及市场变化,适度调整生产经营策略,尽可能保持生产经营的稳定。

    15:50
  • 环旭电子2月10日晚间公告,公司2020年1月合并营业收入为23.27亿元,较去年同期的合并营业收入减少27.83%,较2019年12月合并营业收入环比减少37.23%。

    15:49
  • 精测电子:与京东方集团签订了多份销售合同,合同累计金额达到6.96亿元。

    17:12
  • 华夏银行:银保监会同意本公司在全国银行间债券市场发行不超过100亿元人民币的金融债券,募集资金全部用于绿色信贷。

    17:03