web3.js是以太坊提供的一个Javascript库,它封装了以太坊的JSON RPC API,提供了一系列与区块链交互的Javascript对象和函数,包括查看网络状态,查看本地账户、查看交易和区块、发送交易、编译/部署智能合约、调用智能合约等。

web3.js 是以太坊提供的一个 Javascript 库,它封装了以太坊的 JSON RPC API,提供了一系列与区块链交互的 Javascript 对象和函数,包括查看网络状态,查看本地账户、查看交易和区块、发送交易、编译/部署智能合约、调用智能合约等,其中最重要的就是与智能合约交互的 API。

web3.js是什么  第1张

Web3.js API 基本

为了让你的 Dapp 运行上以太坊,一种选择是使用 web3.js library 提供的 web3。对象。底层实现上,它通过 RPC 调用与本地节点通信。web3.js 可以与任何暴露了 RPC 接口的以太坊节点连接。

web3 中有 eth 对象 - web3.eth 具体来表示与以太坊区块链之间的交互。shh 对象 - web3.shh 表示 Whisper 协议的相关交互。后续我们会继续介绍其它一些 web3 协议中的对象。

Web3.js 入门

web3.js 库是一系列模块的集合,服务于以太坊生态系统的各个功能,如:

web3-eth 用来与以太坊区块链及合约的交互;

web3-shh Whisper 协议相关,进行 p2p 通信和广播;

web3-bzz swarm 协议(去中心化文件存储)相关;

web3-utils 包含一些对 DApp 开发者有用的方法。

引入 web3.js

首先,需要将 web3.js 引入到项目中。 可以使用以下方法来完成:

  • npm: npm install web3
  • meteor: meteor add ethereum:web3
  • pure js: link the dist/web3.min.js

然后你需要创建一个 web3 的实例,设置一个 provider。 支持以太坊的浏览器如 Mist 或 MetaMask 会有提供一个 ethereumProvider 或 web3.currentProvider 。

对于 web3.js 来说,可以检查 Web3.givenProvider ,如果属性为 null 再连接本地或远程的节点。