基于边缘集群
区块链实例支持在CCE集群和边缘集群上部署,本页面介绍如何部署基于边缘集群的区块链实例。
同一个区块链实例所使用的多个边缘节点,这些边缘节点之间需要内部网络互通(联盟链请务必使用公网IP),区块链实例才能正常工作。
基于边缘集群部署区块链实例时,为了保障实例正常运行,建议您对集群进行安全加固,比如:禁止root账号远程登录、关闭安全组22端口、删除嗅探/开发/调试/编译工具、设置系统会话超时时间(不允许为不超时)、限制容器访问openstack的管理IP地址169.254.169.254等关键场景(限制访问169.254.169.254地址后,可能导致AOM服务无法检测到集群是否安装ICAgent,但不影响监控数据的采集和上报。更多其他安全加固建议请参考基于CCE集群的说明。
节点要求
项目 |
规格要求 |
---|---|
OS |
|
内存 |
边缘软件开销约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。 |
端口使用 |
边缘节点需要使用如下端口,请确保这些端口能够正常使用。
|
时间同步 |
边缘节点时间需要与UTC标准时间保持一致,否则会导致边缘节点的监控数据、日志上传出现偏差。您可以选择合适的NTP服务器进行时间同步,从而保持时间一致。详细配置方法请参见如何同步NTP服务器。 |
配置节点
由于边缘节点一般处于企业内网,与互联网不通且未安装必要的软件,所以需要对边缘节点进行如下配置。
- 使用远程登录工具分别登录准备好的边缘节点。
- 执行如下命令配置HTTPS代理,使边缘节点与互联网相通。其中IP和端口请根据实际情况填写。
export https_proxy=ip:port export http_proxy=ip:port
- 执行如下命令安装Docker。
yum install epel-release yum install docker
- 检查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 结果显示信息
- 检查docker.sock的权限。
- 配置Docker代理。
- 创建目录和文件。
mkdir /etc/systemd/system/docker.service.d vim /etc/systemd/system/docker.service.d/http-proxy.conf
- 为http-proxy.conf文件增加以下配置内容。
[Service] Environment="HTTP_PROXY=http://proxy_id:proxy_port"
- 加载配置并重启Docker。
systemctl daemon-reload systemctl restart docker
- 检查变量是否加载成功。
systemctl show docker --property Environment
- 创建目录和文件。
创建纳管边缘节点
配置边缘节点时,边缘节点的名称长度为4-24字符。
部署区块链实例
完成环境准备工作后,可按照如下步骤购买并部署区块链实例。“集群”请选择“边缘集群”,并填写需要使用的边缘节点IP。
现网账号欠费会导致实例网盘被释放,已购买的实例不可用。
创建区块链实例和添加组织时,请务必保证弹性IP或私有IP与边缘节点一一对应,否则可能导致节点部署失败。
- 登录区块链服务管理控制台,进入“实例管理”,单击Hyperledger Fabric增强版的“购买”按钮。
- 根据界面提示,配置区块链基本信息,参数如表2所示。
表2 基本信息配置 参数
描述
示例
计费模式
区块链实例管理收费模式,支持包年/包月、按需计费。
包年/包月
区域
区块链基础设施所在的区域,建议选择与业务应用系统相同的地域。
使用默认区域
企业项目
请选择已创建的企业项目,将区块链服务BCS添加至企业项目中。
说明:- 如果您没有开通企业管理服务,将无法看到企业项目选项。开通方法请参见如何开通企业项目
- 如果您使用已有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),各策略分别具有不同的特性及使用场景,请参见产品功能。
说明:raft共识基础版、专业版、企业版默认3个orderer节点。
Raft(CFT)
资源初始密码
登录区块链管理界面时的admin账户的密码、云主机的root密码和CouchDB密码。
高级配置中的区块链管理初始密码、云主机的root密码和CouchDB密码为选填项、如果您填写了就以填写值为准、如果您不填写就以资源初始密码的值为准。
-
资源初始密码确认
再次输入资源初始密码进行确认。
-
购买时长
选择区块链实例的购买时长。
一个月
- 单击“下一步:资源配置”,进行资源配置,参数如表3所示。
- 单击“下一步:区块链配置”,进行区块链配置,参数如表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)
区块生成配置
产生的区块配置可支持区块产生时间,区块交易数量和区块容量,其中任何一个条件满足,区块就会产生,可根据交易频率和业务量灵活配置。
否
- 单击“下一步:确认订单”。
- 确认配置信息无误后,勾选协议和免责声明,并单击“提交订单”。
请等待数分钟,安装页面提示安装成功,查看实例状态变为“正常”后,表示实例部署完成。
图2 查看实例状态