什么是Web 3.0? 一场新的互联网革命

已收录   阅读次数: 1,143
2021-12-2513:10:24 发表评论
摘要

历史告诉我们,只有变化是不变的,对于任何技术领域——更具体地说,在 Web 开发领域,发生剧烈变化都不是什么意外。在过去的几十年里,网络发生了很大的变化,我们在这个领域再次发生了一场新的革命——Web 3.0。在本文中,我将讨论 web3 到底是什么以及它将如何改变 Web 架构的工作方式……

分享至:
什么是Web 3.0? 一场新的互联网革命

开篇寄语

历史告诉我们,只有变化是不变的,对于任何技术领域——更具体地说,在 Web 开发领域,发生剧烈变化都不是什么意外。在过去的几十年里,网络发生了很大的变化,我们在这个领域再次发生了一场新的革命——Web 3.0。在本文中,我将讨论 web3 到底是什么以及它将如何改变 Web 架构的工作方式。

内容详情

在解释什么是 Web 3.0 之前,让我向您介绍一下Web 1.0Web 2.0。如果你小时候访问过维基百科,或者可能浏览过这些新闻频道——CNN.com,那么你就会注意到你只能在网站上查看数据——你不能从你的终端发回任何数据,或者互动很多与网站。这是 Web 1.0——用户只能读取静态网页中的数据。

然后,出现了Web 2.0。此版本的网络允许与网页进行交互。我们今天看到的大多数网站,包括Facebook、YouTube——用户可以在这些网站上与网站互动并从他/她的一端发送数据,这为 Web 2.0 奠定了基础。它改变了我们使用互联网的方式;出现了技术繁荣。有些人可能会争辩说,在云计算(使用他人的资源换取金钱)出现之后,网络也发生了革命性的变化,因此它“可能”被称为 Web 2.5。最后,我们有了 Web 3.0。

什么是Web 3.0? 一场新的互联网革命

Web 3.0 的需求是什么?

有人可能会问,当现在的网络看起来非常好,每天都有很多用户加入时,有什么必要带来改变?当 Web 2.0 已经可以满足我们的需求时,我们为什么还要 Web 3.0?

当前的网络中存在许多严重的危害。我们知道它,我们看到它,但我们忽略了它。如果您经常阅读新闻,您会经常听到一些 XYZ 公司的用户数据在网上泄露,或者被网络攻击者或“黑客”窃取。你一定听说过最近的 Facebook 数据泄露。

出现了一个问题,即为什么会发生该事件,以及将来是否可以防止。

同样,由于任何第三方(无论是政府还是任何其他组织)的干预,帖子、视频等内容经常从互联网上删除。

可以解决这个问题并使互联网更加透明吗?所有这些答案都在 Web 3.0 中。

什么是Web3?

现在,经过这么长时间的讨论,让我告诉你Web 3.0是什么。

引用

Web3 是一场后端革命。这是一套由区块链主导的协议,旨在重塑互联网的连接方式。

试举一例

假设你有 30 卢比,你借给了你的 3 个朋友——杰克、罗斯和玛莎,每人 10 卢比。所以现在,你的每个朋友都有 10 卢比。此外,您已将这些贷款告知了所有人,每个人都知道谁欠了多少金额以及欠谁。现在,杰克返还给你 10 卢比。所以他不欠你什么。同时,您还通知其他所有人,Jack 已经还清了他的钱并且免除了您的债务。因此,当这些交易发生时,参与该系统的每个人都会得到通知。

上面的场景描述了一个区块链,其中与系统中涉及的每个人都维护着一个单一分类账(交易记录)的相同副本。每次发生新的交易时(例如 Jack 还钱),每个人的分类帐都会更新,就像您将交易通知其他人一样。这也称为去中心化,或保留分布在整个网络中的相同数据副本。

什么是Web 3.0? 一场新的互联网革命

Web 3.0 使用这种去中心化的概念解决了很多问题。在 Web 3.0 中,用户的数据不存储在公司支持的数据库中,而是分布在分散的网络中。因此,每次发生交易时,每个节点上的数据(系统中涉及的用户的术语)都会以加密方式更新。很简单,不是吗?

Web 3.0 是如何工作的?

什么是Web 3.0? 一场新的互联网革命

Web 3.0 在应用程序的前端部分实现。该web3包包含一组库,用于将客户端连接到基于区块链的去中心化后端。现在,如果你问它究竟web3是如何运作的,它并不像听起来那么复杂。

web3行为类似于 JSON RPC 协议的包装器。在 JSON RPC 协议中,客户端以 JSON 格式发出请求,说明要实现的方法、作为输入传递的参数等,服务器(这里是区块链系统)执行请求中的方法。

客户端通常使用像MetaMask这样的钱包作为提供者或与后端交互的媒介。

什么是Web 3.0? 一场新的互联网革命

现在,让我们看看 Web 3.0 是如何实现的。要讨论 Web 3.0 的动手实现并将其集成到 DApp 中,可能需要一整篇文章;所以我们的讨论将仅限于使用 Web3.0 的基本功能。

要在 JavaScript 中使用 Web 3.0,我们必须web3使用以下命令安装包

npm i web3

接下来,我们需要导入 web3 包并使用提供程序初始化 Web3 实例。 Provider 简单来说就是你想要连接的区块链网络的 URL。通常,如果您正在运行 Ganache,您的设备上会运行一个测试网络,URL 将为 https://localhost:7545。

Ganache 是一种在本地设备上运行区块链测试网络的工具。它提供了一些免费的以太坊账户,可用于测试您的区块链应用程序。

我们可以使用以下方法导入包:

const Web3 = require (“web3”)
//or ES6
import Web3 from “web3”

我们现在可以创建实例:

const web3 = new Web3(Web3.givenProvider || “https://localhost://7545”)

现在,我们将使用 ABI 和合约地址创建一个合约实例。

ABI 是指包含智能合约信息的 JSON 数据。它包含智能合约内所有公共方法、公共变量、事件等的数据。

合约地址是在合约部署到以太坊网络时生成的。地址来自创建者的地址和从该地址发送的交易数量(“nonce”)

const contract = new web3.eth.Contract(abi,address)

现在,我们已经成功连接到后端,可以访问智能合约上的公共变量、方法和事件。

  • contract.variable().call() :对于您在智能合约中定义的每个公共变量,Web3 都会创建一个与该变量同名的方法,以便您可以访问它。虽然, .call() 需要在函数名之后连接才能执行它。
  • contract.methods :使用此属性访问您在智能合约中定义的所有公共功能。

同样,web3.utils 库中还包含一些其他基本功能,可帮助实现前端逻辑,例如:

  • web3.eth.accounts() :此方法返回当前与当前用户关联的所有帐户
  • web3.utils.toWei() :此方法有助于将任何数字转换为 Wei,Ether 的最小单位

换算比

1 Ether = 1000000000000000000 Wei
  • web3.utils.BN() :与上述方法一样,此函数有助于将数字转换为大数字。

注释

BN 是一个对象,它的构造函数返回一个大数原语——也称为大数值,有时只是一个 BN——来表示大于 ²⁵³ — 1 ( Number. MAX_SAFE_INTEGER ) 的整数,这是 JavaScript 可以用 a 表示的最大数数字原语(或数字值)。

所有的方法,以及关于实现 web3 库的更多信息都可以从他们的官方文档中找到。

Web 3.0 对我们有何好处?

我们已经讨论了 Web 3.0 的技术方面,但我们几乎没有看到它将如何使用户受益。

首先,由于 Web 3.0 中的数据以加密方式分布在整个网络中,因此没有公司可以像过去几年那样访问您的个人数据并将其出售给广告商。这使用户成为他/她的数据的所有者。

不变性是区块链的创始概念之一,这加强了 Web 3.0。使用 Web 3.0 上传的内容无法删除。因此,任何第三方都不能出于自身利益而删除任何内容。

什么是Web 3.0? 一场新的互联网革命

由于数据分布在整个区块链系统中,并且系统完全由用户管理,因此不会像公司那样出现系统故障,这可以保持 Web 3.0 正常运行。此外,可以从世界上任何一点以更快的速度访问数据。

同样,Web 3.0 还允许执行对所有人透明的交易。不涉及中间人,这使得Web 3.0更加安全和安全。

Web 3.0 值得吗?

有些人可能会争辩说,Web 3.0 是一项非常先进的技术,要从当前基于 Web 2.0 的技术转变为 Web 3.0 架构太困难了。具体来说,较旧的设备将无法适应这项技术。此外,Web 3.0 的概念涉及很多领域,初学者可能难以掌握这项技术。

尽管如此,考虑到 Web 3.0 提供的安全性、安全性和速度级别,可以肯定地说 Web3 是值得的。

所以,您现在已经了解了 Web 3.0 是什么、它是如何工作的以及为什么需要它。跨国公司正在快速适应这些技术,加密货币的概念进一步引起了普通人的关注。

感恩鸣谢

来源于作者Kailash Kejriwal的《Web 3.0 — A New Web-volution》。

  • 我的微信
  • 微信扫一扫加好友
  • weinxin
  • 我的微信公众号
  • 扫描关注公众号
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: