一、前言
博主在安装web3.js的时候,偶然间安装了不同版本的web3.js,API操作也不相同,虽然都能达到目标,但是到底区别在哪呢?网上查找半天并没有人专门总结一下这块,所以今天斗胆总结一下,也算是加深对web3.js的理解。
二、概念
1、什么是web3.js呢?
答:
Web3.js是以太坊提供的一个JavaScript库,它封装了以太坊的RPC通信API,提供了一系列与区块链交互方法,使JavaScript与以太坊交互变得简单。
以太坊节点通过JSON-RPC提供外部访问接口,Web3.js是基于JavaScript和Node.js的JSON-RPC封装
JSON-RPC是一个无状态、轻量级的远程过程调用协议(RPC),与传输协议无关,可使用socket、HTTP或者其它协议,它使用JSON(RFC4627)作为数据格式。
2、我们怎么用web3.js和以太坊的geth进行交互呢?
在我前几篇的文章中【以太坊】搭建测试网络之ubuntu系统安装geth客户端以及同步区块数据,安装geth的时候有这样一段命令:
geth –testnet –fast –cache=512 –datadir “/data/ethereum/block_data” –rpc –rpcapi db,net,eth,web3,personal –rpcport 8545 –rpcaddr 127.0.0.1 –rpccorsdomain “*” console
1
这里我们指定了‘db,net,eth,web3,personal’等方式来操作geth。因此我们安装好之后,可以通过web3.js来操作以太坊相关函数。
三、web3.js不同版本的安装方式
1、web3.js的0.2.0版本
(1)安装
//新建一个文件夹,然后初始化
npm init -f //此处的-f会自动给你配好配置文件
npm install web3@^0.20.0
1
2
3
0.2中文手册: