1.一种限流方法,其特征在于,所述方法适用于使用hashgraph共识的网络的节点,所述网络上有用于控制打包交易数量的第一类型的第一通证,各节点初始均持有第一数量个所述第一通证,所述方法包括:
在经过第三数量的轮次时,统计当前节点在所述第三数量的轮次中所投票的第一投票数量并广播;
根据其它节点分别广播的在所述第三数量轮次中所投票的第二投票数量、所述第一投票数量计算投票中位数;
将所述投票中位数作为下一个第三数量的轮次中每个轮次的所有节点所打包交易的总量的第一阈值;
根据第一公式确定当前节点在下一个第三数量轮次中每个轮次的打包交易的总量的第二阈值;其中,所述第一公式为y=x/total_x*total_tx_per_round,x为当前节点当前所持有的所述第一通证的第三数量、total_x为所述网络初始配置的所述第一通证的总量、total_tx_per_round为所述投票中位数,y为所述第二阈值;
对下一个第三数量轮次中的各第一轮次分别执行如下操作:生成第一event;
判断所述第一轮次中当前打包交易的总量与所述第一event所打包交易的第四数量之和是否超过所述第二阈值:
是,则删除所述第一event。
2.根据权利要求1所述的方法,其特征在于,在所述第二阈值与所述第一轮次的打包交易的总量之差小于第一数值时,所述方法还包括:接收其它节点广播的第二event;
生成第一空event并广播给其它节点。
3.根据权利要求1所述的方法,其特征在于,event包括otherIDs和otherSig字段,在所述第二阈值与所述第一轮次的打包交易的总量之差小于第一数值时,所述方法还包括:接收其它节点广播的第二event;
向第一节点发送第一代理打包请求信息,以供所述第一节点:在所述第一节点的交易池不存在待打包的交易时,生成第一拒绝信息并返回;
在所述第一节点的交易池存在待打包的交易时,根据所述第一节点的交易池待打包的各交易生成第三event并返回;
在接收所述第一拒绝信息时,生成第一空event并广播给其它节点;
在接收所述第三event时,与所述第一节点相互同步历史event;以及,对所述第三event的self‑parent和other‑parent签名,将签名后的所述self‑parent和other‑parent发送给所述第一节点,以供所述第一节点:将当前节点的ID与签名后的所述self‑parent和other‑parent写入所述第三event的otherIDs字段和otherSig字段以更新所述第三event;
将更新后的所述第三event广播给其它节点。
4.根据权利要求3所述的方法,其特征在于,所述将更新后的所述第三event广播给其它节点包括:
将更新后的所述第三event广播给当前节点;
所述方法还包括:
在接收到更新后的所述第三event时,判断所述更新后的所述第三event的otherIDs字段和otherSig字段是否包括当前节点的ID与签名后的所述self‑parent和other‑parent:是,则将更新后的所述第三event广播给其它节点。
5.根据权利要求3所述的方法,其特征在于,在所述更新后的所述第三event的otherIDs字段和otherSig字段不包括当前节点的ID与签名后的所述self‑parent和other‑parent时,重新指定第一节点,并返回所述向第一节点发送第一代理打包请求信息。
6.根据权利要求3所述的方法,其特征在于,所述在接收所述第一拒绝信息时,生成第一空event并广播给其它节点包括:在接收第一拒绝信息时,将拒收次数加一以更新拒收次数;
判断更新的所述拒收次数是否达到第二数值:是,则生成第一空event并广播给其它节点;
否,则新指定第一节点,并返回所述向第一节点发送第一代理打包请求信息。
7.根据权利要求1所述的方法,其特征在于,所述网络为区块链网络,所述生成第一event包括:
在达到预配置的第一条件时,blockchain模块根据交易池中的各交易生成第一event并通过p2p模块广播给其它区块链节点;其中,所述第一条件包括以下至少任意一项:所述交易池的交易总量达到第一数值、距离生成最新的event已达到第一时长、收到其它区块链节点广播的第六event;
所述方法还包括:
交易池模块接收用户的客户端所生成的交易;其中,所述交易将不会被广播到其它区块链节点;
p2p模块接收其它区块链节点广播的第四event,并将所述第四event发送至所述共识模块;
所述共识模块根据hashgraph算法对本地尚未确定顺序的各第五event进行排序,若第一接收轮次相同的所有event均已排序,则所述共识模块按序根据所述第一接收轮次相同的所有event生成第一区块;其中,所述第一区块将不会被广播到其它区块链节点,所述第一区块的第一区块高度为所述第一接收轮次;
所述blockchain模块执行所述第一区块。
8.根据权利要求7所述的方法,其特征在于,所述共识模块根据hashgraph算法对本地尚未确定顺序的各第五event进行排序包括:所述共识模块根据hashgraph算法对本地尚未确定顺序的各第五event进行排序;
分别对各所述第五event执行如下操作:若所述第五event可被明确排序,则对所述第五event中的各交易进行验签:若所述第五event中存在任一交易的验签不通过,则将生成所述第五event的区块链节点加入黑名单;其中,所述黑名单中的区块链节点所生成的event将被拒收。
9.根据权利要求8所述的方法,其特征在于,第一用户在当前节点进行注册,所述交易池模块接收用户的客户端所生成的交易包括:所述交易池模块接收第一交易;
判断所述第一交易是否由所述第一用户的第一客户端生成:否,则删除所述第一交易;
是,则删除所述第一交易的签名信息;
所述blockchain模块根据交易池中的各交易生成第一event包括:所述blockchain模块根据所述交易池中的各交易、所述第一用户所持有的第一私钥、当前节点所持有的第二私钥生成第一event;
所述对所述第五event中的各交易进行验签包括:根据所述第五event中的第二用户所持有的第二私钥对所述第五event中的各交易进行整体验签。
10.一种计算机设备,其特征在于,所述设备包括:一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1‑9中任一项所述的方法。
11.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1‑9中任一项所述的方法。