盘点 5 个 Web3 重点技术堆栈
上一篇文章(Web2与Web3开发的不同之处)我们了解了什么是区块链,开发者如何从Web2转变到Web3,Web2的架构介绍以及Web2的优缺点。本文我们将展开讲解Web3的前端和后端架构、索引解决方案、存储解决方案,以及通证化和Token标准。
在去中心化的环境中,参与者彼此不认识,需要一种无需信任的共识机制来提供单一的真实来源,并确保没有参与者作弊。
一般来说,区块链可以通过密码学和博弈论的结合保持去中心化和无需信任。密码学提供安全性,博弈论模型设计经济激励措施以促成期望产出。结合安全和激励机制为构建强大的去中心化网络奠定了基础,在该网络中,应用程序可以构建在无需信任的环境之上。
此外,建立在区块链之上的去中心化应用程序通常遵循与区块链本身类似的方法,其中同质化Token在去中心化基础设施中提供可持续性和所有权机制,我们将在后续展开讨论通证化的内容。
1
后端架构
在Web3开发中,架构大相径庭,主要原因在于去中心化,其消除了中心化后端和数据库的需求。在去中心化应用程序中,智能合约可以被视为通过特定语言编写的程序,其中包括逻辑,如同它们是应用程序的后端。智能合约将被部署至区块链并在其上运行,所有的代码和变量都存储在其中。我们再回到Twitter的示例,在发起请求以发布新内容时,智能合约将为要发生的情况进行定义。
成功部署到区块链后,合约可以通过其地址进行唯一标识和访问。地址是唯一的字符串,用于标识特定账户所处的位置。账户可以是智能合约或外部拥有账户(EOA),两者均可以持有余额并与智能合约交互。两者之间的主要区别在于EOA由用户控制,而智能合约由代码控制。我们将在后续部分展开讲解。
要在Web3版本的Twitter上发布新内容,用户需要将交易连同一些数据发送到Twitter的智能合约地址,以通知智能合约需要执行什么功能以及要发布的数据。
在Web2领域中,交易通常被认为是两方或多方之间的交换或交互。该基本概念也同样适用于Web3。交易定义了需要采取的行动和相关方等。此外,交易可以发生在两个EOA之间或EOA和智能合约之间。
区块链和EVM如何将应用程序带入Web3
区块链上的每个区块都是由交易组成的,但交易必须由以太坊虚拟机(EVM)执行才能被包含在区块内。EVM可以被当作是在区块链之上运行的全局可用软件。它的主要目的是执行用户和智能合约之间的交易,并计算这些交互产生的新状态。新的计算状态是新的区块的基础。
由于Moonbeam实现了EVM,因此它是一个完全兼容以太坊的区块链和智能合约平台。这使开发者能够像与以太坊交互一样与Moonbeam交互,并使用来自以太坊生态系统的熟悉且好用的工具。
在以太坊和以太坊兼容的区块链(例如Moonbeam)中,智能合约是针对EVM的语言进行编写,例如Solidity和Vyper。为了让EVM理解Solidity等智能合约语言,Solidity代码必须先编译成字节码才能让EVM执行。其运作方式与React中的TypeScript代码或JSX相似,代码被编译成JavaScript以供浏览器呈现。字节码包含程序的所有逻辑,存储在部署时计算的给定地址。当用户与智能合约交互时,将会发送交易给合约的地址。该交易包含EVM在程序执行后计算新结果状态所需的所有指令。
与很多Web2开发环境一样,Web3有很多工具可以帮助开发者编写智能合约、部署合约、创建测试等。您可以使用Remix等集成开发环境或Hardhat或Foundry等开发框架。这些工具的目标是帮助创建部署工作流程,简化Web3开发人员调试、测试和与智能合约交互的操作流程。
总结来说,后端架构由智能合约(程序)组成,其被编译为字节码,由EVM(全局软件)进行执行,并存储在区块链(去中心化数据库)上的唯一地址中。
2
前端架构
现在我们已经了解了后端,那么一起来看看前端是如何与智能合约通信的。
Web3应用程序的前端与Web2应用程序相似,其显示数据并支持用户交互。但是,从区块链请求数据和向区块链提交数据的方式各不相同。因为,Web3版本的Twitter可能与Web2版本的外观相同,但向平台提交内容的过程可能会有所不同。
从前端检索链上数据
由于区块链分布在多个节点上,每个节点均有状态记录,其中包括智能合约数据和部署至区块链的代码。您将查询众多中心化节点中的其中一个节点(这些节点通常被成为提供商),而不是像Web2中一样从前端查询中心化服务器或API。
以Moonbeam为例,您可以启动自己的节点或使用第三方提供商,如OnFinality或任何Moonbeam上支持的端点提供商。启动自己的节点可能会出现标准笔记本无法处理的设备要求。第三方提供商配备了运行节点所需的基础设施,为您提供快速且可靠的访问。在Web3开发中,可以通过HTTP和/或WSS端点访问提供商,类似于Web2中的API提供商。
每个节点可以通过特定于区块链的JSON-RPC API进行交互,该API定义了可以用于区块链交互的数据结构和方法的标准。底层协议与Web2领域中找到的JSON-RPC协议相同。如果您熟悉JSON-RPC,其基本用途与其他API协议(如REST或GraphQL)相同,能够通过请求和响应周期实现通信。Web2与Web3协议之间的区别在于以太坊JSON-RPC为EVM兼容链实现的API。
像Ethers.js、Web3.js和Web3.py等以太坊库充当JSON RPC API上的包装器。通过这些库,您可以轻松连接到JSON-RPC HTTP端点并调用任何JSON-RPC函数。在Web2领域中,这些库能够与用于JSON-RPC的Jayson或用于REST的Axios相媲美。得益于Moonbeam的以太坊兼容性,您可以使用任何以太坊库连接到提供商并使用熟悉的语言发起JSON RPC请求以获取链上数据。
为了读取链上数据,您的前端将包含使用连接到提供商的Web3开发库的逻辑,这将在之后用于从区块链请求数据并处理响应。
举例而言,您要在Twitter上查看包含特定标签的帖子。在Web2中,前端将向后端发起特定标签的请求,通常使用库来处理请求和响应。后端会从数据库检索相关联的帖子并将响应返回至前端,其中会显示包含给定标签的帖子。
而在Web3中,前端会通过提供商向Twitter的智能合约发起请求,通常使用以太坊库处理请求并响应。 提供商将从区块链中检索帖子,此过程不涉及任何交易。只有在需要更新区块链状态时才会有交易产生。
请注意,根据查询的类型,您可能需要研究索引解决方案以提高效率。另外,您可能也需要研究存储解决方案。举例而言,您可以将视频和图片更新至Twitter,然而,将这些类型的条目存储在区块链上的费用是相当昂贵且不切实际。我们将在后面的部分展开讨论此话题。
从前端提交链上数据
要在链上提交数据,您需要发送一笔交易,以修改区块链状态并将其提供给区块链上的所有节点。在执行操作之前,您要创建一个账户。如前所述,账户类型有两种:外部拥有账户(EOA)和智能合约。要发起一笔交易,账户必须为EOA。智能合约只能发送以响应收到的交易。
EOA由唯一的密钥对组成,包含公钥和私钥。公钥类似于电子邮件地址,可公开共享。私钥类似于密码,用于对交易进行加密签名,区块链验证这些交易是否与您的公钥匹配。请注意,私钥应保持私密状态,请勿将其共享于他人。如果将私钥共享于他人,则其他用户可以直接访问您的账户和资金以代表您发送交易。
在Web2中,您将使用电子邮件地址和密码登录Twitter,然后可以在Twitter上自由发布新内容。该流程在Web2和Web3 中是不同的。在Web3版本的Twitter中,你无需登录平台,但当你发布新内容时,你需要签署交易以将新内容提交到链上。这使您能够直接控制改变状态。
发送交易时,您还需要有资金用于支付交易费(即gas费)才能提交交易请求。gas费类似于信用卡手续费,即执行交易所需的资金金额。gas费能够防止网络过载的情况,并可用于为区块链的共识模型提供动力。
签署交易需要用到签名者。签名者使用私钥创建必要的加密签名来发送交易。如MetaMask等钱包通常用于管理资金和私钥,以便轻松发送交易。钱包可以充当签名者和提供者,因为除了签署交易之外,它们还可以提供与区块链上节点的连接。
钱包主要分为两大类:热钱包和冷钱包。热钱包通常与互联网保持连接,因此安全性低,但提供较好的用户体验。而冷钱包在离线环境中存储密钥并签署交易,相对来说安全性高,然而随之而来的是用户体验较为困难,用户必须执行多个步骤才能发送交易。
要在Web3的Twitter中发布新内容,交易将在前端初始化,系统会提示您使用签名者签署交易。该交易包括调用负责发布新内容的智能合约功能的指令,以传递要发布的内容。交易签署成功后,则会提交给提供商,由提供商提出请求。EVM将执行请求,并将交易添加到区块链上的最新区块中。
3
索引解决方案
如上所述,您可能需要根据查询类型使用索引器提高查询效率。返回Twitter示例,索引器可以用于高效索引和检索数据,从而快速搜索特定帖子或包含特定主题标签的所有帖子。
对于Web2和Web3来说,索引器具有相同的作用:使高效索引数据变得更简单。Web2领域中索引器的其中一个示例是Google,您可以搜索特定信息,Google索引整个网络为您提供搜索结果。而在Web3中,有更多的高效索引数据的解决方案,例如The Graph、SubQuery和Subsquid。
您可以使用索引器查询特定于一组智能合约的数据以及如何将数据转换到易于前端使用的实体。对于这些索引器来说,GraphQL作为查询语言,使Web2开发者更容易上手。
使用索引器时,您将发起请求从前端直接向索引器的端点查询链上数据,然后索引器将从区块链收集数据并将其返回给前端。
4
存储解决方案
回到上述提及的Twitter示例,您可以将视频和图片上传至Twitter。然而,将这些类型的条目存储在区块链上的费用是相当昂贵且不切实际。如此一来,在Web3开发中,需要考虑存储解决方案以实现特定格式或大量数据的存储。
在对比Web2和Web3的存储时,需要讨论主要一个方面是去中心化。在Web2中,基本的存储方式是数据库,而在某些案例中,您可以会需要用到中心化解决方案进行存储,例如Amazon Web Services (AWS)。
尽管区块链作为状态机并存储智能合约数据,但是对于存储dApp依赖的所有内容(例如前端文件、图片等)可能相对来说偏贵且低效。
为了解决此问题,很多开发者将目光转向InterPlanetary File System (IPFS)。IPFS是一个专为存储和分享内容而设计的去中心化链下协议。与区块链类似,它将数据分布式存储在多个节点中。当内容被添加到一个节点时,将立即被网络中的所有其他节点所使用。
与通过节点连接访问区块链的方式一样,当使用IPFS作为存储解决方案时,您可以通过IPFS节点访问您存储的内容。
为了让Twitter能够以可行且有效的方式存储Web2中前端所需的图像和视频,可以使用AWS来实现。然而在Web3中,您可以考虑如IPFS这类的解决方案。
将IPFS等存储方案集成至dApp时,您可以使用特定的IPFS库(例如JS-IPFS或web3.storage)与IPFS上的去中心化数据存储交互。就架构方面而言,您的前端将发送请求至其中一个库,以检索存储的数据或上传需要从IPFS节点存储的数据,然后将响应发送回前端。
5
通证化和Token标准
如上所述,通证化是构建在去中心化和无需信任基础设施之上应用程序的关键因素。
我们再回到Twitter示例,以真实可行的办法来定义通证化。Twitter拥有所有的基础设施,为了方面用户免费使用其产品,又创建了一个经济模型,使用户拥有他们收集的大部分数据。
在Web3版本的Twitter中,用户需要支付一笔小费用才能发送交易以发布新内容,该费用可能以区块链的原生Token支付。但是想象一下,Twitter在Moonbeam上创建一个dApp并上线自己的Token以在平台内使用。Twitter可以使用ERC-20标准创建一个同质化Token为平台提供动力,而Token可以用于支付gas费用,产生收益、激励创建者等。甚至可以为用户改善体验而免除费用。所有这些均得益于区块链原生提供的透明度、可追溯性和安全性。
ERC-20 Token是支持智能合约的同质化Token,遵循为同质化Token提供常用接口的EIP-20标准,这也是通证化最常使用的标准之一。此标准类型确保不同的ERC-20 token能够以统一的方式集成。如此一来,开发对ERC-20标准的支持意味着您的dApp可以支持任何ERC-20 Token。然而, ERC-20 Token并非是Web3领域中存在的唯一一种Token,根据不同类型的应用程序会有其他不同的Token。
如果Twitter想要为满足特定参与标准的用户分发非同质化Token,则可以转向ERC-721 Token(也称为非同质化Token,即NFT)。ERC-721 Token与ERC-20在理论上差不多相同,也是定义合约必须遵循的接口的智能合约。主要的区别在于ERC-20 Token是同质化,而ERC-721 Token是非同质化。
那么,什么是通证化?可以说是将资产、知识产权、价值、信息等的所有权转化为数字Token的过程。在区块链中,数字Token可以被轻松存储和转移,同时又继承了区块链提供的核心优势,包括透明度、可追溯性和安全性。此外,因为区块链在本质上是全局性的,通证化提供了相对简单的机制,只需简单的几个单击操作即可实现更广泛的访问。Token也将继续在新的去中心化应用和协议的开发中发挥重要作用。
Moonbeam是一个智能合约平台,用于构建跨链互连应用程序,能够访问任何链上的用户、服务。通过将来自以太坊、Cosmos、波卡等功能整合到一个平台中,Moonbeam解决了当今用户体验碎片化的问题,解锁了真正的互操作性,并为下一代应用程序奠定基础。
Moonbeam平台使用集成的跨链信息传递,允许开发者创建访问多个远程区块链服务的智能合约。通过此方式结合Moonbeam的开发者友好型EVM平台、各类工具支持和Substrate架构,为构建互连应用程序提供理想化的开发环境。
如需了解更多信息,请访问:
https://moonbeam.network/
Moonbeam
欢迎加入Moonbeam社区
期待与您携手打造去中心化跨链世界 ~
△ 获取Moonbeam官方最新资讯
更多Moonbeam信息
官网: https://moonbeam.network
Twitter: https://twitter.com/MoonbeamCN
Telegram: https://t.me/moonbeam_CN
Discord: https://discord.gg/skPfXvJWG7
中文电报群助手:@MoonbeamSister
比推快讯
更多 >>- Magic Eden:将于4月25日扩展至Base网络
- 距比特币第四次减半已不足8个小时,剩余49区块
- 半小时前Coinbase Institutional地址转出超150万枚UNI
- Coinbase:MNI-USD交易对已处于全面交易模式
- 今日9支现货比特币ETF减持472枚 BTC,价值约3044万美元
- Pyth Network推出MERL/USD价格源服务
- Coinbase Custody将于5月停止对Unifi Protocol DAO (UNFI) 和PlayDapp (PLA)的支持
- Polygon Staking地址转入4000万枚MATIC,价值超2700万美元
- UniSat:Runes上线7天内,etch和铸造可获得三倍积分奖励
- Telegram Wallet发布五项更新,支持用户直接向其 Telegram 联系人发送代币和 NFT
- 50 分钟前 Tether 向 Cumberland DRW 出售 9000 万枚 USDT
- MyShell推出基于EigenDA与Optimism的AI消费者L2网络,测试网将于下周上线
- BTC短线跌破64000美元
- 数字资产市场服务提供商Skynet Trading完成新一轮融资,Edessa Capital等参投
- 美股数字货币板块走高
- 路透社:美国债务负担恶化引发投资者关注比特币和黄金
- Lambda完成180万美元天使轮融资
- Runestone总成交额突破2500枚BTC
- HTX Ventures战略投资Merkle 3s Capital
- 贝莱德IBIT持仓超27.3万枚比特币
- 新加坡加密支付公司Triple-A新增PYUSD支持
- 美SEC:孙宇晨频繁赴美,美法院已具备相应管辖权
- 韩国监管机构推迟批准Crypto.com当地部门领导层变动
- 新加坡支付公司Triple-A 推出对PayPal稳定币的支持
- Base发布2024年第6轮Base建设者资助名单
- PADO与ArweaveAO合作发起可验证机密计算VCC
- 基于以太坊区块链的影视支付平台FilmChain完成280万欧元融资,Holt InterXion领投
- 企业忠诚度平台Superlogic完成760万美元战略轮融资,Amex Ventures等参投
- 俄罗斯国家杜马金融市场委员会主席:数字金融资产可能取代法定货币用于国际支付
- RWA及证券型代币服务提供商Cspro完成战略轮融资,Taisu Ventures参投
- SolanaAI项目gm.ai发布gmID
- ETH跌破2900美元
- BTC跌破60000美元
- 美联储Bostic重申预计今年将进行一次降息
- 美联储Kashkari:可能要等到2025年才能降息
- 隐私优先移动运营商Cape完成6100 万美元融资,A-Star 和 a16z 共同领投
- 10x Research联创:比特币在未来几周内可能会跌至 50,000 美元
比推专栏
更多 >>观点
项目
比推热门文章
- Magic Eden:将于4月25日扩展至Base网络
- 距比特币第四次减半已不足8个小时,剩余49区块
- 半小时前Coinbase Institutional地址转出超150万枚UNI
- Coinbase:MNI-USD交易对已处于全面交易模式
- 今日9支现货比特币ETF减持472枚 BTC,价值约3044万美元
- Pyth Network推出MERL/USD价格源服务
- Coinbase Custody将于5月停止对Unifi Protocol DAO (UNFI) 和PlayDapp (PLA)的支持
- Polygon Staking地址转入4000万枚MATIC,价值超2700万美元
- UniSat:Runes上线7天内,etch和铸造可获得三倍积分奖励
- Telegram Wallet发布五项更新,支持用户直接向其 Telegram 联系人发送代币和 NFT