Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
区块链服务
最佳实践
文档版本 01
发布日期 2020-06-23
华为技术有限公司
版权所有 © 华为技术有限公司 2020。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 商标声明
和其他华为商标均为华为技术有限公司的商标。本文档提及的其他所有商标或注册商标,由各自的所有人拥有。 注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 i
目 录
1 银行跨行开户系统...................................................................................................................... 11.1 关于 Demo................................................................................................................................................................................. 11.2 订购区块链服务.........................................................................................................................................................................11.3 安装及实例化链代码................................................................................................................................................................ 31.4 配置应用......................................................................................................................................................................................51.5 部署应用......................................................................................................................................................................................71.6 调试应用......................................................................................................................................................................................8
2 弹珠资产转移 Marbles Demo.................................................................................................. 92.1 关于 Demo................................................................................................................................................................................. 92.2 订购区块链服务...................................................................................................................................................................... 102.3 安装及实例化链代码............................................................................................................................................................. 112.4 配置应用................................................................................................................................................................................... 132.5 部署应用................................................................................................................................................................................... 142.6 Demo 体验............................................................................................................................................................................... 14
3 组建联盟链 Demo....................................................................................................................173.1 关于 Demo............................................................................................................................................................................... 173.2 准备工作................................................................................................................................................................................... 173.3 订购区块链服务...................................................................................................................................................................... 183.4 邀请成员................................................................................................................................................................................... 193.5 被邀请方加入联盟链............................................................................................................................................................. 203.6 安装及实例化链代码............................................................................................................................................................. 233.7 配置应用................................................................................................................................................................................... 243.8 部署应用................................................................................................................................................................................... 27
区块链服务最佳实践 目 录
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 ii
1 银行跨行开户系统
1.1 关于 Demo本实践基于华为云区块链服务编写,以基于区块链身份共享的银行账户跨行开户Demo的部署为例,帮助您快速上手使用并体验华为云区块链服务。
说明
只用于场景体验,不用于实际应用。
● 业务场景:
基于一家银行的账户以及已有的KYC信息背书,免KYC过程开通另外一个银行的账户。
● 主要诉求:
用户身份等信息需要加密,避免暴力破解;提供基于身份信息的快速查询。
● 关键挑战:
– 安全隐私:银行不希望把客户隐私信息泄露给其它银行。
– 高性能检索:提供类传统数据库的检索性能 (毫秒级响应) ,保持一致用户体验。
– 良好接口:提供简单方便的接口,便于应用开发。
1.2 订购区块链服务您需要按照如下步骤订购一个区块链服务,并配置基本参数和网络节点。
步骤1 登录区块链服务管理控制台。
步骤2 单击页面右上角的“购买区块链服务”,在购买页面填写相关参数。
须知
为了保证示例Demo成功运行,请在参数配置时按照表格中的参数值填写。
区块链服务最佳实践 1 银行跨行开户系统
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 1
表 1-1 购买参数
参数 参数值
计费模式 按需计费
区域 使用默认区域
企业项目 选择已创建的企业项目,例如:default。如果您没有开通企业管理服务,将无法看到企业项目选项。
区块链服务名称 自定义名称,例如:bank
版本类型 企业版
区块链服务类型 联盟链
为了保证网络互通,区块链服务类型请选择联盟链。
共识策略 测试策略(SOLO)
资源初始密码 请自行设置
资源初始密码确认 请自行设置
高级配置 现在配置
集群 创建新的CCE集群
可用区 请自行选择
云主机规格 4核/8GB
云主机个数 1
高可用 否
虚拟私有云 系统自动创建VPC
云主机登录方式 密码
root密码 如果填写该项,则以填写值为准,如果不填写,则以资源初始密码为准。
确认密码 -
区块链管理初始密码 如果填写该项,则以填写值为准,如果不填写,则以资源初始密码为准。
区块链管理确认密码 -
版本信息 请自行选择
存储卷类型 文件存储卷
区块链服务最佳实践 1 银行跨行开户系统
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 2
参数 参数值
peer节点组织 创建3个节点组织,名称必须与如下内容完全一致:
● democraticBank,节点数量2● civilizationBank,数量2● harmoniousBank,数量2。
共识节点数量 1
开启共识节点数据老化 否
安全机制 ECDSA
节点组织存储容量 使用默认规格
账本数据存储方式 选择“文件数据库(goleveldb)”
通道配置 将通道名称修改为testchannel,并将democraticBank, civilizationBank,harmoniousBank节点组织添加至通道中。
说明
● 通道名称必须为testchannel。
● democraticBank已默认添加到通道,还必须将其他节点组织也添加至通道中,否则链代码将不能实例化。
添加RESTful APIs支持 否
配置弹性IP 是
弹性IP计费方法 按带宽计费
弹性IP带宽 5 Mbit/s
区块生成配置 否
步骤3 单击“立即购买”进入配置确认页面,确认信息无误后单击“提交”。
请等待数分钟,安装页面提示安装成功,查看服务及组织状态变为“正常”后,表示区块链服务部署完成。
----结束
1.3 安装及实例化链代码一个通道里的所有Peer节点都必须安装链代码,然后在其中一个Peer节点上进行链代码实例化。如需使用相同的链代码,通道成员必须在链代码安装期间为链代码提供相同的名称和版本。
安装链代码
步骤1 单击新创建的区块链服务右侧的“区块链管理”,登录链代码管理页面。
区块链服务最佳实践 1 银行跨行开户系统
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 3
步骤2 在登录页面输入用户名、密码、验证码,单击“登录”。
说明
● 用户名为admin,密码为您在创建区块链服务时设置的区块链管理初始密码,如果没有设置区块链管理初始密码,则以资源初始密码为准。
● 登录时,若您使用的是IE浏览器,有可能会跳转失败并提示使用证书不受信任,此时您可以单击此处进行处理。
步骤3 在链代码管理页面,单击页面左上角的 。
步骤4 在安装界面输入“链代码名称”、“链代码版本”,选择需要安装链代码的节点及链代码语言,添加链代码文件等,如下表:
参数 值
链代码名称 fabbank
链代码版本 1.0
账本数据存储方式 文件数据库(goleveldb)
选择全部Peer节点 勾选
组织&Peer节点 默认已同时选中所有节点。
链代码语言 Golang
链代码文件 下载示例链代码:fabbank.zip
链代码描述 根据需要填写相关描述。
步骤5 单击“安装”,完成链代码安装。
----结束
实例化链代码
步骤1 链代码安装完成后,在链代码列表的“操作”列,单击“实例化”。
步骤2 选择实例化通道、链代码版本、背书策略、背书组织,并填写初始化函数、链代码参数等,如下表:
参数 值
链代码名称 fabbank
实例化通道 testchannel
链代码版本 1.0
初始化函数 init
区块链服务最佳实践 1 银行跨行开户系统
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 4
参数 值
链代码参数 a,200,b,250
背书策略 选择“下列任意组织背书”
背书组织列表 选择全部三个组织
隐私保护配置 否
步骤3 单击“实例化”,完成链代码在当前通道上的实例化。
稍等2-3分钟后刷新界面,单击“实例化”列的“查看更多”,查看链代码实例化进度。
----结束
1.4 配置应用
前提条件● 如果您如果使用Fabric 1.1.0版本,需要准备一台可用内存至少2G的服务器,用于
部署Demo应用。
● 如果您如果使用Fabric 1.4.0版本,不需要额外准备服务器,Demo必须部署在BCS所在的集群。
须知
● 用于部署Demo应用的服务器可为您自己已有的服务器(需已安装Docker),亦可为华为云弹性云服务器。
● 弹性云服务器操作系统建议选择CentOS或者ubuntu。
证书下载
步骤1 在区块链服务“服务管理”页面,单击目标服务名前的 ,在组织列表操作列下载相关证书。
本例中需要下载1个共识管理员证书和3个节点管理员证书。
步骤2 登录准备好的服务器,在本地创建一个bankdemo目录,并将下载的证书文件保存至bankdemo目录下。
区块链服务最佳实践 1 银行跨行开户系统
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 5
须知
● 如果使用ssh工具无法连接到服务器,请查看您的服务器安全组是否打开了22端口。
● 请妥善保管下载证书中的私钥,建议您对私钥进行加密存储。
----结束
SDK 配置下载
步骤1 在“服务管理”界面,单击“更多 > 下载SDK配置”。
步骤2 配置SDK文件参数并下载。如下表:
须知
为了保证示例Demo成功运行,请在参数配置时按照表格中的参数值填写。
参数名称 参数值
链代码名称 fabbank
证书存放根路径 /opt/bank/src/bank/conf/crypto
通道名称 testchannel
选择成员 全选关联出来的节点组织
步骤3 解压下载的SDK,将解压包中的yaml文件拷贝两份,并将这三份yaml文件分别命名为civilizationBank.yaml、democraticBank.yaml、harmoniousBank.yaml,最后将yaml文件保存至已创建的bankdemo目录下。
最终bankdemo目录的结构如下图所示:
----结束
区块链服务最佳实践 1 银行跨行开户系统
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 6
1.5 部署应用
部署应用
步骤1 进入bankdemo目录,执行命令启动服务。如果使用的Fabric 1.4.0版本,请执行以下命令:wget https://bcs.obs.cn-north-1.myhuaweicloud.com/bankdemo/fabric1.4/V2/startserver.sh;bash startserver.sh
说明
startserver.sh执行过程中涉及Demo镜像的下载,由于镜像较大,故脚本执行可能较慢。
用户需要输入两次信息,第一次“是否是第一次部署应用”,是键入y,否(即想修改密码)键入n;第二次键入用户自定义密码(以下举例,键入密码为aaa):
执行结果可参考如下返回信息:
步骤2 执行如下命令检查容器是否启动。docker ps
----结束
(可选)添加安全组● 若您通过自有服务器部署Demo则不涉及。
● 若您是通过华为云弹性云服务器ECS部署Demo应用,部署成功后需要先创建安全组再添加安全组规则以允许服务器的8080端口可被访问。添加安全组规则时的规则参数如下表:
表 1-2 安全组规则参数表
参数 值 说明
协议 TCP 网络协议
方向 入方向 安全组规则生效的方向,入方向指从外部访问安全组规则下的弹性云服务器。
端口范围 创建1条规则,填写8080。
规则的端口范围
区块链服务最佳实践 1 银行跨行开户系统
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 7
参数 值 说明
源地址 选择IP地址,0.0.0.0/0 当方向为入方向时,需要填入此参数。
1.6 调试应用
录入客户信息
步骤1 Demo应用成功运行后,银行管理员通过“http://EIP:8080/adminLogin“访问Demo应用。
说明
● EIP为部署Demo的服务器IP或弹性云服务器的浮动IP。
● 管理员页面
默认用户名:admin,密码:(请输入上页部署应用时键入的自定义密码),仅供demo体验登录。
步骤2 单击“创建账户”录入客户信息。例如在中国文明银行录入信息,包括姓名、身份证号、银行卡号和电话号码。
----结束
客户申请账户
步骤1 客户通过“http://EIP:8080/userLogin”访问Demo应用,进入客户页面。
说明
● EIP为部署Demo的服务器IP或弹性云服务器的浮动IP。
● 客户页面
默认用户名:customer,密码:(请输入上页部署应用时键入的自定义密码),仅供demo体验登录。
步骤2 客户根据界面提示选择申请中国民主银行的账户。
进入到中国民主银行的账户申请界面,可以通过其他已开户银行的账户信息开通中国民主银行的账户。
这里充分使用了基于区块链的身份共享,客户一旦开通一家银行的账户,那么经过审核的可信身份信息就会记录在区块链中,且加密共享给其他银行。那么客户就可以免审核申请其他银行的账户。
----结束
区块链服务最佳实践 1 银行跨行开户系统
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 8
2 弹珠资产转移 Marbles Demo
2.1 关于 Demo本实践基于华为云区块链服务,以弹珠资产转移Marbles Demo部署为例进行演示,旨在帮助您了解链代码的基础知识,帮助您快速上手使用并体验华为云区块链服务。
说明
只用于场景体验,不用于实际应用。
这是一个简单的资产转移演示,多个用户之间可以创建并相互转移弹珠资产,同时您还能看到详细的交易信息及区块链信息。界面如下:
源码下载
如果您需要查看Demo应用的源码,请点击下载源码进行下载查看,希望对您的应用开发有所帮助。
区块链服务最佳实践 2 弹珠资产转移 Marbles Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 9
2.2 订购区块链服务您需要按照如下步骤订购一个区块链服务,并配置基本参数和网络节点。
步骤1 登录区块链服务管理控制台。
步骤2 单击页面右上角的“购买区块链服务”,在订购页面填写相关参数。
须知
为了保证示例Demo成功运行,请在参数配置时按照表格中的参数值填写。
表 2-1 购买参数
参数 参数值
计费模式 按需计费
区域 使用默认区域
企业项目 选择已创建的企业项目,例如:default。如果您没有开通企业管理服务,将无法看到企业项目选项。
区块链服务名称 自定义名称,例如:marbles
版本类型 根据实际需要选择,例如:基础版
区块链服务类型 根据实际需要选择,例如:私有链
共识策略 测试策略(SOLO)
资源初始密码 请自行设置
资源初始密码确认 请自行设置
高级配置 现在配置
集群 创建新的CCE集群
可用区 请自行选择
云主机规格 4核/8GB
云主机个数 1
高可用 否
虚拟私有云 系统自动创建VPC
云主机登录方式 密码
root密码 如果填写该项,则以填写值为准,如果不填写,则以资源初始密码为准。
区块链服务最佳实践 2 弹珠资产转移 Marbles Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 10
参数 参数值
确认密码 -
区块链管理初始密码 如果填写该项,则以填写值为准,如果不填写,则以资源初始密码为准。
区块链管理确认密码 -
版本信息 根据实际需要选择,例如:选择最新版本。
存储卷类型 文件存储卷
peer节点组织 创建1个节点组织,名称自定义。
共识节点数量 1
开启共识节点数据老化 否
安全机制 ECDSA
节点组织存储容量 使用默认规格
账本数据存储方式 选择“文件数据库(goleveldb)”
通道配置 系统已默认将创建的节点组织添加到了通道中,请保持默认状态,不须修改。
添加RESTful APIs支持 根据实际需要选择,例如:否
配置弹性IP 是
弹性IP计费方法 按带宽计费
弹性IP带宽 5 Mbit/s
区块生成配置 否
步骤3 单击“立即购买”进入配置确认页面,确认信息无误后点击“提交”。
请等待数分钟,安装页面提示安装成功,查看服务及组织状态变为“正常”后,表示区块链服务部署完成。
----结束
2.3 安装及实例化链代码
安装链代码
步骤1 单击新创建的区块链服务右侧的“区块链管理”,登录链代码管理页面。
步骤2 在登录页面输入用户名、密码、验证码,单击“登录”。
区块链服务最佳实践 2 弹珠资产转移 Marbles Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 11
说明
● 用户名为admin,密码为您在创建区块链服务时设置的区块链管理初始密码,如果没有设置区块链管理初始密码,则以资源初始密码为准。
● 登录时,若您使用的是IE浏览器,有可能会跳转失败并提示使用证书不受信任,此时您可以单击此处进行处理。
步骤3 在链代码管理页面,单击页面左上角的 。
步骤4 在安装界面输入“链代码名称”、“链代码版本”,选择需要安装链代码的节点及链代码语言,添加链代码文件等,如下表:
参数 值
链代码名称 自定义名称,例如:marbles
链代码版本 自定义版本,例如:1.0
账本数据存储方式 文件数据库(goleveldb)
选择全部Peer节点 勾选
组织&Peer节点 默认已同时选中所有节点。
链代码语言 Golang
链代码文件 下载示例链代码:marbles.zip
链代码描述 根据需要填写相关描述。
步骤5 单击“安装”,完成链代码安装。
----结束
实例化链代码
步骤1 链代码安装完成后,在链代码列表的“操作”列,单击“实例化”。
步骤2 选择实例化通道、链代码版本、背书策略、背书组织,并填写初始化函数、链代码参数等。如下表:
参数 示例值
实例化通道 channel
链代码版本 1.0
初始化函数 init
链代码参数 a,200,b,250
背书策略 选择“下列任意组织背书”
背书组织列表 选择已创建的组织
隐私保护配置 否
区块链服务最佳实践 2 弹珠资产转移 Marbles Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 12
步骤3 单击“实例化”,完成链代码在当前通道上的实例化。
----结束
2.4 配置应用
登录服务器
在“区块链服务 > 服务管理”页面中,单击对应的服务右侧的“更多”,选择“更新访问地址”,查看访问地址,并登录部署区块链服务的节点的所在服务器。
证书下载
步骤1 在区块链服务“服务管理”页面,单击目标服务名前的 ,在组织列表操作列下载相关证书。
本例中需要下载1个共识组织管理员证书和1个节点管理员证书。
请妥善保管下载证书中的私钥,建议您对私钥进行加密存储。
步骤2 登录准备好的服务器,在本地创建一个marblesdemo目录,并将下载的证书文件保存至marblesdemo目录下。
----结束
SDK 配置下载
步骤1 在“服务管理”界面,单击“更多> 下载SDK配置”。
区块链服务最佳实践 2 弹珠资产转移 Marbles Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 13
步骤2 配置SDK文件参数并下载。如下表:
参数名称 参数值
链代码名称 填写自定义的链代码名称,示例:marbles
证书存放根路径 任何合法路径,例如:/opt/gopath/src/github.com/hyperledger/api-server/marblesdemo/crypto
通道名称 选择已创建的通道,示例:c12345
选择成员 全选关联出来的节点组织
步骤3 单击下载,解压出yaml文件并将其保存至已创建的marblesdemo目录。
----结束
2.5 部署应用进入marblesdemo目录,执行命令部署服务。rm startserver.sh -f;wget https://bcs.obs.cn-north-1.myhuaweicloud.com/marbles/v2.0/startserver.sh; bash startserver.sh
执行结果可参考如下返回信息,登录提示的网址体验marbles(请使用Chrome浏览器访问,使用IE浏览器访问可能会导致页面混乱)。
2.6 Demo 体验步骤1 启动弹珠应用。
单击“Express”,启动弹珠应用。
如果您进入该页面时,关闭了“Welcome to the Marbles Hyperledger Fabricdemo!”页面,导致创建弹珠页面为空白,无法创建弹珠,请单击“Start UpHelp”,启动弹珠应用。
区块链服务最佳实践 2 弹珠资产转移 Marbles Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 14
步骤2 创建弹珠。
单击“+”,填写配置项,单击“create”创建弹珠,几秒后出现新弹珠。如没有出现新弹珠则使用F5键刷新页面。
步骤3 交易弹珠。
拖动弹珠至另一个用户模拟交易,在交易过程中,弹珠将暂时消失,然后在新主人内重新绘制。
步骤4 删除弹珠。
拖动弹珠到垃圾桶,弹珠将会在几秒后消失。
步骤5 刷新页面以检查您的行为是否已执行。
区块链服务最佳实践 2 弹珠资产转移 Marbles Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 15
步骤6 体验弹珠交易的故事模式。
1. 单击页面上方“setting”设置按钮。
2. 在出现的对话框,单击“Enabled”启用故事模式。
3. 单击右上角“X”关闭按钮关闭菜单栏。
4. 拖动弹珠到另一个用户,此时您可以看到详细的交易过程。
5. 关闭故事模式。
----结束
恭喜您已经成功体验华为云区块链服务以及marbles示例!
区块链服务最佳实践 2 弹珠资产转移 Marbles Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 16
3 组建联盟链 Demo
3.1 关于 Demo本实践基于华为云区块链服务编写,以组建联盟链为例进行演示,旨在帮助您了解联盟链的基础知识以及如何组建联盟链的方法,帮助您快速上手使用并体验华为云区块链服务。
您可以一个组建联盟链,联盟链的发起方可以动态邀请其他成员加入此联盟链,组建一个多成员参与的联盟链系统,即方便又灵活。各成员的节点运行在独立的VPC中,独立管理,安全可控。
说明
● 只用于场景体验,不用于实际应用。
● Fabric 1.1.0版本BCS服务支持更新至1.4.0版本,同时取消1.1.0版本BCS服务的创建,仅支持1.4.0版本BCS服务的创建。
● 对于已构建的1.1.0版本的联盟链,被邀请方服务仍旧可以创建1.1.0版本并加入联盟。
● 如果联盟链一方升级至1.4.0版本,请所有联盟成员同步升级,否则将会导致交易失败。升级方法请参见:Fabric 1.1.0版本BCS服务如何更新至1.4.0版本。
3.2 准备工作华为云区块链服务是基于容器所构建的集群进行部署的,同时为使外网能够正常访问,且保证数据不丢失,在开始部署区块链服务之前,需要先完成相应的环境准备工作,依次为:创建集群、绑定弹性IP、创建文件存储。
表 3-1 准备工作
准备顺序 操作指导 说明
1 准备弹性云服务器
该Demo需要在Linux环境中运行,请准备一台弹性云服务器,并在该服务器中安装开发工具。
2 安装开发工具
在弹性云服务器上安装golang1.11.5的开发环境,以及openssl lib库。
区块链服务最佳实践 3 组建联盟链 Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 17
准备顺序 操作指导 说明
3 下载项目代码及链代码
下载项目代码,并将其保存至弹性云服务器的/root路径下。
链代码:chaincode
3.3 订购区块链服务您需要按照如下步骤订购一个区块链服务,并配置基本参数和网络节点。
步骤1 登录区块链服务管理控制台。
步骤2 单击页面右上角的“购买区块链服务”,在订购页面填写相关参数。
须知
为了保证示例Demo成功运行,请在参数配置时按照表格中的参数值填写。
表 3-2 购买参数
参数 参数值
计费模式 按需计费
区域 使用默认区域
企业项目 选择已创建的企业项目,例如:default。如果您没有开通企业管理服务,将无法看到企业项目选项。
区块链服务名称 自定义名称,例如:sdk-union-invitor
版本类型 企业版
区块链服务类型 联盟链
共识策略 测试策略(SOLO)
资源初始密码 请自行设置
资源初始密码确认 请自行设置
高级配置 现在配置
集群 创建新的CCE集群
可用区 请自行选择
云主机规格 4核/8GB
云主机个数 1
高可用 否
区块链服务最佳实践 3 组建联盟链 Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 18
参数 参数值
虚拟私有云 系统自动创建VPC
云主机登录方式 密码
root密码 如果填写该项,则以填写值为准,如果不填写,则以资源初始密码为准。
确认密码 -
区块链管理初始密码 如果填写该项,则以填写值为准,如果不填写,则以资源初始密码为准。
区块链管理确认密码 -
版本信息 请选择最新版本
存储卷类型 文件存储卷
peer节点组织 创建1个节点组织,名称自定义,例如:org1
共识节点数量 1
开启共识节点数据老化 否
安全机制 ECDSA
节点组织存储容量 使用默认规格
账本数据存储方式 选择“文件数据库(goleveldb)”
通道配置 系统已默认将创建的节点组织添加到了通道中,请保持默认状态,不须修改。
添加RESTful APIs支持 否
配置弹性IP 是
弹性IP计费方法 按带宽计费
弹性IP带宽 5 Mbit/s
区块生成配置 否
步骤3 单击“立即购买”进入配置确认页面,确认信息无误后点击“提交”。
请等待数分钟,安装页面提示安装成功,查看服务及组织状态变为“正常”后,表示区块链服务部署完成。
----结束
3.4 邀请成员步骤1 在区块链服务左侧导航栏,成员管理界面中,单击“邀请成员”。
步骤2 在下拉列表中选择上述创建的服务和通道,在租户名称中填入被邀请方的租户名,单击“确定”。
区块链服务最佳实践 3 组建联盟链 Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 19
步骤3 (可选)单击“邀请一个新租户”可添加多个成员进行邀请。
说明
最多支持邀请5个成员,铂金版本支持提交工单修改成员配额,其他版本不支持。
----结束
3.5 被邀请方加入联盟链被邀请方可以在通知管理中查看收到的邀请,在创建BCS服务后,可以接受邀请,加入联盟链中。
步骤1 被邀请方登录区块链服务界面,在通知管理界面中,查看邀请。
步骤2 在邀请详情中,单击“创建BCS服务”,进入被邀请方服务创建BCS服务界面,创建名称为“sdk-union-invitee”的区块链服务。
区块链服务最佳实践 3 组建联盟链 Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 20
步骤3 在订购页面填写相关参数。
须知
为了保证示例Demo成功运行,请在参数配置时按照表格中的参数值填写。
表 3-3 购买参数
参数 参数值
计费模式 按需计费
区域 使用与邀请方相同的区域
区块链服务名称 自定义名称,例如:sdk-union-invitee
版本类型 企业版
区块链服务类型 联盟链
集群类型 CCE集群
容器集群 选择创建好的容器集群
存储卷类型 文件存储卷
网络存储 选择创建好的文件存储
账本数据存储方式 选择“文件数据库(goleveldb)”
区块链服务最佳实践 3 组建联盟链 Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 21
参数 参数值
peer节点组织 创建1个节点组织,名称自定义,例如:org2
共识策略 测试策略(SOLO)
开启共识节点数据老化 否
多可用区 否
安全机制 ECDSA
版本信息 请选择最新版本
区块链管理初始密码 请自行设置
添加RESTful APIs支持 否
配置弹性IP 是
步骤4 单击“立即购买”进入配置确认页面,确认信息无误后点击“提交”。
请等待数分钟,安装页面提示安装成功,查看服务及组织状态变为“正常”后,表示区块链服务部署完成。
步骤5 被邀请方创建BCS服务后,在通知管理页面单击“同意”,加入联盟链。
----结束
区块链服务最佳实践 3 组建联盟链 Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 22
3.6 安装及实例化链代码邀请方和被邀请方都必须安装链代码,且使用的链代码名称和版本号必须一致。实例化链代码只需要由邀请方或被邀请方之一完成即可。
安装链代码
步骤1 单击新创建的区块链服务右侧的“区块链管理”,登录链代码管理页面。
步骤2 在登录页面输入用户名、密码、验证码,单击“登录”。
说明
● 用户名为admin,密码为您在创建区块链服务时设置的区块链管理初始密码,如果没有设置区块链管理初始密码,则以资源初始密码为准。
● 登录时,若您使用的是IE浏览器,有可能会跳转失败并提示使用证书不受信任,此时您可以单击此处进行处理。
步骤3 在链代码管理页面,单击页面左上角的 。
步骤4 在安装界面输入“链代码名称”、“链代码版本”,选择需要安装链代码的节点及链代码语言,添加链代码文件等,如下表:
参数 值
链代码名称 chaincode
链代码版本 1.0
账本数据存储方式 文件数据库(goleveldb)
选择全部Peer节点 勾选
组织&Peer节点 默认已同时选中所有节点。
链代码语言 Golang
链代码文件 下载示例链代码:chaincode.zip
链代码描述 根据需要填写相关描述。
步骤5 单击“安装”,完成链代码安装。
----结束
实例化链代码
步骤1 链代码安装完成后,在链代码列表的“操作”列,单击“实例化”。
区块链服务最佳实践 3 组建联盟链 Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 23
步骤2 选择实例化通道、链代码版本、背书策略、背书组织,并填写初始化函数、链代码参数等。如下表:
参数 值
实例化通道 channel
链代码版本 1.0
初始化函数 init
链代码参数 a,200,b,250
背书策略 全部组织背书
背书组织列表 选org1,org2
隐私保护配置 否
步骤3 单击“实例化”,稍等2-3分钟,完成链代码在当前通道上的实例化。
----结束
3.7 配置应用
操作场景
在邀请方发起交易的时候,邀请方需要下载自己的orderer管理员证书、org1组织的管理员证书以及被邀请者已隐去私钥的证书。
请妥善保管下载证书中的私钥,建议对私钥进行加密存储。
证书下载
步骤1 邀请者在区块链服务“服务管理”页面,单击目标服务名前的 ,在组织列表操作列下载相关证书。
下载sdk- union-invitor-orderer的管理员证书、org1组织的管理员证书,下载至本地默认路径并解压。
步骤2 被邀请者在区块链服务“服务管理”页面,单击目标服务名前的 ,在组织列表操作列下载相关证书。
下载org2组织的管理员证书至本地默认路径并解压。
区块链服务最佳实践 3 组建联盟链 Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 24
步骤3 被邀请者在下载的管理员证书中删除私钥的证书,如下图所示的两个文件。
步骤4 邀请方将下载的orderer管理员证书、org1组织的管理员证书以及被邀请者隐去私钥的证书,存放至准备的弹性云服务器的/root路径下。
----结束
SDK 配置下载
步骤1 邀请方在“服务管理”界面,单击“更多 > 下载SDK配置”。
区块链服务最佳实践 3 组建联盟链 Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 25
步骤2 配置SDK文件参数。如下表:
须知
为了保证示例Demo成功运行,请在参数配置时按照表格中的参数值填写。
表 3-4 参数表
参数 值
链代码名称 chaincode须知链代码名称需要和链代码安装&实例化时的一致。
证书存放根路径 /root
通道名称 channel
选择成员 org1,org2
步骤3 单击下载,将SDK下载至准备的弹性云服务器/root路径下,并解压,编辑“sdk-union-invitor-channel-sdk-config.yaml”文件,将organization的两个组织下中关于certificateAuthorities的内容删除,保存后将修改后的yaml文件拷贝到下载的项目代码的“fabric-union-go-demo/src/bcs/fixtures”目录下。
如图所示,将红框中的内容删除:
区块链服务最佳实践 3 组建联盟链 Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 26
----结束
3.8 部署应用步骤1 在代码中找到“/fabric-union-go-demo/src/main.go”文件,进行以下修改,参考下
图:
● 将配置文件名称修改为“sdk-union-invitor-channel-sdk-config.yaml”。
● 将文件中OrgName中的值修改为org1对应的组织哈希值。
步骤2 配置openssl环境变量和GOPATH路径,请根据openssl的lib库的实际安装路径进行配置。
参考配置如下:
export LD_LIBRARY_PATH=/home/openssl/libexport GOPATH=/root/fabric-union-go-demo
步骤3 找到fabric-union-go-demo/src路径下的main.go文件,执行如下命令进行交易。go run main.go
每执行一次表示b向a转账30,结果如下,b向a转30之后,再次查询a的余额为230。
区块链服务最佳实践 3 组建联盟链 Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 27
邀请方与被邀请方都能在区块浏览器中查看同一笔交易记录。
----结束
区块链服务最佳实践 3 组建联盟链 Demo
文档版本 01 (2020-06-23) 版权所有 © 华为技术有限公司 28