
# 基于边缘集群
区块链实例支持在CCE集群和边缘集群上部署，本页面介绍如何部署基于边缘集群的区块链实例。
同一个区块链实例所使用的多个边缘节点，这些边缘节点之间需要内部网络互通（联盟链请务必使用公网IP），区块链实例才能正常工作。
#### 约束与限制
基于边缘集群部署区块链实例时，为了保障实例正常运行，建议您对集群进行安全加固，比如：禁止root账号远程登录、关闭安全组22端口、删除嗅探/开发/调试/编译工具、设置系统会话超时时间（不允许为不超时）、限制容器访问openstack的管理IP地址169.254.169.254等关键场景（限制访问169.254.169.254地址后，可能导致AOM服务无法检测到集群是否安装ICAgent，但不影响监控数据的采集和上报。更多其他安全加固建议请参考[基于CCE集群的说明](https://support.huaweicloud.com/usermanual-bcs/bcs_usermanual_0014.html#bcs_usermanual_0014__li16225453420)。
#### 节点要求
表1边缘节点规格要求 
| 项目                | 规格要求                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|
| OS                | - x86_64架构 Ubuntu 16.04 LTS (Xenial Xerus)、Ubuntu 18.04 LTS (Bionic Beaver) 、CentOS 7.x 和RHEL 7.x、银河麒麟4.0.2、中兴新支点v5.5、中标麒麟v7.0   - armv7i（arm32）架构 Raspbian GNU/Linux 9 (stretch)   - aarch64（arm64）架构 Ubuntu 18.04.2 LTS (Bionic Beaver)                                                                                                                                                        |
| 内存                | 边缘软件开销约128MB，为保证业务的正常运行，建议边缘节点的内存大于256MB                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| CPU               | \>=4核                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 硬盘                | \>=8GB                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 容器引擎（使用容器应用的场景必选） | Docker版本必须高于17.06，推荐使用18.06.3版本。 （请勿使用18.09.0版本Docker，该版本存在严重bug，详见<https://github.com/docker/for-linux/issues/543>；如果已使用此版本，请尽快升级。Atlas 500小站预置的Docker 18.09.0.60软件版本已经修改该问题。） 说明： Docker安装完成后，请将Docker进程配置为开机启动，避免系统重启后Docker进程未启动引起的系统异常。                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| glibc             | 版本必须高于2.17。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| 端口使用              | 边缘节点需要使用如下端口，请确保这些端口能够正常使用。 - 8102：边缘节点日志上报至AOM  - 8149：边缘节点监控上报至AOM  - 8065：边缘节点告警上报至AOM  - 443：边缘节点连接IEF  - 8883：内置MQTT Broker使用的端口  - 1883：外置MQTT Broker使用的端口  - 20004：边缘节点上报消息到DIS   |
| 时间同步              | 边缘节点时间需要与UTC标准时间保持一致，否则会导致边缘节点的监控数据、日志上传出现偏差。您可以选择合适的NTP服务器进行时间同步，从而保持时间一致。详细配置方法请参见[如何同步NTP服务器](https://support.huaweicloud.com/ief_faq/ief_faq_0053.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
#### 配置节点
由于边缘节点一般处于企业内网，与互联网不通且未安装必要的软件，所以需要对边缘节点进行如下配置。
1. 使用远程登录工具分别登录准备好的边缘节点。
2. 执行如下命令配置HTTPS代理，使边缘节点与互联网相通。其中IP和端口请根据实际情况填写。 
   ```
   export https_proxy=ip:port 
   export http_proxy=ip:port
   ```
   
   
3. 执行如下命令安装Docker。 
   ```
   yum install epel-release
   yum install docker
   ```
   
   
4. 检查docker相关配置。 
   - 检查docker.sock的权限。
     ```
     [root@localhost ~]# ll /var/run/docker.sock
     srwxrwxrwx. 1 root root 0 Apr 25 21:59 /var/run/docker.sock
     ```
     注意：如果权限不是777，请执行以下命令修改：
     ```
     chmod 777 /var/run/docker.sock
     ```
     
   
   - 检查docker配置文件。
     ```
     [root@localhost ~]#  cat /etc/sysconfig/docker
     # /etc/sysconfig/docker
     # Modify these options if you want to change the way the docker daemon runs
     OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
     ```
     OPTIONS行删除selinux-enabled配置，如下所示：
     ```
     OPTIONS='--log-driver=journald --signature-verification=false'
     ```
     
   
   - 执行以下命令，检查docker容器是否安装成功。
     ```
     docker version
     ```
     显示如下回显信息，表示docker容器安装成功。
     图1结果显示信息   
     ![](https://support.huaweicloud.com/usermanual-bcs/zh-cn_image_0291888579.png "点击放大") 
   
   
   
   
5. 配置Docker代理。 
   1. 创建目录和文件。
      ```
      mkdir /etc/systemd/system/docker.service.d
      vim /etc/systemd/system/docker.service.d/http-proxy.conf
      ```
      
   
   2. 为http-proxy.conf文件增加以下配置内容。
      ```
      [Service]
      Environment="HTTP_PROXY=http://proxy_id:proxy_port"
      ```
      
   
   3. 加载配置并重启Docker。
      ```
      systemctl daemon-reload
      systemctl restart docker
      ```
      
   
   4. 检查变量是否加载成功。
      ```
      systemctl show docker --property Environment
      ```
      
   
   
   
   
 
#### 创建纳管边缘节点
请参见[创建边缘节点/纳管边缘节点](https://support.huaweicloud.com/usermanual-ief/ief_01_0003.html)。**配置边缘节点时，** **边缘节点的名称长度为4-24字符。**
#### 部署区块链实例
完成环境准备工作后，可按照如下步骤购买并部署区块链实例。"集群"请选择"边缘集群"，并填写需要使用的边缘节点IP。
- 现网账号欠费会导致实例网盘被释放，已购买的实例不可用。
- 创建区块链实例和添加组织时，请务必保证弹性IP或私有IP与边缘节点一一对应，否则可能导致节点部署失败。
1. 登录区块链服务管理控制台，进入"实例管理"，单击Hyperledger Fabric增强版的"购买"按钮。
2. 根据界面提示，配置区块链基本信息，参数如[表2]所示。
   
    表2基本信息配置 
   | 参数                      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 示例        |
   |:---|:---|:---|
   | 计费模式                    | 区块链实例管理收费模式，支持包年/包月、按需计费。                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 包年/包月     |
   | 区域                      | 区块链基础设施所在的区域，建议选择与业务应用系统相同的地域。                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 使用默认区域    |
   | 企业项目                    | 请选择已创建的企业项目，将区块链服务BCS添加至企业项目中。 - 如果您没有开通企业管理服务，将无法看到企业项目选项。开通方法请参见[如何开通企业项目](https://support.huaweicloud.com/usermanual-em/eps_15_0001.html)  - 如果您使用已有CCE集群部署区块链服务BCS，建议您将区块链服务BCS添加至CCE集群的企业项目中，如果区块链服务BCS与部署区块链服务的CCE集群处于不同的企业项目，可能导致使用异常。   | default   |
   | 区块链实例名称                 | 支持中英文字符、数字及中划线，不能以中划线开头，长度为4-24个字符。目前区块链实例名称不支持修改，只能删除重新创建。                                                                                                                                                                                                                                                                                                                                                                                                                                 | bcs-wh    |
   | 版本类型                    | BCS提供基础版、专业版和企业版供您选择。                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 专业版       |
   | 区块链类型                   | 私有链指仅本租户内部使用的区块链实例，联盟链指可邀请其他租户一起组建联盟的区块链实例。                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 私有链       |
   | Hyperledger Fabric增强版内核 | 区块链实例的版本号。 区块链版本4.x.x对应社区Hyperledger Fabric v2.2。                                                                                                                                                                                                                                                                                                                                                                                                     | v2.2      |
   | 共识策略                    | 区块链网络中节点之间达成共识需要遵从的规则。 支持快速拜占庭容错共识算法(FBFT)、Raft(CFT)，各策略分别具有不同的特性及使用场景，请参见[产品功能](https://support.huaweicloud.com/productdesc-bcs/bcs_productdesc_0002.html)。 raft共识基础版、专业版、企业版默认3个orderer节点。                                                                                                                                                                                                                       | Raft(CFT) |
   | 资源初始密码                  | 登录区块链管理界面时的admin账户的密码、云主机的root密码和CouchDB密码。 高级配置中的区块链管理初始密码、云主机的root密码和CouchDB密码为选填项、如果您填写了就以填写值为准、如果您不填写就以资源初始密码的值为准。                                                                                                                                                                                                                                                                                                                               | -         |
   | 资源初始密码确认                | 再次输入资源初始密码进行确认。                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | -         |
   | 购买时长                    | 选择区块链实例的购买时长。                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 一个月       |
      
   
   
3. 单击"下一步：资源配置"，进行资源配置，参数如[表3]所示。
   
   ![](https://support.huaweicloud.com/usermanual-bcs/zh-cn_image_0000001227704486.png "点击放大")
    表3资源配置 
   | 参数     | 描述                                                                                                                                                                                                                                                                                                                         | 示例       |
   |:---|:---|:---|
   | 集群     | 用于部署区块链实例。 选择边缘集群，需要先纳管边缘节点并检查边缘节点状态。                                                                                                                                                                                                                                                 | 边缘集群     |
   | 节点部署模式 | 根据实际选择模式： - 随机模式：边缘集群纳管的节点名称无需和peer节点组织的名称保持一致。  - 节点组织绑定模式：边缘集群纳管的节点名称必须和peer节点组织的名称保持一致。   | 节点组织绑定模式 |
   | 网络存储   | 默认"本地存储"。                                                                                                                                                                                                                                                                                                                  | 本地存储     |
   | 边缘集群实例 | 可以选择专业版。                                                                                                                                                                                                                                                                                                                   | 专业版      |
   | 边缘节点IP | 输入边缘节点IP地址，请确保输入的IP地址正确（联盟链请务必使用公网IP），否则可能会导致区块链网络异常。                                                                                                                                                                                                                                                                      | -        |
      
   
   
4. 单击"下一步：区块链配置"，进行区块链配置，参数如[表4]所示。
   
    表4区块链配置 
   | 参数        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 示例                                        |
   |:---|:---|:---|
   | 区块链配置     | 根据实际需求选择"系统默认配置"或"自定义配置"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 自定义配置                                     |
   | 区块链管理初始密码 | 输入登录区块链管理界面的admin账户的密码进行确认。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | -                                         |
   | 区块链管理确认密码 | 再次输入登录区块链管理界面的admin账户的密码进行确认。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | -                                         |
   | 部署方式      | 当版本类型选择"企业版"时需要设置该参数。 - 选择"全量部署"，则在购买区块链实例时需将全部Peer节点配置到节点组织中。  - 选择"部分部署"，则在购买区块链实例时只需将部分Peer节点配置到节点组织中，剩余Peer节点可在购买区块链实例以后任意时刻通过添加组织或添加节点方式部署。                                                                                                                                                      | 部分部署                                      |
   | peer节点组织  | 为区块链实例添加peer节点组织。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | organization，节点数量为2。                      |
   | 部署节点总数    | 当版本类型选择"企业版"且部署方式为"部分部署"时，需要设置该参数。最大可设置为企业版Peer节点配额。 **所有Peer节点自购买区块链订单完成之后开始计费。**                                                                                                                                                                                                                                                                                                                                                                                                                     | 50                                        |
   | 通道配置      | 通道主要用于实现联盟链中业务的隔离。通道内包含业务的参与方（联盟内的部分或全部组织）作为通道成员。每个通道可视为一条子链，并且对应一套分布式账本。                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 默认创建名为"channel"的实例通道，并将刚才创建的实例节点组织添加进此通道。 |
   | 共识节点数量    | 区块链网络中参与交易共识的节点数量。 当共识策略是Raft(CFT)时，共识节点数量为3。                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 3                                         |
   | 安全机制      | 保证数据安全的加密算法，支持ECDSA和国密算法。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | ECDSA                                     |
   | 账本数据存储方式  | 支持文件数据库（GoLevelDB）和NoSQL（CouchDB）存储方式。 - 文件数据库（GoLevelDB）：使用Fabric原生存储方式，交易历史数据保存在区块链中，状态数据保存在LevelDB中。  - NoSQL（CouchDB）：使用Fabric原生支持的存储方式CouchDB存储交易数据和状态数据。CouchDB数据库是一个独立的文档集合，每一个文档维护其自己独立的数据和自包含的schema。   | 文件数据库（GoLevelDB）                          |
   | 区块生成配置    | 产生的区块配置可支持区块产生时间，区块交易数量和区块容量，其中任何一个条件满足，区块就会产生，可根据交易频率和业务量灵活配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 否                                         |
      
   
   
5. 单击"下一步：确认订单"。
6. 确认配置信息无误后，勾选协议和免责声明，并单击"提交订单"。 
   请等待数分钟，安装页面提示安装成功，查看实例状态变为"正常"后，表示实例部署完成。
   图2查看实例状态   
   ![](https://support.huaweicloud.com/usermanual-bcs/zh-cn_image_0000001129036596.png "点击放大")
   
   
 
