写点什么

开发人员必须知道的 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:436992
用户头像
李冬梅 加V:busulishang4668

发布了 1111 篇内容, 共 721.9 次阅读, 收获喜欢 1253 次。

关注

评论

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

大数据训练营一期毕业作业

朱磊

AI 预测:基于流计算 Oceanus(Flink) 实现病症的实时预测

腾讯云大数据

flink 流计算 Oceanus

北鲲云超算平台对于基因组学研究能够提供哪些帮助?

北鲲云

如何使用 JavaScript 扁平化/非扁平化嵌套 JSON 对象?

devpoint

JavaScript json Object 11月日更

服务端系统性能测试

刘冉

性能测试

Java8中Stream初试

Geek_4bdbe1

软件测试中的服务虚拟化

刘冉

Mock测试框架 服务虚拟化

2021年了,数据分析还吃香么?

Geek_utwige

Python 最佳实践 数据分析 爬虫 职业发展

架构实战营模块三作业

spark99

架构实战营

自定义View:如何实现图片放大后拖动和滑动效果

Changing Lin

11月日更

学生管理系统设计文档

Geek_cb2b43

学习心得 - 架构训练营 - 第八课

Fm

Flink 实践教程-入门(7):消费 Kafka 数据写入 PG

腾讯云大数据

flink 流计算 Oceanus

瀑布vs敏捷质量控制

刘冉

敏捷开发 敏捷测试

Python 官方研讨会:彻底移除 GIL 真的可行么?

Python猫

Python

模块四作业

bob

「架构实战营」

契约测试理论篇

刘冉

软件测试 契约测试

【架构实战营】模块三作业

liu🍊

学习心得 - 架构训练营 - 第七课

Fm

Flink 实践教程-入门(6):读取 PG 数据写入 ClickHouse

腾讯云大数据

flink 流计算 Oceanus

性能测试之并发模型对比(JMeter,Locust和Gatling篇)

刘冉

软件测试 性能测试 自动化测试

学生管理系统详细架构设计文档

21°Char

MyBatis 中为什么不建议使用 where 1=1?

王磊

mybatis

探索式测试落地实践

刘冉

探索测试

EDAS 4.0 助力企业一站式实现微服务架构转型与 K8s 容器化升级

阿里巴巴云原生

阿里云 云原生 PaaS EDAS

测试用例编写和管理

刘冉

软件测试 测试用例

Scrum模式之估算点模式读后感

Bruce Talk

敏捷 随笔 Agile User Story Scrum Patterns

纯CSS实现轮播图

Augus

CSS 11月日更

【高并发】从源码角度分析创建线程池究竟有哪些方式

冰河

Java 并发编程 多线程 高并发 异步编程

一分钟搞懂DDD

俞凡

架构 DDD

数据产品经理实战-数据分析能力养成

第519区

数据分析 数据产品

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