前言

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

区块链绝对是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 来写教程。这是创建环境的流程图,我们按这个流程走:

创建组织

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

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

创建联盟

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

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

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

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

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

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

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


组织加入联盟

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

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

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

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

创建通道

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

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

然后进行审批

自然是同意

创建码链

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

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

接着选择对应的部署通道

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

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

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

然后再点击 实例化

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

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

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

创建用户

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

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

部署 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": "密码"}],

最终效果:

部署码链

将 /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 ,

然后在第三步:

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

然后我们创建角色:

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

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

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

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

1小时使用阿里云区块链服务创建一个区块链小游戏相关推荐

  1. 用python从0开始创建一个区块链,从代码深入理解区块链

    作者认为最快的学习区块链的方式是自己创建一个,本文就跟随作者用Python来创建一个区块链. 对数字货币的崛起感到新奇的我们,并且想知道其背后的技术--区块链是怎样实现的. 但是完全搞懂区块链并非易事 ...

  2. 区块链惊现山寨万融链 怎样判断一个区块链项目的真假

    区块链惊现山寨万融链 怎样判断一个区块链项目的真假 "区块链实质上是一种集体式记录方式.特别之处在于它别出心裁地采用一组技术,实现了记录结果的真实可信,难以毁坏也无法篡改."张孝荣 ...

  3. python区块链框架_从零开始创建一个区块链应用(Python版)

    2018年什么最火?非区块链莫属! 一时间网上各种介绍区块链的文章层出不穷,但大多数都是从概念层面进行解释的,本文则从技术层面讲解,如何从零开始创建一个区块链应用. 本文使用Python开发,读者需要 ...

  4. 【程序员必看】如何用Python从0开始创建一个区块链?

    在数字货币盛行的档口,比特币,这币那币到底值不值得信赖呢?也许你像很多人一样感到新奇,想接近它,但只因背后的区块链技术,阻断了向新领域尝试的步伐.不过,对于程序员来说,想真正搞懂比特币,搞懂区块链,可 ...

  5. 如何用 Python 从 0 开始创建一个区块链?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 在数字货币盛行的档口,比特币,这币那币到底值不值得信赖呢?也许你像很多人一样感到新奇,想接近 ...

  6. 如何用Python从0开始创建一个区块链?

    转自:http://blog.csdn.net/blockchain_lemon/article/details/79395163 在数字货币盛行的档口,比特币,这币那币到底值不值得信赖呢?也许你像很 ...

  7. 用 Go 构建一个区块链 -- Part 7: 网络

    翻译的系列文章我已经放到了 GitHub 上:blockchain-tutorial,后续如有更新都会在 GitHub 上,可能就不在这里同步了.如果想直接运行代码,也可以 clone GitHub ...

  8. 【区块链新手快速入门】如何构建一个区块链

    本文翻译自<Learn Blockchains by Building One>,作者@dvf,原文链接:https://hackernoon.com/learn-blockchains- ...

  9. 教你使用Python从零开始搭建一个区块链项目!

    你是否会和我一样,对加密数字货币底层的区块链技术非常感兴趣,特别想了解他们的运行机制. 但是学习区块链技术并非一帆风顺,我看多了大量的视频教程还有各种课程,最终的感觉就是真正可用的实战课程太少. 我喜 ...

最新文章

  1. 华西生物医学大数据中心俞鹏课题组博士后招聘启事
  2. VTK:可视化之BillboardTextActor3D
  3. 程序员再也不担心请不到假了!
  4. C#_基础_异常捕获(六)
  5. 桥接设计模式(Bridge)
  6. camera驱动电源配置_基于AD7656-1和ADuC7026评估电源时序控制影响
  7. 各个历史版本 cuda toolkit 下载链接
  8. 广域网协议之PPP,HDLC
  9. C#源码刷新网页 最小化托盘http get和post请求配置保存版权时间限制定时调用 单实例运行,如果已经运行则激活窗口到最前显示
  10. CTF-8021-题目一
  11. 【UVA】1586 Molar mass
  12. 2021-09-19婴儿抚触,助力宝宝健康成长
  13. Windows 10访问共享时提示“过时的SMB1协议”的修复办法
  14. 魔法少女小圆计算机音乐,求魔法少女小圆一些背景音乐的名字
  15. Android4.4之后休眠状态下Alarm不准时的问题
  16. 宽带连接错误的处理办法
  17. OSChina 周一乱弹 ——生死之际还能从容装逼,先生大才
  18. 详解:传奇手游代理平台需要多少
  19. NLP01(自然语言处理)第一章 绪论
  20. 小柴胡灵活加减治杂病

热门文章

  1. 电商平台后台管理系统--->系统详细设计(用户管理模块)
  2. PDF转TXT怎么转?看完这篇你就会了
  3. 精美企业官网小程序源码,自带十几款模板适合各个行业 如保险 装修 服装 母婴 教育 旅游 婚庆 幼儿园等
  4. mysql gbk编码 转utf8_MySQL GBK→UTF-8编码转换
  5. chia快速p盘最佳配置linux,ChIa挖矿你需要知道的第一件事,P盘效率的决定性因素...
  6. 谜题21:我的类是什么?
  7. win7下安装配置Tomcat 7.0
  8. matplotlib显示opencv图像有色差
  9. Citavi文献导入【终极版】
  10. Java初学之抛异常