阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 全球开源区块链领域影响最为广泛的Hyperledger Fabric日前宣布了1.1版本的正式发布,带来了一系列丰富的新功能以及在安全性、性能与扩展性等方面的显著提升。阿里云容器服务区块链解决方案第一时间同步升级,在v1.1新功能的基础上,提供了弹性裸金属服务器(神龙)、内置容器化Explorer、集成阿里云日志服务等方面的增强。

作为全球开源区块链领域影响最为广泛的项目之一,超级账本近日宣布了Hyperledger Fabric v1.1的正式发布。此次升级带来了一系列丰富的新功能以及在安全性、性能与扩展性等诸多方面的显著提升。更多详情可参考下述资料:

与此同时,作为对开源区块链生态的支持,阿里云容器服务区块链解决方案也进行了同步升级。这次升级不仅第一时间在Kubernetes集群上支持Hyperledger Fabric v1.1.0 GA版,并且在以下几个方面带来了新的功能增强和使用体验的优化:

  • 支持新的Node.js类型chaincode和相关示例,以及在国内云环境落地的适配
  • 支持chaincode级别的账本数据加密新功能和相关示例
  • 支持新的connection profile和自动生成功能
  • 以及其他Hyperledger Fabric v1.1新功能的支持
  • 支持阿里云弹性裸金属服务器(神龙)
  • 内置容器化的Hyperledger Blockchain Explorer
  • 集成阿里云日志服务
  • 优化区块链网络删除过程的数据目录清理

本文将对这些主要新功能进行技术方面的解读。在开始之前,我们准备了一段小视频,可以让大家快速了解在阿里云容器服务Kubernetes环境中使用该区块链解决方案的大致流程。

15217001937705


一分钟认识最新版容器服务区块链解决方案

最新版的区块链解决方案支持从容器服务Kubernetes的应用目录的acs-hyperledger-fabric图形界面中实现一键部署。此外在参数页面可以通过直接编辑来实现更丰富的自定义配置,如更改区块链网络拓扑、指定网络端口、功能启用/禁用等等。

在上述视频演示中,我们依次进行了以下几步操作:

  1. 配置和一键部署区块链网络
  2. 容器服务Kubernetes控制台查看和管理区块链网络的服务和容器
  3. 运行模拟转账交易智能合约的CLI测试
  4. 运行容器化、图形化的区块链浏览器
  5. 容器服务控制台查看区块链网络运行日志

需要说明的是,视频演示操作前需先完成环境准备工作,具体步骤请参见相关文档指南


新功能:Node.js类型Chaincode支持

在此次Hyperledger Fabric v1.1的升级中,在原有的Golang类型之上(Java类型尚未正式宣布支持),加入了对流行的Node.js编程语言类型的智能合约(即chaincode)的支持。这将进一步扩大和丰富Hyperledger Fabric的应用开发生态,吸引更多的开发者加入到区块链应用的创新中来。

在此基础上,通过对Fabric的源代码分析,我们在区块链解决方案中解决了在国内网络环境中可能遇到的Node.js类型chaincode实例化(instantiation)过程超时失败、chaincode镜像无法创建的局限性。

如需体验Node.js类型的chaincode,可采用CLI方式或者Client SDK方式,通过参数指定chaincode语言类型即可。解决方案中提供了基于官方cli-test.sh的示例脚本、以及基于官方的balance-transfer的client SDK示例程序。

CLI方式的Node.js类型chaincode示例
15216986774262

15216991696808

Node.js类型示例chaincode源代码位置:
15216997838279

SDK方式的Node.js类型chaincode示例
15217000027420

15216999353881

15216995417280

需要说明的是,由于Node.js应用自身编译构建的特点,Hyperledger Fabric中Node.js类型的chaincode实例化(instantiation)时间相比Golang类型的要更长,所以在这个环节需要稍作等待。


新功能:Chaincode级别对账本数据的加密和签名

Hyperledger Fabric v1.1新增支持在chaincode级别对交易的数据(即StateDB里Key-Value中的Value,通过调用chaincode时传入)进行加密/解密、签名/验证。这样能实现业务应用将商业敏感数据交给区块链之后,数据全程(包括落地到账本)在原有的安全机制之上进一步添加了标准的或用户可扩展的加密算法和签名算法的保护,进一步提高了数据的安全性。

关于此功能的的官方文档介绍可参考:
http://hyperledger-fabric.readthedocs.io/en/latest/chaincode4ade.html?highlight=chaincode%20encryption#chaincode-encryption

在容器服务的区块链解决方案中,我们提供了官方的EncCC示例程序用于在CLI环境中运行,方便用户了解此功能的使用和工作机制。在该示例中,首先对键"key1"的值“value1”进行加密并记录到账本上;然后读取键"key1"并解密其值,输出显示"value1";接着,再对键“key2”的值"value2"进行加密以及数字签名并记录到账本上,最后读取键“key2”并解密、验证签名得到最终值,输出显示"value2"。

需要说明的是,使用该CLI示例程序之前,请先创建对应的channel(例如通过运行cli-tset.sh)。

示例程序源代码参考:
https://github.com/hyperledger/fabric/tree/release-1.1/examples/chaincode/go/enccc_example

2018_03_22_15_48_25_1

2018_03_22_15_50_55_1

2018_03_22_15_52_37_1


新功能:Connection Profile用于Client SDK应用程序

针对不同类型的区块链应用程序有着各不相同的对区块链网络拓扑和连接信息的描述方式的问题,为了提供更为统一规范的应用连接配置,Hyperledger Fabric v1.1开始支持Connection Profile, 目前主要面向Node.js类型的Client SDK应用程序,未来有望推广到更多类型的SDK应用上。

在此次区块链方案升级中,也同步支持此功能,并且能够根据用户输入的区块链网络拓扑配置(channel, peer, orderer, ca等)、公网访问地址和端口等信息,自动生成Connection Profile应用连接配置文件(即network-config.yaml)并提供给用户下载。而在我们的Client SDK示例balancer-transfer-app中也通过一个脚本实现一键下载所有证书密钥以及Connection Profile等配置文件。

解决方案自动生成的Connection Profile的位置和部分内容示例如下:

2018_03_22_16_27_08_1

如需进一步了解Connection Profile各字段的说明,可参考以下文档:
https://github.com/hyperledger/fabric-samples/blob/release-1.1/balance-transfer/artifacts/network-config.yaml


新功能:支持阿里云弹性裸金属服务器(神龙)

此次区块链解决方案升级正式支持在阿里云弹性裸金属服务器(神龙)运行Hyperledger Fabric。阿里云弹性裸金属服务器可提供与普通物理机无差别的高计算性能,同时还提供物理机级别的安全隔离。这些特性为提升基于区块链业务系统的安全风险防范能力、加强对数据和隐私的保护等方面带来了坚实的运行环境保证。在此基础上,弹性裸金属服务器的高计算性能和弹性水平伸缩能力,结合Hyperledger Fabric代价级的性能和扩展性方面的提升,有望进一步提升区块链应用和系统的业务处理能力。

从使用方式上,我们提供了基本无缝支持的体验,用户只需在创建容器服务Kubernetes集群中选择弹性裸金属服务器(现阶段需用户提前通过工单开通弹性裸金属服务器的按量付费类型选择的白名单)作为worker节点;然后按照标准的区块链解决方案的创建部署流程操作即可。


新功能:内置容器化的区块链浏览器

区块链解决方案支持基于标准SDK开发的区块链管控工具、浏览器等与区块链网络连接。在此次升级中,区块链解决方案进一步地将Hyperledger官方开源的Blockchain Explorer 进行了容器化改造,实现了Explorer本身以及其所依赖的MySQL数据库作为Kubernetes的service和deployment内置于解决方案中(默认启用,可设置禁用),随着区块链网络的创建实现自动配置、部署、启动和通过负载均衡(SLB)对外提供Web图形化的区块链网络业务交易监控服务。

2018_03_23_10_45_45_1

2018_03_23_10_48_00_1

15217735020012

需要说明的是,区块链浏览器的使用前提是先创建出channel(如通过cli-test.sh)。


新功能:集成阿里云日志服务

区块链解决方案原生支持容器服务控制台的日志功能,以及Kubernetes的kubectl logs命令查看功能。利用前者可以在Web界面上便捷地查看区块链网络中Peer、Orderer、CA、Kafka、Zookeeper等节点的容器日志信息,一个示例如下:

logging_entry_1_1

log_page_1

在此基础上,最新版的容器服务解决方案进一步支持与阿里云日志服务进行集成,为企业客户提供如日志存储、实时索引/查询/分析、日志告警、可视化报表等更高级的日志功能。集成的关键参数可在创建部署区块链网络的页面进行直接设置,具体使用方法可参考该方案的产品文档。

config_blockchain_solution_1

在阿里云日志服务控制台查询和分析日志的效果如下图所示。关于日志服务完整的查询分析语法以及更多高级功能说明, 可参考日志服务的产品文档

query_result_search_1


新功能:删除流程数据目录处理优化

考虑到部分区块链解决方案的用户在开发测试环境需要频繁创建和删除区块链网络,为了进一步提升效率,这次方案升级优化了对数据目录清理的优化。具体来说,当区块链网络被删除(例如使用helm delete命令)的同时,相应的数据目录名会被自动添加以下后缀:-deleted-当前时间戳。之所以不直接删除,主要是为了防范人为误操作的风险,以及满足部分用户希望复用原有数据的目的。

假设原数据目录为:

/data/fabric/network01

则区块链网络删除后,数据目录会被重命名为类似如下的名字:

/data/fabric/network01-deleted-2018-03-21-041756

这样便能进一步优化用户的区块链创建-删除-创建流程上的操作体验了(因为有用户需要频繁进行此类操作进行开发调试)。此外,如需彻底清理数据目录以释放存储空间,可手工运行rm命令或结合自动化脚本很方便地实现。


总结

容器服务区块链解决方案自2017年10月正式发布以来,获得了为数众多的开发者和来自零售、金融、制造、多媒体等行业的企业用户的认可和采用,基于解决方案提供的企业级区块链开发测试环境快速地进行基于区块链的业务创新应用的打造。随着此次Hyperledger Fabric v1.1和区块链解决方案的升级,将进一步帮助我们的用户打造功能更完备、性能更高、安全性更强、易用性更好的企业级区块链业务应用。

如有兴趣体验最新版的容器服务区块链解决方案,请访问产品文档的快速开始指南:
阿里云容器服务区块链解决方案产品文档 - 快速开始

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
H8
|
8月前
|
安全 网络协议 Shell
Docker 枚举、特权升级和容器逃逸 (DEEPCE)
为了使其与最大数量的容器兼容,DEEPCE 是纯编写的sh,没有依赖性。如果可用,它将使用其他工具,例如 curl、nmap、nslookup 和 dig,但在大多数情况下不依赖于它们进行枚举。 枚举都不应该触及磁盘,但是大多数漏洞利用会创建新的容器,这将导致磁盘写入,并且一些漏洞利用会覆盖 runC,这可能具有破坏性,所以要小心!
H8
135 0
|
8月前
|
人工智能 弹性计算 运维
阿里云容器服务 Serverless 版(ACK Serverless)全新升级
阿里云容器服务 Serverless 版(ACK Serverless)全新升级
1515 10
|
10月前
|
Kubernetes 网络安全 容器
容器升级内核及重启后遇到的问题
容器升级内核及重启后遇到的问题
207 0
|
10月前
|
人工智能 运维 Kubernetes
阿里云 Serverless 容器服务全面升级:新增组件全托管、AI 镜像秒级拉取能力
阿里云 Serverless 容器服务全面升级:新增组件全托管、AI 镜像秒级拉取能力
|
10月前
|
运维 Kubernetes 开发者
全面升级,重磅上线!容器服务ASK评测携大奖前来!
重磅新品优先体验,免费领取试用额度,更有多重奖品,还不快来!
1231 0
|
10月前
|
人工智能 Kubernetes Cloud Native
【热点追踪】从价值到架构,走近全新升级的阿里云 Serverless 容器服务 ASK
【热点追踪】从价值到架构,走近全新升级的阿里云 Serverless 容器服务 ASK
|
11月前
|
运维 监控 Cloud Native
《云原生架构容器&微服务优秀案例集》——02 汽车/制造——极氪汽车 APP全面升级云原生技术架构,高效提升用户出行体验
《云原生架构容器&微服务优秀案例集》——02 汽车/制造——极氪汽车 APP全面升级云原生技术架构,高效提升用户出行体验
203 0
|
11月前
|
运维 Kubernetes Cloud Native
《云原生架构容器&微服务优秀案例集》——03 零售/电商——三只松鼠 云原生架构升级,完美应对双十一
《云原生架构容器&微服务优秀案例集》——03 零售/电商——三只松鼠 云原生架构升级,完美应对双十一
131 0
|
11月前
|
Kubernetes 监控 Cloud Native
《云原生架构容器&微服务优秀案例集》——03 零售/电商——波司登 云原生架构升级,实现数字化业务创新
《云原生架构容器&微服务优秀案例集》——03 零售/电商——波司登 云原生架构升级,实现数字化业务创新
188 0
《云原生架构容器&微服务优秀案例集》——03 零售/电商——波司登 云原生架构升级,实现数字化业务创新
|
11月前
|
弹性计算 运维 Kubernetes
《云原生架构容器&微服务优秀案例集》——05 金融—— 众安保险 云原生架构升级,贯通行业数字化转型“快车道”
《云原生架构容器&微服务优秀案例集》——05 金融—— 众安保险 云原生架构升级,贯通行业数字化转型“快车道”
141 0

相关产品

  • 容器计算服务