用Web3.js构建第一个Dapp

这篇文章主要介绍了用Web3.js构建第一个Dapp ,文中通过代码以及文档配合进行讲解,很详细,它对在座的每个人的研究和工作具有很经典的参考价值。 如果需要,让我们与区块链资料网一起学习。

https://www.interchains.cc/24016.html

用Web3.js构建第一个Dapp是很好的区块链资料,他说明了区块链当中的经典原理,可以给我们提供资料,用Web3.js构建第一个Dapp学习起来其实是很简单的,

不多的几个较为抽象的概念也很容易理解,之所以很多人感觉用Web3.js构建第一个Dapp比较复杂,一方面是因为大多数的文档没有做到由浅入深地讲解,概念上没有注意先后顺序,给读者的理解带来困难

用Web3.js构建第一个Dapp

  • Web3.js

Web3.js 使用的实用介绍

  • 原文 作者:wissal haji
  • 译文出自:登链翻译计划
  • 译者:翻译小组
  • 校对:Tiny 熊
  • 本文永久链接:learnblockchain.cn/article…

欢迎订阅《Solidity 智能合约专栏》系列文章。 在上一篇中,我们看到了如何实现工厂模式。 如果你一直在跟着这个系列学习,那么你已经掌握了编写自己的智能合约。

因此,今天给大家介绍一下构建去中心化应用的全貌,并向大家介绍一下web3.js,这是构建dapp不可缺失部分。

在深入了解web3.js是什么以及它的工作原理之前,我想先回答一个简单的问题 – 为什么选择web3.js? 来开启这个话题:

用Web3.js构建第一个Dapp

图片来源: GitHub上的ethereumbook

去中心化应用有三个主要组成部分。

  • 前端。 从用户那里获取输入,并建立发送到智能合约的请求。
  • 钱包。 签署交易并将其发送到网络。
  • 智能合约。 这里编写dapp的业务逻辑的地方。

现在的问题是如何用JavaScript 在前端与智能合约交互。

在web3.js出现之前,我们与智能合约交互的唯一方式是通过以太坊eth节点提供的json-rpc API, API 由节点提供,节点作为json-rpc服务器。 使用 json-rpc 可不是一件容易的事。

但由于web3.js,你不必再担心JSON-RPC调用的低层细节,因为它提供了以太坊eth json-rpc接口的抽象。 因此,你可以使用纯JavaScript开始与以太坊eth节点进行交互。 简单地说,web3.js 就是用JavaScript把 JSON-RPC API 封装了。

web3.js是如何工作

正如我们之前所说的,为了与以太坊eth网络进行交互,我们需要向以太坊eth节点发送json-rpc调用,这就是web3.js的底层工作。 那么它是如何做到的呢?

为了将JavaScript代码翻译成json-rpc请求,web3.js使用了称之为provider(提供者),它是一个符合EIP 1193规范的JavaScript对象,负责实现以太坊eth RPC方法调用的request方法。 Web3.js对上述规范有自己的实现,并将其放在web3.provider下,你可以访问web3文档中提到的以下三个provider:HttpProviderWebsocketProviderIpcProvider

其他项目也实现了这一规范,如MetaMask,它在浏览器中注入了window.ethereum下的提供者对象。

一旦我们有了一个提供者,我们就可以使用new关键字获得web3的实例。

let web3 = new Web3(Web3.givenProvider || 'ws://some.local-or-remote.node:8546');

在这里你应该记住的是,web3.js需要一个provider对象,配置好钱包的信息,它将签署交易并将其发送到网络。 如果你在前端使用web3,这个提供者将被注入到浏览器中,或者你使用websocketproviderIpcProvider自己建立一个提供者对象。

注:MetaMask使用Infura作为节点提供者。 这就是为什么你不需要在电脑上安装以太坊eth客户端就能与以太坊eth网络进行交互的原因

快速查看Web3 API

web3.js不仅可以与以太坊eth节点进行通信,还可以与Whisper和Swarm节点进行通信。 它有五个主要包 :

  • web3.eth。 允许与以太坊eth区块链blockchain以太坊eth智能合约进行交互。
  • web3.bzz: 允许与去中心化文件存储Swarm进行交互。
  • web3.shh: 允许与Whisper协议进行互动广播。
  • web3.utils。 为以太坊eth dapp提供实用功能,比如将字符串转换为十六进制,将以太币转换为Wei。
  • web3.*.net: 允许与以太坊eth节点的网络属性进行交互,如网络ID或对连接节点数量。

用web3.js构建第一个Dapp

现在我们已经把理论讲完了,让我们动手去构建我们的第一个dapp。 在这个例子中,我们将建立一个问候语dapp,存储一个默认的问候语字符串,并允许用户更新它。 对于钱包,我们将使用MetaMask。 你可以点击MetaMask 官网主页上的下载链接来添加扩展。

1. 创建合约并部署到网络上

首先在你的工作区创建一个名为 greeting的空项目,并使用 truffle init初始化它。

 >...

用Web3.js构建第一个Dapp

剩余50%的内容订阅专栏后可查看

  • 发表于 2021-01-26 15:53
  • 阅读 ( 1385 )
  • 学分 ( 65 )
  • 分类:以太坊eth
  • 专栏:全面掌握Solidity智能合约开发

部分转自网络,侵权联系删除www.interchains.cchttps://www.interchains.cc/24016.html

区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 ! QQ3039046426
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » 用Web3.js构建第一个Dapp

提供最优质的资源集合

立即查看 了解详情