【云计算的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

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

目录
相关文章
|
2月前
|
人工智能 数据库 云计算
🔥躺着赚佣金!阿里云推荐计算巢服务让你轻松"带货"云计算
阿里云推出“推荐服务赚佣金”计划,无需技术背景,分享链接即可轻松赚取额外收入。高达20%佣金,200+精选服务任选,实时追踪收益,适合个人推广的数字副业!
256 9
|
1月前
|
弹性计算 人工智能 边缘计算
阿里云国际站2025年最新动态:全球云计算加速,中小企业出海利器
2025年,阿里云国际站凭借领先技术与本地化服务,助力企业高效出海。核心产品如弹性计算ECS Enterprise、云原生数据库PolarDB-X及边缘计算ENS Pro全面升级,覆盖全球28个区域,提供低延迟、高稳定性支持。同时推出“海外现货”模式,缩短外贸订单周期50%。通过技术+生态优势,助力中小企业实现全球化增长。
|
9月前
|
人工智能 运维 监控
阿里云联合中国信通院等单位发布首个云计算智能化可观测性能力成熟度模型标准
推动行业智能化落地,阿里云联合中国信通院及国内头部云厂商、观测厂商、各行业建设方,历时近 5 个月,共同编制《云计算智能化可观测性能力成熟度模型》,以规范和指导云计算环境下的智能可观测性建设实践,为企业实施云环境下的智能化可观测能力建设提供指导。
577 114
|
7月前
|
人工智能 大数据
阿里云云计算ACA、大数据ACA、人工智能ACA三门认证升级调整公告
阿里云云计算ACA、大数据ACA、人工智能ACA三门认证升级调整公告
|
7月前
|
供应链 Serverless BI
基于阿里云区块链服务(BaaS)的供应链金融系统开发与部署
随着区块链技术的快速发展,其在供应链金融领域的应用成为热点。阿里云区块链服务(BaaS)提供安全、高效、易用的平台,支持Hyperledger Fabric和蚂蚁区块链,帮助企业快速构建供应链金融系统。本文通过实战案例展示基于阿里云BaaS开发供应链金融系统的全流程,涵盖企业认证、应收账款融资、交易记录及数据分析等功能,显著提升透明度和可信度,降低融资成本。
|
9月前
|
人工智能 云计算
官宣!阿里云成为总台春晚云计算AI独家合作伙伴
官宣!阿里云成为总台春晚云计算AI独家合作伙伴
454 23
|
11月前
|
存储 人工智能 弹性计算
阿里云何川:云计算,为数据基础设施的建设提速|数据对话
中国信通院工业互联网与物联网研究所特别策划“数据对话”专题,旨在通过专家的深度分析和独特视角,回答社会关切话题,探讨前沿技术和应用趋势。
|
存储 安全 小程序
什么是云计算,为什么选择阿里云?
阿里云提供的云计算服务让您能以按需、按量的方式获取算力,涵盖计算、存储、网络等多种形态,无需自建数据中心。它具备弹性、敏捷、安全、稳定、高性能和低成本等优势,支持业务快速创新,保障数据安全及业务连续性,帮助您专注于核心业务发展。常见应用场景包括网站、小程序、移动应用及大模型问答机器人等。
404 1
|
11月前
|
存储 人工智能 弹性计算
阿里云何川:云计算,为数据基础设施的建设提速|数据对话
中国信通院工业互联网与物联网研究所特别策划“数据对话”专题,旨在通过专家的深度分析和独特视角,回答社会关切话题,探讨前沿技术和应用趋势。本期,我们邀请到阿里云弹性计算产品运营与生态合作负责人何川,围绕云计算如何加速数据基础设施建设及其未来发展趋势展开探讨。
|
存储 前端开发 安全
DAPP区块链商城系统开发(方案逻辑)丨区块链DAPP商城系统开发(案例设计)/开发项目/源码部署
 区块链(Blockchain)是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称为分布式账本技术(Distributed Ledger Technology)。从本质上看,区块链是通过去中心化和去信任化,集体维护、分布式存储的可靠数据库。

热门文章

最新文章