摘要
计划用三篇文章,一个月左右的时间来实现一个蚂蚁开放联盟链上的区块链投票案例,本文是系列第一篇。
- 蚂蚁区块链投票案例(一)—蚂蚁链简介
- 蚂蚁区块链投票案例(二)—投票合约设计开发
- 蚂蚁区块链投票案例(三)—Java调用部分实现(整理中)
背景
上一篇讲了区块链投票方案的介绍,我们最终选择了蚂蚁链可信存证方案,但是因为在调研过程中对全上链的投票方案也做了调研,且实际设计了投票合约并结合DApp进行了调用测试。测试过程中踩了一些坑,整理出来与大家分享。
虽然区块链发展了这么多年,官方也在2019年进行过背书,要大力发展区块链相关产业。但是实际以蚂蚁链为例,效果感觉并不很好,交易量小,产品线混乱,bug多,更新慢,代表性项目少。所以目前情况来看,我并不看好区块链的发展,它更多的是给解决信任问题提供了一个方向,但也并不是非他不可吧,特别是在国内区块链中介化的环境下,后续能进行到什么程度不好说。
废话说完,进入正题。
蚂蚁链简介
蚂蚁链现在也比较混乱,搞了好几条,每条的文档都不一样,sdk也不一样,操作界面也不一样。提供了免费环境公开发者体验的有开放联盟链、联盟链(合约体验链)、开发者测试链。
其中除了开发者测试链外,蚂蚁链的产品有统一的控制台,访问蚂蚁链官网,点击右上角控制台登录后可以进入蚂蚁链产品统一的控制台,点击产品与服务下拉菜单,可以进入对应产品的控制台,如下图。接下来我会详细介绍下我对接过的几条链。
联盟链(合约体验链)
联盟链是蚂蚁为企业推出的区块链BaaS平台,企业可以创建联盟,也可以加入联盟。创建联盟链的成本较高,最低价格要10万/年,蚂蚁提供了一条合约体验链,可以点击区块链实验室,进去后按照教程进行操作体验,这里的教程还可以的,大家可以体验一下。
下图为合约体验链教程:
开放联盟链
开放联盟链是蚂蚁在联盟链基础上提供的一条准公链,降低了个人开发者和小企业开发者的上链门槛。定义为准公链,因为国内的区块链监管环境,开放联盟链不提供个人钱包地址的概念,只有实名认证的开发者或者企业才能入住,相当于中介化。
开放联盟链在用户首次注册时,会提供1亿的gas用于开发测试,直接赠送了一个小目标。我们后面的投票合约实验都是在开放联盟链的基础上实现的,具体操作会在后文详述。
开发者测试链
在蚂蚁开者中心,开发者实验室提供了一条实验链,在工具与资源菜单下可以找到。蚂蚁有一个学习课程,蚂蚁的这条实验链应该是给大家提供来学习的一个工具。
我用开放联盟链提供的Demo库链接开发者实验链,发现可以链接成功,这样做最初的目的是找到一个免费的测试环境和付费的生产环境分开,但是调用合约时传递bytes32类型的参数一直不成功。后续我查到原因会补充在这里。
总结
下图是蚂蚁链的分类,画小红旗的是上文介绍到的,其中开发联盟链是本文选择的开发环境。
遗留问题
测试环境和生产环境的问题?
如果将蚂蚁链用到产品中,要解决测试环境和生产环境切换的问题,但蚂蚁各条链提供的demo代码都不一样,sdk也不一样。除了开放联盟链,其他链都没有提供托管账户的调用方式,所以想在两条链之间切换调用,就一定要采用非托管账户的接入方式。
但在测试开放联盟链非托管账户的调用时,传递bytes32类型参数会报错,其他类型的没问题,我怀疑是蚂蚁提供的sdk有问题。如果能解决这个问题,可以将开放联盟链作为生产环境,将开发者实验链作为测试环境,降低开发成本。如果大家有什么办法,也欢迎留言告诉我,非常感谢!