含交易组区块的打包和广播方法及系统、设备和存储介质.pdf
《含交易组区块的打包和广播方法及系统、设备和存储介质.pdf》由会员分享,可在线阅读,更多相关《含交易组区块的打包和广播方法及系统、设备和存储介质.pdf(39页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910633123.1 (22)申请日 2019.07.15 (71)申请人 杭州复杂美科技有限公司 地址 310000 浙江省杭州市西湖区文三路 90号东部软件园6号楼7层702室 (72)发明人 何玉斌王志文吴思进 (51)Int.Cl. H04L 29/08(2006.01) H04L 12/18(2006.01) G06Q 20/40(2012.01) G06Q 40/04(2012.01) (54)发明名称 含交易组区块的打包和广播方法及系统、 设 备和存储介质 。
2、(57)摘要 本发明公开了含交易组区块的打包和广播 方法及系统、 设备和存储介质, 属于区块链技术 领域。 为解决区块广播占用区块链网络带宽资源 的技术问题, 当第一区块的区块大小SI区块大 小阈值TH时, 将区块头、 至少一个交易组和第一 区块的区块大小打包成第一区块, 广播第一区块 给与挖矿节点连接的至少一个第一区块链节点; 当第一区块的区块大小SI区块大小阈值TH时, 将区块头、 交易组标识列表和第一区块的区块大 小打包成第二区块; 其中, 交易组标识列表包括 挖矿交易, 以及所述第一区块中的每个交易组哈 希值或其若干字节, 广播第二区块给与挖矿节点 连接的至少一个第一区块链节点。 通过。
3、本申请的 技术方案可以减少对区块链网络带宽资源的占 用。 权利要求书4页 说明书23页 附图11页 CN 110784501 A 2020.02.11 CN 110784501 A 1.一种含交易组区块的打包方法, 其特征在于, 包括: 当第一区块的区块大小SI区块大小阈值TH时, 将区块头、 至少一个交易组和第一区 块的区块大小打包成第一区块; 当第一区块的区块大小SI区块大小阈值TH时, 将区块头、 交易组标识列表和第一区 块的区块大小打包成第二区块; 其中, 交易组标识列表包括挖矿交易, 以及足以唯一识别交易组的标识。 2.根据权利要求1所述的方法, 其特征在于, 所述第一区块除包括交易。
4、组外, 还包括至 少一个交易, 所述方法为: 当第一区块的区块大小SI区块大小阈值TH时, 将区块头、 至少一个交易组、 至少一个 交易和第一区块的区块大小打包成第一区块; 当第一区块的区块大小SI区块大小阈值TH时, 将区块头、 交易组标识列表、 第一区块 的区块大小打包成第二区块; 其中, 交易组标识列表包括挖矿交易, 以及足以唯一识别交易组的标识,足以唯一识别 交易的标识。 3.根据权利要求1或2所述的方法, 其特征在于, 所述第一区块还包括交易计数器; 将区 块头、 交易计数器、 至少一个交易组和第一区块的区块大小打包成第一区块。 4.根据权利要求1或2所述的方法, 其特征在于, 所述。
5、区块头包括由父区块哈希值、 时间 戳和默克尔树根的哈希值构造形成。 5.根据权利要求4所述的方法, 其特征在于, 所述默克尔树的叶子节点为交易或交易组 中各子交易。 6.根据权利要求1所述的方法, 其特征在于, 所述的交易组包括子交易个数、 每个子交 易签名、 每个子交易及其哈希值、 每个子交易的交易费。 7.根据权利要求2所述的方法, 其特征在于: 所述足以唯一识别交易组的标识包括: 交 易组中所有交易哈希值或其部分字节, 或交易组中任一交易哈希值或其部分字节, 或交易 组中各交易的ID号或名称, 或交易组中任一交易的ID号或名称, 或交易组ID号, 或交易组名 称; 所述足以唯一识别交易的。
6、标识包括: 交易哈希值, 或交易哈希值的部分字节, 或交易ID 号, 或交易名称。 8.一种区块广播方法, 其特征在于, 根据权利要求1所述的一种区块打包方法, 适用于 挖矿节点, 判断第一区块的区块大小SI区块大小阈值TH是否成立; 若是, 则广播第一区块给与挖矿节点连接的至少一个第一区块链节点; 若否, 则广播第二区块给与挖矿节点连接的至少一个第一区块链节点。 9.一种区块广播方法, 其特征在于, 适用于非挖矿节点, 根据权利要求8所述的一种区 块广播方法, 包括: 至少一个第一区块链节点收到第一区块后, 验证第一区块, 验证通过后将第一区块广 播给与第一区块链节点连接的至少一个第二区块链。
7、节点; 或, 至少一个第一区块链节点收到第二区块后, 将交易组标识列表与第一区块链节点 缓存的交易进行比对; 判断第一区块链节点是否缺少第二区块交易组标识列表中的交易; 若是, 则向发送第二区块给第一区块链节点的节点请求获取包含有缺少的第二区块交 权利要求书 1/4 页 2 CN 110784501 A 2 易组标识列表中的交易, 与第一区块链节点已缓存的第二区块的交易一起, 验证第二区块, 若验证通过, 则广播第二区块给与第一区块链节点连接的至少一个第二区块链节点; 若否, 则验证第二区块, 若验证通过, 则广播第二区块给与第一区块链节点连接的至少 一个第二区块链节点; 其中, 交易组标识列。
8、表包括挖矿交易, 以及足以唯一识别交易组的标识,足以唯一识别 交易的标识。 10.根据权利要求9所述的方法, 其特征在于, 所述的交易组包括子交易个数、 每个子交 易签名、 每个子交易及其哈希值、 每个子交易的交易费。 11.根据权利要求9所述的方法, 其特征在于, 所述足以唯一识别交易组的标识包括: 交 易组中所有交易哈希值或其部分字节, 或交易组中任一交易哈希值或其部分字节, 或交易 组中各交易的ID号或名称, 或交易组中任一交易的ID号或名称, 或交易组ID号, 或交易组名 称; 所述足以唯一识别交易的标识包括: 交易哈希值, 或交易哈希值的部分字节, 或交易ID 号, 或交易名称。 1。
9、2.根据权利要求9所述的方法, 其特征在于, 所述第一区块除包括交易组外, 还包括至 少一个交易, 所述交易组标识列表包括挖矿交易, 以及足以唯一识别交易组的标识,足以唯 一识别交易的标识。 13.根据权利要求9-11任一项所述的方法, 其特征在于, 所述向发送第二区块给第一区 块链节点的节点请求获取包含有缺少的第二区块交易组标识列表中的交易之前, 在判断出 第一区块链节点缺少第二区块交易组标识列表中的交易之后, 包括: 判断交易缺失数量是否超过交易缺失占比阈值TR-TH; 若是, 则向发送第二区块给第一区块链节点的节点请求获取整个第二区块的交易, 缓 存到第一区块链节点, 验证第二区块, 若。
10、验证通过, 则广播第二区块给与第一区块链节点连 接的至少一个第二区块链节点; 若否, 则向发送第二区块给第一区块链节点的节点请求获取缺少的第二区块交易组标 识列表中的交易, 缓存到第一区块链节点, 与第一区块链节点已缓存的第二区块的交易一 起, 验证第二区块, 若验证通过, 则广播第二区块给与第一区块链节点连接的至少一个第二 区块链节点。 14.根据权利要求13所述的方法, 其特征在于, 所述向发送第二区块给第一区块链节点 的节点请求获取缺少的第二区块交易组标识列表中的交易, 缓存到第一区块链节点, 与第 一区块链节点已缓存的第二区块的交易一起, 验证第二区块; 若验证不通过, 则向发送第二区。
11、块给第一区块链节点的节点请求获取整个第二区块的 交易, 缓存到第一区块链节点, 验证第二区块; 若验证通过, 则广播第二区块给与第一区块链节点连接的至少一个第二区块链节点; 若验证不通过, 则不作处理。 15.根据权利要求9所述的方法, 其特征在于, 包括: 在所述至少一个第一区块链节点收到第一区块后, 在验证第一区块之前, 记录第一区 块和发送第一区块给第一区块链节点的节点; 所述将第一区块广播给与第一区块链节点连接的至少一个第二区块链节点, 进一步改 进为: 将第一区块广播给除发送第一区块给第一区块链节点的节点以外, 与第一区块链节 权利要求书 2/4 页 3 CN 110784501 A。
12、 3 点连接的至少一个第二区块链节点; 在所述至少一个第一区块链节点收到第二区块后, 在将交易组标识列表与第一区块链 节点缓存的交易进行比对之前, 记录第二区块和发送第二区块给第一区块链节点的节点; 所述广播第二区块给与第一区块链节点连接的至少一个第二区块链节点, 进一步改进 为: 广播第二区块给除发送第二区块给第一区块链节点的节点以外, 与第一区块链节点连 接的至少一个第二区块链节点。 16.根据权利要求15所述的方法, 其特征在于, 包括: 所述记录第一区块和发送第一区块给第一区块链节点的节点, 进一步改进为, 包括: 记 录足以唯一识别第一区块的标识; 记录发送第一区块给第一区块链节点的。
13、节点名称; 所述记录第二区块和发送第二区块给第一区块链节点的节点, 进一步改进为, 包括: 记 录足以唯一识别第二区块的标识; 记录发送第二区块给第一区块链节点的节点名称。 17.根据权利要求15所述的方法, 其特征在于, 在所述记录第一区块和发送第一区块给 第一区块链节点的节点之后, 在验证第一区块之前, 包括: 检测第一区块链节点是否存在第一区块; 若存在, 则将第一区块广播给除发送第一区块给第一区块链节点的节点以外, 与第一 区块链节点连接的至少一个第二区块链节点; 若不存在, 则验证第一区块; 在所述记录第二区块和发送第二区块给第一区块链节点的节点之后, 在将交易组标识 列表与第一区块。
14、链节点缓存的交易进行比对之前, 包括: 检测第一区块链节点是否存在第二区块; 若存在, 则广播第二区块给除发送第二区块给第一区块链节点的节点以外, 与第一区 块链节点连接的至少一个第二区块链节点; 若不存在, 则将交易组标识列表与第一区块链节点缓存的交易进行比对。 18.一种区块广播系统, 其特征在于, 适用于区块链节点, 根据权利要求9所述的一种区 块广播方法, 包括: 接收模块, 用于接收第一区块或第二区块, 或接收从发送第二区块给第一区块链节点 的节点发送来的交易, 和/或交易组; 区块判断模块, 用于判断第一区块链节点是否缺少收到的第二区块交易组标识列表中 的交易, 及用于判断交易缺失。
15、数量是否超过交易缺失占比阈值TR-TH; 请求模块, 用于向发送第二区块给第一区块链节点的节点请求获取包含有缺少的第二 区块交易组标识列表中的交易, 和/或交易组; 验证模块用于验证第一区块, 或第二区块; 广播模块, 用于广播第一区块或第二区块给与第一区块链节点连接的至少一个第二区 块链节点, 及用于发送交易, 和/或交易组。 19.根据权利要求18所述的系统, 其特征在于, 当所述区块链节点为产生第一区块或第 二区块的挖矿节点时, 还包括: 区块打包模块, 用于根据权利要求1所述的一种区块打包方法, 打包形成第一区块, 或, 用于根据权利要求1所述的一种区块打包方法, 打包形成第二区块; 。
16、在区块打包模块打包形成第一区块后, 区块判断模块, 还用于判断第一区块的区块大 权利要求书 3/4 页 4 CN 110784501 A 4 小SI与区块大小阈值TH之间的关系, 以便确定是否需要打包第二区块。 20.根据权利要求18所述的系统, 其特征在于, 还包括缓存模块, 用于缓存第一区块或 第二区块及其交易, 和/或交易组。 21.根据权利要求18所述的系统, 其特征在于, 还包括记录模块, 用于记录第一区块和 发送第一区块给第一区块链节点的节点; 或, 记录第二区块和发送第二区块给第一区块链节点的节点。 22.根据权利要求18所述的系统, 其特征在于, 所述区块判断模块还用于检测第一。
17、区块 链节点是否存在第一区块; 或, 检测第一区块链节点是否存在第二区块。 23.一种设备, 其特征在于, 所述设备包括: 一个或多个处理器; 存储器, 用于存储一个或多个程序, 当所述一个或多个程序被所述一个或多个处理器执行时, 使得所述一个或多个处理器 执行如权利要求1-17中任一项所述的方法。 24.一种存储有计算机程序的存储介质, 其特征在于, 该程序被处理器执行时实现如权 利要求1-17中任一项所述的方法。 权利要求书 4/4 页 5 CN 110784501 A 5 含交易组区块的打包和广播方法及系统、 设备和存储介质 技术领域 0001 本发明涉及区块链技术领域, 尤其涉及含交易。
18、组区块的打包和广播方法及系统、 设备和存储介质。 背景技术 0002 现有区块链项目如复杂美chain33架构的底层区块链中加入了交易组(详见申请 号为201810695527.9的中国发明专利申请)的概念。 交易组是将多笔交易组装成一笔特殊 的交易缓存在Mempool模块中, 因一笔交易的大小至少有250 字节, 所以对于包含了多笔交 易的交易组而言, 其大小达500字节以上。 那么对于包含有多个交易组和多笔交易的区块而 言, 占用空间更大。 不论采用哪种共识算法的区块链项目, 在交易被打包形成区块后, 均需 要向区块链网络上的其他区块链节点广播。 区块占用空间越大, 在区块广播的过程中无疑。
19、 会占用更多的区块链网络带宽资源。 0003 现有的区块链项目方案中的一个区块链节点最多可以配置连接25个区块链节点, 在区块广播时, 广播的是区块的整个内容, 每个区块链节点可能会收到 25个从不同的区块 链节点广播来的相同区块内容, 一个包含有交易组的区块被重复地广播, 会进一步占用区 块链网络带宽资源, 影响区块链网络的稳定性。 发明内容 0004 1.发明要解决的技术问题 0005 为了克服上述技术问题, 本发明提供了含交易组区块的打包和广播方法及系统、 设备和存储介质。 可以减少对区块链网络带宽资源的占用。 0006 2.技术方案 0007 为解决上述问题, 本发明提供的技术方案为:。
20、 0008 第一方面, 本发明提出一种含交易组区块的打包方法, 适用于区块链的挖矿节点 或打包节点, 包括: 当第一区块的区块大小SI区块大小阈值TH时, 将区块头、 至少一个交 易组和第一区块的区块大小打包成第一区块; 当第一区块的区块大小SI区块大小阈值TH 时, 将区块头、 交易组标识列表和第一区块的区块大小打包成第二区块; 其中, 交易组标识 列表包括挖矿交易, 以及足以唯一识别交易组的标识。 0009 进一步地改进是, 所述第一区块除包括交易组外, 还包括至少一个交易, 所述方法 为: 当第一区块的区块大小SI区块大小阈值TH时, 将区块头、 至少一个交易组、 至少一个 交易和第一区。
21、块的区块大小打包成第一区块; 当第一区块的区块大小SI区块大小阈值TH 时, 将区块头、 交易组标识列表、 第一区块的区块大小打包成第二区块; 其中, 交易组标识列 表包括挖矿交易, 以及足以唯一识别交易组的标识,足以唯一识别交易的标识。 0010 进一步地改进是, 所述第一区块还包括交易计数器; 将区块头、 交易计数器、 至少 一个交易组和第一区块的区块大小打包成第一区块。 0011 进一步地改进是, 所述区块头包括由父区块哈希值、 时间戳和默克尔树根的哈希 说明书 1/23 页 6 CN 110784501 A 6 值构造形成。 0012 进一步地改进是, 所述默克尔树的叶子节点为交易或交。
22、易组的子交易。 0013 进一步地改进是, 所述的交易组包括子交易个数、 每个子交易签名、 每个子交易及 其哈希值、 每个子交易的交易费。 0014 进一步地改进是, 所述足以唯一识别交易组的标识包括: 交易组中所有交易哈希 值或其部分字节, 或交易组中任一交易哈希值或其部分字节, 或交易组中各交易的ID号或 名称, 或交易组中任一交易的ID号或名称, 或交易组ID号, 或交易组名称; 所述足以唯一识 别交易的标识包括: 交易哈希值, 或交易哈希值的部分字节, 或交易ID号, 或交易名称。 0015 第二方面, 本发明提出一种区块广播方法, 根据以上所述的一种区块打包方法, 适 用于区块链的挖。
23、矿节点或打包节点, 判断第一区块的区块大小SI区块大小阈值TH是否成 立; 若是, 则广播第一区块给与挖矿节点连接的至少一个第一区块链节点; 若否, 则广播第 二区块给与挖矿节点连接的至少一个第一区块链节点。 0016 第三方面, 本发明提出一种区块广播方法, 适用于区块链的非挖矿节点, 根据以上 所述的一种区块广播方法, 包括: 至少一个第一区块链节点收到第一区块后, 验证第一区 块, 验证通过后将第一区块广播给与第一区块链节点连接的至少一个第二区块链节点; 或, 至少一个第一区块链节点收到第二区块后, 将交易组标识列表与第一区块链节点缓存的交 易进行比对; 判断第一区块链节点是否缺少第二区。
24、块交易组标识列表中的交易; 若是, 则向 发送第二区块给第一区块链节点的节点请求获取包含有缺少的第二区块交易组标识列表 中的交易, 与第一区块链节点已缓存的第二区块的交易一起, 验证第二区块, 若验证通过, 则广播第二区块给与第一区块链节点连接的至少一个第二区块链节点; 若否, 则验证第二 区块, 若验证通过, 则广播第二区块给与第一区块链节点连接的至少一个第二区块链节点; 其中, 交易组标识列表包括挖矿交易, 以及足以唯一识别交易组的标识。 0017 进一步地改进是, 所述的交易组包括子交易个数、 每个子交易签名、 每个子交易及 其哈希值、 每个子交易的交易费。 0018 进一步地改进是, 。
25、所述足以唯一识别交易组的标识包括: 交易组中所有交易哈希 值或其部分字节, 或交易组中任一交易哈希值或其部分字节, 或交易组中各交易的ID号或 名称, 或交易组中任一交易的ID号或名称, 或交易组ID号, 或交易组名称; 所述足以唯一识 别交易的标识包括: 交易哈希值, 或交易哈希值的部分字节, 或交易ID号, 或交易名称。 0019 进一步地改进是, 所述所述第一区块除包括交易组外, 还包括至少一个交易, 所述 交易组标识列表包括挖矿交易, 以及足以唯一识别交易组的标识,足以唯一识别交易的标 识。 0020 进一步地改进是, 所述向发送第二区块给第一区块链节点的节点请求获取包含有 缺少的第二。
26、区块交易组标识列表中的交易之前, 在判断出第一区块链节点缺少第二区块交 易组标识列表中的交易之后, 包括: 判断交易缺失数量是否超过交易缺失占比阈值TR-TH; 若是, 则向发送第二区块给第一区块链节点的节点请求获取整个第二区块的交易, 缓存到 第一区块链节点, 验证第二区块, 若验证通过, 则广播第二区块给与第一区块链节点连接的 至少一个第二区块链节点; 若否, 则向发送第二区块给第一区块链节点的节点请求获取缺 少的第二区块交易组标识列表中的交易, 缓存到第一区块链节点, 与第一区块链节点已缓 存的第二区块的交易一起, 验证第二区块, 若验证通过, 则广播第二区块给与第一区块链节 说明书 2。
27、/23 页 7 CN 110784501 A 7 点连接的至少一个第二区块链节点。 0021 进一步地改进是, 所述向发送第二区块给第一区块链节点的节点请求获取缺少的 第二区块交易组标识列表中的交易, 缓存到第一区块链节点, 与第一区块链节点已缓存的 第二区块的交易一起, 验证第二区块; 若验证不通过, 则向发送第二区块给第一区块链节点 的节点请求获取整个第二区块的交易, 缓存到第一区块链节点, 验证第二区块; 若验证通 过, 则广播第二区块给与第一区块链节点连接的至少一个第二区块链节点; 若验证不通过, 则不作处理。 0022 进一步地改进是, 包括: 在所述至少一个第一区块链节点收到第一区。
28、块后, 在验证 第一区块之前, 记录第一区块和发送第一区块给第一区块链节点的节点; 所述将第一区块 广播给与第一区块链节点连接的至少一个第二区块链节点, 进一步改进为: 将第一区块广 播给除发送第一区块给第一区块链节点的节点以外, 与第一区块链节点连接的至少一个第 二区块链节点; 在所述至少一个第一区块链节点收到第二区块后, 在将交易组标识列表与 第一区块链节点缓存的交易进行比对之前, 记录第二区块和发送第二区块给第一区块链节 点的节点; 所述广播第二区块给与第一区块链节点连接的至少一个第二区块链节点, 进一 步改进为: 广播第二区块给除发送第二区块给第一区块链节点的节点以外, 与第一区块链 。
29、节点连接的至少一个第二区块链节点。 0023 进一步地改进是, 包括: 所述记录第一区块和发送第一区块给第一区块链节点的 节点, 进一步改进为, 包括: 记录足以唯一识别第一区块的标识; 记录发送第一区块给第一 区块链节点的节点名称; 所述记录第二区块和发送第二区块给第一区块链节点的节点, 进 一步改进为, 包括: 记录足以唯一识别第二区块的标识; 记录发送第二区块给第一区块链节 点的节点名称。 0024 进一步地改进是, 在所述记录第一区块和发送第一区块给第一区块链节点的节点 之后, 在验证第一区块之前, 包括: 检测第一区块链节点是否存在第一区块; 若存在, 则将第 一区块广播给除发送第一。
30、区块给第一区块链节点的节点以外, 与第一区块链节点连接的至 少一个第二区块链节点; 若不存在, 则验证第一区块; 在所述记录第二区块和发送第二区块 给第一区块链节点的节点之后, 在将交易组标识列表与第一区块链节点缓存的交易进行比 对之前, 包括: 检测第一区块链节点是否存在第二区块; 若存在, 则广播第二区块给除发送 第二区块给第一区块链节点的节点以外, 与第一区块链节点连接的至少一个第二区块链节 点; 若不存在, 则将交易组标识列表与第一区块链节点缓存的交易进行比对。 0025 第四方面, 本发明还提出一种区块广播系统, 适用于区块链节点, 根据以上所述的 一种区块广播方法, 包括: 接收模。
31、块, 用于接收第一区块或第二区块, 或接收从发送第二区 块给第一区块链节点的节点发送来的交易, 和/或交易组; 区块判断模块, 用于判断第一区 块链节点是否缺少收到的第二区块交易组标识列表中的交易, 及用于判断交易缺失数量是 否超过交易缺失占比阈值TR-TH; 请求模块, 用于向发送第二区块给第一区块链节点的节点 请求获取包含有缺少的第二区块交易组标识列表中的交易, 和/或交易组; 验证模块用于验 证第一区块, 或第二区块; 广播模块, 用于广播第一区块或第二区块给与第一区块链节点连 接的至少一个第二区块链节点, 及用于发送交易, 和/或交易组。 0026 进一步地改进是, 当所述区块链节点为。
32、产生第一区块或第二区块的挖矿节点时, 还包括: 区块打包模块, 用于根据权利要求1所述的一种区块打包方法, 打包形成第一区块, 说明书 3/23 页 8 CN 110784501 A 8 或, 用于根据权利要求1所述的一种区块打包方法, 打包形成第二区块; 在区块打包模块打 包形成第一区块后, 区块判断模块, 还用于判断第一区块的区块大小SI与区块大小阈值TH 之间的关系, 以便确定是否需要打包第二区块。 0027 进一步地改进是, 还包括缓存模块, 用于缓存第一区块或第二区块及其交易, 和/ 或交易组。 0028 进一步地改进是, 还包括记录模块, 用于记录第一区块和发送第一区块给第一区 块。
33、链节点的节点; 或, 记录第二区块和发送第二区块给第一区块链节点的节点。 0029 进一步地改进是, 所述区块判断模块还用于检测第一区块链节点是否存在第一区 块; 或, 检测第一区块链节点是否存在第二区块。 0030 第五方面, 本发明提出一种设备, 所述设备包括: 一个或多个处理器; 存储器, 用于 存储一个或多个程序, 当所述一个或多个程序被所述一个或多个处理器执行时, 使得所述 一个或多个处理器执行如以上所述的方法。 0031 第六方面, 本发明提出一种存储有计算机程序的存储介质, 该程序被处理器执行 时实现如以上任一项所述的方法。 0032 3.有益效果 0033 采用本发明提供的技术。
34、方案, 与现有技术相比, 具有如下有益效果: 0034 针对现有技术种区块广播占用区块链网络带宽资源, 影响区块链网络的稳定性; 本申请的技术方案可以减少区块广播对区块链网络带宽资源的占用, 提供区块链网络的稳 定性。 附图说明 0035 图1为实施例1提供的含交易组区块的打包方法流程图。 0036 图2为实施例1提供的含交易组区块的默克尔状态树示意图。 0037 图3为实施例2提供的含交易组区块的广播状态展示图。 0038 图4为实施例2提供的第一区块链节点收到第二区块后的处理流程图。 0039 图5为图4的第一优选实施例提供的流程图。 0040 图6为图5的一优选实施例提供的流程图。 00。
35、41 图7为图4的第二优选实施例提供的流程图。 0042 图8为第一区块广播方法流程图。 0043 图9为图7的一优选实施例提供的流程图。 0044 图10为实施例3提供的一种区块广播系统的结构示意图。 0045 图11为图10第一优选实施例提供的结构示意图。 0046 图12为图10第二优选实施例提供的结构示意图。 0047 图13为图10第三优选实施例提供的结构示意图。 0048 图14为实施例2提供的一种含交易组区块的广播方法流程图。 0049 图15为实施例2提供的另一种含交易组区块的广播方法流程图。 0050 图16为本发明的一种设备结构示意图。 说明书 4/23 页 9 CN 11。
36、0784501 A 9 具体实施方式 0051 为进一步了解本发明的内容, 结合附图及实施例对本发明作详细描述。 0052 下面结合附图和实施例对本申请作进一步的详细说明。 可以理解的是, 此处所描 述的具体实施例仅仅用于解释相关发明, 而非对该发明的限定。 另外还需要说明的是, 为了 便于描述, 附图中仅示出了与发明相关的部分。 0053 本发明中所述的第一、 第二等词语, 是为了描述本发明的技术方案方便而设置, 并 没有特定的限定作用, 均为泛指, 对本发明的技术方案不构成限定作用。 0054 本申请的技术方案描述了区块的广播方法, 可在现有的区块链网络上推广应用, 比如比特币, 以太坊、。
37、 Chain33、 EOS等, 不受各种区块链网络共识算法, 以及挖矿机制的限 制, 均可推广使用; 另外, 关于区块的原始信息内容, 每个区块链网络中对于区块格式内容 的定义均存在一些差异, 当本申请的技术方案在不同的区块链网络中推广应用时, 所述的 区块原始信息内容与该区块链网络所规定的区块格式及内容相一致, 即本申请所述的区块 原始信息根据不同区块链网络关于区块的定义不同而不同, 在不同的区块链网络上应用 时, 适应它们关于区块自身的格式及内容定义, 本申请中的区块原始信息作相应的变化。 本 申请所述区块中的交易包括含有资产交换的交易, 也包括含有外带数据的交易。 0055 对于采用Po。
38、w共识算法的区块链项目, 采用本实施例所述方法广播区块, 直到所有 区块链节点都收到该区块高度的区块后, 共识完成为止; 对于采用Pos、 DPos共识算法的区 块链项目, 受限于其自身的特点, 在区块共识达成后, 仍存在部分节点(非共识节点)没有收 到区块的情况, 那么以区块共识完成为时间节点, 在该时间节点之前, 可以采用本实施例所 述区块广播方法, 或采用现有技术中的区块广播方法对区块进行广播, 在该时间节点之后, 即区块共识完成之后, 可以继续采用本实施例所述区块广播方法对区块进行广播, 以减少 对区块链网络带宽的占用, 提高区块链网络运行的稳定性。 0056 需要说明的是, 在不冲突。
39、的情况下, 本申请中的实施例及实施例中的特征可以相 互组合。 下面将参考附图并结合实施例来详细说明本申请。 0057 实施例1 0058 含交易组区块的打包方法, 适用于挖矿节点, 如图1所示, 包括: 0059 当第一区块的区块大小SI区块大小阈值TH时, 将区块头、 至少一个交易组和第 一区块的区块大小打包成第一区块; 0060 当第一区块的区块大小SI区块大小阈值TH时, 将区块头、 交易组标识列表和第 一区块的区块大小打包成第二区块; 0061 其中, 交易组标识列表包括挖矿交易, 以及足以唯一识别交易组的标识。 0062 区块大小阈值TH可以设置成1M, 可以根据网络情况来配置。 进。
40、一步地, 所述第一区 块除包括交易组外, 还包括至少一个交易, 此时, 所述含交易组区块的打包方法为: 0063 当第一区块的区块大小SI区块大小阈值TH时, 将区块头、 至少一个交易组、 至少 一个交易和第一区块的区块大小打包成第一区块; 0064 当第一区块的区块大小SI区块大小阈值TH时, 将区块头、 交易组标识列表、 第一 区块的区块大小打包成第二区块; 其中, 交易组标识列表包括挖矿交易, 以及足以唯一识别 交易组的标识,足以唯一识别交易的标识。 0065 现有技术中的区块链项目中对区块打包时, 多是打包了交易的所有内容, 本实施 说明书 5/23 页 10 CN 110784501。
41、 A 10 例提出的区块打包方法中的第二区块只打包了交易, 和/或交易组的哈希值, 因此, 减少了 区块的大小; 而仅打包交易, 和/或交易组哈希值中的若干字节时, 可以进一步减少区块的 大小。 0066 所述足以唯一识别交易组的标识包括: 交易组中所有交易哈希值或其部分字节, 或交易组中任一交易哈希值或其部分字节, 或交易组中各交易的ID号或名称, 或交易组中 任一交易的ID号或名称, 或交易组ID号, 或交易组名称。 所述足以唯一识别交易的标识为交 易哈希值, 或交易哈希值的部分字节, 或交易ID号, 或交易名称。 0067 鉴于一个交易组的原子性, 及整体性, 在任一个区块链节点上, 要。
42、么收到交易组中 所有交易的内容, 要么收不到; 因交易组是作为一个整体被广播的, 因此只要记录交易组中 任一笔交易哈希值, 即可唯一识别出该交易组。 0068 在一个确定的区块链项目中, 因每个交易的收发地址, 及交易内容等各不相同, 所 以交易哈希值具有唯一识别交易的特性。 交易ID号类比于中国公民使用的身份证号码, 在 一个确定的区块链项目中, 交易名称也可以唯一识别一笔交易, 但并不代表所有区块链项 目都是, 在本方法实际应用过程中, 应根据具体应用场景而定。 0069 交易哈希值的部分字节: 假设F(x)是对交易哈希值取部分字节的函数, 那么函数F (x), 以F(Hash-Tm)为例。
43、, 实现的效果是, 对交易Tm的哈希值 Hash-Tm, 取其前第1-5个字节, 后第1-5个字节, 或者中间位置第1-5个字节, 也可以是中间9个字节, 或者, 末尾9个字节, 或 者, 前9个字节, 但无论怎么取值, 均可以保证足以唯一识别出所述交易Tm的哈希值Hash- Tm, 进而足以识别出交易组, 从而进一步减小区块广播的大小。 0070 考虑到现有区块链项目在使用本实施例所述技术方案进行打包区块时, 为尽可能 减少对现有区块链项目构造的改造, 在现有区块链项目的基础上, 所述第一区块还包括交 易计数器; 将区块头、 交易计数器、 至少一个交易组和第一区块的区块大小打包成第一区 块。。
44、 0071 其中, 所述的交易组包括子交易个数、 每个子交易签名、 每个子交易及其哈希值、 每个子交易的交易费; 对于交易组中每一笔子交易, 及交易组自身的内容如下代码所示: 0072 说明书 6/23 页 11 CN 110784501 A 11 0073 0074 所述交易组哈希值为交易组的子交易个数和每个子交易哈希值; 交易哈希值的若 干字节, 比如是交易哈希值的前5个字节, 或前8个字节, 或后8个字节, 或后5个字节, 或第1、 3、 5、 7、 8和9个字节等, 总之是取交易哈希值的若干字节, 从而进一步减小第二区块的大小。 交易组哈希值的若干字节, 是指交易组中的每个子交易哈希值。
45、的若干字节, 比如是交易组 中的每个子交易哈希值的前5个字节, 或前8个字节, 或后8个字节, 或后5个字节, 或第1、 3、 5、 7、 8和9个字节等, 总之是取子交易哈希值的若干字节, 从而进一步减小含有交易组的第 二区块的大小。 0075 当交易组标识列表中保存的是第一区块中的每个交易组哈希值及每个交易哈希 值时, Minertx为挖矿交易, Hash-Minertx为挖矿交易哈希值; Tra1为第一区块中的任一笔 交易, Hash-Tra1为对应交易哈希值; GTra为第一区块中的任一个交易组, 如表1所示, 包含 交易Tx1、 Tx2、 Tx3、 、 、 Txn, Hash-Tx1。
46、、 Hash-Tx2、 Hash-Tx3、 、 、 Hash-Txn为对应交易哈希值, 如表2所示。 0076 表1交易组GTra内容 0077 0078 表2含有交易哈希值的交易组标识列表 说明书 7/23 页 12 CN 110784501 A 12 0079 0080 表3含有交易哈希值若干字节的交易组标识列表 0081 0082 当交易组标识列表中保存的是第一区块中的每个交易组哈希值若干字节及每个 交易哈希值若干字节时, 如表3所示, 比如函数F(x)用于实现从交易组哈希值中取若干字节 的作用, 具体是取哪些字节, 可根据实际需要来确定; 因挖矿交易除区块链的挖矿节点外, 其他非挖矿节。
47、点不存在挖矿交易, 所以不论是表2中的含有交易哈希值的交易哈希值列表, 还是表3中的含有交易哈希值若干字节的交易哈希值列表, 都必须包含完整的挖矿交易内 容及其哈希值。 0083 其中所述区块头包括由父区块哈希值、 时间戳和默克尔树根的哈希值构造形成; 所述默克尔树的叶子节点为交易或交易组的子交易, 如图2所示, 假设为某一区块高度的区 块的默克尔状态树, 那么, L1为一笔交易, L2、 L3、 L4、 L5、 L6、 L7和L8为一个含有7笔交易的 交易组; R1为默克尔树根节点。 当包含有L1、 L2、 L3、 L4、 L5、 L6、 L7和L8的第一区块的区块大 小SI小于等于区块大小。
48、阈值TH时, 第一区块中除包含所述区块头外, 还包括第一区块的区 块大小, 交易L1、 包含有交易L2、 L3、 L4、 L5、 L6、 L7和L8的交易组。 0084 当包含有L1、 L2、 L3、 L4、 L5、 L6、 L7和L8的第一区块的区块大小SI大于区块大小阈 值TH时; 为减少广播的区块大小, 以减少对区块链网络带宽的占用, 对第一区块进行改造, 改造成第二区块, 所述第二区块中除包含所述区块头外, 还包括第一区块的区块大小, 交易 L1哈希值、 交易组哈希值, 即交易L1、 L2、 L3、 L4、 L5、 L6、 L7和L8哈希值, 交易个数, 如表1所 示; 0085 为进。
49、一步减少广播的区块大小, 进一步减少对区块链网络带宽的占用, 对第二区 块进一步改造, 第二区块中除包含所述区块头外, 还包括第一区块的区块大小, 交易L1哈希 值的若干字节、 交易组哈希值的若干字节, 即交易L1、 L2、 L3、 L4、 L5、 L6、 L7和L8哈希值的若 干字节, 交易个数(交易组中的子交易个数), 如表2所示。 说明书 8/23 页 13 CN 110784501 A 13 0086 实施例2 0087 本实施例提出一种区块广播方法, 适用于挖矿节点, 根据实施例1中任一技术方案 所述的一种区块打包方法, 适用于挖矿节点, 判断第一区块的区块大小SI区块大小阈值 TH。
50、是否成立; 0088 若是, 则广播第一区块给与挖矿节点连接的至少一个第一区块链节点; 0089 若否, 则广播第二区块给与挖矿节点连接的至少一个第一区块链节点。 0090 本实施例提出的适用于挖矿节点的一种区块广播方法, 实现方法包括以下两种, 第一种方法, 如图14所示, 挖矿节点根据实施例1中任一技术方案所述的一种区块打包方法 打包第一区块, 或第二区块后, 判断第一区块的区块大小 SI区块大小阈值TH是否成立; 0091 若是, 则广播第一区块给与挖矿节点连接的至少一个第一区块链节点; 0092 若否, 则广播第二区块给与挖矿节点连接的至少一个第一区块链节点。 0093 第二种方法, 。
- 内容关键字: 交易 区块 打包 广播 方法 系统 设备 存储 介质
活性炭吸附印刷废气净化设备.pdf
园林绿化植物可调式保护支架.pdf
烟气脱硫塔的除尘装置.pdf
石材仿形切割装置.pdf
茶叶加工用上料装置.pdf
藻类培养容器的自动清洗装置.pdf
轨道车用液压马达与扇叶的连接装置.pdf
布卷抽布装置.pdf
双电源切换装置.pdf
应用于综合配电箱风冷却的降温装置.pdf
电力电缆安装用张紧装置.pdf
用于兽药残留检测的样品预处理装置.pdf
矿用可移动终端的模块电路.pdf
净水剂检测用取样装置.pdf
汽车双发电机双蓄电池并联电路.pdf
防火型电气控制柜.pdf
便携式食品样品取样装置.pdf
电缆铺设夹持组件.pdf
柜体装配检验装置.pdf
用于按摩椅的柔性按摩机构.pdf
硬炭及其制备方法、二次电池.pdf
汽车左悬置支架焊接设备.pdf
路面摊铺器.pdf
滤波器腔体生产装置.pdf
带漏电的保护插线板.pdf
电动轮椅安全阈值控制方法.pdf
重点管控一般工业固体废物筛查方法及系统.pdf
用于小型渠道整型施工装置及施工方法.pdf
miRNA标志物组合在制备预测年龄产品中的应用.pdf
水质检测方法及其系统.pdf
防误插的圆形电连接器.pdf
用于新能源汽车零件的皮碗压装装置.pdf
一种1/2晶体罩继电器电磁系统.pdf
一种高频隔离式控逆一体机.pdf
手持式智能化地下水位激光测量装置.pdf
数据查询方法和系统.pdf
一种存储系统的新型注册方法.pdf
直线运动模组的润滑方法.pdf
一种电力用户响应系统的智能体.pdf
一种变辐照主动调控的槽式太阳能聚光集热装置及方法.pdf
用于主机板控制模块的除错权限判断方法及主机板控制模块.pdf
外露散热式LED车灯.pdf
中断控制系统和方法.pdf
一种基于方位的数据传输方法及装置.pdf
维吾尔医药古籍资源网络检索平台.pdf
低热阻散热式LED灯.pdf
风能、太阳能碟形发电机.pdf
一种中水回用处理方法.pdf
一种益气温胃茶.pdf
电子地图搜索结果的展示方法以及电子地图客户端.pdf
电池连接部件以及电池连接体.pdf