搜索
首页web前端前端问答Web3.0来了,它对前端友好吗?
Web3.0来了,它对前端友好吗?Mar 15, 2023 pm 08:09 PM
前端web3前端框架

最近 web3.0 的呼声真的是越来越高,也越来越疯狂。对于我们前端来说,我们需要具备什么技术呢?它对前端友好吗?下面本篇文章就来带大家聊聊,希望对大家有所帮助!

Web3.0来了,它对前端友好吗?

首先先介绍一下 web3.0 是如何衍生的

互联网

我们先聊一下啥是web,在1989 年,由CERN(欧洲粒子物理研究所)中 Tim Berners-Lee 领导的技术小组提交了一个针对互联网的新协议和一个使用该协议的文档系统,该系统命名为 World Wide Web,简称 WWW(万维网),就是我们现在熟知的“互联网”,它的目的在于使全球的科学家能够利用互联网来交流自己的工作文档。它采用的技术主要是 HTML、URI 、URL、HTTP 等,可以通过静态的方式展示网页内容。也就是我们

Web1.0

通常来说,Web1.0 指的是20世纪90年代和21世纪初的互联网。说白了,就是由博客、留言板以及AOL和CompuServe等早期门户网站组成的互联网,国内咱们所熟知得就是新浪、搜狐网易等网站就是当时的产物。在 Web1.0 上基本上都是被动地阅读静态网页,网页构建协议都是使用 HTTP、FTP 等。在Web1.0 的情况下,网页内容是只读的、静态的,类似于杂志,只能看不能修改、不能互动。在Web1.0下,用户只是信息(网页)的消费者,不能与之交互。Web1.0也是拨号上网,平均宽带50k。

总的来说,Web1.0 是只读、去中心化的。

Web2.0

而 Web2.0 大概在2005年左右凸显出来。 Web2.0 大概的含义就是用户可以在网页上创建和发布自己的内容,主动参与到互联网中,不再是单纯地被动阅读网页。整个网页最终的资金和控制权还是被网页的拥有者所占据。比如 Facebook、Twitter和YouTube等社交媒体也是这个时代的产物。当然通过这种方式让用户生成内容的激增也造成了自然垄断,这样也会导致几个问题的产生:1.用户数据是中心化的;2. 用户数据不可移植;3. 用户数据被出售

总而言之,Web2.0 是读写并存的

Web3.0

Web3.0 是一个去中心化的网络,通过将权力和数据集中到用户手中,而不是某个公司所独有。将数据分布到网络上其中内含去中心化的区块链技术。Web3.0 这个词语已存在多年了,只是在过去一年才开始流行起来。使用 Web3,网络是去中心化的,因此没有权威机构对其进行控制,并且构建在网络之上的去中心化应用程序(dapps)是开放的。去中心化网络的开放性意味着任何一方都无法控制数据或限制访问。任何人都可以在未经中央公司许可的情况下构建和连接不同的 dapp。

Web3.0 的主要特点包括如下几点:

  • 语义 Web——它是 Web3.0 的关键,使机器易于处理数据。

  • AI——AI是影响 Web3.0 技术流行的主要关键因素之一。它使机器通过大量的Web数据变得更加智能,以满足用户的需求。

  • 3D图形——Web3.0 已经超越了传统的互联网,因为它的三维技术,它提供了一个比2D更现实的三维在线世界。

  • 无处不在——同时存在或无处不在的概念,移动设备的兴起日益增加,许多人更容易随时随地访问互联网。

  • 开放性和互操作性,这指的是在应用程序编程接口、数据格式、协议和设备与平台之间的互操作性方面的开放性。

  • 全球数据存储库,这是一种跨程序和跨网络访问信息的能力。

总之:Web3.0 是读、写、拥有网络的一切。

介绍

对于我们前端开发者来说,我们应该掌握哪些技术或者应该了解什么呢?简单来说,web3 开发人员创建了分散的全栈应用程序,这些应用程序存在于区块链上并与之交互。下面简单得说一下。

我们先了解一下专业术语有哪些:

  • Web3:它是以太坊区块链 Ethereum blockchain 和你的智能合约 Smart Contracts 之间的连接。
  • 以太坊 Ethereum:一个去中心化的开源区块链 blockchain,允许用户通过创建智能合约 creating smart contracts 与网络进行交互。它的原生加密货币是以太币。就市值而言,以太币是仅次于比特币的第二大最有价值的加密货币。它由 Vitalik Buterin 于 2013 年创建。
  • 智能合约 Smart Contracts :它们是存储在区块链上的计算机程序 computer programs ,在满足预定条件时运行。智能合约是用 Solidity 语言编写的。
  • 去中心化 Decentralized :数据状态不由中央实体 central entity、平台 platform 或个人 individual 收集
  • 区块链:区块链网络是一种点对点连接,其中信息在多个设备之间共享,几乎不可能被黑客入侵。它是一种记录信息的系统,其方式使得很难或不可能更改保存在网络上的信息。
  • Solidity:一种用于编写智能合约 writing smart contracts 的面向对象 object-oriented 的编程语言。它用于在各种区块链平台上实施智能合约,最著名的是以太坊。Solidity 的语法类似于 javascript。要了解 Solidity,最好有 javascript 等编程语言的背景。直接跳入 Solidity 是一个坏主意
  • Dapp:代表去中心化应用程序 Decentralized App 。它们是在去中心化网络或区块链上运行其后端代码(主要用 Solidity 编写的智能合约)的应用程序。可以使用 react、vue 或 Angular 等前端框架构建 Dapps。
  • Bitcoin 比特币:世界上第一个被广泛应用的加密货币。
  • Crypto: 又称 Cryptocurrency,加密货币,一种去中心化的数字货币。
  • NFT: Non-Fungible Token,一种在链上被记录的、有所有权的数字资产。
  • DAO: Decentralized Autonomous Organization,去中心化的自治组织。
  • Metaverse元宇宙:一种由科技手段创造的虚拟世界的构想。
  • DeFi Decentralized Finance:去中心化金融系统。
  • Token 代币:可以理解为加密货币、NFT 等数字资产的统称。
  • GameFi: Game + DeFi,中文说法链游,游戏中的金融系统可通过加密货币和 NFT 映射到现实。

介绍完以上这些,我们再聊下区块链对于开发人员也是分类得。主要是核心区块链开发(核心区块链工程师负责区块链系统的架构和安全协议)和区块链软件开发(这些区块链开发人员利用核心区块链开发人员提供的设计架构创建 Dapp)。

开始

下面我们来点实在得,对于我们前端开发,我们想要开发驻留并与区块链交互的去中心化应用程序,就必须使用 web3.js 和 Ethers.js 库。

web3.js

web3.js 是一个JavaScript API库。要使 DApp 在以太坊上运行,我们可以使用web3.js库提供的web3对象。web3.js 通过RPC调用与本地节点通信,它可以用于任何暴露了RPC层的以太坊节点。web3 包含 eth 对象 - web3.eth(专门与以太坊区块链交互)和 shh 对象 - web3.shh(用于与 Whisper 交互)

添加web3

web3 引入到你的工程中,其实跟我们现有的引用方式基本一致

  • npm: npm install web3
  • bower: bower install web3
  • metor: meteor add ethereum:web3
  • vanilla: dist./web3.min.js

使用

然后你需要创建一个web3的实例,设置一个provider。为了保证你不会覆盖一个已有的provider,比如使用Mist时有内置,需要先检查是否web3实例已存在

if (!web3) {
  web3 = new Web3(web3.currentProvider);
} else {
  web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}

由于这套API被设计来与本地的RPC结点交互,所有函数默认使用同步的HTTP的请求。如果你想发起一个异步的请求。大多数函数允许传一个跟在参数列表后的可选的回调函数来支持异步

web3.eth.getBlock(48, function(error, result){
  if(!error)
      console.log(result)
  else
      console.error(error);
})

API的具体目录可以点击查看

Ethers.js

为以太坊区块链及其生态系统提供一个小而完整的 JavaScript API 库 它最初是与 ethers.io 一起使用,现在已经扩展为更通用的库。功能上基本和web3.js差不多。

特点如下:

  • 将私钥保存在客户端,安全 可信赖
  • 可支持导入和导出的 JSON钱包文件 (Geth,Parity和crowdsale)
  • 从任何合同ABI创建JavaScript 元类对象,包括 ABIv2 和 可读的 ABI
  • 支持通过 JSON-RPC,INFURA , Etherscan 或 MetaMask 连接到以太坊节点。
  • 库 非常小 (压缩~88kb;未压缩284kb)

工具

当然除了上面这些,我们也会用到很多工具去完善我们的开发

  • Truffle: 提供了一个使用以太坊虚拟机编译和测试智能合约的开发环境,用作项目中的构建依赖项
  • Remix IDE: 编写和使用智能合约的完美环境,我们可以使用它直接从浏览器创建、修改和执行智能合约。它更像是一个编辑器
  • MetaMask: 一个 Chrome 扩展程序,可让您从浏览器连接到以太坊区块链网络
  • Ganache: 提供了一个本地区块链环境来测试您的智能合约

构建

我们想构建一个全栈 Dapp 如果您想为项目添加用户界面,react.js、vue.js 或 angular.js 是很好的 javascript 前端框架,因为它们可以使用 ethers.js 或 web3.js 轻松与区块链网络集成。有多种平台可让您在不编写代码的情况下创建完整的 Dapp比如:BunzDapp builderAtra ioBubble io

结论

总的来说,Web3.0 不是一种技术,而是一个概念。我们前端开发者也不用很慌张,不管技术发展成什么样子,都会用到前端。我们可以利用我们 react.js、vue.js 或 angular.js 去为我们自己开发的 Dapp 应用去搭建属于我们自己的平台,也可以利用 nodejs 通过使用web3.js这个以太坊提供的工具包,来完成合约的编译,发布,合约方法调用的一整个流程。

(学习视频分享:web前端入门编程基础视频

以上是Web3.0来了,它对前端友好吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:掘金社区。如有侵权,请联系admin@php.cn删除
5个常见的JavaScript内存错误5个常见的JavaScript内存错误Aug 25, 2022 am 10:27 AM

JavaScript 不提供任何内存管理操作。相反,内存由 JavaScript VM 通过内存回收过程管理,该过程称为垃圾收集。

实战:vscode中开发一个支持vue文件跳转到定义的插件实战:vscode中开发一个支持vue文件跳转到定义的插件Nov 16, 2022 pm 08:43 PM

vscode自身是支持vue文件组件跳转到定义的,但是支持的力度是非常弱的。我们在vue-cli的配置的下,可以写很多灵活的用法,这样可以提升我们的生产效率。但是正是这些灵活的写法,导致了vscode自身提供的功能无法支持跳转到文件定义。为了兼容这些灵活的写法,提高工作效率,所以写了一个vscode支持vue文件跳转到定义的插件。

巧用CSS实现各种奇形怪状按钮(附代码)巧用CSS实现各种奇形怪状按钮(附代码)Jul 19, 2022 am 11:28 AM

本篇文章带大家看看怎么使用 CSS 轻松实现高频出现的各类奇形怪状按钮,希望对大家有所帮助!

Node.js 19正式发布,聊聊它的 6 大特性!Node.js 19正式发布,聊聊它的 6 大特性!Nov 16, 2022 pm 08:34 PM

Node 19已正式发布,下面本篇文章就来带大家详解了解一下Node.js 19的 6 大特性,希望对大家有所帮助!

浅析Vue3动态组件怎么进行异常处理浅析Vue3动态组件怎么进行异常处理Dec 02, 2022 pm 09:11 PM

Vue3动态组件怎么进行异常处理?下面本篇文章带大家聊聊Vue3 动态组件异常处理的方法,希望对大家有所帮助!

聊聊如何选择一个最好的Node.js Docker镜像?聊聊如何选择一个最好的Node.js Docker镜像?Dec 13, 2022 pm 08:00 PM

选择一个Node​的Docker镜像看起来像是一件小事,但是镜像的大小和潜在漏洞可能会对你的CI/CD流程和安全造成重大的影响。那我们如何选择一个最好Node.js Docker镜像呢?

聊聊Node.js中的 GC (垃圾回收)机制聊聊Node.js中的 GC (垃圾回收)机制Nov 29, 2022 pm 08:44 PM

Node.js 是如何做 GC (垃圾回收)的?下面本篇文章就来带大家了解一下。

【6大类】实用的前端处理文件的工具库,快来收藏吧!【6大类】实用的前端处理文件的工具库,快来收藏吧!Jul 15, 2022 pm 02:58 PM

本篇文章给大家整理和分享几个前端文件处理相关的实用工具库,共分成6大类一一介绍给大家,希望对大家有所帮助。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具