• 简体版 | 繁體版
  • 联系我们
  • 加入我们
  • 关于我们
  •  
  • 首页
  • 快讯
  • 价值号
  • 视频
  • 专题
  • 滚动
  • 入驻价值号
  • 碳链APP
    微信公众号

    扫码下载App

  • 登录
  • 微信公众号

    微信公众号

导航
  • 首页
  • 快讯
  • 区块链+
  • 价值号
  • 视频
  • 专题
  • DeFi优选
碳链价值APP
专注服务于金融科技和区块链
立即打开

一文了解Web3 技术堆栈的构建模块

区块链资讯区块链资讯  •  2022-01-07
什么是 web3 堆栈?
原文标题:《定义 web3 堆栈》原文作者:Nader Dabit原文编译:The Graph 社区成员

想在 web3 上进行构建?Nader Dabit 在一份介绍性指南中指出了 web3 技术堆栈的构建模块

在「web3 上构建」的下一章节中,Edge & Node 开发者关系工程师 Nader Dabit 阐述了 web3 堆栈,以及开发者如何将在 web3 上构建的各个层面概念化。

我在 2021 年 4 月过渡到 web3,此前我做了大约 10 年的传统全栈开发者。在潜心研究所有这些新技术和想法时,我想知道的第一件事是「什么是 web3 堆栈?」。

当构建一个传统的网络或移动应用程序时,我经常依赖某几个构建模块来完成工作:

- API/应用服务器(REST 或 GraphQL)

- 验证层(托管或手动)

- 数据库

- 客户端框架、平台和库

- 文件存储

使用这些核心组件,我可以建立我想要的大多数类型的应用程序,或者至少可以达到大部分的目的。那么,这在 web3 中是什么样子的呢?

事实证明,这个问题的答案并不那么直截了当,因为:

- 此范式在很多方面都完全不同

- web3 的工具、技术和生态系统都没有 web2 那么成熟

对我来说,也更难理解如何启动、运行和建立 web3 应用程序,因为我是以与 web2 世界相同的方式来处理问题的。

在过去 8 个月左右的时间里,经过工作、研究、实验和建设,我想和大家分享一下我的心得。

什么是 web3?

在我们定义 web3 堆栈之前,让我们试着定义一下 web3:

Web3 是实现完全去中心化的应用的协议栈。

有了这个去中心化的技术栈,我们就可以开始构建去中心化的应用,这些应用有其自身的意义和特点。

web3 的一些特点是:

- 去中心化的网络基础设施

- 所有权(数据、内容和平台)

- 本地数字支付

- 自主的身份

- 分布式的、无需信任的、强大的基础设施

- 开放、公共、可组合的后端

虽然一些建立在去中心化技术堆栈上的应用程序将取代它们的前辈,但区块链启用的新源语也使新的应用程序范式成为可能。

原生的数字支付和公共后端基础设施--如机器学习、移动设备、虚拟现实和其他技术源语、平台和构建模块--使全新类型的应用程序得以建立,有些是尚未想象到的。

这是否意味着一切都将被 web3 取代?不一定。虽然我认为对于某些类型的应用程序来说,建立在去中心化的技术堆栈上是一个更好的选择--就像几乎任何技术决定一样,这取决于你要建立什么。

现在让我们开始深入了解 web3 的堆栈,分成以下几类:

- 区块链

- 区块链开发环境

- 文件存储

- P2P 数据库

- API(索引和查询)

- 身份

- 客户端 (框架和库)

- 其他协议

区块链

有无数的区块链,你可以选择建立在其上。没有一个是 "最好的",相反,你应该考虑它们之间的各种权衡。

在学习新东西时,有一件事对我来说常常很重要,那就是将帕累托原则应用到我所学的东西上。也就是说,什么是最有效的方式来获得该数量的时间和努力的结果。遵循这个想法,我可以在最短的时间内学习新东西的同时获得最大的牵引力和动力。

在区块链领域,学习 Solidity 和 EVM(或 Ethereum 虚拟机)可能是作为区块链开发者入门时的最佳选择。使用这种技能(和技术栈),你不仅可以为以太坊,而且可以为其他以太坊第二层、侧链,甚至其他区块链(如 Avalanche、Fantom 和 Celo)构建。

也就是说,Rust 在区块链领域开始变得越来越流行,Solana、NEAR、Polkadot 等都有一流的 Rust 支持。你学习这两种语言可能都不会出错,但对于初学者来说,如果今天有人问我,我会说 Solidity 仍将是更好的选择。

除了这些建议,这里有一个不全面的区块链样本,它在技术、实用性、社区、势头和未来可行性方面有一个坚实的组合:

- 以太坊--原创智能合约平台

- ZKrollups:ZKSync, Starknet, Hermez - 高吞吐量的以太坊第 2 层,但不与 EVM 原生兼容

- Optimistic rollups: Arbitrum & Optimism - 以太坊第 2 层,与 EVM 兼容(在此了解更多关于 Optimistic rollups 和 ZKrollups 的区别)。

- Polygon - 以太坊侧链

- Solana - 吞吐量高,交易成本低,区块时间快,但比 EVM(Rust)更难学习

- NEAR - 底层区块链,可以用 Rust 或 Assemblyscript 编写智能合约

- Cosmos - 一个互操作的区块链的生态系统

- Polkadot - 基于区块链的计算平台,使建立在其上的区块链能够在它们之间执行交易,创建一个互连的区块链互联网

- Fantom - EVM 兼容的底层区块链

- Avalanche - EVM 兼容的底层区块链

- Celo - EVM 兼容的底层区块链,旨在使任何拥有智能手机的人都能轻松发送、接收和存储加密货币

- Tezos - 非 EVM 兼容的底层区块链,很多 NFT 项目正在使用它

区块链开发环境

对于 EVM 开发,有几个好的开发环境可以使用:

- Hardhat(JavaScript)是一个较新的选择,但它正在获得越来越多的青睐。他们的文档很好,工具和开发人员的体验很好,我个人一直在用它来构建去中心化应用。

- Truffle(JavaScript)是一套在 EVM 上构建和开发应用程序的工具。它很成熟,经过实战考验,并且有很好的文档。它已经存在了一段时间,许多开发者都在使用它。

- Foundry 是一个来自 Paradigm 的新的 Solidity 开发环境,显示出很大的前景。它的主要特点是能够在 Solidity 中编写测试,支持模糊测试,以及速度(它是用 Rust 编写的)。我在这里写了一个关于它的单独介绍。

- Brownie 是一个基于 Python 的智能合约开发和测试框架,用于 Solidity/EVM 开发。

对于 Solana 的开发,Anchor 正在迅速成为新的开发者的入门点。它提供了一个 CLI,用于构建和测试 Solana 程序的脚手架,以及你可以用来构建前端的客户端库。它还包括一个 DSL,可以抽象出开发人员在开始使用 Solana 和 Rust 开发时经常遇到的许多复杂问题。

文件存储

我们在 web3 中把图片、视频和其他文件存储在哪里?在链上存储这么大的文件通常是非常昂贵的,所以我们可能不想把它们存储在那里。

相反,我们可以使用少数几个文件存储协议中的一个:

- IPFS--点对点文件系统协议

- 优点:它很可靠,有很好的文档,有一个庞大的生态系统

- 缺点:如果数据没有固定,就会丢失。

- Arweave - 允许你永久地存储数据,只需支付一笔交易费。我是 Arweave 的粉丝,在这里写了一篇关于它的博文。

- Filecoin - 来自 Protocol Labs,也是建立 IPFS 的团队,它是一个协议,旨在提供一个持久的数据存储系统。有一些方法可以让开发者建立在 Filecoin 上,包括 web3.storage,这很不错。

- Skynet - 我还没有在生产中使用它,但已经试过了,它似乎工作得很好。这里的 API 看起来很棒。我有一些问题,比如数据的持久性有多长,以及 Skynet 与其他协议的互操作性。

P2P 数据库

除了文件存储和链上存储外,你可能还需要在链外存储数据。你可以使用这些类型的解决方案,类似于你在传统技术堆栈中使用数据库的方式,但它们是在去中心化的网络上的 N 个节点上复制的,因此更可靠(至少在理论上)。

几个选择是:

- Ceramic Network - 一个去中心化的开源平台,用于创建、托管和分享数据。Ceramic 也有一个很好的身份协议,我将在后面谈及。可能是我目前最喜欢的链外存储解决方案。这里有一个相当不错的演示。

- Textile ThreadDB - 一个建立在 IPFS 和 Libp2p 上的多方数据库。如果我理解正确的话,它目前可能正在经历一个大的 API 变化。我试过了,它显示了一些前景,但文档和 DX 需要一些改进。

- GunDB - 一个去中心化的、点对点的数据库。Gun 已经存在了相当长的时间,一些相当有趣的应用已经用它建立。

就成熟度而言,我的看法是,链外存储解决方案的生态系统还没有达到建立一些开发者可能想要的更高级的用例所需要的程度。这里的一些挑战是实时数据、冲突检测和冲突解决、写入授权、文档和一般开发者经验。

将链外数据解决方案与区块链协议相结合,是我们在拥有能够支持任何类型应用的完全去中心化协议栈之前需要跨越的最后一个大障碍之一。

API(索引和查询)

我们与区块链互动和在区块链之上构建的方式与传统技术栈中的数据库有很多不同。对于区块链,数据不是以一种可以有效或容易地直接从其他应用程序或前端消费的格式存储的。

区块链是为写操作而优化的。你经常听到以每秒交易量、区块时间和交易成本为中心的创新发生。区块链数据在一段时间内以区块形式写入,使得除了基本的读取操作外,其他的都不可能。

在大多数应用中,你需要像关系型数据、排序、过滤、全文搜索、分页和许多其他类型的查询功能。为了做到这一点,需要对数据进行索引和组织,以便有效地进行检索。

传统上,这是数据库在集中式技术栈中所做的工作,但在 web3 栈中缺少索引层。

The Graph 是一个用于索引和查询区块链数据的协议,它使这一过程变得更加容易,并为这样做提供了一个去中心化的解决方案。任何人都可以建立和发布开放的 GraphQL APIs,称为子图,使区块链数据易于查询。

要了解更多关于 The Graph 的信息,请查看这里(https://thegraph.com/docs/)的文档或我在这里的教程(https://dev.to/dabit3/building-graphql-apis-on-ethereum-4poa)。

身份认证

在 web3 中,身份认证是一个完全不同的范式。在 web2 中,认证几乎总是基于用户的个人信息。这些信息通常是通过一个表单或 OAuth 提供者收集的,要求用户交出这些信息以换取对应用程序的访问。

在 web3 中,身份识别完全围绕着钱包和公钥密码学的概念。

虽然 "钱包 "这个名字有它的作用,但我发现刚接触 web3 的人觉得这个术语很混乱,因为它与认证和身份有关。我希望将来我们能想出一些其他的方法来表达钱包是什么,因为它不仅结合了金融的各个方面,也结合了身份和信誉。

作为一个开发者,你将需要了解如何以各种方式访问用户的钱包和地址并与之互动。

在一个非常基本的层面上(也是一个非常常见的要求),你可能想请求访问用户的钱包。要做到这一点,你通常能够在窗口环境(网络浏览器)中访问用户的钱包,或者使用像 WalletConnect 或 Solana 的钱包适配器。

例如,如果他们有一个可用的 Ethereum 钱包,你将能够访问 window.ethereum。对于 Solana(window.solana)、Arweave(window.arweaveWallet)和其他少数的钱包也是如此。WalletConnect 很适合移动网络和 React Native,因为它允许用户直接从设备上使用他们的移动钱包进行授权。

如果你想自己处理认证,你可以让用户签署交易,然后在某处解码以认证用户,但这通常需要一个服务器。这里是一个使用 EVM 钱包的例子,这里是一个使用 Solana / Phantom 的例子。

以去中心化的方式管理用户资料呢?Ceramic Network 为管理去中心化的身份提供了最强大的协议和工具套件。他们最近发布了一篇博文,概述了他们最近的一些更新,并给出了一些关于所有工具如何协同工作的指南。我想从那里开始,然后探索他们的文档,以获得对如何开始构建的理解,并考虑查看我在这里使用 Ceramic self.id 的例子项目。

如果你想获取一个用户的 ENS 文本记录,ensjs 库提供了一个很好的 API 来获取用户数据:

SpruceID 也是一个看起来很有前途的东西,但我还没有试过。

Ceramic 和 Spruce 都实现了 W3C 的 DID 规范,这本身也是我认为是 web3 的一个组成部分。既然如此,任何 DID 的集中实现都违背了该规范试图实现的理念。

客户端

就 JavaScript 框架而言,你真的可以用任何你想要的东西来构建,因为客户端的区块链 SDK 大多是框架无关的。也就是说,绝大多数的项目和例子都是在 React 中构建的。还有一些像 Solana Wallet Adapter 这样的库,为 React 提供额外的工具,所以我说学习或熟悉 React 可能是一个明智之举。

对于以太坊的客户端 SDK,有 web3.js 和 ethers.js。对我来说,Ethers 更容易接近,并且有更好的文档,尽管 web3.js 存在的时间更长。

在 Solana,你可能会使用 @solana/web3.js 和/或 Anchor。我发现 Anchor 客户端库是我构建 Solana 程序的首选,因为我反正也在使用 Anchor 框架,而且我发现它比 @solana/web3.js 更容易理解。

其他协议

Radicle 是一个建立在 Git 上的去中心化的代码协作协议。它可以被认为是 GitHub 的一个去中心化版本。

Livepeer 是一个去中心化的视频流媒体网络。它已经很成熟,并被广泛使用,网络上有超过 7 万个 GPU 的直播。

Chainlink 是一个预言机,能够访问真实世界的数据和链外计算,同时保持区块链技术固有的安全性和可靠性保证。

总结

这篇文章将是我在学习、试验和收集 web3 开发人员的反馈时跟上的动态文档。

如果你有任何反馈意见或关于我在这里遗漏的想法,请与我分享你的想法。看到围绕 web3 发生的所有活动,让人兴奋不已,因为开发者们正在跃跃欲试地参与进来。虽然基础设施仍在不断发展,但建立真正的去中心化协议和应用程序的愿景是非常重要的,它允许人们协调,而不必将权力和控制权交给大公司,我们正在接近实现这一愿景。

展开全文
打开碳链价值APP  查看更多精彩资讯
声明:本文内容为作者独立观点,不代表碳链价值立场,且不构成任何投资理财建议。
0 0
web3

扫一扫,分享到微信

相关推荐

观点:Web3 更应关注类型,而非去中心化程度 深度

观点:Web3 更应关注类型,而非去中心化程度

链捕手 2022-05-17 深度
去中心化web3
只关注权力下放的程度,而不是类型,会让我们误入歧途
一文梳理 Web3.0、价值互联网和元宇宙三者分类依据与关系 滚动

一文梳理 Web3.0、价值互联网和元宇宙三者分类依据与关系

付少庆 2022-05-17 滚动
web3NFT元宇宙
Web3 中的创作者经济范式大跃迁:NFT、问责制、DAO、模因化 滚动

Web3 中的创作者经济范式大跃迁:NFT、问责制、DAO、模因化

SupraOracles 2022-05-17 滚动
web3
Web2中的自我表达经历了爆炸式增长,众多内容创作者因此受益。然而创作者经济的困境也早已显现,Web3 将如何帮其实现范式跃迁?

碳链快讯更多 ›

2022-05-28

印度电商巨头Meesho宣布将探索区块链、元宇宙和NFT用例

2022-05-28

Web3 AR游戏初创公司Jadu完成3600万美元A轮融资,Bain Capital领投

2022-05-28

《金田一少年の事件簿》发行30周年“独家”NFT

2022-05-28

报告:全球加密意识和采用率都在上升

2022-05-28

英国加密货币对冲基金通过套利策略今年仅损失0.6%,同期比特币下跌约40%

2022-05-28

华尔街人资深人士推出加密对冲基金Aqxa Research

2022-05-28

Mike Novogratz:当美联储暂停紧缩政策时,比特币会引领下一次反弹

2022-05-28

德意志银行:加密货币肯定需要监管

2022-05-28

英国FCA对加密资产发行、监管义务和托管规定进行了商讨

2022-05-28

Nansen报告:TerraUSD(UST)崩盘可能由多个大型钱包策划

2022-05-28

被指控内幕交易的众议员Madison Cawthorn除购买LGB Coin,还购买了ETH

2022-05-28

美国SEC否决One River现货比特币ETF的提案

2022-05-28

Michael Saylor:相信一个BTC有朝一日会价值数百万美元

2022-05-28

矿企BIT Mining2022年第一季度收入为2.967亿美元,环比下降40.4%

2022-05-27

马斯克:SpaceX 周边将很快可以用狗狗币购买

2022-05-27

绿地集团公布BAYC #8302 x Aworld“福禄好运”动物IP组合

2022-05-27

国图发布数字藏品“诗词中的国家图书馆”

2022-05-27

亿万富翁Bill Miller:比特币是抵御金融灾难的“保险”

2022-05-27

视觉中国海外NFT市场测试版发布,接受以太坊支付

2022-05-27

摩根大通使用区块链进行抵押品结算

2022-05-27

Cowen分析师:Coinbase相对于竞争对手具有“结构优势”

2022-05-27

Jupiter Exchange完成500万美元种子轮融资,White Hilt Capital领投

2022-05-27

广州金管局:重点推动数字人民币民生领域应用

2022-05-27

美联储考虑在未来可能发行数字美元的情况下缓和对商业银行的冲击

2022-05-26

调查:缺乏对比特币的了解是人们不购买它的主要原因

2022-05-26

NEAR基金会CEO:加密货币让人难以忽视,我们有责任普及区块链技术

2022-05-26

火币收购拉丁美洲加密货币交易所 Bitex

2022-05-26

Polygon Studios CEO:年底前或完成50-60个Terra项目迁移

2022-05-26

欧易OKX将支持LUNA空投与代币迁移

2022-05-26

电讯盈科和香港电讯宣布进驻The Sandbox

2022-05-26

厦门航空首发数字藏品

2022-05-26

知情人士:高尔夫品牌Callaway成为LinksDAO股权投资者以及战略合作伙伴

2022-05-26

泰格豪雅CEO在推特展示BAYC #4215

2022-05-26

ESG研究:比特币挖矿到2045年或可消除0.15%的全球变暖状况

2022-05-26

英伟达最新显卡驱动重新启用挖矿限制程序

2022-05-26

可口可乐已面向中国市场推出元宇宙概念限定产品“律动方块”

2022-05-26

万达电影:正在研发探索元宇宙及NFT

2022-05-26

disguise 推出元宇宙解决方案部门

2022-05-26

Web3音频流媒体平台Tamago完成100万美元种子轮融资,Daedalus等参投

2022-05-26

气候科技创企Allinfra完成600万美元A轮融资,野村证券领投

2022-05-26

Paradigm推出奖学金计划,申请者年龄需小于23岁且熟悉Web3

2022-05-26

美联储会议:所有美联储官员都支持要开始缩表计划

2022-05-26

美联储副主席:我们应该在制定加密货币全球标准方面发挥关键作用

2022-05-26

网信办发布第八批境内区块链信息服务备案编号

2022-05-26

摩根大通:VC资金仍在继续涌入加密货币市场

2022-05-26

索尼游戏业务主管:不相信元宇宙会取代现有的游戏方式

2022-05-26

马斯克将收购推特的股权承诺总额提高至335亿美元

2022-05-26

Mirror推出基于Optimism将文章铸造为NFT的功能

2022-05-26

Jack Dorsey宣布卸任Twitter董事会职务

2022-05-26

摩根士丹利:清晰的加密货币监管对行业发展很重要

推荐文章

  • 国际货币基金组织:加密资产对金融稳定构成哪些影响?

    2022-01-07

  • 万字解析元宇宙:它对现实世界意味着什么?

    2022-01-07

  • a16z:工作的未来是 DAO 和加密网络

    2022-01-04

  • 数字人民币App正式开放下载

    2022-01-04

  • 极易被忽视的DID,是通往Web3的护照

    2021-12-30

价值号更多 ›

吉时通信
吉时通信
文章: 120
  • 专访唯一艺术CEO:合规下的NFT发展探索
  • 国盛区块链:虚拟人在元宇宙时代能否迎来爆发
  • 元宇宙的运行之「DAO」:在元宇宙中如何获得回报?
链集市ChainMarket
链集市ChainMarket
文章: 145
  • 一文解读加拿大沃尔玛如何利用区块链技术应对供应链挑战
  • 区块链产业周刊:商务部等22部门加强区块链大数据中心等新型网络建设
  • 区块链技术的应用可以增强人类对人工智能的信任
加密谷Live
加密谷Live
文章: 585
  • 公链Fantom:从数据视角解读Fantom为何会暴涨?
  • Layer 2时代:照亮Play to Earn游戏的前路
  • 解析 DeFi 领域的助力器:去中心化身份 DID
换一批

热门标签

新基建 比特币 以太坊 矿业 DeFi 共识对话 区块链+ 研报 美联储 央行数字货币 无限QE 加密衍生品 AI 云计算 大数据 5G 政策 交易所 稳定币 电子支付 Libra 算力产业 联盟链 公链 区块链 加密货币 Nervos Cosmos EOS STO

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

App内打开

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

Moshou

碳链价值是集资讯、行情、数据于一身的区块链信息服务平台,我们追求及时、全面、专业、精确的资讯与数据,致力于为区块链创新者和数字货币投资者提供优质的服务。

关于我们 加入我们 联系我们 隐私条款
微信公众号

扫一扫关注微信公众号

Copyright © 2018-2020 碳链价值 京ICP备18046423号
下载碳链App

下载碳链App

微信公众号

微信公众号

微信公众号

微信公众号

打赏文章作者

支付宝打赏二维码 支付宝扫一扫打赏
微信打赏二维码 微信扫一扫打赏

# 热门搜索 #

CBDC 比特币 DeFi 以太坊 区块链