CN110443710A - 一种批量签名的区块链系统及方法 - Google Patents
一种批量签名的区块链系统及方法 Download PDFInfo
- Publication number
- CN110443710A CN110443710A CN201910711140.2A CN201910711140A CN110443710A CN 110443710 A CN110443710 A CN 110443710A CN 201910711140 A CN201910711140 A CN 201910711140A CN 110443710 A CN110443710 A CN 110443710A
- Authority
- CN
- China
- Prior art keywords
- transaction
- type
- block chain
- node
- signature
- 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.)
- Granted
Links
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
Abstract
本申请提供了一种批量签名的区块链系统及方法,包括:区块链网络中的至少一个区块链节点、证书颁发节点及与区块链节点连接的接入节点;区块链节点与证书颁发节点在区块链网络中连接,并且区块链节点之间相互连接;接入节点用于判断接收到的交易的类型,并将Invoke类型的交易根据不同用户名打包后发送到区块链节点,将非Invoke类型的交易通过HTTP请求发送到区块链节点;区块链节点用于对Invoke类型的交易进行批量签名,对非Invoke类型的交易进行单笔签名。这种批量签名的区块链系统,通过使用消息队列对交易进行打包,再结合批量签名提高系统的吞吐量,从而解决现有区块链系统在高并发情况下拥堵、速度低的问题。
Description
技术领域
本申请涉及区块链技术领域,具体地讲,涉及一种基于异步消息队列批量签名的区块链系统及方法。
背景技术
随着技术的日益进步,人们对信息处理的速度要求越来越高。信息技术业界提出了一种衡量指标:每秒交易数(TPS,Transactions Per Second),用每秒交易数TPS来评价一个系统的信息处理速度,即系统吞吐量,区块链系统也不例外。由于区块链安全、共识等机制,导致其与中心化应用系统在TPS上相差甚远。高并发,拥堵等问题一直是区块链系统的痛点。如业界有名的公有链比特币,TPS不超过10,以太坊大约在10到20TPS之间。而联盟链由于节点数较少,TPS有一定的提高,但也难以突破万级TPS。因此,区块链系统越来越难以满足当今社会的需求,极大的限制了区块链技术的应用场景。
发明内容
本申请提供了一种批量签名的区块链系统及方法,以至少解决现有技术中区块链系统只能对交易进行单笔签名无法提高处理速度的问题。
根据本申请的一个方面,提供了一种批量签名的区块链系统,包括:区块链网络中的至少一个区块链节点、证书颁发节点及与区块链节点连接的接入节点;区块链节点与证书颁发节点在区块链网络中连接,并且区块链节点之间相互连接;接入节点用于判断从交易发送节点接收到的交易的类型,并将Invoke类型的交易根据不同用户名打包后发送到区块链节点,将非Invoke类型的交易通过HTTP请求发送到区块链节点;区块链节点用于对Invoke类型的交易进行批量签名,对非Invoke类型的交易进行单笔签名,并将签名后的交易进行广播。
在一实施例中,接入节点还用于判断当前消息队列的拥堵状态,并根据拥堵状态进行相应处理。
基于上述批量签名的区块链系统,本申请还提供了一种区块链批量签名的方法,包括:
接入节点基于从交易发送节点接收到的交易判断当前消息队列的拥堵状态,拥堵状态包括:过载和畅通;
如果拥堵状态为畅通,接入节点判断交易的类型,并根据交易的类型选择对应的发送方式将交易发送到区块链节点处理,交易的类型包括:Invoke类型和非Invoke类型。
在一实施例中,接入节点基于从交易发送节点接收到的交易判断当前消息队列的拥堵状态,包括:
接入节点根据当前消息队列内堆积的消息数判断拥堵状态;
若拥堵状态为过载,抛弃当前交易,生成相应报文并反馈给交易发送节点。
在一实施例中,根据交易的类型以对应的方式将交易发送到区块链节点处理,包括:
如果交易的类型为非Invoke类型,接入节点将交易通过HTTP请求发送到区块链节点进行签名处理;
如果交易的类型为Invoke类型,接入节点将交易投递到对应用户名主题下,并将同一主题下的所有交易打包,并将打包后的交易发送到区块链节点进行签名处理。
本申请基于上述批量签名的方法提供了一种对应于该方法的装置,包括:
拥堵判断单元,用于根据从交易发送节点接收到的交易判断当前消息队列的拥堵状态,拥堵状态包括:过载和畅通;
发送方式选择单元,用于如果拥堵状态为畅通,接入节点判断交易的类型,并根据交易的类型选择对应的发送方式将交易发送到区块链节点处理,交易的类型包括:Invoke类型和非Invoke类型。
在一实施例中,拥堵判断单元,包括:
堆积消息判断模块,用于根据当前消息队列内堆积的消息数判断拥堵状态;
过载处理模块,用于若拥堵状态为过载,抛弃当前交易,生成相应报文并反馈给交易发送节点。
在一实施例中,发送方式选择单元,包括:
HTTP发送模块,用于如果交易的类型为非Invoke类型,接入节点将交易通过HTTP请求发送到区块链节点进行签名处理;
NSQ发送模块,用于如果交易的类型为Invoke类型,接入节点将交易投递到对应用户名主题下,并将同一主题下的所有交易打包,并将打包后的交易发送到区块链节点进行签名处理。
本申请基于上述批量签名的区块链系统还提供了一种批量签名的方法,包括:
区块链节点判断接入节点发送的交易的类型并提取交易用户名,交易的类型包括:Invoke类型和非Invoke类型;
区块链节点根据交易用户名从证书颁发节点获取与交易用户名对应的账户证书,并根据交易的类型对交易进行签名处理。
在一实施例中,根据交易的类型对交易进行签名处理,包括:
如果交易的类型为非Invoke类型,在获取与交易用户名对应的账户证书后,对单笔交易进行签名;
如果交易的类型为Invoke类型,在获取与交易用户名对应的账户证书后,对打包后的交易进行批量签名。
本申请基于上述批量签名的方法还提供了一种对应的批量签名的装置,包括:
交易类型判断单元,用于判断接入节点发送的交易的类型并提取交易用户名,交易的类型包括:Invoke类型和非Invoke类型;
签名单元,用于根据交易用户名从证书颁发节点获取与交易用户名对应的账户证书,并根据交易的类型对交易进行签名处理。
在一实施例中,签名单元,包括:
单笔签名,用于如果交易的类型为非Invoke类型,在获取与交易用户名对应的账户证书后,对单笔交易进行签名;
批量签名,用于如果交易的类型为Invoke类型,在获取与交易用户名对应的账户证书后,对打包后的交易进行批量签名。
本申请提供了一种批量签名的区块链系统及方法,通过使用消息队列对交易进行打包,再结合批量签名提高系统吞吐量,从而解决现有区块链系统在高并发情况下发生的拥堵以及处理速度低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请中一种批量签名的区块链系统结构图。
图2为本申请中一种区块链批量签名的方法流程图。
图3为本申请实施例中判断拥堵状态的方法流程图。
图4为本申请实施例中选择发送方式的方法流程图。
图5为本申请中一种区块链批量签名的装置结构框图。
图6为本申请实施例中拥堵判断单元的结构框图。
图7为本申请实施例中发送方式选择单元的结构框图。
图8为本申请中另一种区块链批量签名的方法流程图。
图9为本申请实施例中根据类型对交易进行签名处理的方法流程图。
图10为本申请中另一种区块链批量签名的装置结构框图。
图11为本申请实施例中签名单元的结构框图。
图12为本申请中区块链批量签名方法的一种电子设备的具体实施方式。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,区块链系统对交易只能进行单笔签名,但随着技术的日益进步,人们对信息处理的速度要求越来越高,因此现有的区块链系统的运行速度越来越难以满足当今社会的需求,极大地限制了区块链技术的应用场景。
基于上述情况,本申请提供了一种批量签名的区块链系统,该系统通过使用消息队列对交易进行打包,然后对打包后的交易进行批量签名,从而提高处理速度。如图1所示,该批量签名的区块链系统包括:
区块链网络中的至少一个区块链节点、证书颁发节点及与区块链节点连接的接入节点。区块链节点与证书颁发节点在区块链网络中连接,并且区块链节点之间相互连接。
接入节点用于判断从交易发送节点接收到的交易的类型,并将Invoke类型的交易根据不同用户名打包后发送到区块链节点,将非Invoke类型的交易通过HTTP请求发送到区块链节点。
在一具体实施例中,接入节点可以为部署在一台服务器或多台相互备份的服务器上的应用程序,接收从客户端发送过来的交易,它集成了NSQ异步消息队列。NSQ是目前业界众多消息队列产品中的一种,优点为:轻量级;易部署;GO语言编写与众多区块链产品的相容性好。
区块链节点用于对Invoke类型的交易进行批量签名,对非Invoke类型的交易进行单笔签名,并将签名后的交易进行广播。
在一实施例中,区块链节点有单笔签名功能和批量签名功能,单笔签名功能用于对非Invoke类型的交易进行签名,批量签名功能用于对Invoke类型的交易进行批量签名。
在一实施例中,接入节点还用于判断当前消息队列的拥堵状态,并根据拥堵状态进行相应处理。
在一具体实施例中,接入节点可以对外提供restful接口,用于接收交易请求,接入节点还可以监控当前消息队列内堆积的交易数来控制交易数量,如果堆积的交易数达到了警戒值,则拒绝该交易,如果未超过警戒值则继续进行接下来的处理流程。
本申请通过在现有的区块链系统中增加了接入节点这一环节,在接入节点中完成对交易数据的分类、打包并且监控消息队列状态的功能,将可以进行批量签名的交易数据打包后发送给区块链节点,同时,区块链节点中增加了批量签名功能,使得区块链节点能够快速对多笔交易进行签名,提高了签名的效率,从而提升了区块链系统的运行速度。
基于上述批量签名的区块链系统,本申请提供了一种应用于该系统的批量签名的方法,如图2所示,包括如下步骤:
S201接入节点基于从交易发送节点接收到的交易判断当前消息队列的拥堵状态,拥堵状态包括:过载和畅通。
在一具体实施例中,接入节点的restful接口接收来自交易发送节点的HTTP交易请求。接入节点中的流量控制功能用于控制交易量,通过调用接入节点中的监控功能来确认当前消息队列内的拥堵情况。
S202如果拥堵状态为畅通,接入节点判断交易的类型,并根据交易的类型选择对应的发送方式将交易发送到区块链节点处理,交易的类型包括:Invoke类型和非Invoke类型。
在一具体实施例中,交易节点中的逻辑控制器用于判断应用客户端(交易发送节点)发送的交易的类型。一般情况下,区块链的交易的类型可分为以下五种:
1.Invoke(i):调用智能合约
2.Deploy(d):部署智能合约
3.Query(q):查询智能合约
4.Terminate(t):终止智能合约
5.Others(o):其他类型的交易
这五种交易类型可从两个维度进行分析:1)调用次数;2)是否参与共识。从调用次数的角度看:
i≈q>>d≈t≈o(>>表示远大于)
从是否参与共识角度看,5种类型的智能合约共识情况如下表所示:
Invoke | Deploy | Query | Terminate | Others | |
参与共识 | 是 | 是 | 否 | 是 | 不确定 |
综上所述,invoke类型的交易最适合做批量处理,结合批量签名和批量共识能够最大限度提高区块链网络的处理效率。
图2所示的方法的执行主体可以为服务器、PC、移动终端,该方法实现了对同一类型的交易进行筛选并打包进行批量处理的功能,提升了区块链系统的整体运行速度。
在一实施例中,S201中接入节点基于从交易发送节点接收到的交易判断当前消息队列的拥堵状态,如图3所示,包括:
S301接入节点根据当前消息队列内堆积的消息数判断拥堵状态。
在一具体实施例中,接入节点的监控功能确认当前消息队列内堆积的交易数之后进行判断,如果当前堆积的交易数超过了预设的警戒值,则拥堵状态为过载,否则,为畅通。
S302若拥堵状态为过载,抛弃当前交易,生成相应报文并反馈给交易发送节点。
在一具体实施例中,如果拥堵状态为过载,则说明消息队列中积压的交易数量已经过多,此时应当立即停止处理新的交易,因此,接入节点立即抛弃当前交易,并生成拒绝交易提醒报文返回给客户端提醒该笔交易已被拒绝。
在一具体实施例中,接入节点还具备交易恢复的功能,当接入节点从宕机恢复正常时,自动恢复交易发送节点已投递交易(原内存中的数据)。该交易恢复功能主要通过一组订阅了Confirm-User消费者实现,当打包好交易后,会把交易暂时保存在接入节点的磁盘上,若接入节点恢复正常时,则会读取本地磁盘文件,重新载入交易到消息队列之中。删除本地交易的条件有两个:1)收到Confirm-User的推送消息;2)超过某个时间点(例如1天)。
在一实施例中,S202中根据交易的类型以对应的方式将交易发送到区块链节点处理,如图4所示,包括:
S401如果交易的类型为非Invoke类型,接入节点将交易通过HTTP请求发送到区块链节点进行签名处理。
在一具体实施例中,接入节点的逻辑控制器判断交易的类型,如果是非Invoke类型的交易,接入节点把非Invoke类型的交易通过HTTP请求(以HTTP协议)的方式发送到区块链节点。
S402如果交易的类型为Invoke类型,接入节点将交易投递到对应用户名主题下,并将同一主题下的所有交易打包,并将打包后的交易发送到区块链节点进行签名处理。
在一具体实施例中,接入节点的逻辑控制器判断交易的类型,如果是Invoke类型的交易,则表明这种类型的交易适合打包作批量签名处理,接入节点将所有Invoke类型的交易读取交易的用户名,然后将Invoke类型的交易投递到与Invoke类型的交易的用户名相同的主题下,然后将各个主题下的所有交易分别打包。例如,接入节点接收到了一笔Invoke类型的交易,该交易的用户名为A,那么接入节点将该笔交易投递到名为A的主题下。
基于同一发明构思,本申请实施例还提供了一种批量签名装置,可以用于实现上述实施例中所描述的方法,如下面实施例所述。由于该批量签名装置解决问题的原理与批量签名方法相似,因此批量签名装置的实施可以参见批量签名方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本申请对应于上述批量签名方法的装置如图5所示,包括:
拥堵判断单元501,用于根据从交易发送节点接收到的交易判断当前消息队列的拥堵状态,拥堵状态包括:过载和畅通。
发送方式选择单元502,用于如果拥堵状态为畅通,接入节点判断交易的类型,并根据交易的类型选择对应的发送方式将交易发送到区块链节点处理,交易的类型包括:Invoke类型和非Invoke类型。
在一实施例中,拥堵判断单元501,如图6所示,包括:
堆积消息判断模块601,用于根据当前消息队列内堆积的消息数判断拥堵状态。
过载处理模块602,用于若拥堵状态为过载,抛弃当前交易,生成相应报文并反馈给交易发送节点。
在一实施例中,发送方式选择单元502,如图7所示,包括:
HTTP发送模块701,用于如果交易的类型为非Invoke类型,接入节点将交易通过HTTP请求发送到区块链节点进行签名处理。
在一具体实施例中,HTTP发送模块用于发送非Invoke类型的交易到区块链网络中,使用HTTP协议。
NSQ发送模块702,用于如果交易的类型为Invoke类型,接入节点将交易投递到对应用户名主题下,并将同一主题下的所有交易打包,并将打包后的交易发送到区块链节点进行签名处理。
在一具体实施例中,NSQ发送模块702集成了NSQ软件开发工具包在消息队列的场景下,有三个重要概念:1)消息生产者(Producer);2)消息消费者(Consumer);3)主题(Topic)。消息生产者负责往主题投递交易消息,NSQ发送模块702即为消息生产者的角色,消息消费者负责订阅不同的主题获取交易消息,交易打包功能即为消息消费者的角色,由于投递和推送的过程可异步进行,因此又称消息队列为异步消息队列。当有消息投递到这些主题下时,NSQ就会把消息推送到对应的消费者中,他们主要负责打包不同用户名User下的所有交易,如把JSON报文打包成JSONArray。
本申请还提供了一种区块链批量签名的方法,如图8所示,包括如下步骤:
S801区块链节点判断接入节点发送的交易的类型并提取交易用户名,交易的类型包括:Invoke类型和非Invoke类型。
在一具体实施例中,区块链节点接收到来自接入节点发送来的交易后,判断交易的类型,并且提取获得该交易的用户名,如果为打包后的交易,则提取整包交易的用户名(整包交易的用户名是相同的)。
S802区块链节点根据交易用户名从证书颁发节点获取与交易用户名对应的账户证书,并根据交易的类型对交易进行签名处理。
在一具体实施例中,证书颁发节点生成根证书私钥和根证书公钥,然后证书颁发节点使用根证书的公钥和私钥生成自签名的根证书并保存自签名的根证书和根证书私钥。证书颁发节点接收到区块链节点发送的获取私钥请求后,将根证书发送给区块链节点,区块链节点保存根证书并生成与交易用户名对应的私钥和公钥,区块链节点使用节点唯一标识和与交易用户名对应的公钥向证书颁发节点发起请求,证书颁发节点根据节点唯一标识验证后,对请求中的与交易用户名对应的公钥签发账户证书并返回账户证书给区块链节点。
图8所示的方法的执行主体可以为服务器、PC、移动终端,该方法实现了对打包后的交易进行批量签名的功能。
在一实施例中,S802中根据交易的类型对交易进行签名处理,如图9所示,包括:
S901如果交易的类型为非Invoke类型,在获取与交易用户名对应的账户证书后,对单笔交易进行签名。
S902如果交易的类型为Invoke类型,在获取与交易用户名对应的账户证书后,对打包后的交易进行批量签名。
在一具体实施例中,区块链节点底层中包含一个批量签名模块,该模块用于对打包后的交易进行批量签名。
基于同一发明构思,本申请实施例还提供了一种批量签名装置,可以用于实现上述实施例中所描述的方法,如下面实施例所述。由于该批量签名装置解决问题的原理与批量签名方法相似,因此批量签名装置的实施可以参见批量签名方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
如图10所示,为本申请中对应于上述批量签名方法的批量签名装置,包括:
交易类型判断单元1001,用于判断接入节点发送的交易的类型并提取交易用户名,交易的类型包括:Invoke类型和非Invoke类型;
签名单元1002,用于根据交易用户名从证书颁发节点获取与交易用户名对应的账户证书,并根据交易的类型对交易进行签名处理。
在一实施例中,签名单元1001,如图11所示,包括:
单笔签名模块1101,用于如果交易的类型为非Invoke类型,在获取与交易用户名对应的账户证书后,对单笔交易进行签名;
批量签名模块1102,用于如果交易的类型为Invoke类型,在获取与交易用户名对应的账户证书后,对打包后的交易进行批量签名。
本申请提供了一种基于异步消息队列的批量签名的区块链系统,使用异步消息队列作为区块链网络的接入节点,对交易进行批量打包,使区块链节点能够批量签名、共识,极大地提高了区块链在签名和共识上的速度,解决了区块链网络在高并发情况下的拥堵、TPS不高的问题。
本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种电子设备的具体实施方式,参见图12,所述电子设备具体包括如下内容:
处理器(processor)1201、内存1202、通信接口(Communications Interface)1203、总线1204和非易失性存储器1205;
其中,所述处理器1201、内存1202、通信接口1203通过所述总线1204完成相互间的通信;
所述处理器1201用于调用所述内存1202和非易失性存储器1205中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S201接入节点基于从交易发送节点接收到的交易判断当前消息队列的拥堵状态,拥堵状态包括:过载和畅通。
S202如果拥堵状态为畅通,接入节点判断交易的类型,并根据交易的类型选择对应的发送方式将交易发送到区块链节点处理,交易的类型包括:Invoke类型和非Invoke类型。
S801区块链节点判断接入节点发送的交易的类型并提取交易用户名,交易的类型包括:Invoke类型和非Invoke类型。
S802区块链节点根据交易用户名从证书颁发节点获取与交易用户名对应的账户证书,并根据交易的类型对交易进行签名处理。
本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S201接入节点基于从交易发送节点接收到的交易判断当前消息队列的拥堵状态,拥堵状态包括:过载和畅通。
S202如果拥堵状态为畅通,接入节点判断交易的类型,并根据交易的类型选择对应的发送方式将交易发送到区块链节点处理,交易的类型包括:Invoke类型和非Invoke类型。
S801区块链节点判断接入节点发送的交易的类型并提取交易用户名,交易的类型包括:Invoke类型和非Invoke类型。
S802区块链节点根据交易用户名从证书颁发节点获取与交易用户名对应的账户证书,并根据交易的类型对交易进行签名处理。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。
在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
Claims (14)
1.一种批量签名的区块链系统,其特征在于,包括:区块链网络中的至少一个区块链节点、证书颁发节点及与所述区块链节点连接的接入节点;所述区块链节点与证书颁发节点在所述区块链网络中连接,并且所述区块链节点之间相互连接;
所述接入节点用于判断从交易发送节点接收到的交易的类型,并将Invoke类型的交易根据不同用户名打包后发送到所述区块链节点,将非Invoke类型的交易通过HTTP请求发送到所述区块链节点;
所述区块链节点用于对Invoke类型的交易进行批量签名,对非Invoke类型的交易进行单笔签名,并将签名后的交易进行广播。
2.根据权利要求1所述的区块链系统,其特征在于,所述接入节点还用于判断当前消息队列的拥堵状态,并根据所述拥堵状态进行相应处理。
3.一种区块链批量签名的方法,其特征在于,包括:
接入节点基于从交易发送节点接收到的交易判断当前消息队列的拥堵状态,所述拥堵状态包括:过载和畅通;
如果所述拥堵状态为畅通,所述接入节点判断交易的类型,并根据交易的类型选择对应的发送方式将交易发送到区块链节点处理,交易的类型包括:Invoke类型和非Invoke类型。
4.根据权利要求3所述的批量签名的方法,其特征在于,所述接入节点基于从交易发送节点接收到的交易判断当前消息队列的拥堵状态,包括:
所述接入节点根据当前消息队列内堆积的消息数判断拥堵状态;
若所述拥堵状态为过载,抛弃当前交易,生成相应报文并反馈给交易发送节点。
5.根据权利要求3所述的批量签名的方法,其特征在于,所述根据交易的类型以对应的方式将交易发送到区块链节点处理,包括:
如果交易的类型为非Invoke类型,所述接入节点将交易通过HTTP请求发送到所述区块链节点进行签名处理;
如果交易的类型为Invoke类型,所述接入节点将交易投递到对应用户名主题下,并将同一主题下的所有交易打包,并将打包后的交易发送到所述区块链节点进行签名处理。
6.一种区块链批量签名的装置,其特征在于,包括:
拥堵判断单元,用于根据从交易发送节点接收到的交易判断当前消息队列的拥堵状态,所述拥堵状态包括:过载和畅通;
发送方式选择单元,用于如果所述拥堵状态为畅通,判断交易的类型,并根据交易的类型选择对应的发送方式将交易发送到区块链节点处理,交易的类型包括:Invoke类型和非Invoke类型。
7.根据权利要求6所述的批量签名的装置,其特征在于,所述拥堵判断单元,包括:
堆积消息判断模块,用于根据当前消息队列内堆积的消息数判断拥堵状态;
过载处理模块,用于若所述拥堵状态为过载,抛弃当前交易,生成相应报文并反馈给交易发送节点。
8.根据权利要求6所述的批量签名的装置,其特征在于,所述发送方式选择单元,包括:
HTTP发送模块,用于如果交易的类型为非Invoke类型,接入节点将交易通过HTTP请求发送到所述区块链节点进行签名处理;
NSQ发送模块,用于如果交易的类型为Invoke类型,所述接入节点将交易投递到对应用户名主题下,并将同一主题下的所有交易打包,并将打包后的交易发送到所述区块链节点进行签名处理。
9.一种区块链批量签名的方法,其特征在于,包括:
区块链节点判断接入节点发送的交易的类型并提取交易用户名,交易的类型包括:Invoke类型和非Invoke类型;
所述区块链节点根据所述交易用户名从证书颁发节点获取与交易用户名对应的账户证书,并根据交易的类型对交易进行签名处理。
10.根据权利要求9所述的批量签名的方法,其特征在于,所述根据交易的类型对交易进行签名处理,包括:
如果交易的类型为非Invoke类型,在获取与交易用户名对应的账户证书后,对单笔交易进行签名;
如果交易的类型为Invoke类型,在获取与交易用户名对应的账户证书后,对打包后的交易进行批量签名。
11.一种区块链批量签名的装置,其特征在于,包括:
交易类型判断单元,用于判断接入节点发送的交易的类型并提取交易用户名,交易的类型包括:Invoke类型和非Invoke类型;
签名单元,用于根据所述交易用户名从证书颁发节点获取与交易用户名对应的账户证书,并根据交易的类型对交易进行签名处理。
12.根据权利要求11所述的批量签名的装置,其特征在于,所述签名单元,包括:
单笔签名模块,用于如果交易的类型为非Invoke类型,在获取与交易用户名对应的账户证书后,对单笔交易进行签名;
批量签名模块,用于如果交易的类型为Invoke类型,在获取与交易用户名对应的账户证书后,对打包后的交易进行批量签名。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求3至5和9至10中任一项所述区块链批量签名的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求3至5和9至10中任一项所述区块链批量签名的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910711140.2A CN110443710B (zh) | 2019-08-02 | 2019-08-02 | 一种批量签名的区块链系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910711140.2A CN110443710B (zh) | 2019-08-02 | 2019-08-02 | 一种批量签名的区块链系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110443710A true CN110443710A (zh) | 2019-11-12 |
CN110443710B CN110443710B (zh) | 2022-06-07 |
Family
ID=68432944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910711140.2A Active CN110443710B (zh) | 2019-08-02 | 2019-08-02 | 一种批量签名的区块链系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110443710B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150395A (zh) * | 2022-06-08 | 2022-10-04 | 南京大学 | 一种基于批量调度的Hyperledger Fabric防护加速器 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150227890A1 (en) * | 2014-02-07 | 2015-08-13 | Kristin Kaye Bednarek | Communications system and smart device apps supporting segmented order distributed distribution system |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及系统 |
US20170155515A1 (en) * | 2015-11-26 | 2017-06-01 | International Business Machines Corporation | System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger |
CN107919954A (zh) * | 2017-10-20 | 2018-04-17 | 浙江大学 | 一种基于sgx的区块链用户密钥保护方法和装置 |
CN108243241A (zh) * | 2017-11-10 | 2018-07-03 | 杭州复杂美科技有限公司 | 一种区块链交易的存储方式及排队方式 |
CN108305056A (zh) * | 2018-03-27 | 2018-07-20 | 搜游网络科技(北京)有限公司 | 基于区块链的数据处理方法、装置及区块链节点网络 |
US20180240114A1 (en) * | 2017-02-22 | 2018-08-23 | Alibaba Group Holding Limited | Transaction verification in a consensus network |
CN109035016A (zh) * | 2018-06-28 | 2018-12-18 | 杭州复杂美科技有限公司 | 一种多链并发交易方法 |
CN109191287A (zh) * | 2018-06-27 | 2019-01-11 | 浙江超脑时空科技有限公司 | 一种区块链智能合约的分片方法、装置及电子设备 |
CN109241778A (zh) * | 2018-08-13 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 一种基于区块链的公共交通数据处理方法和装置 |
CN109584072A (zh) * | 2018-11-28 | 2019-04-05 | 杭州复杂美科技有限公司 | 一种平行链共识的交易发送方法、设备和存储介质 |
CN109859031A (zh) * | 2019-01-21 | 2019-06-07 | 北京沃东天骏信息技术有限公司 | 一种区块链网络的信息处理方法、节点及存储介质 |
CN109995666A (zh) * | 2019-04-12 | 2019-07-09 | 深圳市元征科技股份有限公司 | 一种消息传输方法及相关装置 |
-
2019
- 2019-08-02 CN CN201910711140.2A patent/CN110443710B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150227890A1 (en) * | 2014-02-07 | 2015-08-13 | Kristin Kaye Bednarek | Communications system and smart device apps supporting segmented order distributed distribution system |
US20170155515A1 (en) * | 2015-11-26 | 2017-06-01 | International Business Machines Corporation | System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及系统 |
US20180240114A1 (en) * | 2017-02-22 | 2018-08-23 | Alibaba Group Holding Limited | Transaction verification in a consensus network |
CN107919954A (zh) * | 2017-10-20 | 2018-04-17 | 浙江大学 | 一种基于sgx的区块链用户密钥保护方法和装置 |
CN108243241A (zh) * | 2017-11-10 | 2018-07-03 | 杭州复杂美科技有限公司 | 一种区块链交易的存储方式及排队方式 |
CN108305056A (zh) * | 2018-03-27 | 2018-07-20 | 搜游网络科技(北京)有限公司 | 基于区块链的数据处理方法、装置及区块链节点网络 |
CN109191287A (zh) * | 2018-06-27 | 2019-01-11 | 浙江超脑时空科技有限公司 | 一种区块链智能合约的分片方法、装置及电子设备 |
CN109035016A (zh) * | 2018-06-28 | 2018-12-18 | 杭州复杂美科技有限公司 | 一种多链并发交易方法 |
CN109241778A (zh) * | 2018-08-13 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 一种基于区块链的公共交通数据处理方法和装置 |
CN109584072A (zh) * | 2018-11-28 | 2019-04-05 | 杭州复杂美科技有限公司 | 一种平行链共识的交易发送方法、设备和存储介质 |
CN109859031A (zh) * | 2019-01-21 | 2019-06-07 | 北京沃东天骏信息技术有限公司 | 一种区块链网络的信息处理方法、节点及存储介质 |
CN109995666A (zh) * | 2019-04-12 | 2019-07-09 | 深圳市元征科技股份有限公司 | 一种消息传输方法及相关装置 |
Non-Patent Citations (3)
Title |
---|
叶良等: "《大数据支撑下的区块链技术研究》", 31 May 2019, 西北工业大学出版社, pages: 142 - 150 * |
陈宇翔: "区块链的税收智能合约设计", 《通信技术》 * |
陈宇翔: "区块链的税收智能合约设计", 《通信技术》, vol. 51, no. 6, 30 June 2018 (2018-06-30), pages 1384 - 1390 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150395A (zh) * | 2022-06-08 | 2022-10-04 | 南京大学 | 一种基于批量调度的Hyperledger Fabric防护加速器 |
CN115150395B (zh) * | 2022-06-08 | 2023-08-22 | 南京大学 | 一种基于批量调度的Hyperledger Fabric防护加速器 |
Also Published As
Publication number | Publication date |
---|---|
CN110443710B (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109618002B (zh) | 一种微服务网关优化方法、装置及存储介质 | |
CN108268372B (zh) | Mock测试处理方法、装置、存储介质和计算机设备 | |
CN108228363A (zh) | 一种消息发送方法及装置 | |
CN106850402A (zh) | 消息的传输方法和装置 | |
CN106874361B (zh) | 应用于海关申报的数据处理方法和装置 | |
CN110519711A (zh) | 一种消息推送方法、装置、存储介质和服务器 | |
CN104809816B (zh) | 取件处理方法、取件执行方法、取件方法和装置及系统 | |
CN105426452B (zh) | 一种业务处理以及数据控制方法和装置 | |
CN106649637A (zh) | 一种处理红包的方法及系统 | |
CN109491895A (zh) | 服务器压力测试方法及装置 | |
CN110198332A (zh) | 内容分发网络节点的调度方法、装置及存储介质 | |
CN108833443A (zh) | 一种消息传输方法及系统、计算机设备 | |
CN111953551A (zh) | 日志数据的传输方法、装置、电子设备及存储介质 | |
CN110443710A (zh) | 一种批量签名的区块链系统及方法 | |
CN113364852B (zh) | 文件的传输方法、装置和服务器 | |
CN110365598A (zh) | 心跳消息发送的方法、装置、服务器、终端及存储介质 | |
CN105335362B (zh) | 实时数据的处理方法及系统、即时处理系统 | |
CN105099738B (zh) | 数据获取方法、装置及系统 | |
CN106941532B (zh) | 一种应用于分布式系统的数据传输方法及装置 | |
CN110266814B (zh) | 传输方法及传输装置 | |
JP4110205B1 (ja) | データ転送処理装置およびデータ転送システム | |
CN105205905B (zh) | 一种营业厅叫号的方法、装置及系统 | |
CN110247808A (zh) | 信息发送方法、装置、设备及可读存储介质 | |
CN108446123A (zh) | 一种应用程序部署方法及装置 | |
CN111986387A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |