阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 1277阅读
  • 2回复

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

级别: 论坛版主
发帖
9349
云币
14165
前言 -}|L<~  
6FA+q YSV  
5mD8$% \8  
区块链绝对是18年的热词,大家都在提区块链,也有很多的企业愿意创建基于区块链解决的信任场景。这次我就体验了一下阿里的区块链服务,这里就放出相关体验和教程来。 $`E?=L`$  
c MXv  
介绍 30! DraW8  
xR/CP.dg  
(?7=,A7^  
目前阿里云的区块链服务即 BlockChain as a Service,简称 BaaS,是一款 PaaS 类产品,提供了基于阿里云构建的区块链平台服务,用户可以更专注于区块链服务的开发而不用将大量精力浪费在顶层服务的部署上。 _SAM8!q4,  
%o0b~R  
`$B?TNuch7  
区块链也叫做分布式账本数据库,所以我们将 BaaS 理解为一款云数据库。相类似的阿里云提供的云数据库 MySQL 版提供了较社区版建更好的服务、体验、稳定性和可靠性,但是用户的程序还是得自行开发以以来于云数据库 MySQL 版。同理区块链服务也仅仅是提供了一个分布式账本数据库,解决了信赖问题,但是针对其所映射的理念的实现则依旧需要进行开发。 / \w4k  
o utJ/~9;  
Z8 #nu  
目前阿里云的区块链服务主要是提供针对企业场景的联盟链,有两大底层平台 Hyperledger Fabric(超级账本) 和 蚂蚁区块链。HyperledgerFabric是Linux基金会旗下的开源项目,起初是由 IBM 和 Digital Asset并赠送给 Hyperledger 项目的,在开源领域拥有非常高的声望,同时获得支持也更多,有非常多基于 Hyperledger Fabric 的区块链开源项目可以借鉴。蚂蚁区块链则是阿里集团主要是蚂蚁金服输出的联盟链项目,暂未开源,阿里作为区块链专利最多的企业,蚂蚁区块链的实力可见一斑,TPS可以高到250000,秒杀其他竞品,但是由于开放性不强等原因,其支持并不广泛,没有可以借鉴的开源项目。 OlOOg  
H9/!oI1P?  
教程 kGYpJg9=  
ez ,.-@O  
这里我们以开源生态比较完善的 Hyperledger Fabric 来写教程。这是创建环境的流程图,我们按这个流程走: |LZ;2 i  
Z-PB CU  
`Nx@MPo  
$oBs%.Jp  
MXaF q K<Y  
z1J)./BO  
^wIB;!W  
码链需要通过开发工具打包对应的码链然后上传,码链开发指南可以参考 Chaincode for Developers,我们可以试着学习后面的 DEMO 部署章节,获取已经开发好的码链。 atTR6%!6  
接着选择对应的部署通道 .l1x~(  
V~*Gk!+f  
r1L@p[>  
然后是背书策略,背书策略举例:
  1. OR ('Org1MSP.member','Org2MSP.member')
|OH*c3~r  
表示此通道中的两个组织任何一方背书即可;
  1. AND (‘Org1MSP.member’,’Org2MSP.member’)
ieZ$@3#&z  
表示需要此通道中的两个组织背书。 ,HZ%q]*:~  
hIe.Mv-I)  
k&$ov  
[bhKL5l  
CvU$Fsb  
=X R~I  
jY=y<R_oK  
}Va((X w  
部署 DEMO KU|W85ye  
Tb i?AJa}  
(47?lw &  
Demo 我们拿 marbles 作为演示,因为这是一个 GUI 演示环境,比较直观。 为了再简化 DEMO 部署难度,这里拿阿里云提供编译好码链的版本。 I3Vu/&8f|  
我们需要准备一个支持 Node.JS 的环境,不一定要服务器,本地都可以。截至发文,marbles 仅支持 V6 和 V8,还不支持 V10。 pP| @Z{7d`  
EO!,rB7I  
准备 +e{ui +  
*tqD:hiF  
I$; `^z  
rfwJLl/  
我们下载源码包并解压 *Jsb~wta  
p1UloG\  
  1. wget https://baas-sdk.oss-cn-hangzhou.aliyuncs.com/node-sdk-demo-1.0.0.tar.gz
  2. tar xzf node-sdk-demo-1.0.0.tar.gz
$g>bp<9v4  
* :L"#20:R  
部署SDK T?1BcY  
DT]4C!dh  
hz:7W8  
这里下载了 5.0.0,会解压出一个 node-sdk-demo 目录,我们将 创建用户 后下的 SDK 压缩包中的 connection-profile-standard.json 文件上传到对应的 /path/to/node-sdk-demo/config 下 !aT:0m$:9c  
nah?V" ?Y  
x#0?$}f<  
然后依旧是修改这个文件,先格式化一下,用相关代码编辑器的插件或者用 https://jsonlint.com/ 都可以: 9y!0WZE{e  
在最后几行的
  1. "certificateAuthorities": {}
JBpV'_"]  
代码块下添加: |=q~X}DA  
+R*DE5dz  
  1. "registrar": [
  2.         {
  3.             "enrollId": "账号",
  4.             "enrollSecret": "密码"
  5.         }
  6.   ],
tX^6R  
(G|!{  
[font=&amp]最终效果: =`+D/ W\[Y  
[font=&amp] DdR0u0JH0  
QT c{7&  
[font=&amp] 7T/BzXr,B  
Z^'~iU-?  
 xL15uWk-  
#Vum  
l,o'J%<%  
部署码链 }ktIG|GC  
8&EJ. CQ  
3wfcGQn|sD  
将 /node-sdk-demo/chaincode 下的 marbles_v4.cc 根据之前的部署码链教程上传即可。 tdK&vqq  
s~OcL  5  
Node 安装 RI*n]HNgy+  
?>;b,^4  
Pg}QRCB@  
回到 node-sdk-demo 目录,我们开始安装。 1%_RXQVG  
一、安装 gulp 。 1 iox0  
  1. npm install --global gulp
:E-$:\V0}k  
g|Lbe4?  
二、安装 marbles 的依赖包 [RXLR#  
  1. npm install
?kR1T0lKkE  
]$ d ;P  
国内的话嫌速度慢可以安装 CNPM o9}\vN0F  
如果结束后出现: pFH.beY  
  1. run `npm audit fix` to fix them, or `npm audit` for details
?t%{2a<X  
建议不要修复,修复了会启动不了,先忽略吧。 ~Eg]Auk7  
+q pW"0[  
启动 ;B@#,6t/  
V.{HMeE4  
xT 06*wQ  
最后运行 2|j=^  
  1. gulp marbles_baas
"SN*hzs"]`  
sUlf4<_zW  
最后输出:- x\'3UKQP+^  
  1. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2. info: Detected that we have NOT launched successfully yet
  3. debug: Open your browser to http://localhost:3001 and login as "admin" to initiate startup
  4. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{ENd]@N*  
(kR NqfX  
可以打开 GeJ}myD O  
VEy]vr}  
H{n:R *  
http://localhost:3001 (本地) )(,O~w  
http://你的公网ip:3001 (服务器上) $9?:P}$v  
"m{i`<,  
配置 $,K@xq5  
>/74u/&  
然后我们可以看到夏目的引导页,选择 Guided =RHtugwy  
i!%WEHPe  
6hj[/O)E  
[font=&quot]然后在第三步: J.R]) &CB  
[font=&quot] nl}LT/N  
693"Pg8b  
  • channel: 填写上传 marbles_v4 的通道名,如 work1,主要是区分业务用的,和我们之前创建的通道一致就行
  • chaincode_id: 填写 marbles
  • chaincode_version: 填写 v4
<cOjtq,0  
然后我们创建角色: eGT&&Y  
^1~lnD~0  
F m:Ys](  
[font=&quot]然后我们就可以愉快的玩耍了: v)np.j0V7  
[font=&quot] R +@|#!  
[;Ih I  
2T}>9X  
可以看到每个弹珠的区块链信息 0 \ U*  
我们可以在区块链服务的后台监控看到相关信息: +EjXoW7V  
C&Qt*V#,  
p>eYi \'  
[font=&quot]是不是玩耍区块链也还是满简单的?
[ 此帖被妙正灰在2018-11-08 15:19重新编辑 ]
级别: 论坛版主
发帖
477
云币
702
只看该作者 沙发  发表于: 2018-11-08
Re:【云计算的1024种玩法】1小时使用阿里云区块链服务创建一个区块链小 ..
还没完成? B }%2FUv  
lvWwr!w  
先抢个沙发,大佬厉害。
本人是阿里云社区社招版主,并非阿里云官方人员,发帖回答仅提供参考。
产品使用可参考阿里云产品文档 ,文档不能解决可提交工单
级别: 小白
发帖
48
云币
73
只看该作者 板凳  发表于: 2018-11-28
Re【云计算的1024种玩法】1小时使用阿里云区块链服务创建一个区块链小
真是厉害,谢谢分享。
AChz}N$C  
[ 此帖被超超超不了在2018-12-13 09:36重新编辑 ]
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)