写点什么

开发人员必须知道的 Web3 基本工具和技术

  • 2022-11-09
    北京
  • 本文字数:2513 字

    阅读完需:约 8 分钟

开发人员必须知道的 Web3基本工具和技术

Web 3 开发人员缺口很大,相对来说,目前只有一少部分开发人员成为该领域的专家。因此,如果一位成熟的 Web 2 工程师,想要进入 Web 3 行业,应该从哪里开始呢?要了解哪些基本概念、学习哪些工具和技术?

 

本文将探讨 Web 3,包括它的重要性以及与 Web 2 的区别。然后再来看看,有志于 Web 3 开发人员应该熟悉的技术栈。

Web3 第一课

在深入研究 Web 3 应用程序中使用的技术之前,让我们首先了解Web 3是什么,以及它为什么重要。

 

Web 3 的五个关键特性是去中心化、区块链、安全性、可扩展性和隐私。在 Web 3 的去中心化世界中,区块链技术和其他协议从根本上改变了数据的存储、分发和访问方式,同时提供了一个本地事务层。当下流行的Web3应用案例是去中心化金融(DeFi 和加密货币)、在称为“DAO”的去中心化治理模式中投票、以及作为所有权证明的不可伪造代币(NFT)。

 

Web 3 背后的许多动机,都是基于用户、公司和政府之间的信任受到侵蚀。看上去好像有点愤世嫉俗,但确是如此。

 

在去中心化金融里,用户将资金存储在自己的私人钱包中,交易时无需与中心化机构互动或依赖国家的法定货币。

 

建立在区块链上的投票应用程序,所有投票数据都是透明的,且任何人验证起来都很简便,因此不必再担心选举中发生徇私舞弊。这就是让 Web 3 “无需信人”的原因:该技术是透明的,并且通过密码学得到保护,因此不再是只能盲目信任某些机构。

 

NFT 可用于证明任何数字资产(如音乐或艺术)的所有权,让你可以更直接地支持创作者。

 

所有这些例子,其核心都牵涉到不再需要依赖中央机构或中介机构。

 

需要注意的是,Web 3 并不是要取代 Web 2,就像 Web 2 没有取代 Web 1 一样。对于 Web 1 中出现的静态网站,在 Web 上仍然占有重要地位。即使 Web 3 越来越受欢迎和使用,Web 2 应用程序也将有一席之地。

 

去中心化的应用程序(Dapps)

我们现在大致了解了什么是 Web 3,以及为什么去中心化的概念很重要。那么 Web3 应用程序实际上是什么样子的呢?

 

嗯……它们看起来很像 Web 2 应用程序!去中心化的应用程序,也称为“dapps”(或“dApps”),由一个前端 UI 组成,其与部署在区块链上的“智能合约”(一个小代码程序)交互。在交易或将数据写入区块链时,前端还可以与用户的钱包交互。与 Web 2 应用程序的主要区别在于,智能合约和区块链取代了由单个人或公司拥有和维护的经典的服务器和数据库。



去中心化应用架构

 

定义 Web 3 技术栈的技术

 

那么,如何真正构建一个去中心化的应用程序(dapp)?好消息是,可以从已有的编程技能和经验开始!我们已经知道 dapp 有一个前端,这意味着需要了解 HTML、CSS 和 JavaScript。可能还会使用 Angular、React 或 Vue 等框架或库,除非你喜欢用原生 JavaScript。这对于已经精通这些技术的前端开发人员来说是个好消息。

 

现在,让我们看看需要专门为 Web3 学习哪些语言、工具和框架:

 

Solidity 是一种编程语言,用于编写在以太坊区块链上运行的智能合约。它看起来像是 C++、Python 和 JavaScript 的混合体。如果你现在已经学习了几种编程语言,那么你每次去学一门新语言都会变得更容易。由于大多数智能合约都涉及某种货币兑换,因此遵循适当的标准在安全方面的最佳实践至关重要。

 

Solidity 项目地址:https://soliditylang.org/

 

Truffle是一个框架,可以用来编写、测试和部署智能合约。 其网站将其描述为“使用以太坊虚拟机 (EVM) 的区块链开发环境、测试框架和资产管道”。就像 React 帮助你构建 JavaScript 应用程序一样,Truffle 帮助你构建智能合约。使用 Truffle 并不是绝对必要的,但是这个框架将极大地帮助你,因为它抽象了一些开发复杂性。对于 VS Code 用户,Truffle for VS Code 扩展会让开发周期更加容易。

 

Truffle项目地址:https://trufflesuite.com/docs/truffle/

 

Ganache 是用于本地开发和测试智能合约的个人区块链。开发人员只需要通过几个简单的命令,就可以创建以太坊区块链的本地实例。Ganache 允许你在本地开发 Web 3 应用,就像在本地或测试环境而非生产环境中开发 Web 2 应用程序一样。

 

Ganache项目地址:https://trufflesuite.com/docs/ganache/

 

Web3.js 是一个用于与以太坊交互的 JavaScript 库。你将在前端应用程序中使用 web3.js 来执行诸如连接到用户的钱包、授予对智能合约的访问权限以及调用智能合约上的函数等操作。智能合约可以通过命令行或 UI 访问,因此 web3.js 可以帮助你从 UI 使用智能合约。

 

Web3.js 项目地址:https://web3js.readthedocs.io/en/v1.8.0/

 

MetaMask 是一个 Web 3 钱包,你可以使用它的浏览器扩展程序或移动应用程序。我们之前提到过钱包,但还没有真正描述过钱包是什么。钱包为你的数字资产提供接口。你使用只有你自己知道的私钥保护钱包里的内容。 MetaMask 为用户提供了一种安全的方式,连接到基于区块链的应用程序,并与它们的钱包交互。对于开发人员来说,需要钱包来部署智能合约并与之交互。通常,私钥必须写在代码中才能交互,但 Truffle Dashboard能够将 MetaMask 钱包连接到项目而无需暴露密钥。

 

MetaMask 项目地址:https://metamask.io/

 

Infura是连接以太坊和其他区块链以及去中心化存储网络(如 IPFS)的基础设施提供商。无需过多介绍,与区块链的任何交互都需要通过 JSON-RPC 或 WebSockets 访问节点。 Infura 提供了基础设施,因此你不必找机器来启动自己的节点。如果你实在想运行自己的节点,Infura 也可以作为备用。 Infura 还提供了一个开发套件和工具包,包括监控、指标、日志记录、事务管理和其他用于构建 dapp 的功能。这是对我们已谈论过的其他一些技术的进一步抽象,可以使 Web3 开发更加容易。

 

Infura项目地址:https://infura.io/zh

结论

Web 3 是支持下一代软件的下一代互联网。区块链是更透明的技术,不但消费者在采用,主要机构也在采用,这让区块链成为了主流。

 

了解 Web 3 技术以及构建方法,将为你打入市场提供优势。

 

对于已经拥有强大的 Web 2 基础,又有志于 Web3 的开发人员,我希望现在你对自己充满信心,因为你已掌握的知识就是良好的开端!花一些时间学学上面的技术,你可能会比你想象的更快做好准备,以迎接 Web3 的到来。

 

原文链接:


https://dzone.com/articles/the-essential-web3-tools-and-technologies-develope

2022-11-09 11:432224
用户头像

发布了 460 篇内容, 共 145.8 次阅读, 收获喜欢 600 次。

关注

评论

发布
暂无评论
发现更多内容

办公自动化:Day01

缭乱地男神

办公自动化 IT蜗壳教学

还在等机会?Android岗面试12家大厂成功跳槽,最全的BAT大厂面试题整理

欢喜学安卓

android 程序员 面试 移动开发

吐血整理超全Java进阶教程:基础+容器+并发+虚拟机+IO

Java架构之路

Java 程序员 架构 面试 编程语言

OpenCV萌新福音:易上手的数字识别实践案例

华为云开发者联盟

OpenCV 图像处理 数字 图像预处理 信用卡

EFT是什么?EGG公链又是什么?一文带你了解

币圈那点事

公链 挖矿 #区块链#

燃烧吧!开发者们,一起在云端构建开放成熟的 ARM 生态!

亚马逊云科技 (Amazon Web Services)

第一个mybatis程序,实现CRUD

xiezhr

mybatis 中间件 crud

初识Golang之声明变量

Kylin

读书笔记 3月日更 21天挑战 Java转go Go 语言

Java面试“圣经”,已助朋友拿到7个Offer!2021年金三银四面试知识点合集

Java架构之路

Java 程序员 架构 面试 编程语言

你的头发还好吗?大数据分析脱发城市哪里强

不脱发的程序猿

大数据 程序员 程序人生 数据分析 3月日更

几个你不知道的dubbo注册中心细节

捉虫大师

zookeeper dubbo 注册中心

带你全面认识CMMI V2.0(二)

渠成CMMI

项目管理 CMMI

大作业--联合运营平台

ALone

别再做智慧园区无效投入了!想要高效运行试试这个方法

一只数据鲸鱼

物联网 数据可视化 智慧城市 智慧园区

寻找被遗忘的勇气(十六)

Changing Lin

3月日更

使用Spark Mllib进行数据分析

大数据技术指南

大数据 spark 28天写作 3月日更

最高法两会报告聚焦区块链惩治抄袭,区块链在保护网络著作权方面如何作为?

旺链科技

版权保护 区块链应用

网易 Duilib:功能全面的开源桌面 UI 开发框架

有道技术团队

开源

我帮大厂做架构之——微信的“N个朋友读过”怎么实现

臧萌

成长 架构师 职场成长

华为在数字化浪潮下的API变革实践

华为云开发者联盟

华为 架构 数字化 API API战略

不愧为Java程序员福音 2021阿里巴巴中台架构实战重磅来袭!

比伯

Java 编程 架构 面试 程序人生

白话解读 WebRTC 音频 NetEQ 及优化实践

阿里云视频云

阿里云 音视频 WebRTC 音频技术 视频云

史上超强拷贝仓——GitHub 热点速览 v.21.11

HelloGitHub

GitHub 开源

挑灯夜战800个小时,终从外包成功上岸字节!入职那一天我眼眶湿润了「Java岗」

Java架构之路

Java 程序员 架构 面试 编程语言

APP搜索如何又快又准?

华为云开发者联盟

elasticsearch App 搜索 云搜索 词库

面试必备知识点!2021Android大厂面试知识分享,offer拿到手软

欢喜学安卓

android 程序员 面试 移动开发

Rancher 2.5.6发布,支持Kubernetes 1.20

Rancher

软件匠艺

Teobler

敏捷 敏捷开发 软件匠艺 伪敏捷

【LeetCode】螺旋矩阵 II Java 题解

Albert

算法 LeetCode 28天写作 3月日更

Java面试“圣经”,已助朋友拿到7个Offer!2021年金三银四面试知识点合集

Java架构追梦

Java 阿里巴巴 面试 架构师

语音通话 2.0

anyRTC开发者

音视频 WebRTC RTC 语音通话

开发人员必须知道的 Web3基本工具和技术_文化 & 方法_Tyler Hawkins_InfoQ精选文章