1703878512
区块链项目开发指南 7.4 为投注合约创建客户端
1703878513
1703878514
为了方便发现比赛ID以及部署和投资合约,需要创建一个UI客户端。先来创建一个客户端,它有两个路径,即home路径(用于部署合约和投注比赛)和other路径(用于发现比赛列表)。我们将允许用户使用离线账户进行部署和押注,这样投注的整个过程就是去中心化的,无法作弊。
1703878515
1703878516
在开始创建客户端之前,确保同步测试网,因为Oraclize只在以太坊的测试网/主网上工作,不在私有网络上工作。可以跳转到测试网,下载测试网区块链,用—testnet选项替换—dev选项,例如:
1703878517
1703878518
1703878519
1703878520
1703878521
1703878522
1703878523
1703878525
区块链项目开发指南 7.4.1 项目结构
1703878526
1703878527
在本章的练习文件中,用户将发现Final和Initial两个目录。Final包含项目的最终源代码,而Initial包含可用于迅速创建应用的空的源代码文件和库。
1703878528
1703878529
1703878530
为了测试Final目录,需要在其中运行npm install。然后,使用Final目录中的node app.js命令运行该应用。
1703878531
1703878532
在Initial目录中,用户将发现一个public目录和两个文件(app.js和package.json)。package.json包含应用后端的相关内容,把应用后端的源代码放在app.js里。
1703878533
1703878534
public目录包含与前端相关的文件。在public/css中会发现bootstrap.min.css,它是Bootstrap库;在public/html中会发现index.html,把应用的HTML代码放在这里;在public/js目录中会发现web3.js和ethereumjs-tx的.js文件;在public/js中还会发现一个main.js文件,把应用的前端JS代码放在这里。用户还将发现用于加密查询的Oraclize Python工具。
1703878535
1703878536
1703878537
1703878538
1703878540
区块链项目开发指南 7.4.2 创建后端
1703878541
1703878542
先来创建App后端。首先在Initial目录中运行npm install,安装后端所需的相关内容。
1703878543
1703878544
如下后端代码用于运行快捷服务并用于index.html文件和静态文件,并设置试图引擎(view engine):
1703878545
1703878546
1703878547
1703878548
1703878549
上述程序代码无须解释说明。应用将出现一个新的页面,显示最近比赛的列表,包括比赛ID和结果(如果比赛结束了)。相关代码如下:
1703878550
1703878551
1703878552
1703878553
1703878554
这里发出API请求以抓取最近比赛的列表,然后把结果传送给matches.ejs文件,这样它可以在用户友好的UI中展示结果。API结果将比赛开始时间作为时间戳,因此需要时间把它转换为人类可以阅读的格式。我们从后端(而不是前端)发出这个请求,这样不会把API key暴露给用户。
1703878555
1703878556
后端将给前端提供一个API,以供前端在部署合约之前加密查询。应用不会提示用户创建API key,因为这是一个不好的UX实践。应用开发者控制API key不会造成危害,因为开发者不能修改来自API服务端的结果,因此,即使应用开发者知道了API key,用户仍将信任该App。
1703878557
1703878558
加密的相关代码如下:
1703878559
1703878560
[
上一页 ]
[ :1.703878511e+09 ]
[
下一页 ]