打字猴:1.703877343e+09
1703877343 ·event。用一个字符串表示事件名。
1703877344
1703877345 ·logIndex。用一个整数表示区块中的日志索引位置。
1703877346
1703877347 ·transactionIndex。用一个整数表示日志最初的交易索引位置。
1703877348
1703877349 ·transactionHash。用一个字符串表示日志最初的交易哈希。
1703877350
1703877351 ·address。用一个字符串表示日志最初的地址。
1703877352
1703877353 ·blockHash。用一个字符串表示日志所在区块的哈希。如待定,则为null。
1703877354
1703877355 ·blockNumber。日志所在区块的序号。如待定,则为null。
1703877356
1703877357
1703877358 web3.js提供web3.eth.filter API以检索和监听事件。用户可以使用这个API,但是处理事件的Event方法更简便。要想学习更多内容,请访问https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethfilter。
1703877359
1703877360
1703877361
1703877362
1703877363 区块链项目开发指南 [:1703875336]
1703877364 区块链项目开发指南 4.2 为所有权合约创建客户端
1703877365
1703877366 在前一章中,我们为所有权合约编写了Solidity代码;在前一章和本章中,我们学习了web3.js的有关知识和使用web3.js调用合约的方法。现在是时候为智能合约创建客户端了,这样方便用户使用。
1703877367
1703877368 创建一个客户端,用户从中选择一个文件,输入所有者细节,然后按下Submit按钮广播交易,用文件哈希和所有者的细节调用合约的set方法。一旦交易被成功广播,将显示交易哈希。用户还能够选择一个文件,并从智能合约中得到所有者的细节。客户端还将实时显示最新挖出的set交易。
1703877369
1703877370 我们将在前端使用sha1.js获取文件哈希,使用jQuery进行DOM操纵,并使用Bootstrap 4创建一个反应层(responsive layout)。在后端使用express.js和web3.js。我们将使用socket.io,这样不需要前端间隔相等的时间请求数据,后端就把最近挖出的交易推到前端。
1703877371
1703877372
1703877373 web3.js可以在前端使用,但对于应用是个安全漏洞。也就是说,我们在使用存储在geth中的账户,并把geth节点URL显示给前端,这将使存储在那些账户中的以太币面临风险。
1703877374
1703877375
1703877376
1703877377
1703877378 区块链项目开发指南 [:1703875337]
1703877379 区块链项目开发指南 4.2.1 项目结构
1703877380
1703877381 在本章的练习文件中,将发现两个目录:Final和Initial。Final包含项目的最终源代码,而Initial包含可以用于迅速创建应用的空的源代码文件和库。
1703877382
1703877383
1703877384 为了测试Final目录,需要在其中运行npm install,并把app.js中硬编码的合约地址替换为在部署合约之后得到的合约地址。然后,使用Final目录中的node app.js命令运行该应用。
1703877385
1703877386 在Initial目录中,将发现一个public目录和两个文件(app.js和package.json)。package.json包含应用的后端相关内容,app.js包含应用的后端源代码。
1703877387
1703877388 public目录包含与前端相关的文件。在public/css中会发现bootstrap.min.css,它是Bootstrap库;在public/html中会发现index.html,所应用的HTML代码放在这里;在public/js目录中将发现jQuery、sha1和socket.io的JS文件。在public/js中还会发现一个main.js文件,应用的前端JS代码放在这里。
1703877389
1703877390
1703877391
1703877392
[ 上一页 ]  [ :1.703877343e+09 ]  [ 下一页 ]