一种区块链交易的存储方式及排队方式转让专利

申请号 : CN201711101286.2

文献号 : CN108243241B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴思进

申请人 : 杭州复杂美科技有限公司

摘要 :

本发明公开了一种区块链交易的存储方式及排队方式。取交易哈希值的某几位写入位图表,且一个位只能存放一个满足条件的交易哈希值,满足条件的其他交易将进行排队;共识节点进行挖矿,最早算出默克尔根哈希值的共识节点N向其他共识节点广播默克尔根哈希值以及自己的位图表;通过比较位图表,快速寻找遗漏或不一致的数据;达成共识后生成区块;在交易量大,交易拥堵时,用户可以根据自己的需求,设置交易排队的优先级。

权利要求 :

1.一种区块链交易的存储方式及排队方式,其特征在于:区块链交易的存储方式及排队方式步骤如下:步骤S1,每一笔交易都会产生交易哈希值,取交易哈希值的某三位写入位图表,且一个位只能存放一个满足条件的交易哈希值,满足条件的其他交易将进行排队,例如:取某三位交易哈希值写入位图表,3(011)的位只能存放某三位交易哈希值为011的交易;

步骤S2,存放入交易的位,其状态码由0转换为1,没有存放入交易的位,其状态码始终为0;

步骤S3,共识节点进行挖矿,最早算出默克尔根哈希值的共识节点N向其他共识节点广播默克尔根哈希值以及自己的位图表;

步骤S4,其余共识节点计算默克尔根哈希值,若得到与共识节点N相同的默克尔根哈希值,则代表交易数据完全一致;若得到的默克尔根哈希值不同,则将自己的位图与共识节点N的位图进行比较,快速寻找遗漏或不一致的数据;

步骤S5,交易达成共识后生成区块H;

步骤S6,当交易量大,交易拥堵时,用户可以缴纳一定的费用来提高排队的优先级,例如,有两笔某三位交易哈希值为011的交易011AA和011BB,且某三位交易哈希值为011AA的交易在某三位交易哈希值为011BB的交易之前,按照默认排队顺序,某三位交易哈希值为

011AA的交易将被放入区块H+1中,某三位交易哈希值为011BB的交易将被放入区块H+2中;

若某三位交易哈希值为011BB的交易缴纳一定的费用提高排队优先级,而某三位交易哈希值为011AA的交易没有缴纳费用,则某三位交易哈希值为011BB的交易将被放入区块H+1中,某三位交易哈希值为011AA的交易将被放入区块H+2中。

2.根据权利要求1所述的一种区块链交易的存储方式及排队方式,其特征在于:共识节点计算的默克尔根哈希值与共识节点N计算的值不同,则将共识节点N的位图表与自己的位图表进行比较;具体方式是将共识节点N的状态码与自己的状态码进行异或,若位的状态码相同,其异或值为0;若位的状态码不同,其异或值为1;通过异或位图的状态码,可以快速寻找遗漏或不一致的数据。

3.根据权利要求1所述的一种区块链交易的存储方式及排队方式,其特征在于:某些时刻交易量大,交易拥堵,默认排队区块高度为M个区块,若一笔交易在等待了M个区块后仍然没有存储到区块内,则默认此笔交易放弃排队。

4.根据权利要求1所述的一种区块链交易的存储方式及排队方式,其特征在于:用户可以缴纳一定的费用来提高排队的优先级;区块链交易存储的排队方式可以取决于交易的字节数,收费等级,区块高度区间,或它们的任意组合。

5.根据权利要求4所述的一种区块链交易的存储方式及排队方式,其特征在于:交易拥堵时,缴纳一定的费用可以有效防止某些用户零成本恶意刷单;由于恶意刷单交易没有缴纳费用,则恶意刷单交易只有较低的排队优先级;恶意刷单交易在等待了M个区块后仍没有存储到区块内,则默认这些恶意刷单交易放弃排队,从而有效防止某些用户对区块链系统进行零成本恶意刷单攻击。

6.根据权利要求4所述的一种区块链交易的存储方式及排队方式,其特征在于:用户缴纳一定的费用提高排队优先级后,若此时交易并不拥堵,区块链系统会自动减免缴纳的费用。

7.根据权利要求4所述的一种区块链交易的存储方式及排队方式,其特征在于:若用户的账户信用级别高,则区块链系统在进行交易时可以降低相应的费用。

8.根据权利要求1所述的一种区块链交易的存储方式及排队方式,其特征在于:某些用户需要进行挂单交易,当交易到达用户指定金额时再进行交易,此种情况下,用户需要额外缴纳预约费及取号费。

9.根据权利要求8所述的一种区块链交易的存储方式及排队方式,其特征在于:挂单交易在交易拥堵时,也可以通过缴纳一定的费用提高排队优先级,挂单交易的排队方式可以取决于交易的字节数,收费等级,区块高度区间,或它们的任意组合。

10.根据权利要求1所述的一种区块链交易的存储方式及排队方式,其特征在于:用户可以在交易未成交之前撤单。

11.根据权利要求1所述的一种区块链交易的存储方式及排队方式,其特征在于:约定超时时间T,只有在超时时间T内,交易可以放入区块中,超过超时时间T后,即使该笔交易的交易哈希所对应的位还没有存放交易,交易也不能放入区块中。

说明书 :

一种区块链交易的存储方式及排队方式

技术领域

[0001] 本发明涉及区块链技术领域。

背景技术

[0002] 现有区块链交易的存储方式,共识节点通过默克尔根哈希值校验彼此数据的一致性,若得到的默克尔根哈希值不一致,则需要从上到下检索每一层的叶子节点的哈希值,直到找到底层出错的交易哈希值,从而判断是哪一笔交易出错,只有修正了交易,交易数据达成共识后交易才能存储到区块中。该过程需要耗费大量的时间及算力。
[0003] 现有区块链交易几乎没有设定交易的排队方式,或者只是简单设定不同的收费等级来变更交易的排队优先级,不能灵活根据用户需求变更交易排队优先级。

发明内容

[0004] 为了克服上述现有技术的不足,本发明提供了一种区块链交易的存储方式及排队方式。
[0005] 本发明所采用的技术方案是:
[0006] 1、一种区块链交易的存储方式及排队方式步骤如下:
[0007] 步骤S1,每一笔交易都会产生交易哈希值,取交易哈希值的某三位写入位图表,且一个位只能存放一个满足条件的交易哈希值,满足条件的其他交易将进行排队,例如:取前三位交易哈希值写入位图表,3(011)的位只能存放前三位交易哈希值为011的交易;
[0008] 步骤S2,存放入交易的位,其状态码由0转换为1,没有存放入交易的位,其状态码始终为0;
[0009] 步骤S3,共识节点进行挖矿,最早算出默克尔根哈希值的共识节点N向其他共识节点广播默克尔根哈希值以及自己的位图表。
[0010] 步骤S4,其余共识节点计算默克尔根哈希值,若得到与共识节点N相同的默克尔根哈希值,则代表交易数据完全一致;若得到的默克尔根哈希值不同,则将自己的位图与共识节点N的位图进行比较,快速寻找遗漏或不一致的数据。
[0011] 步骤S5,交易达成共识后生成区块H。
[0012] 步骤S6,当交易量大,交易拥堵时,用户可以缴纳一定的费用来提高排队的优先级,例如,有两笔前三位交易哈希值为011的交易011AA和011BB,且前三位交易哈希值为011AA的交易在前三位交易哈希值为011BB的交易之前,按照默认排队顺序,前三位交易哈希值为011AA的交易将被放入区块H+1中,前三位交易哈希值为011BB的交易将被放入区块H+2中;若前三位交易哈希值为011BB的交易缴纳一定的费用提高排队优先级,而前三位交易哈希值为011AA的交易没有缴纳费用,则前三位交易哈希值为011BB的交易将被放入区块H+
1中,前三位交易哈希值为011AA的交易将被放入区块H+2中。
[0013] 2、共识节点计算的默克尔根哈希值与共识节点N计算的值不同,则将共识节点N的位图表与自己的位图表进行比较;具体方式是将共识节点N的状态码与自己的状态码进行异或,若位的状态码相同,其异或值为0;若位的状态码不同,其异或值为1。通过异或位图的状态码,可以快速寻找遗漏或不一致的数据。
[0014] 3、某些时刻交易量大,交易拥堵,默认排队区块高度为M个区块,若一笔交易在等待了M个区块后仍然没有存储到区块内,则默认此笔交易放弃排队。
[0015] 4、用户可以缴纳一定的费用来提高排队的优先级。区块链交易存储的排队方式可以取决于交易的字节数,收费等级,区块高度区间,或它们的任意组合。
[0016] 5、交易拥堵时,缴纳一定的费用可以有效防止某些用户零成本恶意刷单。由于恶意刷单交易没有缴纳费用,则恶意刷单交易只有较低的排队优先级;恶意刷单交易在等待了M个区块后仍没有存储到区块内,则默认这些恶意刷单交易放弃排队,从而有效防止某些用户对区块链系统进行零成本恶意刷单攻击。
[0017] 6、用户缴纳一定的费用提高排队优先级后,若此时交易并不拥堵,区块链系统会自动减免缴纳的费用。
[0018] 7、若用户的账户信用级别高,则区块链系统在进行交易时可以降低相应的费用。
[0019] 8、某些用户需要进行挂单交易,当交易到达用户指定金额时再进行交易,此种情况下,用户需要额外缴纳预约费及取号费。
[0020] 9、挂单交易在交易拥堵时,也可以通过缴纳一定的费用提高排队优先级,挂单交易的排队方式可以取决于交易的字节数,收费等级,区块高度区间,或它们的任意组合。
[0021] 10、用户可以在交易未成交之前撤单。
[0022] 11、约定超时时间T,只有在超时时间T内,交易可以放入区块中,超过超时时间T后,即使该笔交易的交易哈希所对应的位还没有存放交易,交易也不能放入区块中。

附图说明

[0023] 图1为本发明实施例所提供的一种区块链交易的存储方式及排队方式过程模拟示意图;
[0024] 图2为本发明实施例所提供的验证交易数据的模拟示意图。

具体实施方式

[0025] 下面结合附图对本发明进一步说明。
[0026] 1、一种区块链交易的存储方式及排队方式步骤如下:
[0027] 步骤S1,每一笔交易都会产生交易哈希值,取交易哈希值的某三位写入位图表,且一个位只能存放一个满足条件的交易哈希值,满足条件的其他交易将进行排队,例如:取前三位交易哈希值写入位图表,3(011)的位只能存放前三位交易哈希值为011的交易;
[0028] 步骤S2,存放入交易的位,其状态码由0转换为1,没有存放入交易的位,其状态码始终为0;
[0029] 步骤S3,共识节点进行挖矿,最早算出默克尔根哈希值的共识节点N向其他共识节点广播默克尔根哈希值以及自己的位图表。
[0030] 步骤S4,其余共识节点计算默克尔根哈希值,若得到与共识节点N相同的默克尔根哈希值,则代表交易数据完全一致;若得到的默克尔根哈希值不同,则将自己的位图与共识节点N的位图进行比较,快速寻找遗漏或不一致的数据。
[0031] 步骤S5,交易达成共识后生成区块H。
[0032] 步骤S6,当交易量大,交易拥堵时,用户可以缴纳一定的费用来提高排队的优先级,例如,有两笔前三位交易哈希值为011的交易011AA和011BB,且前三位交易哈希值为011AA的交易在前三位交易哈希值为011BB的交易之前,按照默认排队顺序,前三位交易哈希值为011AA的交易将被放入区块H+1中,前三位交易哈希值为011BB的交易将被放入区块H+2中;若前三位交易哈希值为011BB的交易缴纳一定的费用提高排队优先级,而前三位交易哈希值为011AA的交易没有缴纳费用,则前三位交易哈希值为011BB的交易将被放入区块H+
1中,前三位交易哈希值为011AA的交易将被放入区块H+2中。
[0033] 2、共识节点计算的默克尔根哈希值与共识节点N计算的值不同,则将共识节点N的位图表与自己的位图表进行比较;具体方式是将共识节点N的状态码与自己的状态码进行异或,若位的状态码相同,其异或值为0;若位的状态码不同,其异或值为1。通过异或位图的状态码,可以快速寻找遗漏或不一致的数据。
[0034] 3、某些时刻交易量大,交易拥堵,默认排队区块高度为M个区块,若一笔交易在等待了M个区块后仍然没有存储到区块内,则默认此笔交易放弃排队。
[0035] 4、用户可以缴纳一定的费用来提高排队的优先级。区块链交易存储的排队方式可以取决于交易的字节数,收费等级,区块高度区间,或它们的任意组合。
[0036] 5、交易拥堵时,缴纳一定的费用可以有效防止某些用户零成本恶意刷单。由于恶意刷单交易没有缴纳费用,则恶意刷单交易只有较低的排队优先级;恶意刷单交易在等待了M个区块后仍没有存储到区块内,则默认这些恶意刷单交易放弃排队,从而有效防止某些用户对区块链系统进行零成本恶意刷单攻击。
[0037] 6、用户缴纳一定的费用提高排队优先级后,若此时交易并不拥堵,区块链系统会自动减免缴纳的费用。
[0038] 7、若用户的账户信用级别高,则区块链系统在进行交易时可以降低相应的费用。
[0039] 8、某些用户需要进行挂单交易,当交易到达用户指定金额时再进行交易,此种情况下,用户需要额外缴纳预约费及取号费。
[0040] 9、挂单交易在交易拥堵时,也可以通过缴纳一定的费用提高排队优先级,挂单交易的排队方式可以取决于交易的字节数,收费等级,区块高度区间,或它们的任意组合。
[0041] 10、用户可以在交易未成交之前撤单。
[0042] 11、约定超时时间T,只有在超时时间T内,交易可以放入区块中,超过超时时间T后,即使该笔交易的交易哈希所对应的位还没有存放交易,交易也不能放入区块中。
[0043] 本发明制定了一种区块链交易的存储方式,大幅度加快了交易数据的存储速度及验证速度,本发明还制定了一种区块链交易的的排队方式,用户可以根据排队方式改变交易的优先级,大幅度改善了交易排队的灵活性,并有效防止用户零成本恶意刷单等攻击。