CN114430427B - 一种同一身份的消息管理的方法、存储介质及设备 - Google Patents
一种同一身份的消息管理的方法、存储介质及设备 Download PDFInfo
- Publication number
- CN114430427B CN114430427B CN202210024938.1A CN202210024938A CN114430427B CN 114430427 B CN114430427 B CN 114430427B CN 202210024938 A CN202210024938 A CN 202210024938A CN 114430427 B CN114430427 B CN 114430427B
- Authority
- CN
- China
- Prior art keywords
- pushed
- message
- messages
- sequence
- preset
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000003860 storage Methods 0.000 title description 7
- 238000004088 simulation Methods 0.000 claims description 39
- 230000015654 memory Effects 0.000 claims description 15
- 238000005096 rolling process Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 230000001020 rhythmical effect Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种用于同一身份的消息管理的技术方案,其方法包括:当侦听到区块链网络中生成状态稳定的新消息区块时,获取该新消息区块中该身份上一轮次推送并被成功打包的消息中的最大标号数值;确定预设消息表中已标记消息的标号数值,并基于该标号数值、上述最大标号数值及预设推送消息数量,确定待推送消息的数量;从预设消息表中选择该数量的未推送消息作为当前轮次的第一待推送消息序列;预估该序列中的待推送消息的消耗费用并记录;对该序列中的待推送消息进行标号及签名推送至区块链网络,以完成当前轮次消息推送。通过该方法,可以控制每轮次推送到区块链网络的消息数量,可以避免因超过本地处理能力上限而造成消息失效。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种同一身份的消息管理的技术。
背景技术
在区块链系统中,消息的生命流程包括:生成消息;将消息分配到消息序列;预估消息消耗的费用并把费用记录到消息中;对消息进行标号及签名后传输到区块链网络上;等待被打包进区块链网络中的新生区块(若未成功被打包,则重新分配到新的消息序列)。
现有针对生命流程的消息管理通常是基于区块链自身实现的,使用者无法控制新消息的推送。一方面,如果短时间内有较多的消息被推送,可能会超过区块链网络处理能力上限,造成没有被及时处理的消息失效;另一方面,消息被打包进新区块的过程本身具有一定的被选择性,消息推送多了,被新区块全部选中的可能就小,进而造成更多消息失效。
发明内容
本申请的目的是提供一种同一身份的消息管理的技术方案,用以至少部分解决现有技术中使用者无法控制区块链的消息推送的技术问题。
根据本申请的一个方面,提供了一种同一身份的消息管理的方法,其特征在于,所述方法包括:
当侦听到区块链网络中生成状态稳定的新消息区块时,获取所述新消息区块中所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值;
确定预设消息表中已标记消息的标号数值,并基于所述已标记消息的标号数值、所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值及预设推送消息数量,确定待推送消息的数量;
从所述预设消息表中的未推送消息中选择所述数量的未推送消息作为当前轮次的第一待推送消息序列;
预估所述第一待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录;
对所述第一待推送消息序列中的待推送消息进行标号及签名,并将签名后的第一待推送消息序列推送至所述区块链网络,以完成当前轮次消息推送。
可选地,其中,所述基于所述已标记消息的标号数值、所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值及预设推送消息数量,确定待推送消息的数量包括:
基于所述已标记消息的标号数值及所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值,确定待打包消息的数量;
基于预设推送消息数量及所述待打包消息的数量,确定待推送消息的数量。
可选地,其中,所述确定预设消息表中已标记消息的标号数值包括:
获取所述预设消息表中已推送消息的最大标号数值;
将所述预设消息表中已推送消息的最大标号数值和所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值两者中较大的标号数值确定为预设消息表中已标记消息的标号数值。
可选地,其中,在所述预估所述第一待推送消息序列中的待推送消息的消耗费用之前,所述方法还包括:
对所述第一待推送消息序列中的待推送消息进行排序,得到第二待推送消息序列;
其中,所述预估所述第一待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录包括:
预估所述第二待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录;
其中,所述对所述第一待推送消息序列中的待推送消息进行标号及签名,并将签名后的第一待推送消息序列推送至所述区块链网络包括:
对所述第二待推送消息序列中的待推送消息进行标号及签名,并将签名后的第二待推送消息序列推送至所述区块链网络。
可选地,其中,若所述第一待推送消息序列中的消息间存在依赖关系,所述对所述第一待推送消息序列中的待推送消息进行排序包括:
根据依赖关系对所述第一待推送消息序列中的待推送消息进行排序。
可选地,其中,所述预估所述第二待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录包括:
对所述第二待推送消息序列中的待推送消息依次进行模拟执行;其中,
若当前待推送消息的模拟执行成功,则在当前待推送消息中记录消耗费用及标记当前待推送消息的模拟执行状态,并基于所述当前待推送消息的模拟执行状态对下一待推送消息进行模拟执行;
若当前待推送消息的模拟执行失败,则从所述第二待推送消息序列中删除当前待推送消息,回滚到前一待推送消息的模拟执行状态,并基于所述前一待推送消息的模拟执行状态对下一待推送消息进行模拟执行;
遍历所述第二待推送消息序列中的每个待推送消息,将依次模拟执行成功的待推送消息确定为第三待推送消息序列;
其中,所述对所述第一待推送消息序列中的待推送消息进行标号及签名,并将签名后的第一待推送消息序列推送至所述区块链网络包括:
对所述第三待推送消息序列中的待推送消息进行标号及签名,并将签名后的第三待推送消息序列推送至所述区块链网络。
根据本申请的另一方面,提供了一种用于同一身份的消息管理的装置,其特征在于,所述装置包括:
第一模块,用于当侦听到区块链网络中生成状态稳定的新消息区块时,获取所述新消息区块中所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值;
第二模块,用于确定预设消息表中已标记消息的标号数值,并基于所述已标记消息的标号数值、所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值及预设推送消息数量,确定待推送消息的数量;
第三模块,用于从所述预设消息表中的未推送消息中选择所述数量的未推送消息作为当前轮次的第一待推送消息序列;
第四模块,用于预估所述第一待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录;
第五模块,用于对所述第一待推送消息序列中的待推送消息进行标号及签名,并将签名后的第一待推送消息序列推送至所述区块链网络,以完成当前轮次消息推送。
与现有技术相比,本申请提供了一种用于同一身份的消息管理的技术方案,其方法包括:
当侦听到区块链网络中生成状态稳定的新消息区块时,获取所述新消息区块中所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值;确定预设消息表中已标记消息的标号数值,并基于所述已标记消息的标号数值、所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值及预设推送消息数量,确定待推送消息的数量;从所述预设消息表中的未推送消息中选择所述数量的未推送消息作为当前轮次的第一待推送消息序列;预估所述第一待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录;对所述第一待推送消息序列中的待推送消息进行标号及签名,并将签名后的第一待推送消息序列推送至所述区块链网络,以完成当前轮次消息推送。进一步地,在进行标号及签名之前,还根据消息间的依赖关系对所述第一待推送消息序列中的待推送消息进行排序。进一步地,还对排序后的消息序列中的待推送消息依次进行模拟执行,以实现费用预估后再进行标号及签名。
本申请提供的技术方案可带来的技术效果:
同一身份的使用者可以对推送的消息数量进行控制,保证每轮次推送合理数量的消息到区块链网络,可以避免超过区块链网络处理能力上限,避免造成更多消息失效。进一步地,对待推送消息的排序可以提升消耗费用预估的准确率,从而降低消息失效的概率。进一步地,还通过对排序后的待推送消息依次进行模拟执行实现批量预估消息费用,可进一步提升消耗费用预估的准确率,从而降低消息失效的概率,以及在确保消息被打包成功的时候,也能减低消息费用。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种同一身份的消息管理的方法流程图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,装置各模块、可信方及方法的执行方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为更进一步阐述本申请所采取的技术手段及取得的效果,下面结合附图及优选实施例,对本申请的技术方案,进行清楚和完整的描述。
本申请实施例中,消息是指在区块链系统中同一身份的使用者产生的,该使用者在消息产生后对消息进行管理,以便消息在区块链网络中被打包进新生产的区块中。
本申请的方法实施例通过设备100执行,所述设备100为安装有相应的区块链相关软件及适用区块链网络的计算机设备和/或云,或者为计算机设备和/或云中的虚拟机,所述计算机设备包括但不限于个人计算机、笔记本电脑、工业计算机、网络主机、单个网络服务器、多个网络服务器集;所述云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。
在此,所述计算机设备和/或云仅为举例,其他现有的或者今后可能出现的设备和/或资源共享平台如适用于本申请也应包含在本申请的保护范围内,在此,以引用的方式包含于此。
图1示出根据本申请一个方面的一种同一身份的消息管理的方法流程图,其中,一个实施例的方法包括:
S101当侦听到区块链网络中生成状态稳定的新消息区块时,获取所述新消息区块中所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值;
S102确定预设消息表中已标记消息的标号数值,并基于所述已标记消息的标号数值、所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值及预设推送消息数量,确定待推送消息的数量;
S103从所述预设消息表中的未推送消息中选择所述数量的未推送消息作为当前轮次的第一待推送消息序列;
S104预估所述第一待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录;
S105对所述第一待推送消息序列中的待推送消息进行标号及签名,并将签名后的第一待推送消息序列推送至所述区块链网络,以完成当前轮次消息推送。
区块链网络是个有节奏的网络系统,不同区块链网络对新区块的处理节奏不同,一个新区块的产生及稳定都需要一定的周期,而消息的最佳推送时间是在上一个区块产生并稳定之后立即推送出去,这样一方面基于最新区块的状态估算消息费用,更加准确,另一方面可以尽量早的把消息推送到区块链网络中,保证消息的尽快散布,让区块链网络中的更多人看到发送的消息。
在该方法实施例中,在步骤S101中,设备100持续侦听区块链网络中的网络事件,当侦听到区块链网络中产生新消息区块并且在预设时间内没有侦听到其它新消息区块产生,确定区块链网络中生成了状态稳定的新消息区块,其中,该新消息区块中包含上一轮次若干身份使用者发送的消息。设备100获取该新消息区块中同一身份使用者上一轮次推送并被成功打包的若干个消息中标号最大的消息的标号数值,开始从预设消息表中选择待推送消息的准备工作,以选择合适的待推送消息推送到区块链网络中,以便被打包进下一个产生的新消息区块中。
继续在该方法实施例中,在步骤S102中,设备100确定预设消息表中该同一身份使用者产生的已标记消息的标号数值,并基于该已标记消息的标号数值、上述获得的同一身份上一轮次推送并被成功打包的若干个消息中标号最大的消息的标号数值,以及预设推送消息的数量,确定待推送消息的数量。
继续在该方法实施例中,在步骤S103中,设备100从所述预设消息表中的未推送消息中选择对应步骤S102中确定的数量的未推送消息作为当前轮次的第一待推送消息序列。
继续在该方法实施例中,在步骤S104中,设备100预估该第一待推送消息序列中的每个待推送消息的消耗费用并在对应的待推送消息中记录。
继续在该方法实施例中,在步骤S105中,设备100对该第一待推送消息序列中的每个待推送消息进行标号及签名,并将签名后的第一待推送消息序列推送至所述区块链网络,以完成当前轮次消息推送。
其中,签名后的待推送消息序列推送至区块链网络中,可以是整个消息序列打包推送,也可以是逐条消息顺序推送,在此,不做限定,任何推送方式只要适用本申请实施例都应包含在本申请的保护范围内。
在区块链网络中,某一身份发送的消息如果是由该同一身份的消息系统控制的,则其消息表中的消息推送分配顺序是不会产生问题的,但是如果该身份不仅在本地发送消息,还向其它身份的消息表中发送消息,同样地,本地消息表中不仅有本地身份发送的消息,也有其它身份发送的消息,则可能会导致本地消息表中的消息推送分配顺序混乱,因此,某一身份每轮次从消息表中选择待推送消息前,需要校验消息表中的消息推送分配顺序。一个可选实施例中,步骤S102中,所述预设消息表中已标记消息的标号数值的确定可以包括:
获取所述预设消息表中已推送消息的最大标号数值;
将所述预设消息表中已推送消息的最大标号数值和所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值两者中较大的标号数值确定为预设消息表中已标记消息的标号数值。
其中,先获取该预设消息表中已推送消息中标号最大的已推送消息的标号数值,然后将该预设消息表中已推送消息中标号最大的已推送消息的标号数值和上述同一身份上一轮次推送并被成功打包的消息中的最大标号数值进行比较,把两者中较大的标号数值确定为该预设消息表中已标记消息的标号数值。比如,一个示例中,若预设消息表中记录的上一轮次后已推送消息中最大标号的消息分配的标号数值是100,而同一身份上一轮次推送并被成功打包的消息中的最大标号的消息的标号数值97,说明上一轮次被推送的消息中有3个消息未被成功打包,那么已标记消息的标号数值是100;若预设消息表中记录的上一轮次后已推送消息中最大标号的消息分配的标号数值是100,而同一身份上一轮次推送并被成功打包的消息中的最大标号的消息的标号数值102,说明上一轮次被推送的消息中有2个不受该身份控制的消息被成功打包,需要修正预设消息表中已标记消息的标号,那么已标记消息的标号数值是102。
由于区块链网络是一种去中心化的系统,消息推送到区块链网络上是一个无法撤销的操作,一旦推送到区块链网络上的消息失效,可能造成大量消息堆积。为了比较精准地控制每个轮次打包的消息数量,进而确保消息失效时不会造成大量消息堆积的问题,一个可选实施例中,步骤S102中,所述确定待推送消息的数量可以包括:
基于所述已标记消息的标号数值及所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值,确定待打包消息的数量;
基于预设推送消息的数量及所述待打包消息的数量,确定待推送消息的数量。
其中,当前轮次选择要推送的消息数量需要综合考虑预设推送消息的数量、当前区块链中包含的同一身份上一轮次推送并被成功打包的消息数量,以及本地预设消息表中已标记消息的标号数值来确定一个消息数量,然后考虑到可能存在消息失效,为了不浪费资源,防止选择的消息中有错误或失效消息,从而影响最终待推送到区块链网络中的消息的数量,可从接收到的预设消息表中选取这个消息数量的超额个消息作为待推送消息。
假设预设推送消息的数量为a,待打包消息的数量为b,本地预设消息表中已标记消息的标号数值为c,同一身份上一轮次推送并被成功打包的消息数量d,超额系数为N,待推送消息的数量为n,则
n=(a-b)*N
其中,待打包消息的数量b与具体采用的区块链网络有关系。
以区块链网络ETH为例,
b=c-d
比如,上述一个示例中,若预设消息表中记录的上一轮次后已推送消息中最大标号的消息分配的标号数值是100,而同一身份上一轮次推送并被成功打包的消息中的最大标号的消息的标号数值97,那么已标记消息的标号数值是100,则待打包消息的数量为0(即100-100);若预设消息表中记录的上一轮次后已推送消息中最大标号的消息分配的标号数值是100,而同一身份上一轮次推送并被成功打包的消息中的最大标号的消息的标号数值102,那么已标记消息的标号数值是102,则待打包消息的数量为2(即102-100)。
以区块链网络Filecoin为例,
b=c-(d+e)
其中,e为头区块中同一身份上一轮次成功打包的消息数量。
为了使得步骤S104中消息消耗费用的预估更准确些,以减少后续消息推送、打包过程中消息失效的可能性,一个可选实施例中,在步骤S104之前,所述方法还包括:
对所述第一待推送消息序列中的待推送消息进行排序,得到第二待推送消息序列;
其中,所述步骤S104包括:
预估所述第二待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录;
其中,所述步骤S105包括:
对所述第二待推送消息序列中的待推送消息进行标号及签名,并将签名后的第二待推送消息序列推送至所述区块链网络,以完成当前轮次消息推送。
其中,在步骤S104之前,设备100先对该第一待推送消息序列中的待推送消息进行排序,得到第二待推送消息序列;再在步骤S104中,预估所述第二待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录;然后在步骤S105中,对所述第二待推送消息序列中的待推送消息进行标号及签名,并将签名后的第二待推送消息序列推送至所述区块链网络,以完成当前轮次消息推送。
当该第一待推送消息序列中的待推送消息之间存在依赖关系时,为了进一步提升后续消息消耗费用预估的准确性,降低消息失效的可能性,一个可选实施例中,所述对所述第一待推送消息序列中的待推送消息进行排序可以列包括:
根据所述第一待推送消息序列中的各待推送消息之间的依赖关系对所述第一待推送消息序列中的待推送消息进行排序。
其中,设备100可以根据生成消息之间的操作相关性来确定该第一待推送消息序列中的各待推送消息之间的依赖关系,然后根据消息间的依赖关系来对该第一推送消息序列中的待推送消息进行排序。比如,若第一推送序列中的三个待推送消息1~3分别对应:a给b转账、a提取了资金、b提取了资金,则三者之间的先后顺序应该是2、1、3;又比如,若Filecoin区块链网络中的一个推送消息序列中包括封装算力的预提交(precommit)对应的消息和证明(provement)对应的待推送消息,这两个待推送消息之间就有一定的相关性,应该是先预提交,再证明。按照生成消息之间的操作顺序对相关消息进行排序,在后续步骤中预估各消息的消耗费用才会更准确。
现有区块链网络中,消息在被推送到网络前是针对单个消息执行消耗费用预估的。由于消息实际上是顺序被执行的,后一条消息通常要基于上一条消息的计算结果进行运算,因而,实际上现有消息消耗费用的预估会与实际消耗费用出现偏差,而且越往后的消息的预估消耗费用与实际消耗费用的偏差越大,使得越往后的消息的消息失效可能性也越大。为了再进一步提升消息的消耗费用预估的准确性,降低消息失效的可能性,一个可选实施例中,所述预估所述第二待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录可以包括:
对所述第二待推送消息序列中的待推送消息依次进行模拟执行;其中,
若当前待推送消息的模拟执行成功,则在当前待推送消息中记录消耗费用及标记当前待推送消息的模拟执行状态,并基于所述当前待推送消息的模拟执行状态对下一待推送消息进行模拟执行;
若当前待推送消息的模拟执行失败,则从所述第二待推送消息序列中删除当前待推送消息,回滚到前一待推送消息的模拟执行状态,并基于所述前一待推送消息的模拟执行状态对下一待推送消息进行模拟执行;
遍历所述第二待推送消息序列中的每个待推送消息,将依次模拟执行成功的待推送消息确定为第三待推送消息序列;
其中,所述步骤S105包括:
对所述第三待推送消息序列中的待推送消息进行标号及签名,并将签名后的第三待推送消息序列推送至所述区块链网络,以完成当前轮次消息推送。
其中,在一个稳定的新区块状态下,开始对第二待推送消息序列中的第一条待推送消息进行模拟执行,以预估第一条待推送消息的消耗费用,若第一条带推送消息的模拟执行失败,则回滚到上述稳定的新区块状态下,并从该第二代推送消息序列中删除该第一条待推送消息(注意,并不是从预设消息表中删除,该消息在后续推送轮次中还有可能被选择作为待推送消息,比如,一条转账消息,当前轮次因余额不足,执行不成功,当账户有进账,余额充足后,该消息会执行成功),继续从下一条待推送消息继续进行模拟执行。每个待推送消息进行模拟执行后,都会产生一个状态,若成功,则记录状态,继续进行下一条待推送消息的模拟执行;若不成功,则不记录状态,而是回滚到上一条模拟执行成功的状态,继续进行下一条待推送消息的模拟执行,并从该第二代推送消息序列中删除模拟执行不成功的该待推送消息。
根据本申请的又一方面,还提供了一种计算机可读介质,所述计算机可读介质存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现前述方法。
需要注意的是,本申请中各方法实施例可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机、缓存计算机和/或任何其他类似硬件设备来实现。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。
根据本申请的另一方面,还提供了一种同一身份的消息管理的设备,该设备包括:存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该设备运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件和/或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (7)
1.一种同一身份的消息管理的方法,其特征在于,所述方法包括:
当侦听到区块链网络中生成状态稳定的新消息区块时,获取所述新消息区块中所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值;
获取预设消息表中已推送消息的最大标号数值,将所述预设消息表中已推送消息的最大标号数值和所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值两者中较大的标号数值确定为预设消息表中已标记消息的标号数值,并基于所述已标记消息的标号数值、所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值及预设推送消息数量,确定待推送消息的数量;
从所述预设消息表中的未推送消息中选择所述数量的未推送消息作为当前轮次的第一待推送消息序列;
预估所述第一待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录;
对所述第一待推送消息序列中的待推送消息进行标号及签名,并将签名后的第一待推送消息序列推送至所述区块链网络,以完成当前轮次消息推送。
2.根据权利要求1所述的方法,其特征在于,所述基于所述已标记消息的标号数值、所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值及预设推送消息数量,确定待推送消息的数量包括:
基于所述已标记消息的标号数值及所述同一身份上一轮次推送并被成功打包的消息中的最大标号数值,确定待打包消息的数量;
基于预设推送消息数量及所述待打包消息的数量,确定待推送消息的数量。
3.根据权利要求1所述的方法,其特征在于,在所述预估所述第一待推送消息序列中的待推送消息的消耗费用之前,所述方法还包括:
对所述第一待推送消息序列中的待推送消息进行排序,得到第二待推送消息序列;
其中,所述预估所述第一待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录包括:
预估所述第二待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录;
其中,所述对所述第一待推送消息序列中的待推送消息进行标号及签名,并将签名后的第一待推送消息序列推送至所述区块链网络包括:
对所述第二待推送消息序列中的待推送消息进行标号及签名,并将签名后的第二待推送消息序列推送至所述区块链网络。
4.根据权利要求3所述的方法,其特征在于,若所述第一待推送消息序列中的消息间存在依赖关系,所述对所述第一待推送消息序列中的待推送消息进行排序包括:
根据依赖关系对所述第一待推送消息序列中的待推送消息进行排序。
5.根据权利要求3所述的方法,其特征在于,所述预估所述第二待推送消息序列中的待推送消息的消耗费用并在对应的待推送消息中记录包括:
对所述第二待推送消息序列中的待推送消息依次进行模拟执行;其中,
若当前待推送消息的模拟执行成功,则在当前待推送消息中记录消耗费用及标记当前待推送消息的模拟执行状态,并基于所述当前待推送消息的模拟执行状态对下一待推送消息进行模拟执行;
若当前待推送消息的模拟执行失败,则从所述第二待推送消息序列中删除当前待推送消息,回滚到前一待推送消息的模拟执行状态,并基于所述前一待推送消息的模拟执行状态对下一待推送消息进行模拟执行;
遍历所述第二待推送消息序列中的每个待推送消息,将依次模拟执行成功的待推送消息确定为第三待推送消息序列;
其中,所述对所述第一待推送消息序列中的待推送消息进行标号及签名,并将签名后的第一待推送消息序列推送至所述区块链网络包括:
对所述第三待推送消息序列中的待推送消息进行标号及签名,并将签名后的第三待推送消息序列推送至所述区块链网络。
6.一种计算机可读介质,其特征在于,
其上存储有计算机可读指令,所述计算机可读指令被处理器执行以实现如权利要求1至5中任一项所述的方法。
7.一种同一身份的消息管理的设备,其特征在于,所述设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如权利要求1至5中任一项所述方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210024938.1A CN114430427B (zh) | 2022-01-11 | 2022-01-11 | 一种同一身份的消息管理的方法、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210024938.1A CN114430427B (zh) | 2022-01-11 | 2022-01-11 | 一种同一身份的消息管理的方法、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114430427A CN114430427A (zh) | 2022-05-03 |
CN114430427B true CN114430427B (zh) | 2023-12-12 |
Family
ID=81311904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210024938.1A Active CN114430427B (zh) | 2022-01-11 | 2022-01-11 | 一种同一身份的消息管理的方法、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114430427B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110113393A (zh) * | 2019-04-18 | 2019-08-09 | 北京奇艺世纪科技有限公司 | 一种消息推送方法、装置、电子设备及介质 |
WO2020151164A1 (zh) * | 2019-01-23 | 2020-07-30 | 平安科技(深圳)有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463704B (zh) * | 2017-08-16 | 2021-05-07 | 北京百度网讯科技有限公司 | 基于人工智能的搜索方法和装置 |
US11233648B2 (en) * | 2018-09-04 | 2022-01-25 | Microsoft Technology Licensing, Llc | Identity system for use with blockchain platform |
CN110602096B (zh) * | 2019-09-12 | 2021-07-13 | 腾讯科技(深圳)有限公司 | 区块链网络中的数据处理方法、装置、存储介质和设备 |
-
2022
- 2022-01-11 CN CN202210024938.1A patent/CN114430427B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020151164A1 (zh) * | 2019-01-23 | 2020-07-30 | 平安科技(深圳)有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
CN110113393A (zh) * | 2019-04-18 | 2019-08-09 | 北京奇艺世纪科技有限公司 | 一种消息推送方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114430427A (zh) | 2022-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9110724B2 (en) | Selecting computing nodes in cloud service using replication topologies | |
US7743013B2 (en) | Data partitioning via bucketing bloom filters | |
US20170054808A1 (en) | Rapid client-side component processing based on component relationships | |
CN106446061A (zh) | 用于存储虚拟机镜像的方法及设备 | |
US8276022B2 (en) | Efficient failure detection for long running data transfer jobs | |
WO2012018694A1 (en) | Predicting a user behavior number of a word | |
CN106899654A (zh) | 一种序列值生成方法、装置及系统 | |
JP6987340B2 (ja) | データベースのデータ変更要求処理方法及び装置 | |
US11249854B2 (en) | Method and device for failover in HBase system, and non-transitory computer-readable storage medium | |
CN102255866A (zh) | 一种数据下载方法及装置 | |
CN106354587A (zh) | 镜像服务器以及导出虚拟机镜像文件的方法 | |
CN112037061A (zh) | 区块链中交易的处理方法、装置、电子设备及存储介质 | |
CN107154959A (zh) | 一种访问网络地址的方法与设备 | |
CN110619022B (zh) | 基于区块链网络的节点检测方法、装置、设备及存储介质 | |
CN111694639A (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN107766354A (zh) | 一种用于保证数据正确性的方法与设备 | |
CN114430427B (zh) | 一种同一身份的消息管理的方法、存储介质及设备 | |
CN110958138B (zh) | 一种容器扩容方法及装置 | |
CN111444148A (zh) | 基于MapReduce的数据传输方法和装置 | |
CN110764930A (zh) | 基于消息模式的请求或应答处理方法及装置 | |
CN110019538A (zh) | 一种数据表切换方法及装置 | |
CN111147226A (zh) | 数据存储方法、装置及存储介质 | |
CN110677497B (zh) | 一种网络介质分发方法及装置 | |
CN114726909A (zh) | 云服务迁移信息处理方法、装置、设备、介质及产品 | |
CN109214884B (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 |