微众银行区块链:区块链中间件WeBASE v1.3.0发布
2020-06-01 22:47 文章来自:微众银行区块链 收藏(0) 阅读(1596) 评论(0)

WeBASE是一个友好、功能丰富的区块链中间件平台,通过一系列通用功能组件和实用工具,助力社区开发者快速搭建区块链应用的基础环境,并可通过可视化平台进行合约快速开发、实时管理区块链节点的状态。

上一个版本发布之后,新增的链上事件通知功能,使得开发者可在区块链应用层上,通过WeBASE-Front订阅链上事件,实现了链上事件的主动推送。团队对于架构与性能的打磨不止于此,为了提升链上事件通知功能的完备性、私钥托管的安全性,以及交易上链的性能,我们认真听取社区开发者的使用反馈,在WeBASE v1.3.0中对上述问题进行了系列优化,一些已知的问题我们也进行了修复。

目前,WeBASE v1.3.0已经发布。本文带大家概括性地认识本次更新的关键特性,欢迎大家积极体验新版本,并将开发心得和建议反馈给我们。

  私钥管理优化

WeBASE v1.3.0 在一键部署脚本中新增了WeBASE-Sign组件,提供私钥管理和签名服务,用于管理链上用户的私钥。

在过去的版本中,为了便于开发者快速体验WeBASE的功能,私钥管理默认通过WeBASE-Node-Manager来管理,也可以通过配置,使用WeBASE-Sign来管理,WeBASE-Sign是可选的服务。然而,两种方式并存,容易混淆。为了更简便地操作并提高安全性,本次更新,我们将WeBASE-Sign优化为一键部署脚本中的必选服务,交易流程如下:


同时,WeBASE-Sign新增国密算法的支持,调用端可传入算法类型,签名接口根据类型动态选择ECDSA或国密SM2算法。

  性能优化

交易上链过程中,签名算法的实现会影响交易签名效率,而Web服务器的配置对后台服务的并发性能也会产生直接影响,因此,我们对交易链路WeBASE-Front、WeBASE-Sign进行了一系列优化,使交易上链的性能有显著提升。

优化点包括:优化国密签名算法的实现;优化tomcat连接池;优化JVM参数配置;优化长连接。优化长连接的做法,主要是采用HTTP1.1长连接,HTTP头启用Keepalive,复用TCP、优化数据库连接池配置、对私钥和签名部分做了缓存等。

  链上事件通知优化 WeBASE-Front在上一版本中,支持了订阅链上事件通知的功能,本次更新针对事件通知模块的功能进行完善,新增取消订阅出块事件和合约Event事件接口,新增查看已订阅的出块事件和合约Event事件的接口,以方便开发者更有效地管理与订阅链上事件通知。

同时,我们也对事件通知模块中已知的bug进行了修复,确保事件通知功能的稳定性。具体的接口说明可查看文末WeBASE接口文档。

同时,我们新增了WeBASE-Event-Client项目,开发者可通过此项目体验、测试链上事件通知,或参考此项目的实现,将自身的区块链应用连接MQ Server,接收消息推送来获取链上事件通知。

项目地址:

https://github.com/WeBankFinTech/WeBASE-Event-Client


附:链上事件通知说明

在需要实时获取链上事件的业务场景中,应用层无法与连接节点的WeBASE直接建立长连接,难以实时获取链上的消息。为了解决这个问题,应用层可通过WeBASE-Front订阅链上事件,当事件触发,可通过消息队列RabbitMQ通知到应用层。架构如下:

通过安装RabbitMQ并配置WeBASE-Front的SpringBoot-AMQP属性参数,即可将链上事件通知消息推送到消息队列中。


详情可参考链上事件通知的说明文档:

https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Front/appendix.html#id11


  体验WeBASE v1.3.0


上述优化及功能所涉及的最新代码和技术文档已同步更新,欢迎体验和star支持。


WeBASE 代码仓库:

https://github.com/WeBankFinTech/WeBASE

WeBASE 国内镜像:

https://gitee.com/WeBank/WeBASE

WeBASE 技术文档:

https://webasedoc.readthedocs.io/zh_CN/latest

首次体验WeBASE,可参考一键部署文档:

https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE/install.html


如需升级已有版本,可参考:

WeBASE-Front升级说明:

https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Front/upgrade.html

WeBASE-Node-Manager升级说明:

https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Node-Manager/upgrade.html

WeBASE-Sign升级说明:

https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Sign/upgrade.html


向我们报告问题,欢迎提交issue:

https://github.com/WeBankFinTech/WeBASE/issues