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