web3.js 介绍和下载安装以及访问区块链网络(web3.0区块链)

一:介绍

开发以太坊区块链应用程序,涉及到以下部分:

智能合约开发 – 使用solidity语言编写代码,部署到区块链。网站或客户端开发 – 与区块链中的智能合约进行交互,读写数据。

在进行网站或客户端开发时,就需要用到web3.js。web3.js库是一个javascript库,可以让你执行很多与区块链进行交互的任务,例如:

以太币转账读写智能合约中的数据创建智能合约

如果你有web开发背景,对使用Ajax与web服务器进行通信的机制应该很熟悉。与Ajax类似,可以使用Web3.js读写以太坊区块链。

区块链网络是一个点对点的对等网络,网络由各个节点相互连接构成,智能合约的代码与数据存储在区块链中。使用web3.js可以向区块链网络中某个以太坊节点发出请求,与区块链网络进行交互。

此过程如下图所示:

web3.js 介绍和下载安装以及访问区块链网络(web3.0区块链)

web3.js使用JSON RPC与Ethereum区块链通信(JSON RPC即JSON远程调用),对区块链网络进行数据读写。这有点像使用jQuery ajax库来读写web服务器上的数据。

二:安装与下载

NPM

首先要安装Node包管理器,即NPM,它与Node.js一起安装。

从Node.js官网上下载Node并安装: https://nodejs.org

查看node版本,npm版本:

Kevin@QIKEGU C:UsersKevin> node-vv10.16.3Kevin@QIKEGU C:UsersKevin> npm-v6.11.3

web3.js

安装Web3.js库:

$ npm install web3

连接以太坊节点

要访问以太坊网络,需要连接到Ethereum节点。

有几种方法可以做到这一点,可以使用Geth或Parity运行自己的Ethereum节点。但这需要从区块链下载大量数据并保持同步,很麻烦。

比较方便的方法是,使用Infura访问Ethereum节点。Infura是一个免费提供Ethereum节点的服务。

在Infura上注册账号,创建项目,在项目详情页上可以查看API KEY:

web3.js 介绍和下载安装以及访问区块链网络(web3.0区块链)

使用API KEY,就可以访问以太坊网络节点

三:web3.js访问区块链网络

web3.js访问区块链网络,我们将读取某个账号的余额。

创建web3连接

首先启动node:

$ node

在node控制台中加载Web3.js库:

const Web3 = require('web3')

接下来,使用Infura URL,创建Web3连接。声明Infura URL变量:

const rpcURL = "https://mainnet.infura.io/YOUR_INFURA_API_KEY"

确保使用之前获得的实际Infura API密钥替换此处的 YOUR_INFURA_API_KEY。创建Web3连接:

const web3 = new Web3(rpcURL)

读取余额

现在有了这个Web3连接,就可以与以太坊主网进行通信。

让我们使用这个连接来检查这个帐户的余额: 0x03118E2c88676d31ee397E1eEf7789fECfbC40b9。通过使用 web3.eth.getBalance()检查帐户余额,我们可以看一下这个帐户下有多少以太币。

首先,将地址赋给一个变量:

const address = "0x03118E2c88676d31ee397E1eEf7789fECfbC40b9"

检查账户余额:

// 读取address中的余额,余额单位是weiweb3.eth.getBalance(address, (err, wei) => { // 余额单位从wei转换为ether balance = web3.utils.fromWei(wei, 'ether') console.log("balance: " balance)})

输出:

balance: 6.97320381

小结

以下是本教程中编写的代码概要:

const Web3 = require('web3')const rpcURL = '' // RPC URLconst web3 = new Web3(rpcURL)const address = '' // 账户地址// 读取address中的余额,余额单位是weiweb3.eth.getBalance(address, (err, wei) => { // 余额单位从wei转换为ether balance = web3.utils.fromWei(wei, 'ether') console.log("balance: " balance)})

Web3.js更多使用细节,可以参考官方文档:

https://web3js.readthedocs.io/

注意,Web3.js正在积极开发中,可以访问Web3.js github存储库,了解它的进展,也可以阅读代码更好地理解库本身。

web3.js github库: https://github.com/ethereum/web3.js/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(1)
上一篇 2023年5月15日 上午9:07
下一篇 2023年5月15日 上午9:23

相关推荐

  • 医学科研项目申报指南需求(医学科研项目申请书主要工作简历)

    医学科研项目申请书主要工作简历 我是一名医学研究人员,致力于探索新的医学研究途径。在我过去的工作中,我积累了丰富的医学科研项目申请书主要工作简历经验,并取得了显著的成果。 我曾在某…

    科研百科 2024年8月3日
    22
  • 轻松采集,信息无忧!九款网页抓取工具推荐(网页抓取工具软件)

    轻松采集,信息无忧!九款网页抓取工具推荐(网页抓取工具软件) 在全球数字化浪潮中,信息获取显得尤为关键。然而,对于非科技人士而言,获取所需信息无疑是一项艰巨任务。幸好现今市面上涌现…

    科研百科 2024年4月1日
    43
  • 科研项目财务审计没过

    科研项目财务审计没过 最近,我们团队的科研项目进行了财务审计,但是最终结果表明,我们的审计没有通过。这是一个非常令人失望的结果,因为我们一直认为我们的财务审计是一个重要的步骤,能够…

    科研百科 2025年3月6日
    0
  • abs项目管理

    abs项目管理: 将复杂性转化为价值 在现代社会,项目管理已经成为一项至关重要的技能。然而,许多项目在实施过程中会遇到各种挑战,其中一些可能是前所未有的。在这种情况下,abs项目管…

    科研百科 2024年8月15日
    29
  • 泗水泉林镇开展“一扫二验三通行”“场所码”持续推广行动

    “您好,请扫描一下“场所码”,我看一下您是否有7天内核酸阴性证明?”为持续做好“场所码”使用工作,引导广大群众正确、主动使用“场所码”,知晓扫码必要性,确保“场所码”全覆盖、无死角…

    科研百科 2024年4月26日
    51
  • 教育部科研立项(教育部有理工科科研项目吗)

    教育部有理工科科研项目吗 近年来,随着国家科技的飞速发展,教育部也在不断加强对理工科科研项目的支持和鼓励。作为国家高等教育的重要组成部分,理工科教育在推动科学技术进步和促进经济发展…

    科研百科 2024年4月3日
    63
  • 科研项目的直接经济效益和间接经济效益

    科研项目的直接经济效益和间接经济效益科研项目的直接经济效益和间接经济效益1、我国经济结构调整对经济发展起决定作用2、我国政府的发文是按照我国经济发展和政治矛盾不断变化的原则和政策措…

    科研百科 2024年11月27日
    6
  • 城建项目管理系统报价

    城建项目管理系统报价:一个系统的价格差异很大,取决于许多因素,包括功能、性能、安全性、可靠性、易用性等等。 如果正在考虑购买一个城建项目管理系统,以下是一些需要考虑的因素。 1. …

    科研百科 2024年12月17日
    0
  • 优秀研究生科研项目

    优秀研究生科研项目 作为一名优秀的研究生,完成一项科研项目是至关重要的。而完成一项优秀的科研项目,则需要研究生具备扎实的学术基础、敏锐的科研思维和勤奋的科研态度。本文将介绍一些优秀…

    科研百科 2025年4月1日
    1
  • 科技服务项目管理系统应该满足哪些市场需求?(企业科技服务需求有哪些)

    科技服务项目应该满足哪些基本功能,下面小编为大家总结了几点市场的需求: 1、科技项目过程管理的数据采集和分析 "重立项、轻管理"是科技管理部门存在的普遍现象,原…

    科研百科 2022年10月24日
    317