TBLEG
扫描微信账号

扫一扫微信二维码

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

2020-03-21 信息
区块链白皮书代写

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

Hyperledger Fabric v1.1官方发布博客:https://www.hyperledger.org/blog/2018/03/20/hyperledger-fabric-v1-1-releasedHyperledger Fabric GitHub源代码项目:https://github.com/hyperledger/fabricHyperledger Fabric项目路线图:https://wiki.hyperledger.org/projects/fabric/roadmap

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

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

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

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

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

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

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

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

新功能: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-transferclient SDK示例程序。

CLI方式Node.js类型chaincode示例

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

SDK方式Node.js类型chaincode示例

需要说明是,由于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

新功能: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中也通过一个脚本实现一键下载所有证书

全文阅读
文章关键词
node
配置
加密
容器
服务器
区块链
hyperledger
fabric
解决方案
日志
控制台
kubernetes
扫描关注微信账号

试试长按二维码加关注