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

454 阅读5分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第32天,点击查看活动详情

Web3.0 是网络的下一个迭代。与由静态网页组成的 Web1.0 和为我们带来 Web 应用程序和 Web 作为平台的 Web2 .0不同,Web3 由构建在区块链上的去中心化网络组成。

对 Web3.0 开发人员的需求很高,因为当前开发人员中很少有人是该领域的专家。因此,如果你是一名想要打入 Web3 .0的成熟 Web2 工程师,你会从哪里开始?需要了解哪些基本概念,需要学习哪些工具和技术?

去中心化应用程序(Dapps)

Web3.0 应用程序实际上是什么样子的呢?

去中心化应用程序,也称为“dapps”,由一个前端 UI 组成,该 UI 与部署在区块链上的“智能合约”(一个小代码程序)进行交互。在进行交易或将数据写入区块链时,前端还可以与用户的钱包进行交互。与 Web2.0 应用程序的主要区别在于智能合约和区块链取代了由个人或公司拥有和维护的典型服务器和数据库。

image.png 去中心化应用架构

定义 Web3.0 技术堆栈的技术

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

现在让我们看看你要专门为 Web3 学习的一些语言、工具和框架:

  • Solidity:是一种编程语言,用于编写在以太坊区块链上运行的智能合约。它看起来像是 C++、Python 和 JavaScript 的混合体。如果你现在已经学习了几种编程语言,那么你会知道每次学习一门新语言都会变得更容易。由于大多数智能合约都涉及某种货币兑换,因此遵循适当的标准和安全最佳实践至关重要。
  • Truffle:是一个框架,可帮助你编写、测试和部署智能合约。Truffle 网站将其描述为“使用以太坊虚拟机 (EVM) 的区块链开发环境、测试框架和资产管道”。就像 React 帮助你 JavaScript 应用程序一样,Truffle 可以帮助你处理智能合约。使用 Truffle 并不是绝对必要的,但是这个框架将极大地帮助你,因为它抽象出一些开发复杂性。对于 VS Code 用户,Truffle for VS Code 扩展使开发生命周期更加轻松。
  • Ganache:是用于本地开发和测试智能合约的个人区块链。它使开发人员能够通过几个简单的命令创建以太坊区块链的本地实例。就像你在本地主机或测试环境而不是在生产环境中开发 Web2.0程序一样,Ganache 也允许你在本地进行 Web3.0 开发。
  • Web3.js:是一个用于与以太坊交互的 JavaScript 库。你将在前端应用程序中使用 web3.js 来执行诸如连接到用户钱包、授予对智能合约的访问权限以及调用智能合约上的功能等操作。可以通过 CLI 或 UI 访问智能合约,因此 web3.js 可帮助你从 UI 处理智能合约。
  • MetaMask:是一个 Web3.0 钱包,你可以将其与其浏览器扩展程序或移动应用程序一起使用。我们之前提到过钱包,但还没有真正描述它们是什么。钱包为你的数字资产提供了一个接口。你使用只有你知道的私钥来保护内容。MetaMask 为用户提供了一种安全的方式来连接到基于区块链的应用程序并通过他们的钱包与它们进行交互。对于开发人员来说,需要钱包来部署智能合约并与之交互。通常,你必须通过将私钥放在代码中来完成此操作,但Truffle Dashboard使你能够将 MetaMask 钱包连接到你的项目,而无需暴露你的密钥。
  • Infura是连接以太坊和其他区块链以及 IPFS 等去中心化存储网络的基础设施提供商。无需过多赘述,与区块链的任何交互都需要通过 JSON-RPC 或 WebSockets 访问节点。Infura 提供基础设施,因此你不必在你的机器上启动自己的节点。如果你确实想运行自己的节点,Infura 也可以作为后备方案。Infura 还提供开发套件和工具包,包括监控、指标、日志记录、事务管理和其他用于构建 dapp 的功能。这是对我们已经讨论过的一些其他技术的进一步抽象,使 Web3.0开发更加容易。

结论

Web3.0 是支持下一代软件的互联网的下一个演变。区块链是更透明的技术,不仅通过消费者采用,而且通过主要机构采用,已经成为主流。了解什么是 Web3.0技术以及如何构建它将为你打入市场提供优势。对于那些已经拥有强大的 Web2.0 基础的有抱负的 Web3.0 开发人员,我希望现在你对你已经掌握的知识有了一个良好的开端充满信心!花一些时间学习上述技术,你会比想象的会更快做好准备。