首页> 中国专利> 区块链系统参数更新方法和系统

区块链系统参数更新方法和系统

摘要

本说明书实施例公开了一种区块链系统参数更新方法和系统。所述方法包括周期性地或每当监测到预设数量的新增区块时,触发以下参数更新流程:获取第一历史交易数据,所述第一历史交易数据包括一段时间内发起的区块链交易;基于所述第一历史交易数据,确定待更新的区块链系统参数;发起包括所述待更新的区块链系统参数的的区块链交易。

著录项

  • 公开/公告号CN112448855A

    专利类型发明专利

  • 公开/公告日2021-03-05

    原文格式PDF

  • 申请/专利号CN202110116792.9

  • 发明设计人 夏凝;

    申请日2021-01-28

  • 分类号H04L12/24(20060101);H04L29/08(20060101);G06F8/65(20180101);

  • 代理机构51253 成都七星天知识产权代理有限公司;

  • 代理人杨永梅

  • 地址 310000 浙江省杭州市西湖区西溪路556号8层B段801-11

  • 入库时间 2023-06-19 10:06:57

说明书

技术领域

本说明书涉及信息技术领域,特别涉及一种区块链系统参数更新方法和系统。

背景技术

区块链系统的参数需要根据业务需求进行更新,否则无法跟上具体业务场景下功能诉求(例如,要求低时延、高交易量、优化存储使用等)的不断变化,现有技术中没有一种有效更新区块链系统参数的方法。

发明内容

本说明书实施例之一提供一种区块链系统参数更新方法。所述方法包括周期性地或每当监测到预设数量的新增区块时,触发参数更新流程。所述参数更新流程包括:获取第一历史交易数据,所述第一历史交易数据包括一段时间内发起的区块链交易;基于所述第一历史交易数据,确定待更新的区块链系统参数;发起用于更新区块链系统参数的区块链交易,该区块链交易包括所述待更新的区块链系统参数。

本说明书实施例之一提供一种区块链系统参数更新系统。所述系统包括触发模块和参数更新模块。所述触发模块用于:周期性地或每当监测到预设数量的新增区块时,触发所述参数更新模块工作。所述参数更新模块用于:获取第一历史交易数据,所述第一历史交易数据包括一段时间内发起的区块链交易;基于所述第一历史交易数据,确定待更新的区块链系统参数;发起触发区块链系统参数更新的区块链交易,该区块链交易包括所述待更新的区块链系统参数。

本说明书实施例之一提供一种区块链系统参数更新装置。所述装置包括处理器和存储设备。所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的区块链系统参数更新方法。

附图说明

本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:

图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图;

图2是根据本说明书一些实施例所示的区块链系统参数更新方法的示例性流程图;

图3是根据本说明书一些实施例所示的区块链系统参数更新系统的示例性模块图。

具体实施方式

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。

如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图。如图1所示,区块链系统100可以包括用户端110和区块链网络120,其中,区块链网络120可以包括多个区块链节点(以下简称节点),例如,节点120-1、节点120-2、节点120-3、...、节点120-n。

在一些实施例中,用户端110可以包括各类计算设备,如智能电话、平板电脑、膝上型计算机、台式计算机等等。

在一些实施例中,节点可以包括各类计算设备,如智能电话、平板电脑、膝上型计算机、台式计算机、服务器等等。其中,服务器可以是独立的服务器或者服务器组,该服务器组可以是集中式的或者分布式的。在一些实施例中,服务器可以是区域的或者远程的。在一些实施例中,服务器可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。

区块链系统100是一个分布式系统,每个节点都可存有一份区块链数据(如区块数据),利用密码学、共识算法等技术可保证区块链数据的不可篡改性和一致性。

区块链系统100中的事件可通过区块链交易(以下简称交易)触发。在一些实施例中,所述事件可包括新成员的注册/注销、转账、数据存证、数据查询、智能合约的创建、更新、调用等中的至少一种。

交易可由用户端110或节点生成并在区块链网络120中广播,即用户端110和节点均可发起交易。

任一节点可视作交易发起方的服务端。响应于接收到交易,节点可执行(调用)预设代码以实现相应行为(如转账),此过程也称作交易的执行。节点可按是否参与共识分为共识节点和普通节点,共识节点由于参与共识相对普通节点需要保存更多的区块链数据,因此共识节点也称作全量节点,普通节点也称作轻量节点。例如,轻量节点保存的区块可以不包括交易。另外,轻量节点由于保存了相对少量的区块链数据,在传输交易的同时可以不负责交易的执行,即一般由共识节点(全量节点)执行交易。

节点可基于一段时间内接收到的交易生成区块,换言之,每个区块包括一个或多个交易。区块链即由不断生成的区块链接而成。

系统参数内嵌于区块链系统中全局通用的逻辑,如交易的执行、区块的生成等等。在同一时刻,各节点遵循的系统参数相同,以保证区块链系统的一致性。在一些实施例中,系统参数可以包括执行交易允许消耗的成本(如以太坊或类似区块链架构中的gas)的上限、生成区块的时间间隔(简称出块间隔)上限、单个区块中交易数量的上限中的至少一项。其中,除了交易执行消耗的计算机资源外,成本还可以来自交易执行过程中触发的人工操作(如人工审核)。

系统参数影响着区块链系统的全局性能,当在具体的业务场景下性能诉求发生了变化,就需要去更新系统参数。性能诉求可以包括要求高交易吞吐量(低时延)、优化存储使用、高交易手续费等。参考前述内容,对区块链系统参数(简称系统参数)的配置也可通过交易触发,该交易可包括待更新的系统参数。为了适应性能诉求的变化,可以人工输入待更新的系统参数,以发起用于更新系统参数的交易。

可以理解,人工更新系统参数的频次可能无法跟上性能诉求的不断变化,并且人工更新依赖性能估算或人工经验确定输入的待更新的系统参数的具体值,参数更新后实际产生的效果可能有待提高。

有鉴于此,本说明书实施例提供了一种可以自动化地更新区块链系统参数的方法,以期通过高频次的系统参数更新来适应不断变化的性能诉求以及提高参数更新后实际产生的效果。具体地,可以参考图2及其相关描述,这里不再赘述。

智能合约(简称合约)是运行在区块链上的模块化、可重用、自动执行的脚本。部署合约时合约代码(如字节码)被存储到各区块链节点,每个(份)合约对应一个合约地址。当预定的条件发生时,可产生一笔包含要调用的智能合约的账户地址的交易,区块链网络120中的节点都可执行合约代码,并将执行结果写入区块链数据。

账户可作为区块链系统的基本用户单位。每个账户可具有其唯一标识,该唯一标识也可称作账户地址,与账户关联的区块链数据可通过账户地址来访问。交易中可放入交易发起者的账户地址,以指明交易发起者的身份,可视为账户发起了交易。对于支持智能合约的区块链系统,账户可包括两类:一类属于实体,如个人、组织等,可称作外部账户;一类属于智能合约,可称作合约账户。合约账户的存储包括合约代码和账户存储,均与合约账户的地址关联且作为区块链数据的一部分。其中,可在账户存储写入合约代码中的变量(简称合约变量),合约变量交易中可放入合约账户的地址(简称合约地址),以供调用该合约账户的存储中的合约代码。

值得说明的是,本说明书提及的关联可以通过键值对(key-value)实现,查询方可通过提供关键字(key)获得关联的值(value)。例如,key可以是合约地址,value可以是账户存储。又如,key可以是某个系统参数的变量名,value可以是该系统参数的变量值。

账户的状态(即账户状态)也可作为区块链数据的一部分。在一些实施例中,账户状态可包括账户余额、交易计数等。其中,交易计数用于对外部账户发起的交易或合约账户接收到的交易进行计数。对于合约账户,账户状态还可以包括合约代码的哈希值和用于映射账户存储的默克尔树的根哈希。

在一些实施例中,可以将区块链系统中全局通用的逻辑(如交易执行、区块生成)写入智能合约,供各个节点调用。为了便于描述,可将此类智能合约称作系统合约。系统参数即系统合约的变量,故系统参数可存储在系统合约的账户存储中。基于此,放入每个交易中的合约至少包括系统合约的账户地址。当然,对于不同的交易,除了调用的系统合约是相同的,调用的其他智能合约可以是不同的,这些智能合约的账户地址可以与系统合约的地址一同放入交易中。

前面提到,系统参数内嵌于区块链系统中全局通用的逻辑。在一些实施例中,当需要更新系统参数时,可以发送调用系统合约的交易,该交易包括待更新的系统参数的变量名和变量值。

图2是根据本说明书一些实施例所示的区块链系统参数更新方法的示例性流程图。该方法可由用户端110或节点执行。具体地,所述方法可以由如图3所示的可集成于用户端110或节点中的区块链系统参数更新系统300实现。

在一些实施例中,系统300可以周期性地触发参数更新流程200。例如,如图2上方所示,从t时刻开始每隔设定时长T可以触发一次参数更新流程200。

在一些实施例中,系统300可以实时监测区块数据,每当监测到预设数量的新增区块时,触发一次参数更新流程200。例如,如图2下方所示,每当检测到1个新增区块(参考图2中依次新增的第N-2个区块、第N-1个区块、第N个区块)时,可以触发一次参数更新流程200。在一些实施例中,新增区块的数量可以根据区块中指示区块产生顺序的字段的变化判断,该字段可称作区块高度。即,系统300可以实时查询区块高度,进而通过区块高度的变化判断新增区块的数量是否达到预设数量。应当理解,这里的“实时”可以指监测(查询)的时间间隔远小于出块间隔,以尽量确保能够监测到每个新增区块。例如,当出块间隔约为10s时,可以每隔1s监测一次新增区块的数量。

如图2所示,参数更新流程200可以包括步骤210、步骤220以及步骤230。

步骤210,获取第一历史交易数据,第一历史交易数据包括一段时间内发起的交易。

步骤220,基于第一历史交易数据,确定待更新的系统参数。

步骤230,发起用于更新系统参数的交易,该交易包括所述待更新的系统参数。

系统300可以是不参与链上行为(如交易执行、区块生成等)的链下系统,其与区块链网络120的交互包括获取历史区块链数据(如交易、区块等)以及上传用于更新系统参数的交易。

第一历史交易数据可以反映最近一段时间内的交易规律,而交易规律可以作为确定待更新的系统参数的依据。即,第一历史交易数据可用于确定待更新的系统参数。

在一些实施例中,系统300可以获取当前区块或者获取当前区块及其前N个区块,并从获取到的区块中提取第一历史交易数据。例如,系统300可以获取产生时间距当前时刻不超过设定阈值的一个或多个历史区块,并从中提取第一历史交易数据。又如,系统300可以获取连续产生的预设数量(不妨记为N+1)的历史区块。

在一些实施例中,获取的第一历史交易数据可以包括不在区块中的交易,因为一段时间内发起的所有交易中可能存在上链失败的交易(即未被写入区块)。

在一些实施例中,交易可以具有指示其产生时间的时间戳(交易时间戳),系统300可以根据交易时间戳获取产生时间产生时间距当前时刻不超过设定阈值的一个或多个交易作为第一历史交易数据,或者根据交易时间戳获取连续产生的预设数量的历史交易。

交易规律是指一段时间内发起的交易总体上呈现的规律。在一些实施例中,交易规律可以与一段时间内发起的交易的类型、存储大小、数量等中的至少一项相关。

在一些实施例中,系统300可以先基于第一历史交易数据确定第一交易规律,再根据第一交易规律确定待更新的系统参数。

应当理解,可以根据人工经验定义与系统参数关联的交易规律。仅作为示例,在提供股票服务的区块链系统中,发现一般在开盘时间(可视为白天)用户发起的交易多而在非开盘时间(可视为晚上)用户发起的交易少。那么:白天的性能诉求可以包括高交易吞吐量(低时延),相应地希望出块速度快,即需要出块间隔短以及单个区块中交易数量的上限低;晚上的性能诉求可以包括优化存储使用,交易频率低时容易产生不包含交易但仍消耗一定存储空间的空块,为了优化存储使用需要出块间隔长以及单个区块中交易数量的上限高。另外,非开盘时间发起的交易可以触发人工审核流程,如果交易本身提供的手续费不足,审核人(节点的用户)可能会拒绝继续执行交易,故此时的功能诉求是高交易手续费(与交易消耗的成本相关),需要将执行交易允许消耗的成本(如以太坊或类似区块链架构中的gas)的上限调高。

参考上述示例,在一些实施例中,交易规律可以包括一段时间内发起的各类型或特定类型的交易的占比、一段时间内发起的交易的数量是否达到阈值、一段时间内发起的交易的平均存储大小是否达到阈值等。例如,当一段时间内的交易量达到阈值时,可以设置短的出块间隔以及将单个区块中交易数量的上限调低,而当一段时间内的交易量达到第一阈值时,可以设置长的出块间隔以及将单个区块中交易数量的上限调低。又如,当在设定时间区间内(如非开盘时间)某一时段(如每小时作为一个时段)的交易量达到第二阈值时,将执行交易允许消耗的成本(如以太坊或类似区块链架构中的gas)的上限调高(相对开盘时间而言)。

在一些实施例中,系统300可以基于第一历史交易数据统计得到第一交易规律。

在一些实施例中,交易规律与历史交易数据间关系和/或系统参数与交易规律间关系也可以通过机器学习的方式确定。

例如,可以训练用于拟合交易规律与历史交易数据间关系的第一机器学习模型,第一机器学习模型的样本数据可包括多个第一样本对,每个第一样本对可包括一个历史时段内发起的交易(模型输入)和该历史时段内的交易规律(模型输出)。进而,系统300可以将第一历史交易数据输入训练好的第二机器学习模型中,并将模型的输出作为第一交易规律。

又如,可以训练用于拟合系统参数与交易规律间关系的第二机器学习模型,第二机器学习模型的样本数据可包括多个第二样本对,每个第二样本对可包括一个历史时段内的交易规律(模型输入)和系统参数(模型输出)。进而,系统300可以将第一交易规律输入训练好的第二机器学习模型中,并将模型的输出作为待更新的系统参数。可以理解,第二机器学习模型的样本数据来自的区块链系统可以支持人工更新系统参数。

在一些实施例中,第一机器学习模型和第二机器学习模型可以被单独的第三机器学习模型代替。进而,系统300可以将第一历史交易数据输入第三机器学习模型,并将模型的输出作为待更新的系统参数。在一些实施例中,第三机器学习模型的样本数据可以包括第三样本对,每个第三样本对包括一个历史时段内发起的交易(模型输入)和该历史时段内的系统参数(模型输出)。在又一些实施例中,可以融合训练好的第一机器学习模型和第二机器学习模型,得到训练好的第三机器学习模型。

值得说明的是,丰富的样本数据有助于提高模型的效果,故获取的样本数据对应的历史时段可以尽可能的长。例如,可以获取从创世区块(即第一个区块)开始的所有历史区块,并从所有历史区块中提取交易数据,进而基于所有历史区块中的交易生成样本数据(如第一/第二/第三样本对)。

仅作为示例,本说明书提及的机器学习模型可以包括线性回归模型、逻辑回归模型、多项式回归模型、逐步回归模型、岭回归模型、套索回归模型、弹性回归模型等中的至少一种。

应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。

图3是根据本说明书一些实施例所示的区块链系统参数更新系统的模块图。如图3所示,系统300可以包括触发模块310和参数更新模块320。

触发模块310可以用于:周期性地或每当监测到预设数量的新增区块时,触发参数更新模块320工作。

参数更新模块320可以用于执行参数更新流程200。

关于系统300及其模块的更多细节,可以参考图2及其相关描述。

应当理解,图3所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。

需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,参数更新模块320可以包括多个子模块,这些子模块分别用于执行流程200的子步骤。诸如此类的变形,均在本说明书的保护范围之内。

本说明书实施例可以带来的有益效果包括但不限于:(1)实现了区块链系统参数的自动化更新,相较于人工方式可以通过高频次的参数更新来适应不断变化的性能诉求;(2)通过拟合区块链系统参数与历史区块链数据间的最优关系,相较于人工方式可以提高参数更新后实际产生的效果。需要说明的是,不同实施例可以产生的有益效果不同,在不同的实施例里,可以产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可以获得的有益效果。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。

同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机存储介质可以包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可以有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。

本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。

此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。

最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号