开发者社区> 问答> 正文

【云计算的1024种玩法】1小时使用阿里云区块链服务创建一个区块链小游戏

前言


区块链绝对是18年的热词,大家都在提区块链,也有很多的企业愿意创建基于区块链解决的信任场景。这次我就体验了一下阿里云的区块链服务,这里就放出相关体验和教程来。

介绍


目前阿里云的区块链服务即 BlockChain as a Service,简称 BaaS,是一款 PaaS 类产品,提供了基于阿里云构建的区块链平台服务,用户可以更专注于区块链服务的开发而不用将大量精力浪费在顶层服务的部署上。


区块链也叫做分布式账本数据库,所以我们将 BaaS 理解为一款云数据库。相类似的阿里云提供的云数据库 MySQL 版提供了较社区版自建更好的服务、体验、稳定性和可靠性,但是用户的程序还是得自行开发以以来于云数据库 MySQL 版。同理区块链服务也仅仅是提供了一个分布式账本数据库,解决了信赖问题,但是针对其所映射的理念的实现则依旧需要进行开发。


目前阿里云的区块链服务主要是提供针对企业场景的联盟链,有两大底层平台 Hyperledger Fabric(超级账本) 和 蚂蚁区块链。HyperledgerFabric是Linux基金会旗下的开源项目,起初是由 IBM 和 Digital Asset并赠送给 Hyperledger 项目的,在开源领域拥有非常高的声望,同时获得支持也更多,有非常多基于 Hyperledger Fabric 的区块链开源项目可以借鉴。蚂蚁区块链则是阿里集团主要是蚂蚁金服输出的联盟链项目,暂未开源,阿里作为区块链专利最多的企业,蚂蚁区块链的实力可见一斑,TPS可以高到250000,秒杀其他竞品,但是由于开放性不强等原因,其支持并不广泛,没有可以借鉴的开源项目。

教程

这里我们以开源生态比较完善的 Hyperledger Fabric 来写教程。这是创建环境的流程图,我们按这个流程走:






码链需要通过开发工具打包对应的码链然后上传,码链开发指南可以参考 Chaincode for Developers,我们可以试着学习后面的 DEMO 部署章节,获取已经开发好的码链。
接着选择对应的部署通道


然后是背书策略,背书策略举例: OR ('Org1MSP.member','Org2MSP.member')
表示此通道中的两个组织任何一方背书即可; AND (‘Org1MSP.member’,’Org2MSP.member’)
表示需要此通道中的两个组织背书。







部署 DEMO


Demo 我们拿 marbles 作为演示,因为这是一个 GUI 演示环境,比较直观。 为了再简化 DEMO 部署难度,这里拿阿里云提供编译好码链的版本。
我们需要准备一个支持 Node.JS 的环境,不一定要服务器,本地都可以。截至发文, marbles 仅支持 V6 和 V8,还不支持 V10。

准备



我们下载源码包并解压

wget https://baas-sdk.oss-cn-hangzhou.aliyuncs.com/node-sdk-demo-1.0.0.tar.gz
tar xzf node-sdk-demo-1.0.0.tar.gz


部署SDK


这里下载了 5.0.0,会解压出一个 node-sdk-demo 目录,我们将 创建用户 后下的 SDK 压缩包中的 connection-profile-standard.json 文件上传到对应的 /path/to/node-sdk-demo/config 下


然后依旧是修改这个文件,先格式化一下,用相关代码编辑器的插件或者用 https://jsonlint.com/ 都可以:
在最后几行的 "certificateAuthorities": {}
代码块下添加:

"registrar": [
        {
            "enrollId": "账号",
            "enrollSecret": "密码"
        }
  ],


[font=&]最终效果:
[font=&]

[font=&]




部署码链


将 /node-sdk-demo/chaincode 下的 marbles_v4.cc 根据之前的部署码链教程上传即可。

Node 安装


回到 node-sdk-demo 目录,我们开始安装。
一、安装 gulp 。
npm install --global gulp

二、安装 marbles 的依赖包
npm install

国内的话嫌速度慢可以安装 CNPM
如果结束后出现:
run `npm audit fix` to fix them, or `npm audit` for details
建议不要修复,修复了会启动不了,先忽略吧。

启动


最后运行
gulp marbles_baas

最后输出: -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
info: Detected that we have NOT launched successfully yet
debug: Open your browser to http://localhost:3001 and login as "admin" to initiate startup
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


可以打开


http://localhost:3001 (本地)
http://你的公网ip:3001 (服务器上)

配置

然后我们可以看到夏目的引导页,选择 Guided


[font="]然后在第三步:
[font="]

  • channel: 填写上传 marbles_v4 的通道名,如 work1,主要是区分业务用的,和我们之前创建的通道一致就行
  • chaincode_id: 填写 marbles
  • chaincode_version: 填写 v4

然后我们创建角色:


[font="]然后我们就可以愉快的玩耍了:
[font="]


可以看到每个弹珠的区块链信息。
我们可以在区块链服务的后台监控看到相关信息:


[font="]是不是玩耍区块链也还是满简单的?

展开
收起
妙正灰 2018-11-08 15:09:51 6151 0
2 条回答
写回答
取消 提交回答
  • Re【云计算的1024种玩法】1小时使用阿里云区块链服务创建一个区块链小
    真是厉害,谢谢分享。


    2018-11-28 14:12:59
    赞同 展开评论 打赏
  • 后端开发者,阿里云用户
    Re:【云计算的1024种玩法】1小时使用阿里云区块链服务创建一个区块链小 ..
    还没完成?

    先抢个沙发,大佬厉害。
    2018-11-08 15:19:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
区块链开启可问责服务新时代 立即下载
区块链在当前实际金融业务应用中的关键技术实施和解决方案 立即下载
IBM区块链技之道 立即下载