打字猴:1.703877091e+09
1703877091
1703877092 为了连接到节点所使用的基础代码如下:
1703877093
1703877094
1703877095
1703877096
1703877097 首先,通过检查web3是否是undefined,来确定代码是否在Mist中运行。如果web3被定义了,则使用已经可用的实例;否则,通过连接至自定义节点创建一个实例。如果无论App是否在Mist中运行都连接到自定义节点,则从程序代码中删除if。这里假设自定义节点在8545端口本地运行。
1703877098
1703877099 Web3.providers对象使用多种协议显示构造函数(在此称为providers),以建立连接和传输信息。Web3.providers.HttpProvider允许建立HTTP连接,Web3.providers.IpcProvider允许建立IPC连接。
1703877100
1703877101 web3.currentProvider属性被自动分配给当前的provider实例。在创建web3实例之后,可使用web3.setProvider()方法改变provider。它有一个实参,即新provider的实例。
1703877102
1703877103
1703877104 记住:geth默认禁用HTTP-RPC。所以在运行geth时通过—rpc选项以使用HTTP-RPC。HTTP-RPC默认在8545端口运行。
1703877105
1703877106 web3显示isConnected()方法,可用于查询是否已经与节点连接。根据连接状态的不同,返回true或者false。
1703877107
1703877108
1703877109
1703877110
1703877111 区块链项目开发指南 [:1703875329]
1703877112 区块链项目开发指南 4.1.3 API结构
1703877113
1703877114 web3包含一个eth对象(web3.eth),专门用于以太坊区块链交互;还包含一个shh对象(web3.shh),用于whisper交互。web3.js的大部分API都在这两个对象中。
1703877115
1703877116 所有API都是默认同步的。如果想发出异步请求,可以把一个可选回调函数作为最后的参数传送给大多数函数。所有回调函数都采用错误优先(error-first)回调方式。
1703877117
1703877118 一些API对于异步请求采用别名。例如web3.eth.coinbase()是同步的,web3.eth.getCoinbase()是异步的。示例如下:
1703877119
1703877120
1703877121
1703877122
1703877123 getBlock使用区块序号或者哈希值获取区块信息。或者,它可以使用一个字符串,例如”earliest”(创世区块)、“latest”(区块链最上面的区块)或者”pending”(正在挖的区块)。如果不传送实参,则默认是web3.eth.defaultBlock,默认分配”latest”。
1703877124
1703877125 所有需要区块身份证明作为输入的API可以用序号、哈希值或者一个可读字符串作为输入。如果值未通过,则这些API默认使用web3.eth.defaultBlock。
1703877126
1703877127
1703877128
1703877129
1703877130 区块链项目开发指南 [:1703875330]
1703877131 区块链项目开发指南 4.1.4 BigNumber.js
1703877132
1703877133 JavaScript本质上对于正确处理大数字不在行。因此,需要处理大数字和进行完美计算的应用会使用BigNumber.js库。
1703877134
1703877135 web3.js还依赖于BigNumber.js,且自动进行加载。web3.js总是对序号值返回BigNumber对象。它可以用JavaScript数字、数字字符串和BigNumber实例作为输入,示例如下:
1703877136
1703877137
1703877138
1703877139
1703877140 这里使用web3.eth.getBalance()方法获取地址余额,该方法返回一个BigNumber对象。需要在BigNumber对象上调用toString(),把它转换成数字字符串。
[ 上一页 ]  [ :1.703877091e+09 ]  [ 下一页 ]