CN115619559A - 一种共识交易可视化方法、装置、设备和存储介质 - Google Patents
一种共识交易可视化方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN115619559A CN115619559A CN202211361006.2A CN202211361006A CN115619559A CN 115619559 A CN115619559 A CN 115619559A CN 202211361006 A CN202211361006 A CN 202211361006A CN 115619559 A CN115619559 A CN 115619559A
- Authority
- CN
- China
- Prior art keywords
- transaction
- node
- target
- nodes
- log information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 238000007794 visualization technique Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 97
- 238000012800 visualization Methods 0.000 claims abstract description 25
- 230000004044 response Effects 0.000 claims description 51
- 238000012163 sequencing technique Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 16
- 239000004744 fabric Substances 0.000 abstract description 68
- 230000008569 process Effects 0.000 abstract description 57
- 230000000007 visual effect Effects 0.000 abstract description 6
- 230000000875 corresponding effect Effects 0.000 description 79
- 238000004458 analytical method Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000002457 bidirectional effect Effects 0.000 description 6
- 238000009826 distribution Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000008520 organization Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000011160 research Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241000529895 Stercorarius Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- XXUZFRDUEGQHOV-UHFFFAOYSA-J strontium ranelate Chemical compound [Sr+2].[Sr+2].[O-]C(=O)CN(CC([O-])=O)C=1SC(C([O-])=O)=C(CC([O-])=O)C=1C#N XXUZFRDUEGQHOV-UHFFFAOYSA-J 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Economics (AREA)
- Technology Law (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Strategic Management (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种共识交易可视化方法、装置、设备和存储介质。该方法包括:获取目标共识交易对应的目标区块文件和交易日志数据;根据所述目标区块文件和所述交易日志数据确定所述目标共识交易中节点和节点之间对应的点边关系;将所述节点和节点之间对应的点边关系存储至图数据库,并通过图数据库可视化组件对所述节点和节点之间对应的点边关系进行展示。通过本发明的技术方案,通过本发明的技术方案,能够实现对Hyperledger Fabric网络中节点共识交易的调用流程进行可视化追踪,且无需改造Hyperledger Fabric源码,对源码无侵入性,提高了方法的适用性和可拓展性。
Description
技术领域
本发明实施例涉及区块链技术领域,尤其涉及一种共识交易可视化方法、装置、设备和存储介质。
背景技术
区块链是一种新兴的数字产业,具有去中心、透明可追溯、不可篡改等优势。共识是保障区块链账本数据一致性的关键,区块链各节点之间达成共识的交易轨迹追踪能够帮助区块链监管方识别不同交易的节点共识拓扑信息,从而有效管理不同交易的参与方。然而,区块链技术的去中心化特性使得待监管的节点分散,区块链的匿名性导致链上数据内容监管难以实施,使得区块链监管方在获取底层原始数据、节点之间的关系上难以切入。另外,现有的区块链分析工具功能不足,其可视化功能不足以支持监管方需求,且绝大多数仅能分析共识前、共识后的数据,缺乏对共识过程的追踪。
因为区块链节点追踪的技术方案目前尚未有具体的技术方案,同样在区块链节点共识交易的追踪上还没产出研究文献,但应该有两类思路可能适用。一种思路是在Hyperledger Fabric共识交易源码中嵌入自定义日志:由于Hyperledger Fabric自带的原始日志信息内容有限,即对于共识交易关键方法的日志输出仅打印服务的基本信息,如服务响应时间、状态码等,但是并不能标识是哪支交易。况且,不同节点部署在不同的Docker容器中,共识交易流程在不同节点之间流转,多个节点的原始日志信息无法进行关联。因此,通过在Hyperledger Fabric共识交易源码中嵌入自定义日志,从而标识日志是属于哪支交易、交易的发生时间、交易现处于哪个环节等内容,进而关联不同节点的日志。通过对自定义日志进行收集与分析,进而还原出Hyperledger Fabric共识交易的拓扑信息,实现交易的共识过程追踪。另一种思路是通过gRPC***获取共识交易客户端和服务端发起的gRPC请求和响应信息:由于Hyperledger Fabric共识交易的关键方法均采用gRPC服务的方式,故可在Hyperledger Fabric共识交易关键方法中嵌入gRPC***代码,在gRPC服务发送前,标识服务端、客户端和交易信息,并将这些信息进行存储。此处可以利用分布式链路追踪技术,利用Jaeger、Zipkin等分布式链路追踪组件实现数据的抓取,即gRCP***拦截的信息将发送给分布式链路追踪组件,由组件进行存储和索引。最后利用Jaeger、Zipkin等组件自带的展示模块,对交易的共识过程进行展示。
但是,上述的两种思路均存在一个问题,即对Hyperledger Fabric存在一定的代码入侵性。如思路一需要在共识过程的关键方法加入自定义的日志,思路二需要在共识过程的关键方法加入gRPC***的代码,这都将影响代码的可拓展性,甚至影响区块链的性能。
发明内容
本发明实施例提供一种共识交易可视化方法、装置、设备和存储介质,以实现能够对Hyperledger Fabric网络中节点共识交易的调用流程进行可视化追踪。
根据本发明的一方面,提供了一种共识交易可视化方法,包括:
获取目标共识交易对应的目标区块文件和交易日志数据;
根据所述目标区块文件和所述交易日志数据确定所述目标共识交易中节点和节点之间对应的点边关系;
将所述节点和节点之间对应的点边关系存储至图数据库,并通过图数据库可视化组件对所述节点和节点之间对应的点边关系进行展示。
根据本发明的另一方面,提供了一种共识交易可视化装置,该装置包括:
获取模块,用于获取目标共识交易对应的目标区块文件和交易日志数据;
确定模块,用于根据所述目标区块文件和所述交易日志数据确定所述目标共识交易中节点和节点之间对应的点边关系;
存储与展示模块,用于将所述节点和节点之间对应的点边关系存储至图数据库,并通过图数据库可视化组件对所述节点和节点之间对应的点边关系进行展示。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的共识交易可视化方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的共识交易可视化方法。
本发明实施例通过获取目标共识交易对应的目标区块文件和交易日志数据,根据目标区块文件和交易日志数据确定目标共识交易中节点和节点之间对应的点边关系,将节点和节点之间对应的点边关系存储至图数据库,并通过图数据库可视化组件对节点和节点之间对应的点边关系进行展示。通过本发明的技术方案,能够实现对Hyperledger Fabric网络中节点共识交易的调用流程进行可视化追踪,且无需改造Hyperledger Fabric源码,对源码无侵入性,提高了方法的适用性和可拓展性。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例中的一种共识交易可视化方法的流程图;
图2是本发明实施例中的一种共识交易可视化装置的结构示意图;
图3是实现本发明实施例的共识交易可视化方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
本发明实施例中使用的术语“Client节点”简称为客户端节点,是指与Hyperledger Fabric网络中进行交互的客户端节点。具体的,Client节点可以是通过调用Hyperledger Fabric提供的API(Application Programming Interface,应用程序接口)、SDK(Software Development Kit,软件开发工具包)来与Hyperledger Fabric网络交互,也可以是直接通过CLI(command-lineinterface,命令行界面)命令行终端来与HyperledgerFabric网络交互。
本发明实施例中使用的术语“Endorser Peer节点”简称为背书节点,是指Hyperledger Fabric网络中作为背书的Peer节点。
本发明实施例中使用的术语“Orderer节点”简称为排序节点,是指HyperledgerFabric网络中作为排序的Orderer节点。
本发明实施例中使用的术语“Committer Peer节点”简称为提交节点,是指Hyperledger Fabric网络作为记账的Peer节点。Committer Peer节点通过从Gossip消息中解析出区块数据,对区块数据进行有效性校验,校验通过后,把区块提交到本地账本中。
本发明实施例中使用的术语“联盟”是指专指联盟链中联盟的概念。具体的,联盟是Hyperledger Fabric按照配置文件等方式启动网络后,由一个或多个组织组合而成。一个组织内存在一个或多个节点,通过联盟的方式,将多个组织聚集起来,在联盟中进行数据通信。
本发明实施例中使用的术语“节点容器”是指Hyperledger Fabric网络中以Docker方式启动的Peer、Orderer等节点容器。
本发明实施例中使用的术语“链码”是指智能合约,在Hyperledger Fabric中也称之为链码,即部署在链上的代码。
本发明实施例中使用的术语“交易提案”是指客户端节点向背书节点发送背书请求的统称,Hyperledger Fabric官网原文指transaction proposal,其包含请求信息、调用链码函数信息、函数参数信息以及签名信息等。
本发明实施例中使用的术语“CLI”是指命令行,Hyperledger Fabric提供了多种与客户端进行通信的方式,客户端可通过CLI命令行、Hyperledger Fabric提供的SDK或者API与Hyperledger Fabric网络进行通信。
本发明实施例中使用的术语“背书策略”是指链码在安装部署到HyperledgerFabric时指定的背书策略。具体的,其要求交易需要指定组织指定个数节点进行背书,才认为交易是有效交易,如背书策略为AND(org1,org2)意味着交易需要org1组织的任一节点以及org2组织的任一节点进行背书。
本发明实施例中使用的术语“Gossip”是指分布式***中常用的一致性协议,即在网络中某个节点的消息会被随机转发给当前节点所关联的多个对等节点,直至网络中所有节点都收到该消息。Hyperledger Fabric使用Goosip协议实现各节点之间账本数据的同步。
本发明实施例中使用的术语“gRPC”是指一款高性能、开源的RPC(RemoteProcedure Call Protocol,远程过程调用协议)框架,它基于HTTP2(HyperText TransferProtocol2,超文本传输协议)协议标准设计开发,默认使用Protocol Buffers数据序列化协议,支持Java、Golang、Python等多种语言开发。Hyperledger Fabric不同节点共识过程涉及的内部服务采用gRPC实现。
本发明实施例中使用的术语“gRPC***”是指能够拦截客户端或者服务端发起的gRPC请求或者响应,即在对请求或者响应数据发送前,先进行数据处理如日志记录、身份认证等,再转交给执行的服务处理并响应。
本发明实施例中使用的术语“一元RPC服务”是指gRPC提供的一元RPC服务。具体的,是表示客户端发送单一的请求,并从服务端接收响应,此服务就结束。
本发明实施例中使用的术语“流RPC服务”是指gRPC提供的流RPC服务。具体的,包括客户端流服务、服务端流服务以及双向流服务,当选择对应的流服务时,客户端或者服务端需要等待所有消息全部接收后才响应。Hyperledger Fabric共识过程涉及的广播服务和区块分发服务均采用双向流服务进行通信。
本发明实施例中使用的术语“背书服务”是指Hyperledger Fabric提供的背书服务。具体的,是fabric-proto项目中,在peer/peer.proto路径下的“ProcessProposal”gRPC服务。此服务的客户端是Client节点,服务端是Peer节点,Peer节点在启动的时候就会向本地的gRPC服务器注册背书服务。背书服务用于接收Client节点发送的背书请求,接着启动用户链码来模拟执行交易,最后将模拟执行的结果进行签名,并返回给Client节点。
本发明实施例中使用的术语“广播服务”是指Hyperledger Fabric提供的广播服务。具体的,是fabric-proto项目中,在/orderer/ab.proto路径下的“Broadcast”gRPC服务。此服务的客户端是Client节点,服务端是Orderer节点,Orderer节点在启动的时候就会向本地的gRPC服务器注册广播服务。广播服务用于接收Client节点发送的交易排序请求,再由Orderer节点进行排序出块。
本发明实施例中使用的术语“区块分发服务”是指Hyperledger Fabric提供的区块分发服务。具体的,是fabric-proto项目中,在/orderer/ab.proto路径下的“Deliver”gRPC服务。此服务的客户端是Leader Peer节点,服务端是Orderer节点,Orderer节点在启动的时候就会向本地的gRPC服务器注册区块分发服务。Orderer节点通过区块分发服务可以把新生成的区块分发给提交节点,由提交节点将区块提交到本地账本中。
本发明实施例中使用的术语“分布式链路追踪”是指用于分布式***中追踪用户发起请求到返回响应流程的技术。具体的,将一次分布式请求还原成调用链路并进行集中展示,如各个服务节点的耗时情况、请求从哪发起到哪去、服务节点的状态、请求或响应携带的参数等。
本发明实施例中使用的术语“图数据库”是指使用图结构进行语义查询的非关系型数据库,利用点和边存储数据,对于展示高度互联数据之间的关系十分切合。示例性的,典型的图数据库有Neo4j、FlockDB以及GraphDB等。
图1是本发明实施例中的一种共识交易可视化方法的流程图,本实施例可适用于共识交易可视化的情况,该方法可以由本发明实施例中的共识交易可视化装置来执行,该装置可采用软件和/或硬件的方式实现,如图1所示,该方法具体包括如下步骤:
S101、获取目标共识交易对应的目标区块文件和交易日志数据。
需要说明的是,本发明实施例的技术方案适用于Hyperledger Fabric网络中。在本实施例中,目标共识交易可以是Hyperledger Fabric网络共识过程中各节点之间的共识交易。
在实现过程中,监管节点可以作为Hyperledger Fabric的节点容器启动,参与Hyperledger Fabric的交易流程。Hyperledger Fabric共识过程中各节点之间的共识交易的流程可以包括如下操作:客户端节点通过Hyperledger Fabric官方提供的SDK、API或者命令行CLI的方式与组织内的指定的背书节点(Endorser Peer)发起背书请求,由背书节点对交易提案进行解析,并启动链码容器模拟执行交易。背书节点将链码容器模拟执行的结果进行封装,并打包成背书响应,其具体内容包含读写集、签名等信息,再把背书响应发回给客户端节点,客户端节点对比不同背书响应中的读写集内容是否一致,并按照背书策略要求,等待收集到足够多的背书。客户端节点收集到足够多的背书响应后,将交易等内容封装成交易消息(transaction message),其包含交易提案、背书响应、客户端签名等,再将交易消息发送至排序节点(Orderer)请求对交易进行排序。排序节点收到交易信息后,按照区块的打包规则如区块至多包含交易数量,将交易按照共识组件进行排序,并打包成区块,将区块临时写入排序节点的临时账本中。排序节点将区块发送给各组织的提交节点,提交节点接收区块后,对区块内容进行校验,包含读写集验证、背书策略验证、签名验证等内容,当验证通过后,再将区块写入本地账本中,直至所有Peer节点完成账本数据同步。
上述操作是Hyperledger Fabric一笔交易从请求到写入账本的完整过程,概括为操作主要涉及背书服务、广播服务以及区块分发服务,也说明共识不单单只是某一个步骤,而是由多个过程有机组成,将背书、排序、验签等多种方式结合保障数据的一致性、安全性。因此,对整个交易共识过程的追踪能有利于监管方整体把控交易的有效状态、异常处理点、节点处理事件等问题。
需要解释的是,目标区块文件可以是目标共识交易结束后形成的包含区块数据的区块文件。具体的,目标区块文件可以包括区块头、至少一个区块体以及元数据,其中,区块体的个数与目标共识交易的个数相同。
其中,交易日志数据可以是记录目标共识交易运行过程的日志数据,优选的,交易日志数据具体可以是Hyperledger Fabric的INFO日志输出信息。
为了获取Hyperledger Fabric共识交易流程,且不对源码进行改造,可从Hyperledger Fabric原生日志角度出发,结合日志数据进行分析。Hyperledger Fabric原生日志在Hyperledger Fabric网络中可分为两类:一类是普通日志信息,即非gRPC服务打印的日志,打印的字段内容如表1所示;另一类是gRPC服务打印的日志,是在普通日志信息基础上,新增了gRPC服务的日志内容,如gRPC服务名、客户端地址信息等,具体可如表2所示。因Hyperledger Fabric日志级别在Debug模式下输出量过大,且常伴随频繁的心跳日志,增加了日志收集和分析负担,也不利于生产环境。因此,本发明实施例选择基于Hyperledger Fabric的INFO日志输出信息进行分析。
表1
字段说明 | 示例 | |
level | 日志等级 | info |
ts | 时间戳 | 1,643,037,956.564 |
name | 调用方方法名 | committer.txvalidator |
caller | 方法具体文件和位置 | v20/validator.go:262 |
msg | 日志输出内容 | [mychannel]Validated block[6]in 1ms |
表2
在日志级别为INFO下,Hyperledger Fabric涉及交易共识过程的日志情况,包含以下几点:背书节点(Endorser Peer)打印背书响应gRPC日志;排序节点(Orderer)打印广播响应gRPC日志,以及区块创建普通日志;组织内Peer节点打印接收区块、验证区块、提交区块普通日志。
若要基于现有的INFO日志信息还原出Hyperledger Fabric交易,需明确知道各服务的请求和响应日志信息,且日志应包含发送方、接收方等基础信息,现有的INFO日志存在以下几个问题:因客户端节点日志属于客户端范畴,并不在Hyperledger Fabric服务端打印,且服务端在接收请求时也不打印请求日志,故因客户端发起的请求日志均未获取到,包含背书请求日志、广播请求日志;背书节点只打印背书响应gRPC日志,且日志中只包含grpc.peer_address客户端信息,并未包含服务端节点信息,故不知到底是由哪些节点处理了请求;排序节点(Orderer)节点与提交节点(Committer Peer)之间是建立了双向流gRPC服务,且此流不会断开,因为Peer请求的区块号范围是[当前账本高度,math.MaxUint64],请求的区块号截止数转换为数字是(2^64)-1,理论上Peer节点会不断等待排序节点发来的区块,流不断开就意味着服务不断开,则说明不会打印gRPC响应日志,因为一直在响应,所以INFO日志中只发现Peer节点打印的普通日志信息,普通日志信息无请求和响应信息,故不知区块同步过程;日志信息不完全包含交易ID和通道ID,不能准确关联不同节点打印的日志信息。
因此,本发明实施例获取了目标共识交易对应的目标区块文件和交易日志数据,对多个数据进行综合分析,以整理出Hyperledger Fabric共识交易过程中各节点之间的关系。
S102、根据目标区块文件和交易日志数据确定目标共识交易中节点和节点之间对应的点边关系。
在本实施例中,节点可以是目标共识交易中涉及到的所有节点,例如可以是,背书节点、排序节点、提交节点以及客户端节点等。点边关系中的点可以是目标共识交易中涉及到的所有节点,点边关系中的边可以是目标共识交易中涉及到的各个节点之间的交互关系。
具体的,根据目标区块文件和交易日志数据确定目标共识交易中涉及到的各个节点以及各个节点之间的交互关系。
S103、将节点和节点之间对应的点边关系存储至图数据库,并通过图数据库可视化组件对节点和节点之间对应的点边关系进行展示。
其中,图数据库可视化组件可以是图数据库中可以展现点边关系拓扑结构信息的组件。本实施例对具体使用的图数据库不进行限定,可以存储点和边数据的图数据库均可。
具体的,将节点和节点之间对应的点边关系存储至图数据库,利用图数据库可视化组件展示节点共识交易的拓扑信息。基于图数据库存储的目标共识交易过程中的节点和节点之间对应的点边关系等数据,便于后续利用图算法实现上层的数据分析等研究工作。
本发明实施例通过获取目标共识交易对应的目标区块文件和交易日志数据,根据目标区块文件和交易日志数据确定目标共识交易中节点和节点之间对应的点边关系,将节点和节点之间对应的点边关系存储至图数据库,并通过图数据库可视化组件对节点和节点之间对应的点边关系进行展示。通过本发明的技术方案,通过本发明的技术方案,能够实现对Hyperledger Fabric网络中节点共识交易的调用流程进行可视化追踪,且无需改造Hyperledger Fabric源码,对源码无侵入性,提高了方法的适用性和可拓展性。
可选的,根据目标区块文件和交易日志数据确定目标共识交易中节点和节点之间对应的点边关系,包括:
解析目标区块文件,得到目标区块文件中的目标区块数据。
其中,目标区块数据可以是目标区块文件中包括的目标共识交易运行过程中的区块数据。可选的,目标区块数据包括:通道ID、交易ID、创建者证书、背书节点身份组证书、消息创建者证书、区块提交哈希以及区块号。
具体的,解析目标区块文件的操作可以包括:解析区块体中通道ID、解析区块体中交易ID、解析区块体中创建者(客户端)证书、解析区块体中背书节点身份组证书、解析区块元数据中消息创建者(排序节点)证书、解析区块元数据中区块提交哈希以及解析区块头中区块号。
在实现过程中,由于区块是作为gRPC服务传输的内容,利用区块对象定义的protobuf源文件、证书源文件以及Golang官方提供的github.com/golang/protobuf/proto包等文件可以将区块中数据逐一进行解析。Hyperledger Fabr ic官方提供了hyperledger/fabric/protoutil包,介绍了区块源文件进行解析方法,例如想要获取区块里某条交易的通道ID,首先通过proto.Unmarshal(区块文件字节数组,protobuf定义的区块对象)解析出区块对象,接着基于protoutil包下GetChannelIDFromBlock(区块对象)方法解析出通道ID。因此,按照同样的方式,可对区块结构体内容逐一进行解析。
在实际操作过程中,解析区块体中通道ID操作的具体过程可以是:区块体中包含一个或者多个共识交易,其中共识交易的结构体proto描述源文件位于HyperledgerGighub中,具***于hyperledger/fabric-protos/common.prot o文件中。在实现过程中,通道ID在本实施例中具***于区块体的BlockData.Envelope.Payload.Header.ChannelHeader.ChannelId位置,从区块文件中获取区块结构体,从区块结构体可获取交易(Envelope)结构体,再从交易结构体获取通道头(ChannelHeader)结构体,通道ID位于通道头中。
在实际操作过程中,解析区块体中交易ID操作的具体过程可以是:交易ID具***于区块体的common.Envelope.Payload.Header.ChannelHeader.TxId位置,从区块文件中获取区块结构体,从区块结构体可获取交易(Envelope)结构体,再从交易结构体获取通道头(ChannelHeader)结构体,交易ID位于通道头中。
在实际操作过程中,解析区块体中创建者(客户端)证书的具体过程可以是:区块体中创建者(客户端)证书能够标识客户端节点身份,其中,在本实施例中,创建者(客户端)证书的具***置可以为BlockData.Envelope.Payload.Header.SignatureHeader.Creator.IdBytes位置,获取到的是由crypto加密的X509证书,可对证书在进行解密,通过Golang官方库encoding/pem中pem.Decode()以及x509.ParseCertificate()方法获取更加具体的身份信息。
在实际操作过程中,解析区块体中背书节点身份组证书的具体过程可以是:区块体中背书节点身份组证书能够标识背书节点身份,其中,在本实施例中,背书节点身份组证书的具***置可以为BlockData.Envelope.Payload.Transaction.ChaincodeAction.Endorses位置,获取到的是由crypto加密的X509证书,可对证书在进行解密,通过Golang官方库encoding/pem中pem.Decode()以及x509.ParseCertificate()方法获取更加具体的身份信息,如背书节点身份名称peer0.org1.example.com。
在实际操作过程中,解析区块元数据中消息创建者(排序节点)证书的具体过程可以是:区块元数据中消息创建者(排序节点)证书能够标识排序节点身份,其中,在本实施例中排序节点身份组证书的具***置可以为BlockMetad ata.SignatureHeader.Creator.IdBytes位置,获取到的是由crypto加密的X509证书,可对证书在进行解密,通过Golang官方库encoding/pem中pem.De code()以及x509.ParseCertificate()方法获取更加具体的身份信息,如排序节点身份名称orderer.example.com。
在实际操作过程中,解析区块元数据中区块提交哈希的具体过程可以是:区块元数据中区块提交哈希表示排序节点创建区块后,提交到Orderer节点临时本地账本的时间哈希,在本实施例中的具***置可以是BlockMetadata.Meta data[BlockMetadataIndex_COMMIT_HASH],获取到的值是由base64编码后内容,可提供Golang官方库encoding/base64中的base64.StdEncoding.Encode ToString()方法进行解码。
在实际操作过程中,解析区块头中区块号的具体过程可以是:区块头中区块号能够标识交易被打包到哪个区块中,其中区块号具***于BlockHeader.Nu mber位置。
解析交易日志数据,得到交易日志数据对应的目标日志信息。
其中,目标日志信息可以是目标共识交易中的节点对应的日志信息,例如可以包括背书节点对应的日志信息、排序节点对应的日志信息以及提交节点对应的日志信息。
具体的,解析交易日志数据,得到目标共识交易中的节点对应的目标日志信息。
根据目标区块数据和目标日志信息确定目标共识交易中节点和节点之间对应的点边关系。
具体的,根据目标区块数据和目标日志信息确定目标共识交易中涉及到的各个节点以及各个节点之间的交互关系。
可选的,目标共识交易中的节点包括:背书节点、排序节点和提交节点;相应的,解析交易日志数据,得到交易日志数据对应的目标日志信息,包括:
解析交易日志数据,得到背书节点对应的背书服务日志信息、排序节点对应的广播服务日志信息以及提交节点对应的区块提交日志信息。
在本实施例中,背书服务日志信息可以是背书节点对应的Hyperledger Fa bric的INFO日志输出信息,广播服务日志信息可以是排序节点对应的Hyperl edger Fabric的INFO日志输出信息,区块提交日志信息可以是提交节点对应的Hyperledger Fabric的INFO日志输出信息。
具体的,解析交易日志数据得到背书节点对应的背书服务日志信息、排序节点对应的广播服务日志信息以及提交节点对应的区块提交日志信息。
可选的,背书节点对应的背书服务日志信息包括:背书节点链码调用成功日志信息和背书服务响应日志信息。
需要说明的是,背书节点链码调用成功日志信息可以是背书节点对应的Hyperledger Fabric原生日志中的普通日志信息,即非gRPC服务打印的日志。背书服务响应日志信息可以是背书节点对应的Hyperledger Fabric原生日志中的gRPC服务打印的日志,是在普通日志信息基础上,新增了gRPC服务的日志内容。
排序节点对应的广播服务日志信息包括:区块生成日志信息和广播服务响应日志信息。
需要解释的是,区块生成日志信息可以是排序节点对应的Hyperledger Fa bric原生日志中的普通日志信息,即非gRPC服务打印的日志。广播服务响应日志信息可以是排序节点对应的Hyperledger Fabric原生日志中的gRPC服务打印的日志,是在普通日志信息基础上,新增了gRPC服务的日志内容。
在实际操作过程中,解析背书节点链码调用成功日志信息的具体过程可以是:背书节点链码调用成功日志信息是一条普通日志信息,示例性的,可以形如{"level":"info","ts":1643186825.2183998,"name":"endorser","caller":"endorser/endorser.go:137",channel":"mychannel","txID":"c22793eb""ms g":"finishedchaincode:basic duration:19ms","},其中channel值(通道ID)和txID值(交易ID)需要与区块解析出的通道ID和交易ID对应。因为共识仅发生在账本数据发生变化的条件下,如修改账本数据,而查询数据不会生成区块,但是会调用链码,所以链码调用成功的日志均会打印,但共识只需解析导致账本数据发生变化的日志即可。当查找到此条数据后,可获取到在目标共识交易中所有节点打上的labels标签,可识别出此条日志信息是由哪个节点输出。
在实际操作过程中,解析背书服务响应日志信息的具体过程可以是:背书服务响应日志信息是一条gRPC日志信息,示例性的,某背书服务响应日志信息可以形如:{"level":"info","ts":1643099363.119682,"name":"comm.grpc.server","caller":"go-grpc-middleware/chain.go:25","msg":"unary call completed","grpc.service":"protos.Endorser","grpc.method":"ProcessPro posal","grpc.peer_address":"172.25.0.1:34426","grpc.code":"OK","grpc.call_duration":0.003334704},当获取到背书节点链码调用成功日志信息后,在labels标识的节点日志中按照时间顺序递增查找匹配的gRPC日志。其中背书服务响应gRPC日志信息中grcp.peer_address值,该值代表背书服务的发起方信息,即客户端。通过背书节点链码调用成功日志信息、背书服务响应日志信息以及目标区块文件可关联客户端和背书节点之间的关系。
在实际操作过程中,解析区块生成日志信息的具体过程可以是:区块生成日志信息是一条普通日志信息,示例性的,某区块生成日志信息可以形如:{"level":"info","ts":1643186827.2335174,"name":"orderer.consensus.et cdraft","caller":"etcdraft/chain.go:898","msg":"Created block[7],there are 0blocks in flight","channel":"mychannel","node":1},通道ID和交易ID可唯一标识交易,在对目标区块文件进行解析时不仅从区块文件中解析出了通道ID和交易ID,还解析了区块号,该区块号需与区块生成日志信息中msg里“Created block[区块号]”中的区块号一致。
在实际操作过程中,解析广播服务响应日志信息的具体过程可以是:广播服务响应日志信息是一条gRPC日志信息,示例性的,某广播服务响应日志信息可以形如:{"level":"info","ts":1643102426.5319328,"name":"comm.grpc.server","caller":"go-grpc-middleware/chain.go:49","msg":"streaming call completed","grpc.method":"Broadcast","grpc.service":"orderer.Ato micBroadcast","grpc.peer_address":"172.25.0.1:36872","grpc.code":"OK","grpc.call_duration":0.036412334},在获取到区块生成日志信息后,在该labels所标识的节点日志中按时间排序,查找上一条与之匹配的广播服务响应日志信息,获取广播服务响应gRPC日志信息中grcp.peer_address值,代表广播服务的发起方信息,即客户端。通过区块生成日志信息、广播服务响应日志信息以及区块号可关联客户端和排序节点之间的关系。
在实际操作过程中,解析区块提交日志信息的具体过程可以是:区块提交日志信息是一条普通日志信息,示例性的,某区块提交日志信息可以形如:{"level":"info","ts":1643186827.2587912,"name":"kvledger","caller":"kv ledger/kv_ledger.go:669","msg":"[mychannel]Committed block[7]with1transaction(s)in 9ms(state_validation=0ms block_and_pvtdata_commit=4ms state_commit=1ms)commitHash=[59ec842de457eee48f947d7909aee85e92a0fd949fcdffee95fedca31c0048de]"},从目标区块文件中解析出了区块提交哈希,需要与区块提交日志信息中“commitHash”值对应。通过区块提交日志信息和区块提交哈希可关联排序节点与提交节点之间的关系。
可选的,目标共识交易中的节点还包括:客户端节点;相应的,根据目标区块数据和目标日志信息确定目标共识交易中节点和节点之间对应的点边关系,包括:
根据背书节点链码调用成功日志信息和背书服务响应日志信息确定背书节点与客户端节点之间对应的点边关系。
在实现过程中,Hyperledger Fabric共识过程可以理解为不同节点之间的交互关系,现有的原生交易日志信息因缺乏信息,无法还原出节点与节点的交互关系,因此本发明实施例利用目标区块文件进行补足。Hyperledger Fabric中任意一笔交易可由通道ID和交易ID唯一确定,而交易是被打包到区块上,所以通道ID+交易ID与区块号也是一一对应。当数据完善后,节点之间的交互关系可以被分析,如排序节点将区块发往提交节点,代表着排序节点与提交节点产生了关系,排序节点可视为点A,提交节点可视为点B,区块发送的动作视为连接点A与点B的边,从而将数据转为了点边关系。
具体的,由于目标区块文件中解析出通道ID和交易ID,由此唯一确定一笔交易,背书节点链码调用成功日志信息会打印通道ID和交易ID,背书节点链码调用成功日志信息和背书响应日志信息是按照时间顺序打印,也可进行关联。背书响应日志信息中grpc.peer_address是请求方IP地址:端口,取IP地址值代表客户端节点,新增的labels标签值是容器节点标识,可代表背书节点,从而可转为两个点。客户端节点信息包含grpc.peer_address,区块解析出的创建者证书信息作为点的属性,背书节点信息包含labels标签值,区块解析出的背书节点证书信息作为点的属性。虽然只有背书响应日志信息,但是gRPC服务是双向的,有请求才有响应,所以边可以建立两条,一条是客户端节点向背书节点发送背书请求,另一条是背书节点向客户端节点发回背书响应。
根据区块生成日志信息和广播服务响应日志信息确定排序节点与客户端节点之间对应的点边关系。
具体的,由于目标区块文件中解析出区块号,由此唯一确定一个区块,一笔交易会被打包至区块中,所以通道ID和交易ID也对应一个区块号,区块生成日志信息会打印区块号,广播服务响应日志信息和区块生成日志信息是按照时间顺序打印,也可进行关联。广播服务响应日志信息中grpc.peer_address是请求方IP地址:端口,取IP地址值代表客户端节点,新增的labels标签值是容器节点标识,可代表排序节点,从而可转为两个点。客户端节点信息包含grpc.peer_address,区块解析出的创建者证书信息作为点的属性,排序节点信息包含labels标签值,区块解析出的排序节点证书信息作为点的属性。虽然只有广播服务响应日志信息,但是gRPC服务是双向的,有请求才有响应,所以边可以建立两条,一条是客户端节点向排序节点发送广播请求,另一条是排序节点向客户端节点发回广播响应。
根据区块提交日志信息确定排序节点与提交节点之间对应的点边关系。
具体的,在区块提交日志信息中含有commitHash值,该值与目标区块文件解析出的区块提交哈希对应,且每个区块只有一个区块提交哈希,区块是由排序节点分发,提交节点接收,从而可转为两个点。排序节点信息包含labels标签值,区块解析出的排序节点证书信息作为点的属性,区块提交日志信息中新增的labels标签值是容器节点标识,可代表提交节点。由于排序节点和提交节点之间使用双向流服务,且流不断开,所以边只有一条,即排序节点向提交节点发送区块。
可选的,获取目标共识交易对应的目标区块文件和交易日志数据,包括:
将目标共识交易中的所有节点均赋予唯一标签信息。
其中,唯一标签信息可以是在目标共识交易中的所有节点打上的唯一标签,标签可以用labels进行表示,且各节点的labels需设置不同。
具体的,在目标共识交易中所有的Peer和Orderer节点容器的docker-compose.yaml新增标签信息labels,因为Hyperledger Fabric各节点均已Docker容器启动,利用labels为容器打上标识,从而标识容器的节点信息,例如labels.services.peer0.org1.example.com,且各节点的labels需设置不同。
获取目标共识交易对应的目标区块文件。
获取目标共识交易对应的交易日志数据。
其中,交易日志数据包括目标共识交易中的所有节点携带的唯一标签信息。
具体的,收集Hyperledger Fabric节点容器日志,即交易日志数据时,获取容器的labels标识设置的值,将该值列为交易日志数据的一部分,代表对应节点的基础信息,以此完善gRPC服务日志缺少响应方本身信息的缺陷。需要说明的是,针对Hyperledger Fabric节点容器,收集容器日志的组件有多种,组件需支持获取Docker容器的信息,以此获取到labels标签,如Filebeat组件等。需要注意的是,收集Hyperledger Fabric节点容器日志,即交易日志数据时,需将目标共识交易中的所有节点携带的唯一标签信息标签labels也作为交易日志数据的一部分进行收集。
本发明实施例的技术方案,从区块链节点追踪与可视化的监管技术研究方向出发,选取目前广泛使用的联盟链框架Hyperledger Fabric作为研究对象,提出了一种追踪Hyperledger Fabric节点共识交易的方法。此方法综合了目标共识交易对应的目标区块文件和交易日志数据等多方面数据信息,对多类数据进行分析,整理出Hyperledger Fabric共识过程的节点之间的关系,将关系转换为点边数据,再利用图数据库进行存储,以图数据库的可视化组件展示节点之间的拓扑关系信息,在一定程度上弥补了当前区块链节点追踪与可视化监管技术的空缺。本发明实施例一方面提出了一种追踪区块链节点共识过程的方法,另一方面,基于图数据库存储的共识交易过程等数据,便于后续利用图算法实现上层的数据分析等研究工作。
实施例二
图2是本发明实施例中的一种共识交易可视化装置的结构示意图。本实施例可适用于共识交易可视化的情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供共识交易可视化的功能的设备中,如图2所示,所述共识交易可视化装置具体包括:获取模块201、确定模块202和存储与展示模块203。
其中,获取模块201,用于获取目标共识交易对应的目标区块文件和交易日志数据;
确定模块202,用于根据所述目标区块文件和所述交易日志数据确定所述目标共识交易中节点和节点之间对应的点边关系;
存储与展示模块203,用于将所述节点和节点之间对应的点边关系存储至图数据库,并通过图数据库可视化组件对所述节点和节点之间对应的点边关系进行展示。
可选的,所述确定模块202包括:
第一解析单元,用于解析所述目标区块文件,得到所述目标区块文件中的目标区块数据;
第二解析单元,用于解析所述交易日志数据,得到所述交易日志数据对应的目标日志信息;
确定单元,用于根据所述目标区块数据和所述目标日志信息确定所述目标共识交易中节点和节点之间对应的点边关系。
可选的,所述目标共识交易中的节点包括:背书节点、排序节点和提交节点;相应的,所述第二解析单元包括:
解析子单元,用于解析所述交易日志数据,得到所述背书节点对应的背书服务日志信息、所述排序节点对应的广播服务日志信息以及所述提交节点对应的区块提交日志信息。
可选的,所述背书节点对应的背书服务日志信息包括:背书节点链码调用成功日志信息和背书服务响应日志信息;所述排序节点对应的广播服务日志信息包括:区块生成日志信息和广播服务响应日志信息。
可选的,所述目标共识交易中的节点还包括:客户端节点;相应的,所述确定单元包括:
第一确定子单元,用于根据所述背书节点链码调用成功日志信息和所述背书服务响应日志信息确定所述背书节点与所述客户端节点之间对应的点边关系;
第二确定子单元,用于根据所述区块生成日志信息和所述广播服务响应日志信息确定所述排序节点与所述客户端节点之间对应的点边关系;
第三确定子单元,用于根据所述区块提交日志信息确定所述排序节点与所述提交节点之间对应的点边关系。
可选的,所述获取模块201包括:
赋予单元,用于将所述目标共识交易中的所有节点均赋予唯一标签信息;
第一获取单元,用于获取所述目标共识交易对应的目标区块文件;
第二获取单元,用于获取所述目标共识交易对应的交易日志数据,其中,所述交易日志数据包括所述目标共识交易中的所有节点携带的唯一标签信息。
可选的,所述目标区块数据包括:通道ID、交易ID、创建者证书、背书节点身份组证书、消息创建者证书、区块提交哈希以及区块号。
上述产品可执行本发明任意实施例所提供的共识交易可视化方法,具备执行共识交易可视化方法相应的功能模块和有益效果。
实施例三
图3示出了可以用来实施本发明的实施例的电子设备30的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图3所示,电子设备30包括至少一个处理器31,以及与至少一个处理器31通信连接的存储器,如只读存储器(ROM)32、随机访问存储器(RAM)33等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器31可以根据存储在只读存储器(ROM)32中的计算机程序或者从存储单元38加载到随机访问存储器(RAM)33中的计算机程序,来执行各种适当的动作和处理。在RAM 33中,还可存储电子设备30操作所需的各种程序和数据。处理器31、ROM 32以及RAM 33通过总线34彼此相连。输入/输出(I/O)接口35也连接至总线34。
电子设备30中的多个部件连接至I/O接口35,包括:输入单元36,例如键盘、鼠标等;输出单元37,例如各种类型的显示器、扬声器等;存储单元38,例如磁盘、光盘等;以及通信单元39,例如网卡、调制解调器、无线通信收发机等。通信单元39允许电子设备30通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器31可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器31的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器31执行上文所描述的各个方法和处理,例如共识交易可视化方法:
获取目标共识交易对应的目标区块文件和交易日志数据;
根据所述目标区块文件和所述交易日志数据确定所述目标共识交易中节点和节点之间对应的点边关系;
将所述节点和节点之间对应的点边关系存储至图数据库,并通过图数据库可视化组件对所述节点和节点之间对应的点边关系进行展示。
在一些实施例中,共识交易可视化方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元38。在一些实施例中,计算机程序的部分或者全部可以经由ROM 32和/或通信单元39而被载入和/或安装到电子设备30上。当计算机程序加载到RAM 33并由处理器31执行时,可以执行上文描述的共识交易可视化方法的一个或多个步骤。备选地,在其他实施例中,处理器31可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行共识交易可视化方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的***和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种共识交易可视化方法,其特征在于,包括:
获取目标共识交易对应的目标区块文件和交易日志数据;
根据所述目标区块文件和所述交易日志数据确定所述目标共识交易中节点和节点之间对应的点边关系;
将所述节点和节点之间对应的点边关系存储至图数据库,并通过图数据库可视化组件对所述节点和节点之间对应的点边关系进行展示。
2.根据权利要求1所述的方法,其特征在于,根据所述目标区块文件和所述交易日志数据确定所述目标共识交易中节点和节点之间对应的点边关系,包括:
解析所述目标区块文件,得到所述目标区块文件中的目标区块数据;
解析所述交易日志数据,得到所述交易日志数据对应的目标日志信息;
根据所述目标区块数据和所述目标日志信息确定所述目标共识交易中节点和节点之间对应的点边关系。
3.根据权利要求2所述的方法,其特征在于,所述目标共识交易中的节点包括:背书节点、排序节点和提交节点;
相应的,解析所述交易日志数据,得到所述交易日志数据对应的目标日志信息,包括:
解析所述交易日志数据,得到所述背书节点对应的背书服务日志信息、所述排序节点对应的广播服务日志信息以及所述提交节点对应的区块提交日志信息。
4.根据权利要求3所述的方法,其特征在于,所述背书节点对应的背书服务日志信息包括:背书节点链码调用成功日志信息和背书服务响应日志信息;所述排序节点对应的广播服务日志信息包括:区块生成日志信息和广播服务响应日志信息。
5.根据权利要求2所述的方法,其特征在于,所述目标共识交易中的节点还包括:客户端节点;
相应的,根据所述目标区块数据和所述目标日志信息确定所述目标共识交易中节点和节点之间对应的点边关系,包括:
根据所述背书节点链码调用成功日志信息和所述背书服务响应日志信息确定所述背书节点与所述客户端节点之间对应的点边关系;
根据所述区块生成日志信息和所述广播服务响应日志信息确定所述排序节点与所述客户端节点之间对应的点边关系;
根据所述区块提交日志信息确定所述排序节点与所述提交节点之间对应的点边关系。
6.根据权利要求1所述的方法,其特征在于,获取目标共识交易对应的目标区块文件和交易日志数据,包括:
将所述目标共识交易中的所有节点均赋予唯一标签信息;
获取所述目标共识交易对应的目标区块文件;
获取所述目标共识交易对应的交易日志数据,其中,所述交易日志数据包括所述目标共识交易中的所有节点携带的唯一标签信息。
7.根据权利要求2所述的方法,其特征在于,所述目标区块数据包括:通道ID、交易ID、创建者证书、背书节点身份组证书、消息创建者证书、区块提交哈希以及区块号。
8.一种共识交易可视化装置,其特征在于,包括:
获取模块,用于获取目标共识交易对应的目标区块文件和交易日志数据;
确定模块,用于根据所述目标区块文件和所述交易日志数据确定所述目标共识交易中节点和节点之间对应的点边关系;
存储与展示模块,用于将所述节点和节点之间对应的点边关系存储至图数据库,并通过图数据库可视化组件对所述节点和节点之间对应的点边关系进行展示。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的共识交易可视化方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的共识交易可视化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211361006.2A CN115619559A (zh) | 2022-11-02 | 2022-11-02 | 一种共识交易可视化方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211361006.2A CN115619559A (zh) | 2022-11-02 | 2022-11-02 | 一种共识交易可视化方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115619559A true CN115619559A (zh) | 2023-01-17 |
Family
ID=84877159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211361006.2A Pending CN115619559A (zh) | 2022-11-02 | 2022-11-02 | 一种共识交易可视化方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115619559A (zh) |
-
2022
- 2022-11-02 CN CN202211361006.2A patent/CN115619559A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10268750B2 (en) | Log event summarization for distributed server system | |
US9998450B2 (en) | Automatically generating certification documents | |
CN110704381A (zh) | 数据解析方法、装置及存储介质 | |
CN113505520A (zh) | 用于支持异构联邦学习的方法、装置和*** | |
CN110263581A (zh) | 合同签署方法、***、终端设备及存储介质 | |
WO2022156087A1 (zh) | 数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN110737655B (zh) | 用于上报数据的方法和装置 | |
US11748801B2 (en) | Processing documents | |
CN110602215A (zh) | 基于联盟区块链的资源处理方法及联盟区块链*** | |
CN113821254A (zh) | 接口数据处理方法、装置、存储介质及设备 | |
US11501253B2 (en) | Document event brokering and audit system | |
JP5961471B2 (ja) | 複数の情報システムおける出力比較方法 | |
CN117633112A (zh) | 一种***事件的处理方法、设备及存储介质 | |
CN115619559A (zh) | 一种共识交易可视化方法、装置、设备和存储介质 | |
CN105335362A (zh) | 实时数据的处理方法及***、即时处理*** | |
CN115987858A (zh) | 区块链网络的压力测试方法及相关设备 | |
CN109828908A (zh) | 接口测试参数加密方法、装置、电子设备及存储介质 | |
CN115529271A (zh) | 业务请求分发方法、装置、设备及介质 | |
CN115695288A (zh) | 一种登录控制方法、装置、电子设备及存储介质 | |
CN115412435A (zh) | 客服质检处理方法、装置、计算机设备和存储介质 | |
CN116841505A (zh) | 指标生成方法、装置、计算机设备及存储介质 | |
CN113110951A (zh) | 一种崩溃信息处理方法和装置 | |
CN110956028A (zh) | 一种信息收集方法、装置及*** | |
CN115658472A (zh) | 一种测试方法和装置 | |
CN112651772A (zh) | 事件触达方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |