首页 > DAO > Web3堆栈:解读Web2开发者需要做好哪些准备?
路安  

Web3堆栈:解读Web2开发者需要做好哪些准备?

摘要:尽管Web3的开发者生态系统在更大的网络开发者生态系统中只占很小的比例,但它似乎在快速增长——因此,尝试并确定Web3技术堆栈的组成部分很有意义。我们知道它包括用于去中心化的区块链,以及作为身份形式的

尽管Web在较大的网络开发者生态系统中,3的开发者生态系统只占很小比例,但它似乎在快速增长——因此,尝试并确定Web技术堆栈的组成部分非常有意义。我们知道它包括分散的区块链加密货币钱包作为身份形式。您可能听说过华丽的分布式存储解决方案,如星际文件系统(IPFS)。但是开发者需要学习什么才能进入Web3世界呢?此外,传统的网络技术,如JavaScript,如何适应Web3环境呢?

到目前为止,我遇到了关于Web三堆栈的最佳定义是由Nader Dabit写的,他是一家名为Edge & Node的Web公司开发者关系工程师。我第一次采访Dabit2020年8月,他在亚马逊网络服务公司担任无服务器专家。当时他刚在O 'Reilly Media出版了一本名为《全栈无服务器:使用》的书React、AWS和GraphQL《现代应用程序开发》一书。2021年4月,他将这些技能带入Web3世界。他在Edge & Node部分工作是帮助建设The Graph,用一个GraphQL区块链数据的索引和查询Web3协议。”

我联系了Dabit,问他做Web开发人员以前和他在一起web2.0公司的工作有什么不同?但首先,让我们仔细看看他Web参考文章Web三堆栈分类如下:

存储区块链区块链开发的环境文件P2P数据库API(索引和查询)身份客户端(框架和库)的其他协议

正如他所指出的,堆栈在许多方面与传统的网络架构完全不同——区块链和基于加密货币的身份是最明显的区别。Dabit还提醒说:还提醒说,Web不如工具、技术和生态系统Web2成熟。”

从网络基础设施的角度来看,Dabit告诉我,主要的区别实际上是围绕着我们所想的‘后端’技术,但在Web它们通常被称为三中‘协议’。”

前端

让我们从简单的部分开始Dabit的说法,Web客户端技术(框架和库)本质上是和的Web 2.0相同。广泛应用于前端应用JavaScript,而且就目前Web 2.就0状态而言,React领先JavaScript框架。Dabit指出:绝大多数Web由三个项目和例子组成React构建的。”

Dabit向我解释:除了实际HTTP除了客户端库,前端技术没有太大区别HTTP协议与服务器通信,"你可以使用web3.js或ethers.js与rpc[远程调用],或使用graphql客户端与The Graph对话,而不是使用fetch或axios。" Web3.js和Ethers.js都是JavaScript库,使开发者能够与以太坊区块链互动。

此外,身份和我们处理身份的方式在前端也不同,Dabit说。要读取数据,你不需要知道用户的任何信息,因为几乎所有的数据都是公开的。但要写入数据,通常需要连接到用户的钱包。有几种方法可以做到这一点。在桌面应用程序中,用户通常会添加一个浏览器来扩展他们的钱包,它会自动向网络注入一个全球窗口对象(例如Solana、Ethereum、Arweave)。或者在移动端,它将允许您在钱包应用程序中进行认证,并在签署交易后重新定位。

假如你试图购买加密货币或NFT,或尝试过dapp(去中心化应用),那么你很可能已经用过了MetaMask——它有一个览器扩展Chrome、Firefox和基于Chrome浏览器,如Brave。MetaMask由ConsenSys所有,该公司有理由称自己为“领先的以太坊软件公司”。

ConsenSys还在Web三中领先IDE(综合开发环境)之一。Truffle使用以太坊虚拟机(EVM)区块链开发环境、测试框架和资产管道。此外,还提供智能合同生命周期管理和自动化合同测试。

学习以太坊(和Rust)

现在我们来看看Web堆栈更复杂的方面。到目前为止,大多数开发人员都熟悉区块链的概念——基本上,它是一个分布式的数据分类账本。但有许多不同类型的区块链。最重要的两种是比特币和以太坊(不巧合的是,与这些区块链相关的加密货币是两个市场领导者)。但比特币的可编程性就像—就像以太坊研究员一样Justin Drake在播客《Web3 Breakdowns》以太坊是一个完全可编程的图灵完整计算机。

以太坊的可编程特性导致了以区块链为重点的网络开发堆栈的新模式——Web3。以太坊的原则之一是理论上你可以在上面建造任何东西web 2.这是一个网络平台。以太坊是最大的Web3平台,它也与其他区块链兼容。因此,成为Web开发人员的主要方式是学习如何使用以太坊。

你可能听说过Solidity,以太坊区块链的编程语言有点相似JavaScript。虽然这是事实,但是Solidity仅用于为区块链编写智能合同——在区块链上放置任何数据和数据指令。

在区块链世界学习Solidity和EVM(或以太坊虚拟机)可能是区块链开发人员的最佳选择,Dabit在他的文章中解释说:使用这种技能组合(和技术堆栈),你不仅可以使用以太坊,还可以使用其他以太坊的二层、侧链,甚至其他区块链,如Avalanche、Fantom和Celo构建。”

但是,作为对Web 2.0世界的另一种认可,Rust也正在成为智能合约开发人员的必备技能。Dabit 将 Solana、NEAR 和 Polkadot 列为具有“一流的 Rust 支持三个区块链示例。

Dabit告诉我:我想Solidity和Rust它是智能合同开发中使用最多、需求最大的语言。他补充说,由于经验丰富的智能合同程序员相对较少,他们可以很容易地得到每年大约几十万美元,我甚至看到一些经验最丰富的程序员的年薪约为100万美元。

如何存储和查询数据

Web3开发中最棘手的部分之一是数据的存储和使用。区块链虽然擅长成为不可变数据的去信任链,但在存储和处理大量数据方面也非常低效——尤其是对于dapps。这就是 IPFS、Arweave 和 Filecoin 等文件存储协议的用武地点。

Arweave这是一个开源项目,它将自己描述为允许您永久、可持续地存储数据的协议,只需要预付一笔费用。它本质上是一个点对点(P2P)网络,但己的加密术语——它的采矿机制被称为"简单的随机访问证明(SPoRAs)",开发人员可以将应用程序部署到 "permaweb"("一个建立在Arweave以上永久分散网络)。

更复杂的是,dapp开发人员可以选择使用链外解决方案,即主区块链以外的数据存储。两种常见的形式是侧链(二级区块链)和所谓的二级(L2)比特币闪电网和以太坊等解决方案Plasma。更多关于如何在Web数据管理信息在3中,请查看数据API公司Fauna的Shashank Golla最近在The New Stack上面发表的文章。

至于如何在区块链上索引和查询数据,这是一个相对较新的开发领域。但如上所述,Dabit我们正在开发解决方案-由GraphQL驱动的The Graph。此外,它还允许开发人员在应用程序中使用GraphQL直接从L1或L查询2链。

去中心化:Web开发者的困境

基于Dabit所描述的Web三堆栈,很明显,传统的网络编程技-从JavaScript到Rust——将在Web为您提供良好的开发帮助。但您还必须学习如何使用智能合同编程区块链,并适应加密文件存储和链下解决方案的陌生世界。

从开发者的角度来看,Web目前似乎正处于过渡期,试图找到摆脱正确的方法Coinbase、OpenSea和Alchemy依赖于等待集中服务的方法。但这是所有复杂性的来源,因为真正的分散dapps很难实现。

我很好奇Web2022年以后,堆栈将如何发展,因为它正在寻找实现分散宣传的方法。同时,如果您想了解更多,请查看Nader Dabit的Web3开发者指南。去年10月,他在那里Next.js Conf他在演讲中解释了堆栈(这是本文专题图片的来源)。

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。