CN111988408A - 一种区块链数值信息传输装置、方法、设备及计算机介质 - Google Patents
一种区块链数值信息传输装置、方法、设备及计算机介质 Download PDFInfo
- Publication number
- CN111988408A CN111988408A CN202010844956.5A CN202010844956A CN111988408A CN 111988408 A CN111988408 A CN 111988408A CN 202010844956 A CN202010844956 A CN 202010844956A CN 111988408 A CN111988408 A CN 111988408A
- Authority
- CN
- China
- Prior art keywords
- value
- numerical
- total
- numerical value
- values
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 69
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000009825 accumulation Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 25
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
Abstract
本申请公开了一种区块链数值信息传输装置、方法、设备及介质,包括第一获取模块,用于获取待传输的总数值;第二获取模块,用于获取待传输数值;第一分组模块,用于对待传输数值进行分组得到分组数值;第一判断模块,用于判断总数值是否大于待传输数值的总和;第二判断模块,用于总数值小于待传输数值的总和之后,判断单个分组数值是否满足总数值,若是,则在分组数值中确定出满足总数值的目标数值,若否,则遍历待传输数值进行累加,将满足总数值的累加值对应的待传输数值作为目标数值;第一处理模块,用于第一判断模块判定总数值等于待传输数值的总和之后,将全部的待传输数值作为目标数值;第一传输模块,用于传输目标数值。传输效率高。
Description
技术领域
本申请涉及区块链技术领域,更具体地说,涉及一种区块链数值信息传输装置、方法、设备及计算机介质。
背景技术
区块链是一个分布式账本,一种通过去中心化、去信任的方式集体维护一个可靠数据库的技术方案。区块链的基本思想是:通过建立一组互联网上的公共账本,由网络中所有的用户共同在账本上记账与核账,来保证信息的真实性和不可篡改性。而之所以名字叫做“区块”链,是因为区块链存储数据的结构是由网络上一个个“存储区块”组成一根链条,每个区块中包含了一定时间内网络中全部的信息交流数据。随着时间推移,这条链会不断增长。在区块链的应用过程中,两个区块链节点间需进行数值信息传输,而且每个区块链节点可能拥有多个可以被传输的数值,但数值信息传输过程中,可能需要对传输的总数值进行限定,此时,便需要区块链节点在自身拥有的数值中进行选取,来使得选取的数值等于或大于总数值,最后再将选取的数值传输给另一区块链节点。
在此过程中,区块链节点选取数值的过程可以如下:如果区块链节点拥有的数值里有等于总数值的数值,则使用该数值;如果“所以比总数值都小的数值之和”恰好等于总数值,则全部使用这些数值;如果“所有比总数值都小的数值之和”依然达不到目标金额,那么就选择区块链节点拥有的数值里第一个超过总数值的数值;如果前面三个条件都不满足,那么执行1000次随机循环,去尝试组合不同的数值,如果此时找到了符合第一种描述的数值,则提前结束循环,如果没有找到的话,则选择大于总数值的最小的一笔数值,或选择刚才的组合中大于总数值的最小数值组合。然而,在上述过程中,需要执行1000次随机循环,影响区块链数值信息传输的效率及精准度。
综上所述,如何提高区块链数值信息传输的效率及精准度是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种区块链数值信息传输装置,其能在一定程度上解决如何提高区块链数值信息传输的效率及精准度的技术问题。本申请还提供了一种区块链数值信息传输方法、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种区块链数值信息传输装置,应用于区块链数值信息发送节点,包括:
第一获取模块,用于获取待传输的总数值;
第二获取模块,用于获取所述区块链数值信息发送节点中的待传输数值;
第一分组模块,用于对所述待传输数值进行分组,得到分组数值;
第一判断模块,用于判断所述总数值是否大于所述待传输数值的总和;
第二判断模块,用于所述第一判断模块判定所述总数值小于所述待传输数值的总和之后,判断单个所述分组数值是否满足所述总数值,若单个所述分组数值满足所述总数值,则在所述分组数值中确定出满足所述总数值的目标数值,若单个所述分组数值不满足所述总数值,则遍历所述待传输数值进行累加,将满足所述总数值的累加值对应的所述待传输数值作为目标数值;
第一处理模块,用于所述第一判断模块判定所述总数值等于所述待传输数值的总和之后,将全部的所述待传输数值作为目标数值;
第一传输模块,用于传输所述目标数值。
优选的,所述第一分组模块包括:
第一排序单元,用于按照从小到大的顺序对所述待传输数值进行排序;
第一分组单元,用于对排序后的所述待传输数值进行分组,得到所述分组数值。
优选的,所述第二判断模块包括:
第一判断子模块,用于对于单个所述分组数值,判断所述总数值是否小于等于所述分组数值中的最大数值;若所述总数值等于所述分组数值中的最大数值,则将所述分组数值中的最大数值作为目标数值;若所述总数值小于所述分组数值中的最大数值,则判断所述分组数值中是否存在累加值等于所述总数值的数值,若存在累加值等于所述总数值的数值,则将累加值等于所述总数值的数值作为目标数值,若不存在累加值等于所述总数值的数值,则在所述分组数值中,选取一个大于所述总数值的数值作为目标数值;
第二判断子模块,用于若所述第一判断子模块判定总数值大于所述分组数值中的最大数值,则判断所述总数值是否小于等于所述分组数值的和值;若所述总数值等于所述分组数值的和值,则将所述分组数值中的所有数值作为目标数值;若所述总数值小于所述分组数值的和值,则判断所述分组数值中是否存在累加值等于所述总数值的数值,若存在累加值等于所述总数值的数值,则将累加值等于所述总数值的数值作为目标数值,若不存在累加值等于所述总数值的数值,则将累加值大于所述总数值的数值作为目标数值。
优选的,所述第一判断子模块包括:
第一选取单元,用于若不存在累加值等于所述总数值的数值,则将所述分组数值中的最大数值作为目标数值。
优选的,所述第二判断子模块包括:
第二选取单元,用于若不存在累加值等于所述总数值的数值,则在大于所述总数值的累加值中,将最小的累加值所对应的数值作为目标数值。
优选的,所述第二判断模块包括:
第三选取单元,用于若单个所述分组数值不满足所述总数值,则从大到小遍历所述待传输数值进行累加,将满足所述总数值的累加值对应的所述待传输数值作为目标数值。
优选的,所述第一获取模块包括:
第一获取单元,用于获取待传输的第一数值;
第二获取单元,用于获取预设的数值传输消耗的基础资源量,并将所述基础资源量转换为第二数值;
第一确定单元,用于将所述第一数值和所述第二数值的和值确定为所述总数值;
所述装置还包括:
第一计算模块,用于所述第一处理模块将全部的所述待传输数值作为目标数值之后,所述第一传输模块传输所述目标数值之前,计算传输所述目标数值消耗的实时资源量,将所述实时资源量转换为第三数值;
第三判断模块,用于判断所述第三数值是否小于等于所述第二数值;若所述第三数值大于所述第二数值,则计算所述第三数值和所述第二数值的差值,将所述差值作为所述总数值,提示所述装置执行获取所述区块链数值信息发送节点中的待传输数值及之后的步骤。
一种区块链数值信息传输方法,应用于区块链数值信息发送节点,包括:
获取待传输的总数值;
获取所述区块链数值信息发送节点中的待传输数值;
对所述待传输数值进行分组,得到分组数值;
判断所述总数值是否大于所述待传输数值的总和;
若所述总数值小于所述待传输数值的总和,则判断单个所述分组数值是否满足所述总数值,若单个所述分组数值满足所述总数值,则在所述分组数值中确定出满足所述总数值的目标数值,若单个所述分组数值不满足所述总数值,则遍历所述待传输数值进行累加,将满足所述总数值的累加值对应的所述待传输数值作为目标数值;
若所述总数值等于所述待传输数值的总和,则将全部的所述待传输数值作为目标数值;
传输所述目标数值。
一种区块链数值信息传输设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述区块链数值信息传输方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上所述区块链数值信息传输方法的步骤。
本申请提供的一种区块链数值信息传输装置,应用于区块链数值信息发送节点,包括第一获取模块,用于获取待传输的总数值;第二获取模块,用于获取区块链数值信息发送节点中的待传输数值;第一分组模块,用于对待传输数值进行分组,得到分组数值;第一判断模块,用于判断总数值是否大于待传输数值的总和;第二判断模块,用于第一判断模块判定总数值小于待传输数值的总和之后,判断单个分组数值是否满足总数值,若单个分组数值满足总数值,则在分组数值中确定出满足总数值的目标数值,若单个分组数值不满足总数值,则遍历待传输数值进行累加,将满足总数值的累加值对应的待传输数值作为目标数值;第一处理模块,用于第一判断模块判定总数值等于待传输数值的总和之后,将全部的待传输数值作为目标数值;第一传输模块,用于传输目标数值。本申请中,通过将待传输数值分组为分组数值,并以分组数值为单位来确定目标数值,由于分数数值的数据量小,所以可以快速基于分组数值确定出目标数值,提高了确定目标数值的效率及精准度,进而提高了区块链数值信息的传输效率及精准度。本申请提供的一种区块链数值信息传输方法、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种区块链数值信息传输装置的结构示意图;
图2为本申请实施例提供的一种区块链数值信息传输方法的流程图;
图3为本申请实施例提供的一种区块链数值信息传输设备的结构示意图;
图4为本申请实施例提供的一种区块链数值信息传输设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
区块链是一个分布式账本,一种通过去中心化、去信任的方式集体维护一个可靠数据库的技术方案。区块链的基本思想是:通过建立一组互联网上的公共账本,由网络中所有的用户共同在账本上记账与核账,来保证信息的真实性和不可篡改性。而之所以名字叫做“区块”链,是因为区块链存储数据的结构是由网络上一个个“存储区块”组成一根链条,每个区块中包含了一定时间内网络中全部的信息交流数据。随着时间推移,这条链会不断增长。在区块链的应用过程中,两个区块链节点间需进行数值信息传输,而且每个区块链节点可能拥有多个可以被传输的数值,但数值信息传输过程中,可能需要对传输的总数值进行限定,此时,便需要区块链节点在自身拥有的数值中进行选取,来使得选取的数值等于或大于总数值,最后再将选取的数值传输给另一区块链节点。在此过程中,区块链节点选取数值的过程可以如下:如果区块链节点拥有的数值里有等于总数值的数值,则使用该数值;如果“所以比总数值都小的数值之和”恰好等于总数值,则全部使用这些数值;如果“所有比总数值都小的数值之和”依然达不到目标金额,那么就选择区块链节点拥有的数值里第一个超过总数值的数值;如果前面三个条件都不满足,那么执行1000次随机循环,去尝试组合不同的数值,如果此时找到了符合第一种描述的数值,则提前结束循环,如果没有找到的话,则选择大于总数值的最小的一笔数值,或选择刚才的组合中大于总数值的最小数值组合。
然而,在上述过程中,需要执行1000次随机循环,影响区块链数值信息传输的效率及精准度,且在待传输数值量较大的情况下,难以准确确定出合适的目标数值,假设区块链数值信息发送节点有10个待传输数值:0.05、0.1BTC、0.24BTC、0.6BTC、0.8BTC、0.9BTC、1BTC、1.2BTC、1.4BTC、1.8BTC;假设该区块链数值信息发送节点想要传输的总数值为0.7BTC,则当前技术发现0.6BTC是大于目标值的最小的待传输数值,同时又发现所有比目标值小的数值之和(0.05+0.1+0.24+0.6=0.99)和总数值不匹配,因此这次传输又会进行下一步,但实际可以看到0.1+0.6=0.7,是很符合数值传输要求的,这一算法成功的放弃了一种完美的选择方案;再假设该区块链数值信息发送节点想要传输0.89BTC,当前技术发现0.9BTC是大于总数值的最小的待传输数值,同时又发现所有比目标值小的数值之和(0.05+0.1+0.24+0.6+0.8=1.79)也超过总数值,这种情况下,当前技术会执行1000次运算,直到待传输数值组合超过总数值,如果在循环中它发现0.05BCT+0.24BTC+0.6BTC=总数值,那么就会把0.05BCT,0.24BTC和0.6BTC作为目标数值进行传输,但实际应用中,如果在待传输数值非常多的情况下,随机组合不一定就会刚好组合到我们期望的目标数值组合,此算法不仅效率比较低,而且也最后的组合也不一定是最佳组合。为了解决上述技术问题,提高区块链数值信息传输的效率及精准度,本申请提供了一种区块链数值信息传输装置。
请参阅图1,图1为本申请实施例提供的一种区块链数值信息传输装置的结构示意图。
本申请实施例提供的一种区块链数值信息传输装置,应用于区块链数值信息发送节点,可以包括:
第一获取模块101,用于获取待传输的总数值;
实际应用中,第一获取模块获取的总数值的大小可以根据实际需要确定,应当指出,在区块链中,进行传输的数值可能附带其他属性,本申请在此不做具体限定。
第二获取模块102,用于获取区块链数值信息发送节点中的待传输数值;
实际应用中,在获取待传输的总数值之后,便可以获取区块链数值信息发送节点中的待传输数值,以便在待传输数值中确定出等于或者大于总数值的目标数值进行传输。
第一分组模块103,用于对待传输数值进行分组,得到分组数值;
实际应用中,待传输数值的量可能较大,如果直接应用待传输数值来确定目标数值的话,可能难以确定出满足要求的目标数值,为了提高目标数值的确定效率,可以对待传输数值进行分组,得到分组数值,一方面,分组数值的数据量小,便于后续以分组数值为单位确定目标数值,另一方面,分组数值的数据结构相对待传输数值简单,便于后续在分组数值中确定出目标数值。
应当指出,每个分组数值中的数据量可以根据实际需要确定,本申请在此不做具体限定,比如可以以50个数值为一个分组数值来对待传输数值进行分组,这样,最后一个分组数值中的数据量可能不足50,但其他的分组数值中的数据量一定为50。
第一判断模块104,用于判断总数值是否大于待传输数值的总和;
第二判断模块105,用于第一判断模块判定总数值小于待传输数值的总和之后,判断单个分组数值是否满足总数值,若单个分组数值满足总数值,则在分组数值中确定出满足总数值的目标数值,若单个分组数值不满足总数值,则遍历待传输数值进行累加,将满足总数值的累加值对应的待传输数值作为目标数值;
第一处理模块106,用于第一判断模块判定总数值等于待传输数值的总和之后,将全部的待传输数值作为目标数值;
实际应用中,在对待传输数值进行分组,得到分组数值之后,可以先判断总数值是否大于待传输数值的总和,若总数值大于待传输数值的总和,则表明无法在待传输数据中确定出总和等于或者大于总数值的目标数值,此时可以结束数值传输过程;若总数值小于待传输数值的总和,则可以判断单个分组数值是否满足总数值,若单个分组数值满足总数值,则在分组数值中确定出满足总数值的目标数值,若单个分组数值不满足总数值,则遍历待传输数值进行累加,将满足总数值的累加值对应的待传输数值作为目标数值,也即只有在单个分组数值不满足总数值的情况下,才会以待传输数值为基础来确定目标数值,可以尽可能的避免以待传输数值为基础来确定目标数值,避免数值传输的效率较低;且在总数值等于待传输数值的总和之后,可以将全部的待传输数值作为目标数值。
第一传输模块107,用于传输目标数值。
实际应用中,在确定出目标数值之后,便可以传输目标数值,比如直接将目标数值传输给区块链数值信息接收节点等。
本申请提供的一种区块链数值信息传输装置,应用于区块链数值信息发送节点,包括第一获取模块,用于获取待传输的总数值;第二获取模块,用于获取区块链数值信息发送节点中的待传输数值;第一分组模块,用于对待传输数值进行分组,得到分组数值;第一判断模块,用于判断总数值是否大于待传输数值的总和;第二判断模块,用于第一判断模块判定总数值小于待传输数值的总和之后,判断单个分组数值是否满足总数值,若单个分组数值满足总数值,则在分组数值中确定出满足总数值的目标数值,若单个分组数值不满足总数值,则遍历待传输数值进行累加,将满足总数值的累加值对应的待传输数值作为目标数值;第一处理模块,用于第一判断模块判定总数值等于待传输数值的总和之后,将全部的待传输数值作为目标数值;第一传输模块,用于传输目标数值。本申请中,通过将待传输数值分组为分组数值,并以分组数值为单位来确定目标数值,由于分数数值的数据量小,所以可以快速基于分组数值确定出目标数值,提高了确定目标数值的效率及精准度,进而提高了区块链数值信息的传输效率及精准度。
本申请实施例提供的一种区块链数值信息传输装置,应用于区块链数值信息发送节点,第一分组模块可以包括:第一排序单元,用于按照从小到大的顺序对待传输数值进行排序;第一分组单元,用于对排序后的待传输数值进行分组,得到分组数值。
也即本实施例中,在对待传输数值分组的过程中,可以先按照从小到大的顺序对待传输数值进行排序,再对排序后的待传输数值进行分组,得到分组数值,这样,分组数值间便会存在明确的大小关系,比如后得到的分组数值的数值大于等于先得到的分组数值的数值等,可以更加方便后续基于分组数值确定目标数值。
本申请实施例提供的一种区块链数值信息传输装置,应用于区块链数值信息发送节点,第二判断模块可以包括:
第一判断子模块,用于对于单个分组数值,判断总数值是否小于等于分组数值中的最大数值;若总数值等于分组数值中的最大数值,则将分组数值中的最大数值作为目标数值;若总数值小于分组数值中的最大数值,则判断分组数值中是否存在累加值等于总数值的数值,若存在累加值等于总数值的数值,则将累加值等于总数值的数值作为目标数值,若不存在累加值等于总数值的数值,则在分组数值中,选取一个大于总数值的数值作为目标数值;
第二判断子模块,用于若第一判断子模块判定总数值大于分组数值中的最大数值,则判断总数值是否小于等于分组数值的和值;若总数值等于分组数值的和值,则将分组数值中的所有数值作为目标数值;若总数值小于分组数值的和值,则判断分组数值中是否存在累加值等于总数值的数值,若存在累加值等于总数值的数值,则将累加值等于总数值的数值作为目标数值,若不存在累加值等于总数值的数值,则将累加值大于总数值的数值作为目标数值。
也即本实施例中,对于单个分组数值,可以先判断总数值是否小于等于分组数值中的最大数值,若总数值等于分组数值中的最大数值,则可以直接将分组数值中的最大数值作为目标数值,若总数值小于分组数值中的最大数值,则说明总数值可以落在该分组数值中,此时,需要判断分组数值中是否存在累加值等于总数值的数值,若存在累加值等于总数值的数值,则可以将累加值等于总数值的数值作为目标数值,若不存在累加值等于总数值的数值,则在分组数值中,选取一个大于总数值的数值作为目标数值,以快速得到目标数值;相应的,若总数值大于分组数值中的最大数值,则可以判断总数值是否小于等于分组数值的和值,若总数值等于分组数值的和值,则将分组数值中的所有数值作为目标数值,若总数值小于分组数值的和值,则判断分组数值中是否存在累加值等于总数值的数值,若存在累加值等于总数值的数值,则可以将累加值等于总数值的数值作为目标数值,若不存在累加值等于总数值的数值,则将累加值大于总数值的数值作为目标数值;实现了依据分组数值来快速、准确确定目标数值的效果。
本申请实施例提供的一种区块链数值信息传输装置,应用于区块链数值信息发送节点,第一判断子模块可以包括:
第一选取单元,用于若不存在累加值等于总数值的数值,则将分组数值中的最大数值作为目标数值。
实际应用中,当目标数值比总数值大的话,会返回目标数值与总数值的差值至区块链数值发送节点,为了避免返回的目标数值与总数值的差值过小,可以在不存在累加值等于总数值的数值的情况下,则将分组数值中的最大数值作为目标数值。
本申请实施例提供的一种区块链数值信息传输装置,应用于区块链数值信息发送节点,第二判断子模块可以包括:
第二选取单元,用于若不存在累加值等于总数值的数值,则在大于总数值的累加值中,将最小的累加值所对应的数值作为目标数值。
实际应用中,在需要优先使用区块链数值信息发送节点中数值小的待传输数值的情况下,在不存在累加值等于总数值的数值的时候,可以在大于总数值的累加值中,将最小的累加值所对应的数值作为目标数值。
本申请实施例提供的一种区块链数值信息传输装置,应用于区块链数值信息发送节点,第二判断模块可以包括:
第三选取单元,用于若单个分组数值不满足总数值,则从大到小遍历待传输数值进行累加,将满足总数值的累加值对应的待传输数值作为目标数值。
本实施例中,在单个分组数值不满足总数值的情况下,为了避免返回的目标数值与总数值的差值过小,可以从大到小遍历待传输数值进行累加,将满足总数值的累加值对应的待传输数值作为目标数值等。
本申请实施例提供的一种区块链数值信息传输装置,应用于区块链数值信息发送节点,第一获取模块可以包括:
第一获取单元,用于获取待传输的第一数值;
第二获取单元,用于获取预设的数值传输消耗的基础资源量,并将基础资源量转换为第二数值;
第一确定单元,用于将第一数值和第二数值的和值确定为总数值;
相应的,该装置还可以包括:
第一计算模块,用于第一处理模块将全部的待传输数值作为目标数值之后,第一传输模块传输目标数值之前,计算传输目标数值消耗的实时资源量,将实时资源量转换为第三数值;
第三判断模块,用于判断第三数值是否小于等于第二数值;若第三数值大于第二数值,则计算第三数值和第二数值的差值,将差值作为总数值,提示装置执行获取区块链数值信息发送节点中的待传输数值及之后的步骤。
也即实际应用中,区块链数值信息发送节点在传输目标数值的过程中需要消耗资源,消耗的资源所对应的数值也需要传输给区块链数值信息接收节点,此时需要将待传输的第一数值及预设的基础资源量对应的第二数值的和值确定为总数值,根据第一次确定的总数值确定出相对应的目标数值,再判断确定出的目标数值传输时所消耗的资源量是否大于基础资源量,若是,则再计算多余的资源量所对应的数值,将该数值作为总数值再次确定目标数值,最后将两次确定出的目标数值进行传输,这样,目标数值既可以满足第一数值又可以满足目标数值传输时所消耗的资源量。应当指出,在此过程中,同一个待传输数值无法两次作为目标数值,所以在第一次确定出目标数值之后,可以将该目标数值从待传输数值中剔除出去,以避免第一次确定的目标数值参与第二次目标数值的确定过程。
为了便于理解,假设数值信息传输时的基础资源量为10000字节,每1000字节对应的数值为0.0001,则基础资源量对应的第二数值为0.001,假设传输一个目标数值所消耗的字节数为148,向一个区块链数值信息接收节点传输数值消耗的字节为34,则一次传输过程中,所需要消耗的字节数为size=inputsNum*148+outputsNum*34+10,其中,inputsNum表示目标数值的个数,outputsNum表示一次数值传输过程中,接收数值信息的区块链数值信息接收节点的个数,则在按照本申请提供的区块链数值信息传输装置运行一次后,如果size小于等于10000,则可以直接将第一次运行的目标数值传输,如果size大于10000,则需要计算Tx_Fee=(size-10000)/1000*0.0001,再将Tx_Fee作为总数值输入给本申请的区块链数值信息传输装置,得到新的目标数值,最后将两次得到的目标数值进行传输。
为了进一步理解本申请提供的区块链数值信息传输装置,现假设某区块链数值信息传输节点有一个包含10个数值的分组数值,总金额等于8.09BTC,基础资源量对应的第二数值为0.001BTC,10个数值分别为:shuzhi_A 0.05BTC、shuzhi_B 0.1BTC、shuzhi_C0.24BTC、shuzhi_D 0.6BTC、shuzhi_E 0.8BTC、shuzhi_F 0.9BTC、shuzhi_G 1BTC、shuzhi_H 1.2BTC、shuzhi_I 1.4BTC、shuzhi_J 1.8BTC;
当该区块链数值信息传输节点想要传输0.004BTC,且第二数值为0.001BTC,则总数值为0.005BTC,本装置发现shuzhi_A等于目标值,所以这次传输的目标数值里会是shuzhi_A;
当该区块链数值信息传输节点想要一次传输数值至到两个节点,一个是传输0.4BTC,另一个传输0.45BTC,第二数值仍为0.001BTC,此时总数值为0.39+0.599+0.001=0.99,本装置发现shuzhi_A+shuzhi_B+shuzhi_C+shuzhi_D之和(0.05+0.1+0.24+0.6=0.99),恰好匹配总数值,因此这次数值传输的目标数值会选择shuzhi_A,shuzhi_B,shuzhi_C,shuzhi_D;此时再计算真正的资源消耗量对应的数值size:size=inputsNum*148+outputsNum*34+10=4*148+2*34+10=670<10000,所以最后实际传输shuzhi_A,shuzhi_B,shuzhi_C,shuzhi_D;
当区块链数值信息传输节点想要传输0.3BTC,第二数值仍为0.001BTC,实际总数值0.301BTC,小于这组分组数值的最大值shuzhi_J,本装置发现没有与之符合的数值组合,因此这次传输的目标数值会选择shuzhi_J,这样产生的找零比较大,不会产生碎数值;
当区块链数值信息传输节点想要传输5.5BTC,第二数值仍为0.001BTC,实际总数值5.501BTC,因为总数值比这组分组数值的最大值shuzhi_J还要大,则从小开始累加shuzhi_A、shuzhi_B、shuzhi_C、shuzhi_D、shuzhi_E、shuzhi_F、shuzhi_G、shuzhi_H、shuzhi_I,得到6.29>5.501,因此该次传输的目标数值会选择shuzhi_A,shuzhi_B,shuzhi_C,shuzhi_D,shuzhi_E,shuzhi_F,shuzhi_G,shuzhi_H,shuzhi_I;此时再计算真正的交易size:size=inputsNum*148+outputsNum*34+10=9*148+1*34+10=1376<10000;所以最后实际传输shuzhi_A,shuzhi_B,shuzhi_C,shuzhi_D,shuzhi_E,shuzhi_F,shuzhi_G,shuzhi_H,shuzhi_I。
请参阅图2,图2为本申请实施例提供的一种区块链数值信息传输方法的流程图。
本申请实施例提供的一种区块链数值信息传输方法,应用于区块链数值信息发送节点,可以包括以下步骤:
步骤S101:获取待传输的总数值。
步骤S102:获取区块链数值信息发送节点中的待传输数值。
步骤S103:对待传输数值进行分组,得到分组数值。
步骤S104:判断总数值是否大于待传输数值的总和;若总数值小于待传输数值的总和,则执行步骤S105;若总数值等于待传输数值的总和,则执行步骤S108。
步骤S105:判断单个分组数值是否满足总数值,若单个分组数值满足总数值,则执行步骤S106;若单个分组数值不满足总数值,则执行步骤S107。
步骤S106:在分组数值中确定出满足总数值的目标数值,执行步骤S109。
步骤S107:遍历待传输数值进行累加,将满足总数值的累加值对应的待传输数值作为目标数值,执行步骤S109。
步骤S108:将全部的待传输数值作为目标数值,执行步骤S109。
步骤S109:传输目标数值。
本申请实施例提供的区块链数值信息传输方法中相应步骤的描述请参阅上述事实,在此不再赘述。
本申请还提供了一种区块链数值信息传输设备及计算机可读存储介质,其均具有本申请实施例提供的一种区块链数值信息传输装置具有的对应效果。请参阅图3,图3为本申请实施例提供的一种区块链数值信息传输设备的结构示意图。
本申请实施例提供的一种区块链数值信息传输设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如上区块链数值信息传输方法的步骤。
请参阅图4,本申请实施例提供的另一种区块链数值信息传输设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现区块链数值信息传输设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上区块链数值信息传输方法的步骤。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的区块链数值信息传输方法、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的区块链数值信息传输装置中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种区块链数值信息传输装置,其特征在于,应用于区块链数值信息发送节点,包括:
第一获取模块,用于获取待传输的总数值;
第二获取模块,用于获取所述区块链数值信息发送节点中的待传输数值;
第一分组模块,用于对所述待传输数值进行分组,得到分组数值;
第一判断模块,用于判断所述总数值是否大于所述待传输数值的总和;
第二判断模块,用于所述第一判断模块判定所述总数值小于所述待传输数值的总和之后,判断单个所述分组数值是否满足所述总数值,若单个所述分组数值满足所述总数值,则在所述分组数值中确定出满足所述总数值的目标数值,若单个所述分组数值不满足所述总数值,则遍历所述待传输数值进行累加,将满足所述总数值的累加值对应的所述待传输数值作为目标数值;
第一处理模块,用于所述第一判断模块判定所述总数值等于所述待传输数值的总和之后,将全部的所述待传输数值作为目标数值;
第一传输模块,用于传输所述目标数值。
2.根据权利要求1所述的装置,其特征在于,所述第一分组模块包括:
第一排序单元,用于按照从小到大的顺序对所述待传输数值进行排序;
第一分组单元,用于对排序后的所述待传输数值进行分组,得到所述分组数值。
3.根据权利要求2所述的装置,其特征在于,所述第二判断模块包括:
第一判断子模块,用于对于单个所述分组数值,判断所述总数值是否小于等于所述分组数值中的最大数值;若所述总数值等于所述分组数值中的最大数值,则将所述分组数值中的最大数值作为目标数值;若所述总数值小于所述分组数值中的最大数值,则判断所述分组数值中是否存在累加值等于所述总数值的数值,若存在累加值等于所述总数值的数值,则将累加值等于所述总数值的数值作为目标数值,若不存在累加值等于所述总数值的数值,则在所述分组数值中,选取一个大于所述总数值的数值作为目标数值;
第二判断子模块,用于若所述第一判断子模块判定总数值大于所述分组数值中的最大数值,则判断所述总数值是否小于等于所述分组数值的和值;若所述总数值等于所述分组数值的和值,则将所述分组数值中的所有数值作为目标数值;若所述总数值小于所述分组数值的和值,则判断所述分组数值中是否存在累加值等于所述总数值的数值,若存在累加值等于所述总数值的数值,则将累加值等于所述总数值的数值作为目标数值,若不存在累加值等于所述总数值的数值,则将累加值大于所述总数值的数值作为目标数值。
4.根据权利要求3所述的装置,其特征在于,所述第一判断子模块包括:
第一选取单元,用于若不存在累加值等于所述总数值的数值,则将所述分组数值中的最大数值作为目标数值。
5.根据权利要求3所述的装置,其特征在于,所述第二判断子模块包括:
第二选取单元,用于若不存在累加值等于所述总数值的数值,则在大于所述总数值的累加值中,将最小的累加值所对应的数值作为目标数值。
6.根据权利要求1至5任一项所述的装置,其特征在于,所述第二判断模块包括:
第三选取单元,用于若单个所述分组数值不满足所述总数值,则从大到小遍历所述待传输数值进行累加,将满足所述总数值的累加值对应的所述待传输数值作为目标数值。
7.根据权利要求6所述的装置,其特征在于,所述第一获取模块包括:
第一获取单元,用于获取待传输的第一数值;
第二获取单元,用于获取预设的数值传输消耗的基础资源量,并将所述基础资源量转换为第二数值;
第一确定单元,用于将所述第一数值和所述第二数值的和值确定为所述总数值;
所述装置还包括:
第一计算模块,用于所述第一处理模块将全部的所述待传输数值作为目标数值之后,所述第一传输模块传输所述目标数值之前,计算传输所述目标数值消耗的实时资源量,将所述实时资源量转换为第三数值;
第三判断模块,用于判断所述第三数值是否小于等于所述第二数值;若所述第三数值大于所述第二数值,则计算所述第三数值和所述第二数值的差值,将所述差值作为所述总数值,提示所述装置执行获取所述区块链数值信息发送节点中的待传输数值及之后的步骤。
8.一种区块链数值信息传输方法,其特征在于,应用于区块链数值信息发送节点,包括:
获取待传输的总数值;
获取所述区块链数值信息发送节点中的待传输数值;
对所述待传输数值进行分组,得到分组数值;
判断所述总数值是否大于所述待传输数值的总和;
若所述总数值小于所述待传输数值的总和,则判断单个所述分组数值是否满足所述总数值,若单个所述分组数值满足所述总数值,则在所述分组数值中确定出满足所述总数值的目标数值,若单个所述分组数值不满足所述总数值,则遍历所述待传输数值进行累加,将满足所述总数值的累加值对应的所述待传输数值作为目标数值;
若所述总数值等于所述待传输数值的总和,则将全部的所述待传输数值作为目标数值;
传输所述目标数值。
9.一种区块链数值信息传输设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求8所述区块链数值信息传输方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求8所述区块链数值信息传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010844956.5A CN111988408A (zh) | 2020-08-20 | 2020-08-20 | 一种区块链数值信息传输装置、方法、设备及计算机介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010844956.5A CN111988408A (zh) | 2020-08-20 | 2020-08-20 | 一种区块链数值信息传输装置、方法、设备及计算机介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111988408A true CN111988408A (zh) | 2020-11-24 |
Family
ID=73443500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010844956.5A Pending CN111988408A (zh) | 2020-08-20 | 2020-08-20 | 一种区块链数值信息传输装置、方法、设备及计算机介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111988408A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392608A (zh) * | 2017-07-11 | 2017-11-24 | 北京博晨技术有限公司 | 基于区块链系统的数字资产交易方法及区块链系统 |
CN109727030A (zh) * | 2018-12-18 | 2019-05-07 | 杭州茂财网络技术有限公司 | 一种区块链中账户数据存储方法 |
EP3496027A1 (en) * | 2017-12-06 | 2019-06-12 | BlockSettle AB | Method for settling a blockchain asset |
CN110503416A (zh) * | 2019-08-29 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 数值转移方法、装置、计算机设备及存储介质 |
CN110992052A (zh) * | 2019-12-05 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111144859A (zh) * | 2019-12-27 | 2020-05-12 | 腾讯科技(深圳)有限公司 | 一种虚拟资源转移方法、装置、计算机设备和存储介质 |
-
2020
- 2020-08-20 CN CN202010844956.5A patent/CN111988408A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392608A (zh) * | 2017-07-11 | 2017-11-24 | 北京博晨技术有限公司 | 基于区块链系统的数字资产交易方法及区块链系统 |
EP3496027A1 (en) * | 2017-12-06 | 2019-06-12 | BlockSettle AB | Method for settling a blockchain asset |
CN109727030A (zh) * | 2018-12-18 | 2019-05-07 | 杭州茂财网络技术有限公司 | 一种区块链中账户数据存储方法 |
CN110503416A (zh) * | 2019-08-29 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 数值转移方法、装置、计算机设备及存储介质 |
CN110992052A (zh) * | 2019-12-05 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111144859A (zh) * | 2019-12-27 | 2020-05-12 | 腾讯科技(深圳)有限公司 | 一种虚拟资源转移方法、装置、计算机设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
HAOJUAN MEI等: "Storage Mechanism Optimization in Blockchain System Based on Residual Number System", 《IEEE ACCESS》 * |
李翔宇: "基于国密算法的区块链及UTXO模型优化研究", 《中国优秀硕士学位论文电子期刊》 * |
杨洋: "基于UTXO模型的区块链交易算法的研究与实现", 《中国优秀硕士学位论文电子期刊》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107404541B (zh) | 一种对等网络传输邻居节点选择的方法及系统 | |
CN109451540B (zh) | 一种网络切片的资源分配方法和设备 | |
CN103036792B (zh) | 一种最大化最小公平多数据流传输调度方法 | |
CN113784373B (zh) | 云边协同网络中时延和频谱占用联合优化方法及系统 | |
CN110365748A (zh) | 业务数据的处理方法和装置、存储介质及电子装置 | |
CN102132527A (zh) | 在节点之间交换处理度量信息 | |
CN115473901B (zh) | 一种分布式算力集群智慧调度方法、装置及计算机设备 | |
CN109547574A (zh) | 一种数据传输方法及相关装置 | |
CN101557380A (zh) | 数据同步方法、客户端以及服务器 | |
CN113038609B (zh) | 一种基于通信需求的带宽资源分配方法、装置及设备 | |
CN109891400A (zh) | 基于spi异步处理事件的方法、装置及存储介质 | |
CN109167737A (zh) | 融合数据缩减与动态优先权队列的can调度方法 | |
CN104639646A (zh) | 用于处理用户请求的方法和设备 | |
CN111984733A (zh) | 基于区块链的数据传输方法、装置及存储介质 | |
CN112134763A (zh) | 一种集群节点间分层消息传输方法、系统、设备及介质 | |
CN108337625A (zh) | 一种工作模式的切换方法及装置 | |
CN107734556A (zh) | 数据传输控制方法及相关产品 | |
CN108259195A (zh) | 异常事件的影响范围的确定方法及系统 | |
CN116962438B (zh) | 一种梯度数据同步方法、系统、电子设备及可读存储介质 | |
CN112929452B (zh) | 一种基于物联网边缘网关的消息协同推送方法 | |
CN103299298A (zh) | 处理业务的方法和系统 | |
WO2024066626A1 (zh) | 实时音视频网络的路由规划方法及装置 | |
CN109474696B (zh) | 一种网络服务方法、装置、电子设备及可读存储介质 | |
CN111988408A (zh) | 一种区块链数值信息传输装置、方法、设备及计算机介质 | |
CN104780120A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201124 |
|
RJ01 | Rejection of invention patent application after publication |