区块链
1. 中间件产品说明
络谱区块链中间件产品,是为了加速区块链技术落地而专门设计的产品,作为 BROP tool 的主要部分共同发布。它可以用于与传统MIS、ERP、CRM等各类业务系统对接。在联盟链场景下,通过使用智能合约,减少业务开发中集成区块链的基础工作,从而降低学习成本和开发成本。
本文的目标读者是希望将区块链技术引入到产品中的系统架构师及各类技术人员。因此,本文将不会对区块链原理进行讲解,但会提到相关特性。
通过对这些问题的描述,帮助用户快速了解中间件的整体背景和可能的使用方法,帮助区块链相关的开发团队快速评估如何引入中间件产品。
2. 中间件产品形态
一个独立的Java 应用服务。
通过MongoDB数据库实现对区块链数据进行索引的能力,数据库的数据同步来自区块链账本。
提供一组简单的页面,用于对区块链中的数据信息进行检索、查询。
提供一组Web界面,进行常用的文件上链、文件鉴定等功能。
通过消息队列的形式对外发布信息,业务开发者可以通过订阅消息获得及时的通知。
3. 功能介绍
3.1 为区块链提供统一的快速开发接口
区块链中间件产品的首要设计目标是简化用户的开发,区块链开发中的第一个环节就是与区块链的接口交互。目前行业中并没有标准的区块链接口规范,各种区块链接口的设计也各不相同。
络谱中间件产品将区块链原生操作进行封装,通过一组统一的接口方案为用户提供全面的区块链功能。这些接口涵盖合约的编译、部署、交易发送、信息查询等功能。
3.2 为数据建立索引,提供灵活的查询接口
区块链节点的数据以区块为单位,形成链表进行存储。这样的数据存储结构虽然便于定位和验证,但通常只能根据没有业务意义的key 进行检索。区块链本身的设计并不关心业务内容,导致了区块链不能满足业务系统的检索需求。
中间件提供一种同步机制,分析区块链上的数据,并建立一套高效的索引数据库。用户对业务数据的查询,可以在这套索引数据库中完成。业务系统将查询请求发送到中间件的查询接口,就可以方便、快速地检索到需要的业务数据。这在相当大程度上,减少了各个业务系统在接入区块链技术时需要进行的二次开发工作。
3.3 向业务系统提供关于区块链事件通知
区块链是一项帮助企业间建立更强信任的技术,所以区块链的接口设计应该兼具通信和存储的功能。对于业务系统来说,通常需要感知与自身业务相关的数据变化。而目前市面上大部分区块链系统都只是单纯地存储数据,不具备通知数据变化的机制。
中间件与底层区块链之间通过同步机制建立紧密联系。利用这种联系,中间件会及时发现区块链上正在发生的数据变化,并将这些变化封装成各种“事件”,通知给业务系统。上层业务系统可以通过监听这些事件了解到区块链上的数据变化。这样的机制能大大地降低业务系统的开发和运行成本,简化业务系统的复杂度。
3.4 为存证记录提供权威的时间信息
区块链的各种常见业务中,存证和交易等场景都带有较强的时间属性。中间件为用户的存证、信息登记提供了简单的时间戳接口,时间戳数据来自中国科学院国家授时中心,帮助业务系统方便地添加权威时间信息。
时间戳接口服务帮助用户方便地为存证信息添加时间戳,这个信息会随着存证信息一起记录到区块链上,同时,因区块链具备不可篡改特性,为存证信息提供清晰且强有力的证明和支持。
3.5 精简区块链索引,降低运维成本
区块链技术通过充分的冗余备份,实现了账本数据的见证和高可用,但因此造成的成本也是显而易见的。当区块链网络成熟之后,节点和中间件可以分担进行数据见证和数据索引。业务参与方可以选择只关注应用层数据的索引,通过中间件所获取必要的数据后,再向具有可靠数据的区块链节点发起请求,进行数据验证。然而,整个区块链账本中有很多数据与业务系统本身并不相关,中间件在建立数据索引时,还提供了数据过滤功能,只将与业务相关的账号、合约信息编入索引,帮助业务系统降低运维成本。
目前中间件支持通过简单参数配置实现过滤区块链数据的功能,其中,支持的特定规则主要是根据合约和合作方账户进行过滤。未来,研发团队还将陆续推出更多的过滤规则和更灵活的配置方式。
3.6 提供交易重试和调度机制
在研发基于区块链的系统过程中,我们发现了一些困扰开发者的问题。
第一,业务系统在向区块链发送交易时,需要进行编码、签名以及发送等操作。因此区块链确认交易时会产生一段时间的延迟,导致用户在发送操作后通常不会同步得到结果。然而用户需要关心各个步骤和操作中的异常、失败和重试等各种情况。这类需求非常普遍。第二,区块链相对传统的中心化系统,吞吐带宽和并发交易数有限,业务开发者通常需要对交易进行调度,避免出现交易高峰。
针对这类场景,中间件提供交易重试和调度机制,该机制可以将交易进行存储,以及对交易异常、失败、重试等情况进行相关处理。这样,用户只需要关心交易是否已经发送到中间件,而无需关注交易上链过程中各个阶段的情况。当业务出现高峰时,可以由中间件来限制交易的发送时间,极大地简化了业务系统的复杂度。
3.7 简化大文件存证流程
区块链是一项适合保存数据的技术,但它的设计重点在于防篡改和可追查,所有的节点都完全对等地存储账本里的所有数据。在这样的方案下,对大文件的防篡改能力成为一种技术成本相当高的场景。然而,通常几兆字节的数据已经被认为是相当大的体积。
针对广泛的业务需要,中间件系统为文件存储进行了更多的定制,使得文件系统与区块链功能结合起来,为业务方提供了一套统一的文件存储接口,可以帮助用户将所有文件作为区块链的附件,存储在文件服务器中。用户只要向中间件发送自己签名的文件,即可快速进行保存,并将文件保存结果发送到区块链上,从而实现大文件的防篡改、反抵赖的能力,极大地简化了在防伪、存证等领域引入区块链技术的工作。
全部0条评论
快来发表一下你的评论吧 !