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

简介: 区块链绝对是17 18年的热词,也是国家各种文件所重点支持的新型技术,几乎大家都会提区块链,企业也都很愿意基于区块链来解决的信任场景,但是苦于构建底层架构的复杂以及相关成本没有办法实施。而区块链服务就是为此而生的。

前言

前言和介绍部分的阅读不算在一小时里哟~~~

区块链绝对是17 18年的热词,也是国家各种文件所重点支持的新型技术,几乎大家都会提区块链,企业也都很愿意基于区块链来解决的信任场景,但是苦于构建底层架构的复杂以及相关成本没有办法实施。而区块链服务就是为此而生的。

介绍

目前阿里云的区块链服务即 BlockChain as a Service,简称 BaaS,是一款 PaaS 层的产品,提供了基于阿里云构建的区块链平台服务,用户可以更专注于区块链服务的开发而不用将大量精力浪费在底层服务的部署上,我们不需要指导底层用了什么配置,什么机制,只要专注开发应用即可,因为区块链往往应用在一些金融、供应链等核心领域,如果没有一个安全稳定的运行环境,这将是一场灾难。

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

目前阿里云的区块链服务主要是提供针对企业场景的联盟链,有两大底层平台 Hyperledger Fabric(超级账本) 和 蚂蚁区块链。

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

教程

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

image

创建组织

个区块链网络是一个联盟,一个联盟由多个组织组成。组织是参与区块链网络的企业、政府机构、团体等实体。

创建组织其实很简单,输入名称和域名,然后就是选择地域和规格了。

image

创建联盟

一个区块链网络是一个联盟,一个联盟由多个组织组成。

一、这里创建策略是这样的:

  • Any(任一组织同意):在该联盟中创建一个新的通道时,不需要该新通道内其他组织成员的同意。
  • All(所有组织同意):在该联盟中创建一个新的通道时,需要该新通道内所有组织成员的同意。

不过暂时只有一个 Any 可选。

二、组织,组织的话可以和联盟不在同一个的地域。 暂时不知道他们之间通信的流量会怎么收费。

三、共识机制,默认就是 Kafka,区块链Hyperledger Fabric基于Kafka提供CFT(Crash Fault Tolerence)类型的共识机制。

四、不同的规格意味着底层的服务器规格不同。

image
image

组织加入联盟

进入联盟中就能 邀请组织加入 了。

image

然后就有一个邀请链接,复制地址通过邮件或者其他途径邀请即可,是可以邀请其他阿里云用户的。理论上创建联盟收费,创建组织不收费。

image

打开链接后,会识别你名下的组织然后是否加入所对应的联盟。

image

然后再进入到联盟中,可以看到 待批准 处就有刚才申请加入的组织了,当然是批准。

image

创建通道

在联盟中点击 通道添加通道,然后输入名称和组织即可。

通道 主要用于实现区块链网络中业务的隔离。一个联盟中可以有多个通道,每个通道可代表一项业务,并且对应一套账本。通道内的成员为业务参与方(即联盟内的组织),一个组织可以加入多个通道。

image

然后进行审批

image

自然是同意

image

创建码链

进入到对应用户处,进行码链的创建,上传码链

image

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

接着选择对应的部署通道

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

image

上传链码成功后,链码 标签页的列表中会出现该链码。其中 链码 列显示的链码名称以及 版本 列显示的链码版本号都是您在本地打包链码时指定的。

image

可以看到上传后,通道状态是 “未实例化” ,自然是点击 安装

image

然后再点击 实例化

image

然后会弹出一个背书策略,一般来说系统自动显示刚才上传链码时填写的背书策略。当然我们也可以保留该策略,也可以修改为新的策略。

image

然后就成功的部署完码链了。

1539915569697

有细心的朋友可能发现我的码链名称从 work1 变成了work2 因为之前拿 Work1 做测试,没有截图,然后要再做的时候,就必须新建一个码链了,因为码链不能被删除。

创建用户

这里的用户就有点类似于数据库里的用户了, 进入组织的 用户 菜单,然后 新增用户。 很简单数据账号密码即可。

image

部署好用户后就可以下载 SDK 用户开发部署了。

image

部署 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

image

然后依旧是修改这个文件,先格式化一下,用相关代码编辑器的插件或者用 https://jsonlint.com/ 都可以:

在最后几行的 "certificateAuthorities": {} 代码块下添加:

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

最终效果:

image

部署码链

/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

image

然后在第三步:

image

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

然后我们创建角色:

image

然后我们就可以愉快的玩耍了:

image

可以看到每个弹珠的区块链信息。

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

image

是不是玩耍区块链也还是满简单的?

目录
相关文章
|
1月前
|
弹性计算 NoSQL 数据库
电车卷?云计算更卷,阿里云领头降价,2024阿里云服务器又降价了!
电车卷?云计算更卷,阿里云领头降价,2024阿里云服务器又降价了!
|
2月前
|
弹性计算 运维 安全
阿里云轻量应用服务器:一款高效、稳定、安全的云计算服务
阿里云服务器ECS和轻量应用服务器有什么区别?轻量和ECS优缺点对比,云服务器ECS是明星级云产品,适合企业专业级的使用场景,轻量应用服务器是在ECS的基础上推出的轻量级云服务器,适合个人开发者单机应用访问量不高的网站博客、云端学习测试环境等,阿里云服务器网从从使用场景、适用人群、计费方式、系统镜像、网络带宽、运维管理等多方面来详细说下二者区别及如何选择
95 1
|
2月前
|
云安全 架构师 安全
阿里云云计算架构师ACE认证(Alibaba Cloud Certified Expert - Cloud Architect)考试大纲
介绍阿里云云计算架构师ACE认证(Alibaba Cloud Certified Expert - Cloud Architect)所需具备的知识及学习方法等。
584 2
|
2月前
|
存储 弹性计算 数据库
阿里云云计算工程师ACA认证(Alibaba Cloud Certified Associate - Cloud Computing)考试大纲
介绍阿里云云计算工程师ACA认证(Alibaba Cloud Certified Associate - Cloud Computing)所需具备的知识及学习方法等。
564 1
|
2月前
|
存储 安全 网络安全
阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)考试大纲
介绍阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)所需具备的知识及学习方法等。
809 1
|
2月前
|
人工智能 运维 云计算
阿里云周靖人:拓展智能边界,开启云计算在新时代
阿里云CTO周靖人在2023年10月31日云栖大会上的演讲:从六个维度进行阐述,如何拓展智能边界,开启云计算崭新时代。
198 1
|
18天前
|
存储 传感器 监控
未来智能城市中的区块链技术应用
随着城市化进程不断加速,智能城市成为了未来城市发展的主要趋势之一。区块链技术作为一种去中心化、安全可靠的数据传输和存储方式,将在智能城市建设中发挥关键作用。本文将探讨区块链技术在智能城市中的应用场景,并分析其对城市管理、信息共享和安全保障等方面的积极影响。
14 2
|
25天前
|
存储 供应链 区块链
区块链技术在供应链管理中的应用与展望
随着区块链技术的不断发展,其在供应链管理领域的应用愈发广泛。本文将深入探讨区块链技术在供应链管理中的具体应用及未来发展趋势,分析其对供应链透明度、可追溯性和安全性的影响,并展望区块链技术在未来供应链管理中的潜在作用和挑战。
17 0
|
27天前
|
存储 安全 物联网
未来技术纵横谈:区块链、物联网和虚拟现实的革新之路
在科技不断进步的今天,新兴技术正以前所未有的速度改变着我们的生活和工作方式。本文将深入探讨区块链、物联网(IoT)以及虚拟现实(VR)这三项技术的发展趋势与潜在应用场景,揭示它们如何塑造一个更加智能、互联和沉浸式的未来世界。通过对这些技术的综合分析,我们旨在提供一个全面的视角,以理解它们在未来社会结构中的重要性及影响。
24 7