安装
别按照官网上面 npm install web3 下载,我已经吃过一次亏了
npm init
npm install ethereum/web3.js --save
指令
web3.isConnected() #检查结点的连接是否存在
web3.reset() #重置web3
web3.sha3(string,options) #加密
web3.toHex() #将任何值转为hex
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
web3.net.peerCounnt #连接节点的数量
web3.eth.defaultBlock #默认地址
web3.eth.getBalance()
系统和软件
- Ubuntu 16.04 64位
- nodejs 6.10.0
- npm 3.10.10
示例合约
本文以下面的MetaCoin合约为例,说明在应用中使用web3.js操作智能合约的方法。
// 本文中用到的MetaCoin合约
pragma solidity ^0.4.2;
contract MetaCoin {
mapping (address => uint) balances;
event Transfer(address indexed _from, address indexed _to, uint256 _value);
function MetaCoin() {
balances[tx.origin] = 10000;
}
function sendCoin(address receiver, uint amount) returns(bool sufficient) {
if (balances[msg.sender] < amount) return false;
balances[msg.sender] -= amount;
balances[receiver] += amount;
Transfer(msg.sender, receiver, amount);
return true;
}
function getBalance(address addr) returns(uint) {
return balances[addr];
}
}
这个合约有三个函数:
- MetaCoin:构造函数,在合约被部署到区块链时执行
- getBalance:返回某账户的余额,它只读数据,不会修改数据
- sendCoin:向另一个账户发送指定数量的MetaCoin,它会改变状态变量balances
启动一个以太坊节点,将上面的合约部署到区块链中,并记录下合约的地址,可以通过truffle部署,具体参考这篇文章。 接下来就可以按照下面的步骤在项目中通过web3.js来使用这个合约。
添加web3到项目中
首先新建一个Nodejs项目并初始化:
$ mkdir web3test && cd web3test
$ npm init
</