蚂蚁区块链第19课 联盟链创建及管理

  • 辉哥
  • 更新于 2020-01-27 20:32
  • 阅读 10153

蚂蚁区块链开发-联盟链创建及管理

1,摘要

通过本文,您将了解在蚂蚁区块链中如何创建联盟以及联盟中的角色及权限,以及管理联盟区块链,管理合约工程,管理联盟应用,管理联盟配置,管理联盟机构等事宜。

2,创建联盟

联盟是一个虚拟组织,由多个机构组成。联盟机构可以:

  • 共享联盟区块链
  • 创建区块链应用,并共享给联盟内的其他机构

创建联盟

  1. 登录控制台,点击 产品与服务 > 区块链 > BaaS 平台 进入 BaaS 控制台。

  2. 点击 我的联盟 ,如果您当前没有联盟,可点击 添加联盟

    我的联盟

  3. 创建联盟 窗口中,选择创建类型,即 为合作商户创建联盟创建自己的联盟 ,然后设置联盟信息(如下图所示):

    • 合作商户的电子邮箱 :仅当选择 为合作商户创建联盟 时需要填写该信息。
    • 联盟名称 :申请的联盟名,如:医院收据发票联盟。
    • 联盟描述 :联盟简介,如:用户医院缴费发票。
    • 联系人 :联盟创建者姓名。
    • 联系电话 :联盟创建者电话。
    • 联系邮箱 :联盟创建者邮箱。

      1

  4. 配置完毕后,点击 创建 ,此时联盟创建成功。 我创建的联盟 区域将展示刚创建联盟。

联盟创建成功后,您可以邀请机构加入联盟、添加联盟链,具体操作参见 管理联盟机构管理联盟区块链 文档。

联盟角色及权限

联盟内包含两种不同的角色:

  • 联盟管理员:联盟创建者默认为联盟管理员,联盟管理员可以增加/删除本机构成员为联盟管理员。
  • 联盟机构成员:已加入联盟的租户下所有的账户。

各个联盟角色所对应的功能权限如下表(Y 表示支持;N 表示不支持):

功能/角色 联盟管理员 联盟机构成员
联盟内的链 - -
- 创建链 Y N
- 上传证书 Y Y
- 下载证书 Y Y
- 下载 SDK Y Y
- 重置证书 Y Y
- 查看链详情 Y Y
- 管理合约链账号 Y Y
- 查看合约链配置 Y Y
- 查看合约链节点 Y Y
- 申请合约链节点 Y N
合约
- 创建/编辑/保存合约 Y Y
- 使用 Cloud IDE Y Y
应用
- 创建应用 Y Y
- 发布应用 Y Y
- 共享/取消共享到联盟 Y Y
- 下载应用 Y Y
联盟配置
- 创建/修改/导入业务数据模型 Y N
- 查看业务数据模型 Y Y
联盟管理
- 邀请机构 Y Y
- 审批加入联盟 Y N
- 冻结机构 Y N
- 增加管理员 Y N
- 删除管理员 Y N

3. 管理联盟区块链

您可以在 BaaS 控制台中对区块链进行以下管理操作:

说明: 仅合约链支持节点管理、账户管理及配置管理操作。

创建区块链

进入联盟后,完成以下步骤,创建区块链:

  1. 在左侧导航栏中,点击 联盟内的链 > 立即订购 。您也可以申请 30 天免费体验链进行体验,申请审核通过且链创建完成后,系统会以邮件方式通知您。注意一个租户只能申请一次体验链。

    1

  2. 在购买页面,选择联盟,购买的区块链将会配置在您所选的联盟内。然后根据需求选择区块链版本、数量及时长,并点击 立即购买 进行付费(参见 购买指南 > 付费说明 )。完成购买后,系统将自动为您配置区块链,配置完成会发送邮件通知您。

    11

    12

  3. 登录 BaaS 控制台,进入 联盟 > 联盟内的链 页面,该页面会显示上一步中购买的区块链,系统默认区块链名称为 “蚂蚁合约链-链ID”,点击 编辑 图标可进行修改。

    13

    如果您购买的是企业版,您将在联盟中看到系统为您配置的生产环境链和测试环境链。

    15

申请区块链权限

在 BaaS 平台管理人员为您创建好区块链后,您可以申请区块链权限。操作步骤如下(具体细节,参见 快速开始 ):

  1. 在左侧导航栏中,点击 联盟内的链 ,在右侧的联盟区块链页面上选择需要申请权限的区块链,然后点击 上传证书
  2. 上传生成的证书请求,并点击 提交
  3. 申请成功之后,可以下载开发组件及签名证书到本地,进行区块链应用开发。

重置证书

如果您忘记自己的私钥文件或密码,或者不想使用以前的证书,可以选择重置证书。操作步骤如下:

  1. 在左侧导航栏中,点击 联盟内的链 ,在右侧的联盟区块链页面上选择需要重置证书的区块链,然后点击 重置证书

    重置2

  2. 在弹出的 重置证书 窗口中,选择接收验证码的邮箱地址,输入获取的验证码,然后点击 提交

    1

  3. 提交之后,您可以重新申请证书。具体步骤参见 快速开始 > 申请蚂蚁区块链

    说明: 重置证书需要重新生成证书请求。

查看区块链浏览器

成功申请区块链权限之后,点击 浏览器 进入区块链浏览器,您会看到以下信息:

  • 业务统计
  • 交易量变化
  • 最新区块

您可以在区块链查询栏中输入区块链高度或交易哈希查询块信息或交易信息。

交易详情页展示当前链上交易的关键信息,如时间戳、所在区块高度、发起账户和目标账户等等。如果当前区块链已开通 蚂蚁区块链 C 端浏览器服务 ,则还会提供该交易的二维码。授权用户可通过扫描二维码获取交易相关存证信息。查看 链查询权限 章节内容了解相关信息。

管理节点

您可以查看当前区块链的节点列表,包括节点地址,服务端口,共识状态等信息。联盟管理员可以编辑修改节点所有者。

如需新增节点,可以由联盟管理员通过 提交工单 进行申请。

管理账户

您可以创建和查看区块链上的账户。联盟内所有成员可见。

重要: 蚂蚁区块链 BaaS 平台并不会为您保存私钥,请自行妥善保管私钥。

管理配置

您可以查看当前区块链配置。所有配置都可动态修改并生效。

在公测期间,动态修改配置功能暂不开放。

管理跨链配置

您可以对当前区块链进行 跨链数据连接服务 配置和 外部数据源连接服务 配置。目前,仅联盟管理员有权限管理跨链配置。

跨链数据连接服务

开通服务
  1. 在链管理页面上,点击 跨链管理 标签并从其下拉菜单中选择 跨链数据连接服务 ,然后点击 申请开通 ,您将被引导至跨链数据服务页面进行开通。

    1

  2. 点击阅读《使用须知》,点击 立即开通 ,输入您的联系方式以及简单描述跨链场景,包括区块链类型,例如:蚂蚁区块链之间跨链,用于溯源业务。提交申请后,我们将审核您的请求,与您联系为您开通服务。

    2

注册区块链

注册您的区块链是开始跨链连接的第一步。注册区块链后,跨链数据连接服务将访问您的区块链,并在您的区块链上部署跨链合约,用于跨链信息传递。

  1. 点击 注册区块链 进入注册页面。

    3

  2. 选择要注册的区块链类型,完成相应的注册步骤。目前该服务支持蚂蚁区块链和 HyperLedger Fabric,如果您需要注册其他类型的区块链,请 提交工单 联系我们。

  • 注册蚂蚁区块链

如果您注册的是蚂蚁区块链,系统将自动读取您在蚂蚁金服 蚂蚁区块链BaaS平台 上的区块链列表,您可以从列表中选择您要注册的区块链。注意,仅蚂蚁区块链的联盟管理员有权限进行此操作。

然后,为区块链创建一个域名,该域名将会是跨链授权时区块链的唯一识别身份。

4

  • 注册 Hyperledger Fabric

如果您注册的是 Hyperledger Fabric,可按照页面上的操作提示进行注册。

5

  1. 下载跨链链码包,创建 channel,安装链码包。

    1. 下载页面上的跨链链码包。
    2. 在 Hyperledger Fabric 区块链上创建开通跨链服务的 channel。
    3. 在创建的 channel 中安装链码包。
  2. 创建账户或申请证书,获取配置文件。

    1. 在 Hyperledger Fabric 区块链上注册一个账户或者申请证书,供跨链服务使用。
    2. 如果您是阿里云 Hyperledger Fabric 用户,可下载 SDK 配置文件,解压后获取 connection-standard.yaml 的配置文件。如果您不是阿里云 Hyperledger Fabric 用户,请联系蚂蚁技术支持人员获取配置文件。
  3. 注册区块链,提供账户或证书,上传配置文件。

    1. 在页面上创建区块链域名,上传第二步中获取的 connection-standard.yaml 的配置文件。

    2. 注册成功后,提供区块链锚定信息,包括跨链 channel 名称,选择验证节点,提供第二步中创建的用户名和密码。

      6

      或者您也可以直接上传证书和私钥。

      7

      注册完成后,可以在控制台上看到已经注册的链信息

跨链授权

点击已注册区块链 右侧的详情按钮,进入到详情页。

跨链授权-1

点击跨链授权功能,进入到授权页面。

8

账本数据访问

授权已经注册的另外一条区块链通过跨链服务访问当前区块链的账本数据。

10

合约消息推送

授权已经注册的另外一条区块链的指定合约向当前区块链的指定合约发送消息。

合约消息推送

上图的授权示例中,区块链crosschain1.oracle.chain允许区块链crosschain2.oracle.chain 的合约 sourceContract 发送消息给本区块链上的合约 destContract。

注意 :如果您未进行授权设置,那么通过 跨链数据连接服务进行的跨链账本数据访问和消息推送将会失败。

权限查看

如果有其他区块链为您授权,您可以在 我的权限 模块查看。

12

业务合约开发
账本数据访问开发流程

用户智能合约使用账本数据访问 API 接口,开发流程如下:

  1. 在 Baas 平台上获取账本数据合约名称。
  2. 获取账本数据访问 API 接口定义( ChainDataInterface.sol )。
  3. 在用户合约中引入账本数据访问 API 定义。
  4. 用户合约实现回调接口,用于异步接收账本数据回调使用。
  5. 用户合约构建账本数据访问请求( ChainDataCmdHelper.sol )。
  6. 用户合约向账本数据合约发送请求,具体参考API使用示例。
  7. 账本数据服务返回数据为json格式,具体格式参考账本数据结构部分。

业务合约开发参考:

合约消息推送开发流程

用户智能合约使用合约消息推送服务API接口,开发流程如下:

  1. 在 Baas 平台上获取消息合约名称。
  2. 获取合约消息推送 API 接口定义。
  3. 在用户合约中引入合约消息推送 API 接口。
  4. 用户合约实现接收消息接口,供跨链消息收发合约调用。
  5. 用户合约调用跨链消息收发合约发送消息接口。

业务合约开发参考:

外部数据源连接服务

步骤一:开通服务

在链管理页面上,点击 跨链管理 标签并从其下拉菜单中选择 外部数据 ,可开启外部数据源连接服务。

13

步骤二:管理外部数据源

服务开通后,您可以管理当前的公共数据源和私有数据源。

  • 公共数据源 如果要启用 BaaS 平台提供的公共数据源,可点击 公共数据源 标签,选择需要的数据源,在操作栏中点击 启用 即可;不需要某些公共数据源时,则选择对应的数据源,在操作栏中点击 停用 即可。

  • 私有数据源 如果还需要访问其他数据源,可点击 私有数据源 > 新增外部访问 ,填写数据源相关信息并保存。新增的数据源在 BaaS 管理员审核通过之后即可使用。

开通私有数据源

链查询权限

要使用链查询权限功能,需要先前往 蚂蚁区块链应用市场 ,开通蚂蚁区块链 C 端浏览器服务。查看 蚂蚁区块链 C 端浏览器服务 说明文档了解相关内容。

开通蚂蚁区块链 C 端浏览器服务后,系统自动将链上的每条交易生成二维码并展示在交易详情页上。经区块链管理员的授权,C 端用户(即个人用户)可通过支付宝客户端或支付宝 蚂蚁区块链浏览器 小程序,扫码查看链上的交易存证。

C 端支付宝用户授权操作如下:

注意 :仅联盟管理员可以进行授权操作。

  1. 登录 BaaS 平台、进入联盟后,选择拥有链查询权限功能的区块链,点击 管理 按钮,进入联盟区块链管理页面。

    2

  2. 点击 链查询权限 标签,点击 新增授权 。当前支持两种授权方式:

    3

    • 授权指定支付宝账户 录入手机号码后,绑定该手机号码的支付宝账户均可以扫该链上的交易二维码。

    • 授权所有支付宝账户 即所有的支付宝均可以扫该链上交易的二维码。

    • 暂不授权 若不需要授权,则选择 暂不授权 ,不开放该链的支付宝账户查询。

进行授权后,链查询权限页面将展示已授权的支付宝账户、查询的支付宝账户和查询次数的统计信息,供管理员查看。点击 修改 按钮可修改授权方式。

4. 管理合约工程

通过本文,您将了解如何创建和管理合约工程。合约工程可以包含多个合约开发文件,同时与 Cloud IDE 结合使用,方便用户管理和开发智能合约。

home

新建合约工程

您可以通过以下两种方式创建合约工程:

通过合约工程模板创建

合约工程模板是已经实现某些基本功能的合约工程。您可以利用工程模板提供的基础功能代码,开发符合自己业务逻辑的智能合约。

创建步骤如下:

  1. 合约管理 页面,点击 创建合约工程 按钮开始创建合约工程。
  2. 新建合约工程 页面,输入合约工程名,选择合约类型。
    • 合约工程名 :支持中英文,在同一个联盟内唯一标示一个合约工程。
    • 合约类型 :支持创建 Solidity 和 C++ 类型的合约工程。
  3. 选择生成方式为 合约工程模板 ,根据需要选择合适的模板,然后点击 下一步
  4. 预览输入的基本信息及接口参数信息,确认无误后,点击 立即创建 完成创建。

createbymodel

通过合约工程工具创建

目前,很多存证类的合约的很多功能都有固定的格式代码对应,例如增、删、改、查功能、权限控制功能、日志功能、时间触发器等。因此,蚂蚁区块链开放联盟链提供一套自动化的智能合约代码生成工具,帮助用户通过配置数据表的形式来快速定义和生成合约,提高效率。

说明 :目前合约工程工具仅支持创建 C++ 版本的智能合约。

创建步骤如下:

  1. 合约管理 页面,点击 创建合约工程 按钮开始创建合约工程。
  2. 新建合约工程 页面,输入合约工程名,选择合约类型。
  3. 选择生成方式为 合约工程工具 ,完成以下配置,然后点击 下一步
    • 配置名 :您可以为每次配置命名,系统会根据这个名称保存对应的数据表和字段配置,方便再次使用。如果后续您需要再次使用这个数据配置,可通过页面提供的 历史记录 功能来选取复用。
    • 合约日志 :此功能开启后,如果您对表进行 Insert/Update/Delete 操作,则在操作完成后,会有 receiptLog 写入区块链。
    • 权限管理 :此功能开启后,您可以为合约中的方法调用增加权限控制。例如,可以指定哪些账户可以对表进行读取,哪些账户对表有更新权限,哪些账户对表有查询权限,哪些账户对表有删除权限。
    • 数据表配置 :您可以通过定义数据表和数据字段的形式来定义合约内的数据结构。您也可以自定义数据表的名称。支持添加多个数据表,在同一个数据表配置下,不允许数据表同名。
      • 字段名称 :一个数据表内可以添加多个数据字段,字段名不能相同。
      • 字段类型 :支持多种数据字段类型。
      • 字段描述 :对字段名称的描述,支持中英文。
  4. 预览配置,确认无误后,点击 立即创建 完成创建。

createbytool

编辑合约工程

合约工程创建完成后,可通过点击界面上的 编辑 按钮跳转到 Cloud IDE 内进行智能合约的代码开发。

删除合约工程

可通过点击界面上的 删除 按钮删除某个合约工程。删除操作不会影响已经部署在链上的合约实例。

5. 管理联盟应用

联盟内区块链应用的管理流程主要包含以下 4 个步骤:

  1. 创建区块链应用
  2. 应用开发
  3. 上传应用
  4. 查看及下载应用

创建区块链应用

  1. 进入联盟后,从左侧导航栏选择 应用 > 本机构内应用 ,然后点击 添加应用
  2. 添加应用 窗口中,输入以下信息:
    • 应用类型 :创建的应用类型,如应用程序。
    • 底层区块链 :应用市场底层支持的区块链。
    • 应用名称 :可自定义应用名,建议名称和应用内容相关联,便于识别。
    • 技术栈 :生成的技术栈类型,目前支持 Java Spring Boot。
    • Maven groupId :生成代码框架中的 groupId。
    • Maven artifactId :生成代码框架中 artifactId。
    • 描述 :应用的简介,建议包含应用的背景、内容以及用途。
  3. 输入完毕后,点击 提交 按钮,完成应用创建。

应用开发

基于区块链 SDK 进行应用开发,具体操作参见 SDK 开发指南

上传应用

  1. 从左侧导航栏选择 应用 > 本机构内应用 ,然后从右侧的应用列表中选择要上传的区块链应用,点击 上传版本 查看当前应用已上传版本。

    上传

  2. 点击 上传应用 ,根据提示输入应用相关信息,上传版本,服务器会自动将其构建成 Docker 镜像。具体操作如下:

    1. 输入应用基本信息,包括应用名称、应用描述、标签、版本(如 1.0.1)以及此版本功能描述。填写完毕后,点击 下一步

    2. 设置应用启动配置。在发布时,可添加需要的自定义配置,如连接数据库地址等。若没有,则点击 下一步 跳过此步骤。

    3. 设置数据初始化依赖。在发布时,可添加需要的相关数据,如初始数据库表,若没有,则点击 下一步 跳过此步骤。

    4. 上传应用。点击 上传应用 ,将已签名的可执行 JAR 包上传到服务器。上传完毕后,下方编辑框中会展示构建 Docker 镜像的 Dockerfile。

      重要: 上传应用时,需要先对 JAR 包签名,然后再上传签名后的 JAR 包。有关如何对 JAR 签名,参见 JAR 包签名 章节内容。

    5. (可选)编辑 Dockerfile。编辑 Dockerfile,定制 Docker 镜像。若不需要,点击 完成

  3. 应用上传完毕后,点击 返回应用管理 。刚发布的应用处于 Docker 构建中,需要等待一段时间。

  4. 应用版本构建完毕后,可以选择 共享到联盟 。共享之后,联盟中其他机构可以在 应用 > 联盟内共享应用 中查看该应用。

JAR 包签名

前置条件

您已 生成证书请求 ,成功申请并下载证书文件。

操作步骤
  1. 生成 pkcs12 证书,其中 key_pkcs10.pem 在生成证书请求过程中已经生成, cert.pem 为下载的证书文件。

     openssl pkcs12 -inkey key_pkcs10.pem -in cert.pem -passin pass:****** -export -out key.p12 -passout pass:****** -name alias_name
    
  2. 检查生成的 pkcs12 证书。

    keytool -list -keystore key.p12
    
  3. 给 JAR 包签名。

     jarsigner -verbose -keystore key.p12 -signedjar signed_jar_name.jar origin_jar_name.jar alias_name
    
  4. 验证签名。

     jarsigner -certs -verify signed_jar_name.jar
    

查看及下载应用

  1. 从左侧导航栏选择 应用 ,可以查看 联盟内共享应用平台应用 ,点击 查看详情 ,查看相应应用的相关信息。

  2. 在弹出的窗口中,点击 下载 ,将应用下载到本地。

    联盟内应用

  3. 解压应用 .zip 包后,按照文件中的 Readme 操作即可。

6. 管理联盟配置

管理联盟配置,包括创建、修改和查看业务数据模型。

说明:

  • 联盟盟主可以创建、修改和查看业务数据模型。
  • 联盟其他机构成员仅可以查看业务数据模型。有关联盟角色权限说明,参见 联盟角色权限

创建业务数据模型

说明 :仅联盟盟主有权创建业务数据模型。

  1. 进入联盟后,从左侧导航栏选择 联盟配置 > 业务数据模型
  2. 选择一条链,填写名称和描述,点击 下一步
  3. 配置数据格式。可通过以下两种方式进行配置:

    • 方式一:添加数据表

      1. 在页面右上方,点击 添加数据表

      2. 输入数据表名。

      3. 根据业务需求,在数据表名称下方的输入框中输入分类名称,创建分类。一个联盟链上可以创建多个分类。

      4. 点击 添加 按钮创建该分类下的字段。可添加多个字段。

        添加数据表

    • 方式二:导入数据格式

      1. 在页面右上方,点击 导入数据格式

      2. 导入数据格式 窗口中,选择 BaaS 平台提供的预置数据格式,点击 确定 完成导入。

        导入数据

      3. 导入完成后,界面展示具体的数据格式信息,您可以在此基础上进行添加或者修改,生成新的数据格式。

        完成导入数据

修改业务数据模型

说明 :仅联盟盟主有权修改业务数据模型。

  1. 进入联盟后,从左侧导航栏选择 联盟配置 > 业务数据模型
  2. 选择一条链,点击 下一步
  3. 在业务数据模型管理页面,添加、删除或修改分类和字段信息,生成新的数据格式。

查看业务数据模型

  1. 进入联盟后,从左侧导航栏选择 联盟配置 > 业务数据模型
  2. 选择一条链,点击 下一步 ,查看当前联盟链的数据模型配置。

7. 管理联盟机构

对联盟机构进行管理,包括邀请其他机构加入当前联盟,冻结机构。BaaS 平台支持邀请企业或个人用户加入联盟。

前置条件

您已创建好联盟,或已经是某个联盟的机构成员。

邀请机构加入联盟

  1. 在 BaaS 平台首页,选择要邀请机构加入的联盟,进入该联盟页面。

  2. 在左侧导航栏中,点击 联盟管理 > 联盟机构 > 邀请机构 ,输入受邀请机构的电子邮箱或手机号码。如要同时邀请多个机构,可点击 添加成员 ,输入相应的联系信息,然后点击 发送 即可。

    1

  3. 受邀机构收到邀请邮件或短信通知后,登录金融科技控制台,进入 BaaS 平台 > 我的联盟 ,点击 加入联盟 ,然后在弹窗中输入邀请邮件或短信中提供的邀请码并提交。此时受邀机构处于加入联盟待审核的状态。

    说明:

    • 如果是由联盟管理员发起邀请,则无需审批,在受邀机构接收邀请加入联盟后,系统会向各联盟机构推送通知。
    • 如果是由其它联盟机构发起邀请,联盟管理员与受邀机构将同时收到邀请邮件,但只有在管理员审批加入申请后,受邀机构方可加入联盟。
    • 仅联盟管理员有审批权限。

    2

  4. 审批加入联盟的申请。具体操作如下:

    1. 在左侧导航栏中,点击 联盟管理 > 机构审批 查看机构审批列表信息。
    2. 点击 详情 ,在审批窗口中进行审批操作。

      审批

  5. 审批通过后,受邀机构成功加入联盟,成为联盟机构。

冻结机构

说明: 仅联盟管理员有权限执行冻结操作。

一旦发现任何机构在联盟链中上传违法违规信息,如色情内容、反动言论等,联盟管理员可以将该机构冻结。被冻结机构将无法再进入该联盟,其在联盟链上已经申请的证书也会被吊销。

具体操作如下:

  1. 在 BaaS 平台首页,选择要被冻结的机构所在的联盟,进入该联盟页面。

  2. 在左侧导航栏中,点击 联盟管理 > 联盟机构

  3. 在联盟机构列表中,选择要冻结的机构,点击操作列中的 冻结

  4. 确认冻结联盟机构 窗口中,选择接收验证码的邮箱地址,输入获取的验证码以及冻结理由,然后点击 提交 。被冻结机构的状态将变为 冻结

    冻结

    确认冻结

管理机构成员

  • 授权联盟管理员 拥有联盟管理员权限的用户点击 联盟管理 > 联盟管理员 ,点击 新增管理员 可以增加联盟管理员。
  • 取消联盟管理员 拥有联盟管理员权限的用户点击 联盟管理 > 联盟管理员 ,从列表中选择要取消权限的用户,点击 删除 ,可以删除对应用户的联盟管理员权限。

8. 参考

(1) 蚂蚁区块链 BaaS 平台>用户指南>联盟

点赞 1
收藏 0
分享

0 条评论

请先 登录 后评论
辉哥
辉哥
0x5bAe...0BE7
HiBlock技术社区上海合伙人,区块链落地产业应用布道者