以太坊系列 - Web3.js

Web3.js

web3.js是一组用来和本地或远程以太坊节点进行交互的js库,它可以使用HTTP或IPC建立与以太坊节点旳连接。
底层实现上,它通过RPC 调用与本地或远程节点通信。web3.js可以与任何暴露了RPC接口的以太坊节点连接。

Installation

npm install web3

Usage

// In Node.js
const Web3 = require('web3');

let web3 = new Web3('ws://localhost:8546');
console.log(web3);
> {
    eth: ... ,
    shh: ... ,
    utils: ...,
    ...
}

0.20.X 与 1.X 版本的区别

这是 web3.js主要的两类版本

  • truffle migratetruffle test 时会用操作系统安装的web3js版本,可以用truffle verson查看
  • nodejs会使用package.json中指定的web3js版本号

1.x 版本的变动

  • if ('utils' in web3) 可用此判断web3j的版本
  • web3.sha3web3.utils.sha3 取代
    • 要哈希的数据在调用web3.utils.sha3 前需要先判空: if (!input || !input.length) { return; }
  • web3.eth.accounts is deprecated. Use web3.eth.getAccounts() instead
  • web3.fromWeiweb3.utils.fromWei 取代
  • web3.toWeiweb3.utils.toWei 取代
  • watch不再支持.
    • myContract.EventName([params]).watch([callback])myContract.EventName([params],[callback]) 取代
  • The HTTP provider is deprecated, as it won’t work for subscriptions.得改用websocket
    • truffle-config.js中 websockets: true
    • HttpProvider 被 WebsocketProvider 取代, 端口号不用变
    • network_local.json 中的 rpcUrl 配置成 ws://127.0.0.1:9545

老的项目想通过编译

# package.json中配置
"web3": "^0.20.0",

# npm时
npm install --force

往期精彩回顾:
区块链知识系列
密码学系列
零知识证明系列
共识系列
公链调研系列
比特币系列
以太坊系列
EOS系列
Filecoin系列
联盟链系列
Fabric系列
智能合约系列
Token系列
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搬砖魁首

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值