部署智能合约的方法、系统和装置与流程

文档序号:16583023发布日期:2019-01-14 18:08阅读:188来源:国知局
部署智能合约的方法、系统和装置与流程

本发明涉及区块链技术,尤其涉及部署智能合约的方法、系统和装置。



背景技术:

在基于区块链的数字资产的系统实现中,在发行数字资产,发放数字资产,进行数字资产交易时都会涉及到账户和智能合约的处理,例如,积分作为数字资产时,会涉及到积分账户的创建,通过账户部署智能合约。基于区块链的积分系统或其它数字资产系统,账户和智能合约可以是通用的,智能合约通过不同的参考数来匹配不同的数字资产的业务操作,区块链的账户可以在积分等数字资产系统启动后创建,智能合约可以在数字资产系统启动后部署;区块链的账户也可以在数字资产系统启动前创建,智能合约可以在数字资产系统启动前部署。如果在数字资产系统启动前静态创建全部的账号和部署全部的智能合约,那么系统无法对账号和智能合约进行动态扩展,账号和智能合约的数量都静态配置和固定,系统无法满足用户提出需要更多的账户和部署更多的智能合约的要求。如果在系统启动后全部按需创建账号和部署合约,则由于创建账号和部署智能合约的时间太长,系统性能过低,大大影响用户体验。



技术实现要素:

针对上述问题,本发明提出了一种部署智能合约的方法,包括:创建指定类别的账户组和指定数量的智能合约;根据所创建的账户组的类别部署相应数量的智能合约;以及响应于申请账户的请求,基于所申请的账户的类别和所需的账户的数量,对与所申请的账户的类别相同类别的账户组中的账户和相应的智能合约进行分配。

一种实施方式中,如果经分配的账户组中未使用的账户的数量与第一参考数的比值小于第一阈值,则在所述经分配的账户组中创建与其类别相同的新账户,以使得未使用的账户的数量与第一参考数的比值达到第一阈值,并且创建与所述新账户数量上相对应的智能合约并将与所述新账户数量上相对应的智能合约部署给所述新账户。

一种实施方式中,以相同或不同的线程的方式在所述经分配的账户组中创建与其类别相同的新账户。

一种实施方式中,如果在所述经分配的账户组中创建完与其类别相同的新账户之后所有类别的账户组的未使用的智能合约的总数量与第二参考数的比值低于第二阈值,则创建与经分配的智能合约相同的新智能合约,以使得所有类别的账户组的未使用的智能合约的总数量与第二参考数的比值达到所述第二阈值。

一种实施方式中,以相同或不同的线程的方式创建与经分配的智能合约相同的新智能合约。

本发明另一方面还提供了一种部署智能合约的系统,包括:预加载模块,被配置为创建指定类别的账户组和指定数量的智能合约,并且根据所创建的账户组的类别部署相应数量的智能合约;和分配模块,被配置为响应于申请账户的请求,基于所申请的账户的类别和所需的账户的数量,对与所申请的账户的类别相同类别的账户组中的账户和相应的智能合约进行分配。

一种实施方式中,所述分配模块还被配置为:如果经分配的账户组中未使用的账户的数量与第一参考数的比值小于第一阈值,则在所述经分配的账户组中创建与其类别相同的新账户,以使得未使用的账户的数量与第一参考数的比值达到第一阈值,并且创建与所述新账户数量上相对应的智能合约并将与所述新账户数量上相对应的智能合约部署给所述新账户。

一种实施方式中,所述分配模块还被配置为:以相同或不同的线程的方式在所述经分配的账户组中创建与其类别相同的新账户。

一种实施方式中,所述分配模块还被配置为:如果在所述经分配的账户组中创建与其类别相同的新账户后所有类别的账户组的未使用的智能合约的总数量与第二参考数的比值低于第二阈值,则创建与经分配的智能合约相同的新智能合约,以使得所有类别的账户组的未使用的智能合约的总数量与第二参考数的比值达到所述第二阈值。

一种实施方式中,所述分配模块还被配置为:以相同或不同的线程的方式创建与经分配的智能合约相同的新智能合约。

本发明另一方面还提供了一种部署智能合约的装置,包括:存储器,其用于存储指令;以及处理器,其耦合到所述存储器,所述指令在由所述处理器执行时使得所述装置执行上述方法中任一项所述的方法。

本发明另一方面还提供了一种计算机可读存储介质,所述存储介质包括指令,所述指令被执行时,使得所述计算机的处理器执行上述方法中任一项所述的方法。

本发明通过预加载创建一定数量的账户和部署相应数量的智能合约,然后基于创建账户的数量和部署智能合约的数量结合设定的阈值来动态创建账户和部署智能合约,考虑到直接创建账号和部署智能合约所花费的时间过长,对系统创建账号和部署智能合约进行动态处理,减少了系统运行过程中创建账号和部署智能合约的时间,提升了用户使用积分等数字资产系统的体验

附图说明

图1是根据本发明的实施例的部署智能合约的方法100的流程图;

图2是根据本发明的实施例的部署智能合约的系统200的框图;

图3根据本发明的实施例的部署智能合约的装置300的示意图。

具体实施方式

以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。

本文所使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”,表示还可以包括其他内容。术语“基于”是“至少部分地基于"。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”,等等。

对于相关领域普通技术人员已知的技术、方法和装置可能不作详细讨论,但在适当情况下,所述技术、方法和装置应当被视为说明书的一部分。对于附图中的各单元之间的连线,仅仅是为了便于说明,其表示至少连线两端的单元是相互通信的,并非旨在限制未连线的单元之间无法通信。

以下结合附图对本发明进行详细描述

图1是根据本发明的实施例的部署智能合约的方法100的流程图

步骤s101:创建指定类别的账户组和指定数量的智能合约,其中,每类账户组包括一个或多个账户,每个账户包括区块链生成的公钥和私钥、账户名称等,每个账户的状态包括未使用和已使用,初始状态为未使用,并且每个账户对应于一个或多个智能合约,当账户被用户申请掉后该账户状态变为已使用。创建账户的数量和创建智能合约的数量均受系统的硬件资源(应理解,本文中的硬件资源包括但不限于cpu使用率、内存使用率、磁盘存储空间使用率等)大小限制,例如,在一个实施例中,创建账户占用的磁盘存储空间不能超过总磁盘存储空间的30%。在一个实施例中,创建账户和智能合约所占的磁盘存储空间的总和不能超过总磁盘存储空间的70%。在一个实施例中,账户组分为5个类别。应理解的是,账户组的类别和智能合约的数量均可以根据需要进行调整。

步骤s102:根据所创建的账户组的类别部署相应数量的智能合约,其中,每个智能合约的状态包括未使用和已使用,初始状态为未使用,,当部署的智能合约随账户一起被用户申请后,该智能合约的状态变为已使用。

步骤s103:当个人用户或企业用户单个申请或批量申请账户时,根据申请账户的类别和所需的账户的数量,分配与所申请的账户的类别相同的账户组中的账户及其相应的智能合约。应理解的是,用户一次只能申请一种类别的账户。

步骤s104:如果经分配的账户组中未使用的账户的数量与第一参考数的比值小于第一阈值,其中,第一参考数为经分配的账户组在初次被创建时所具有的账户的总数量,则执行步骤s105,否则结束过程。在一种实施方式中,第一阈值被设定为70%。应理解的是,第一阈值可以根据需要进行调整并且可以以任何适合的方式进行设定。还应理解的是,第一参考数也可以是指定的数值,或者其它任何合适的数值。

步骤s105:在经分配的账户组中创建与其类别相同的新账户,以增加未使用的账户的数量,从而使得未使用的账户的数量与第一参考数的比值达到第一阈值,同时会创建与新账户数量上相对应的智能合约并将该智能合约部署给新账户。在一种实施方式中,以相同或不同线程的方式在经分配的账户组中创建与其类别相同的新账户。在一种实施方式中,以相同或不同线程的方式创建与新账户数量上相对应的智能合约。

步骤s106:如果在经分配的账户组中创建完与其类别相同的新账户之后所有类别的账户组的未使用的智能合约的总数量与第二参考数的比值低于第二阈值,其中,第二参考数为初次创建账户组时所有账户组的智能合约的总数量,则执行步骤s107,否则结束过程。在一种实施方式中,第二阈值被设定为70%。应理解的是,第二阈值可以根据需要进行调整并且可以以任何适合的方式进行设定。还应理解的是,第二参考数也可以是指定的数值,或者其它任何合适的数值。

步骤s107:创建与经分配的智能合约相同的新智能合约,以增加未使用的智能合约数量,从而使得未使用的智能合约的总数量第二参考数的比值达到第二阈值。应理解的是,创建的新智能合约可供后续部署给已有类别的账户使用,也可以备份作为后续新建类别的账户使用。在一种实施方式中,以相同或不同的线程的方式创建与经分配的智能合约相同的新智能合约。

为了更好地说明上述部署智能合约的方法,给出以下的示例。

示例1:

创建了a类和b类账户组,其中,a类账户组有10个a类账户并且每个账户有3个智能合约,而b类账户组有10个b类账户并且每个账户有4个智能合约,用户第一次申请4个a类账户,第一次分配后a类账户组中还剩未使用的6个账户,未使用的账户的数量与第一参考数(即a类账户组初始的账户的总数量)的比值为60%,小于70%(第一阈值),于是需要在经分配的a类账户组中创建1个新的a类账户来达到第一阈值以供下次用户申请a类账户时使用同时创建与该新的a类账户相对应的3个智能合约并将这3个智能合约部署给新建的a类账户,此时,a类账户组中共有7个未使用的账户并且对应地有21个智能合约,总的未使用的智能合约数为61个(a类中未使用的智能合约数加上b类中未使用的智能合约数),与第二参考数的比值为87.1%,大于70%(第二阈值),于是结束过程。第二次申请时,申请5个a类账户,第二次分配后,a类账户还剩2个未使用的账户,未使用的账户的数量与第一参考数的比值为20%,小于70%(第一阈值),于是在经分配的a类账户组中创建5个新的a类账户来达到第一阈值以供再下一次用户申请a类账户时使用,同时创建与5个新的a类账户相对应的15个智能合约,此时,a类账户中共有7个未使用的账户对应地有21个智能合约,总的未使用的智能合约数61个,与第二参考数的比值为87.1%,大于70%(第二阈值),结束过程,如果说此时第二阈值设定为90%,那么需要创建2个新智能合约来使得总的未使用的智能合约数达到63个,从而使得总的未使用的智能合约数与第二参数的比值达到90%。

示例2:

该示例的背景与示例1一样,并且第一次申请时跟示例1一样,第二次申请时,申请5个b类账户,第二次分配后,b类账户还剩5个账户,b类账户未使用的账户的数量与第一参数的比值为50%,小于70%(第一阈值),于是在经分配的b类账户组中创建2个新的b类账户来达到第一阈值以供下次用户申请b类账户时使用,同时创建与该2个新的b类账户相对应的8个智能合约并将这8个智能合约部署给2个新建的b类账户,此时,总的未使用的智能合约数量(a类中未使用的智能合约数加上b类中未使用的智能合约数为49个)与第二参考数(70个)的比值为70%,等于第二阈值,结束过程,同样假如第二阈值设为80%,那么还需要7个智能合约来使得总的未使用的智能合约数达到56个,从而总的未使用的智能合约数与第二参数的比值达到第二阈值。

应理解,以上只是列举了两个示例以示说明,实际用中可以涉及多个类别的应用场景,类似于上述过程。

本发明通过预加载创建一定数量的账户和部署相应数量的智能合约,然后基于创建账户的数量和部署智能合约的数量结合设定的阈值来动态创建账户和部署智能合约,减少了系统运行时间,提升了用户体验。

图2根据本发明的实施例的部署智能合约的系统200的框图。

系统200包括预加载模块201和分配模块202。

预加载模块201被配置为创建指定类别的账户组和指定数量的智能合约,并且根据所创建的账户组的类别部署相应数量的智能合约。

分配模块202被配置为响应于申请账户的请求,基于所申请的账户的类别和所需的账户的数量,对与所申请的账户的类别相同类别的账户组中的账户和相应的智能合约进行分配。

在一种实施方式中,分配模块202还被配置为:如果经分配的账户组中未使用的账户的数量与第一参考数的比值小于第一阈值,则在经分配的账户组中创建与其类别相同的新账户,以使得未使用的账户的数量与第一参考数的比值达到第一阈值,并且创建与新账户数量上相对应的智能合约并将与新账户数量上相对应的智能合约部署给新账户。

在另一种实施方式中,分配模块202还被配置为:以相同或不同的线程的方式在经分配的账户组中创建与其类别相同的新账户。

在另一种实施方式中,分配模块202还被配置为:如果在经分配的账户组中创建与其类别相同的新账户后所有类别的账户组的未使用的智能合约的总数量与第二参考数的比值低于第二阈值,则创建与经分配的智能合约相同的新智能合约,以使得所有类别的账户组的未使用的智能合约的总数量与第二参考数的比值达到第二阈值。

在另一种实施方式中,分配模块还被配置为:以相同或不同的线程的方式创建与经分配的智能合约相同的新智能合约。

图3示出了根据本发明的实施例的部署智能合约的装置300的示意图。

装置300可以包括:存储器301和耦合到存储器301的处理器302。存储器301用于存储指令,处理器302被配置为基于存储器301存储的指令来实现针对图1所描述的方法的步骤中的任何步骤中的一个或多个。

如图3所示,装置300还可以包括通信接口303,用于与其它设备进行信息交互。此外,装置300还可以包括总线304,存储器301、处理器302和通信接口303通过总线304来彼此进行通信。

存储器301可以包括易失性存储器,也可以包括非易失性存储器。处理器302可以是中央处理器(cpu)、微控制器、专用集成电路(asic)、数字信号处理器(dsp)、现场可编程门阵列(fpga)或其它可编程逻辑器件、或是被配置为实现本发明的实施例的一个或多个集成电路。

替代地,上述部署智能合约的方法能够通过计算机程序产品,即有形的计算机可读存储介质来体现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

需要注意的是,以上列举的仅为本发明的具体实施例,显然本发明不限于以上实施例,随之有着许多的类似变化。本领域的技术人员如果从本发明公开的内容直接导出或联想到的所有变形,均应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1