用Meteor开发以太坊应用

计划要写四篇关于以太坊开发的文章,这是第三篇。

我们先看看以太坊的一位核心开发人员在官方Wiki中这样描述Meteor框架,他说「5 reasons why Meteor is a perfect fit」

具备两SPA开发的一切特征,包括模版引擎、模型、即时编译、绑定

live reload,CSS注入,以及多种预编译,LESS, Coffeescript

只需要一个html、js、css就可以打包,随时可以发布到swarm上

拥有像angular一样的数据绑定特性,以及友好的界面

具备minimongo可以持久化存储数据

这里我们用同样完成上一篇文章中讲到的投票应用,不同的是,这次我们用Meteor。

启动以太坊Node或者模拟器的方法,这里不在赘述,您可以参考之前的文章,对于一个智能合约,重要的是,我们需要得到编译后的bytecode以及ABI,正如我们之前谈到的,有多种方式可以完成,这里同样不在赘述,至于部署,也是有很多办法包括通过web3方式,或者通过Geth方式,这里需要注意的是,每次部署都会生成一个不同的合约地址,那么以太坊环境中已经部署的合约要和你应用使用的地址匹配「前端通过web3与合约交互的地址」。

我们用Meteor命令行方式创建工程,

meteor create voting

然后我们通过Meteor安装web3,方法,

meteor add ethereum:web3

建立这样一个文件,内容如下,然后把文件放到client/lib目录下,按照Meteor的规则,lib下的文件会自动执行,那么这里就是自动引用上面安装的web3,

在同一个目录下,我们再创建一个文件,内容如下,把合约的一些变量以全局变量方式声明,这样在其他页面中就可以调用了,

接下来我们看js页面以及html页面,创建了两个模版,代码非常简单而且清晰,这完全是Meteor的功劳,

运行之后,效果与之前的一致,

当然,你可以结合Meteor强大的后台处理,比如跟踪区块的生成,或者实时统计投票状态,这些对Meteor来说都是轻而易举的事情。

关于另外一个通用的框架Truffle,官方有很多tutorials,其中有一个Pet shop的例子,非常典型,感兴趣的朋友可以自己尝试开发,后面就不再写文章详细描述了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180323G11VIV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券