CN117172913A - 一种基于智能合约的合约变更手续执行方法及系统 - Google Patents
一种基于智能合约的合约变更手续执行方法及系统 Download PDFInfo
- Publication number
- CN117172913A CN117172913A CN202311320764.4A CN202311320764A CN117172913A CN 117172913 A CN117172913 A CN 117172913A CN 202311320764 A CN202311320764 A CN 202311320764A CN 117172913 A CN117172913 A CN 117172913A
- Authority
- CN
- China
- Prior art keywords
- contract
- service
- request
- hash
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 116
- 230000008859 change Effects 0.000 title claims abstract description 100
- 230000004044 response Effects 0.000 claims abstract description 32
- 238000012508 change request Methods 0.000 claims abstract description 24
- 238000012790 confirmation Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 15
- 238000012795 verification Methods 0.000 claims description 30
- 238000013507 mapping Methods 0.000 claims description 24
- 230000002159 abnormal effect Effects 0.000 claims description 23
- 238000011084 recovery Methods 0.000 claims description 21
- 238000004364 calculation method Methods 0.000 claims description 13
- 230000001502 supplementing effect Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 claims description 5
- 238000004806 packaging method and process Methods 0.000 claims 1
- 238000007726 management method Methods 0.000 description 31
- 238000012546 transfer Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 108091081062 Repeated sequence (DNA) Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种基于智能合约的合约变更手续执行方法及系统,该方法包括:初始化区块链网络;接收注册请求,进行身份注册,构建可参与节点池;接收业务请求,匹配合约类型,将该用户节点添加至对应的区块链子网络;接收还款确认请求,更新还款记录;接收合约变更请求,确定合约变更情况;根据合约变更情况生成新的业务智能合约;接收合约履行请求,调用智能合约执行程序,在执行成功时设置合约完毕标识为真;响应于合约完毕标识为真,调整权限。利用合约管理表进行管理每个用户所关联的合约ID,在调用智能合约时,根据合约管理表对每个用户的业务进行自适应管理,提高了对合约变更时处理的灵活性和扩展性。
Description
技术领域
本申请涉及信息技术领域,具体涉及一种基于智能合约的合约变更手续执行方法及系统。
背景技术
区块链是一种分布式账本技术,涉及共识算法、密码学、分布式存储等不同领域的计算机技术,具有去中心化、不可篡改、可溯源等特性。其中智能合约能够允许在没有第三方的情况下进行可信的交易,并且这些交易是无法被追踪、同时也是不可逆的。
然而相关技术中,智能合约管理平台提供一些通用合约模板的处理方式单一。由于区块链具有的不可篡改的特点,智能合约代码在部署于区块链上后就无法被修改。如果存在金融业务关系的贷款用户所绑定的合约出现变更情况时,需要为逻辑或数据变动而更新合约代码,通过部署一个新的合约,并生成一个新的合约地址,这也导致在合约变更手续时存在一定的局限性,例如扩展性较差的问题,且无法及时满足业务变动时造成的需求多样性。
发明内容
为了克服现有技术存在的缺陷与不足,本申请提供了一种基于智能合约的合约变更手续执行方法及系统。
为了达到上述目的,本申请采用以下技术方案:
根据本申请的一个方面,提供了一种基于智能合约的合约变更手续执行方法,用于贷款区块链管理平台,所述贷款区块链管理平台在服务端中加载并支撑贷款业务;
所述方法包括初始化阶段、业务关联阶段、业务执行阶段、合约变更阶段和业务结束阶段,所述初始化阶段在第一服务器中运行,所述业务关联阶段、所述业务执行阶段、所述合约变更阶段和所述业务结束阶段均在第二服务器中运行,所述服务端为由所述第一服务器和所述第二服务器组成的服务器集群;
在初始化阶段中,包括:S1.初始化区块链网络,根据所有的贷款业务类型分别通过第一业务合约映射表进行匹配以确定M个智能合约模板;
S2.接收由用户节点发起的注册请求,对用户节点进行身份注册,以使完成身份注册的用户节点具有可参与标识,统计所有具有可参与标识的用户节点进行构建可参与节点池,并将所述可参与节点池发送至第二服务器;
在业务关联阶段中,包括:S3.接收由具有可参与标识的用户节点发起的业务请求,根据贷款业务类型进行匹配合约类型,将该用户节点添加至对应的区块链子网络;
在业务执行阶段中,包括:S4.接收由用户节点发出的还款确认请求,基于还款确认请求对合约ID对应的区块链子网络进行更新还款记录;
在合约变更阶段中,包括:S5.接收由用户节点发起的合约变更请求,解析合约变更请求,进而确定合约变更情况,其中所述合约变更请求包括用户ID、原合约ID和合约变更情况,所述合约变更情况为针对业务协议信息的变更元素集合;
S6.根据合约变更情况生成新的业务智能合约以更新合约ID,在合约管理表中将原合约ID进行替换更新,以使调用智能合约时执行最新的合约手续,进而对原有的业务智能合约进行完成更新,所述合约管理表用于管理每个用户所关联的合约ID;
在业务结束阶段中,包括:S7.接收由用户节点发起的合约履行请求,根据合约ID对用户ID调用智能合约执行程序,在执行成功时设置合约完毕标识为真;
S8.响应于合约完毕标识为真,根据合约ID将相应容器元素里的参与节点进行调整权限;
其中所述业务请求包含贷款业务类型、业务协议信息和用户ID,所述可参与节点池用于为每个容器元素对应的区块链子网络进行分配共识验证的参与节点,每个容器元素复制一份可参与节点池以用于在业务进行时补充帮助达成共识验证的参与节点。
根据本申请的另一个方面,提供了一种基于智能合约的合约变更手续执行系统,用于贷款区块链管理平台,所述贷款区块链管理平台在服务端中加载并支撑贷款业务;
所述系统包括初始化模块、业务关联模块、业务执行模块、合约变更模块和业务结束模块,所述初始化模块在第一服务器中运行,所述业务关联模块、所述业务执行模块、所述合约变更模块和所述业务结束模块均在第二服务器中运行,所述服务端为由所述第一服务器和所述第二服务器组成的服务器集群;
所述初始化模块包括贷款业务类型匹配子模块和注册响应子模块,所述合约变更模块包括合约变更情况确定子模块和合约ID更新子模块,所述业务结束模块包括第一合约履行响应子模块,第二合约履行响应子模块和第三合约履行响应子模块;
所述贷款业务类型匹配子模块用于初始化区块链网络,根据所有的贷款业务类型分别通过第一业务合约映射表进行匹配以确定M个智能合约模板;
所述注册响应子模块用于接收由用户节点发起的注册请求,对用户节点进行身份注册,以使完成身份注册的用户节点具有可参与标识,统计所有具有可参与标识的用户节点进行构建可参与节点池,并将所述可参与节点池发送至第二服务器;
所述业务关联模块,用于接收由具有可参与标识的用户节点发起的业务请求,根据贷款业务类型进行匹配合约类型,将该用户节点添加至对应的区块链子网络;
所述业务执行模块,用于接收由用户节点发出的还款确认请求,基于还款确认请求对合约ID对应的区块链子网络进行更新还款记录;
所述合约变更情况确定子模块,用于接收由用户节点发起的合约变更请求,解析合约变更请求,进而确定合约变更情况,其中所述合约变更请求包括用户ID、原合约ID和合约变更情况,所述合约变更情况为针对业务协议信息的变更元素集合;
所述合约ID更新子模块,用于根据合约变更情况生成新的业务智能合约以更新合约ID,在合约管理表中将原合约ID进行替换更新,以使调用智能合约时执行最新的合约手续,进而对原有的业务智能合约进行完成更新,所述合约管理表用于管理每个用户所关联的合约ID;
第一合约履行响应子模块,用于接收由用户节点发起的合约履行请求,根据合约ID对用户ID调用智能合约执行程序,在执行成功时设置合约完毕标识为真;
第二合约履行响应子模块,用于响应于合约完毕标识为真,根据合约ID将相应容器元素里的参与节点进行调整权限,其中所述业务请求包含贷款业务类型、业务协议信息和用户ID,所述可参与节点池用于为每个容器元素对应的区块链子网络进行分配共识验证的参与节点,每个容器元素复制一份可参与节点池以用于在业务进行时补充帮助达成共识验证的参与节点;
第三合约履行响应子模块,用于根据预设周期对所有容器元素进行检测,当任一容器元素内的所有参与节点均只含有可参与标识时,释放该容器元素中的节点个数直至剩余3个,以继续为旧的存储数据进行备份。
本申请与现有技术相比,具有如下优点和有益效果:
(1)将初始化阶段运行于第一服务器,使得用户注册过程与业务处理过程相互隔离,通过构建可参与节点池,为第二服务器在业务处理过程中提供用于共识验证的参与节点,每个容器元素复制一份可参与节点池以用于在业务进行时补充帮助达成共识验证的参与节点,以提高区块链子网络在验证时的灵活度。
(2)通过结合当前合约类型所对应的智能合约模板以生成业务智能合约,进而满足每个借款人的个性化需求,将业务智能合约部署后,通过智能合约的形式进行自动执行和管理,确保双方权益的维护,利用区块链子网络以去中心化方式连接借方和贷方,实现信息的共享和透明化,方便贷款机构进行监督和管理,进一步利用合约管理表进行管理每个用户所关联的合约ID,在调用智能合约时,根据合约管理表对每个用户的业务进行自适应管理,通过合约类型确定在智能合约模板,根据用户ID和合约ID确定业务协议信息,进而当出现合约变更手续的情况时,通过及时匹配正确的业务协议信息使得智能合约无需重新整体部署,提高了对合约变更时处理的灵活性和扩展性,通过替换新的合约ID以模块化的方式实现对业务的自适应更新。
(3)基于第一业务哈希编码,在共识机制进行校验时通过分别校验以确定数据篡改的部分,基于第二业务哈希编码,将两种不同的预设哈希方法进行叠加,减少了一次哈希值存在碰撞导致验证出错的情况,进而保证链上其余参与节点的共识验证时的准确性和可靠性。
(4)将任一合约类型对应的业务请求的瞬时请求次数与请求阈值的判断作为对突发扩容响应的前置触发条件,进而避免低请求次数造成扩容的误操作,提高了容量集合在扩容时的可靠性。
(5)利用异常中断恢复标识作为触发条件,构成待恢复请求集合,依次遍历待恢复请求集合,对当前遍历的待恢复请求判断为合约变更请求时,利用第一参考信息的用户ID、原合约ID与合约管理表进行对比,进而实现对异常中断情况进行自适应恢复,通过对异常中断恢复的情况进行处理,提高了合约变更手续运行时的稳定性,提高了异常中断恢复情况的用户体验度。
附图说明
图1为本申请实施例1中基于智能合约的合约变更手续执行方法的流程示意图;
图2为本申请实施例1中确定M个智能合约模板的步骤示意图;
图3为本申请实施例1中将用户节点添加至对应的区块链子网络的步骤示意图;
图4为本申请实施例1中合约管理表的示意框图;
图5为本申请实施例2中业务中断恢复阶段的流程示意图;
图6为本申请实施例2中对异常中断情况进行自适应恢复的步骤示意图;
图7为本申请实施例3中基于智能合约的合约变更手续执行系统的示意框图;
图8为本申请实施例4中的一种终端的结构示意图;
图9为本申请实施例5中一种计算机设备的结构示意图。
具体实施方式
在本公开的描述中,需要说明的是,下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。应当理解,本公开的方法实施方式中记载的各个步骤可以按和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
实施例1
在此先对应用本申请实施例的技术方案的示例性系统架构的示意图进行说明,本申请的系统架构可以包括终端设备、网络和服务端。其中,终端设备包括智能手机和计算机中的一种或多种,计算机可以是平板、便携式计算机或台式计算机等等,网络用于在终端设备和服务端之间提供通信链路的介质。网络可以包括各种连接类型,例如有线通信链路、无线通信链路等等。应该理解,终端设备、网络和服务端的数目根据实现需要,可以具有任意数目的终端设备、网络和服务端。用户可以使用终端设备通过网络与服务端交互,以接收或发送消息等。
需要说明的是,本申请实施例所提供的基于智能合约的合约变更手续执行方法由服务端执行,服务端为由第一服务器和第二服务器组成的服务器集群。
如图1所示,本实施例提供一种基于智能合约的合约变更手续执行方法,该方法应用于贷款区块链管理平台,该贷款区块链管理平台在服务端中加载并支撑贷款业务;
该方法包括初始化阶段、业务关联阶段、业务执行阶段、合约变更阶段和业务结束阶段;
初始化阶段在第一服务器中运行,业务关联阶段、业务执行阶段、合约变更阶段和业务结束阶段均在第二服务器中运行;
在初始化阶段中,包含步骤S1至S2,具体包括:
S1.在第一服务器中,初始化区块链网络,根据所有的贷款业务类型分别通过第一业务合约映射表进行匹配以确定M个智能合约模板;
结合图2所示,在本实施例中,根据所有的贷款业务类型分别通过第一业务合约映射表进行匹配以确定M个智能合约模板,具体包括:
S101.利用预存的第一业务合约映射表,通过遍历所有的贷款业务类型以匹配M个合约类型,第一业务合约映射表用于建立贷款业务类型与合约类型的映射关系,M为正整数且与贷款业务类型的数量相同;
S102.对每个合约类型分别配置相应的智能合约模板,获得M个智能合约模板;在本实施例中,每个智能合约模板为逻辑模板,该逻辑模板与数据信息隔离,需要与业务协议信息进行结合生成业务智能合约。
S2.在第一服务器中,接收由用户节点发起的注册请求,对用户节点进行身份注册,以使完成身份注册的用户节点具有可参与标识,统计所有具有可参与标识的用户节点进行构建可参与节点池,并将可参与节点池发送至第二服务器;
在本实施例中,可参与节点池用于为每个容器元素对应的区块链子网络进行分配共识验证的参与节点,每个容器元素复制一份可参与节点池以用于在业务进行时补充帮助达成共识验证的参与节点。
在业务关联阶段中,包含步骤S3,包括:
S3.在第二服务器中,接收由具有可参与标识的用户节点发起的业务请求,根据贷款业务类型进行匹配合约类型,将该用户节点添加至对应的区块链子网络;
在本实施例中,业务请求包含贷款业务类型、业务协议信息和用户ID,利用预存的第一业务合约映射表可以根据贷款业务类型进行查询,获得相应的合约类型。
在本实施例中,将该用户节点添加至对应的区块链子网络,具体包括:
S301.基于第二业务合约映射表,根据合约类型进行查询容器集合ID,若查询的容器集合ID存在,则将该用户节点加入至容器集合ID所分配的区块链子网络,若查询的容器集合ID不存在,则建立新的容器集合,将该用户节点加入至新的容器集合ID所分配的区块链子网络;
在本实施例中,通过判断任一贷款业务类型的业务请求是否为该贷款业务类型的第一次请求,进而在第一次请求时触发建立容器集合,以实现按需创建区块链子网络,进而避免容器集合的资源浪费。
结合图3所示,在本实施例中,第二业务合约映射表为通过结合第一业务合约映射表进行构建,第二业务合约映射表用于建立合约类型与容器集合ID之间的映射关系,每个合约类型与一个容器集合ID对应,以区分不同智能合约模板的运行环境区域。
S302.基于业务协议信息对当前合约类型所对应的智能合约模板进行填充,以生成业务智能合约,业务智能合约用于部署在该用户节点所参与的区块链子网络中;
S303.按用户ID、合约ID、业务协议信息的顺序拼接得到第一待写入信息,分别对用户ID、合约ID、业务协议信息进行第一哈希计算以获得第一业务哈希编码,将第一待写入信息和对应的第一业务哈希编码写入该用户节点所参与的区块链子网络中,其中第一业务哈希编码用于通过共识机制进行校验时使用,以防止数据被篡改。
在本实施例中,分别对用户ID、合约ID、业务协议信息进行第一哈希计算以获得第一业务哈希编码,具体包括:对用户ID采用第一预设哈希方法计算得到第一哈希值,对合约ID采用第二预设哈希方法计算得到第二哈希值,对业务协议信息采用第三预设哈希方法计算得到第三哈希值,依次拼接第一哈希值、第二哈希值和第三哈希值以构成第一业务哈希编码,在共识机制进行校验时通过分别校验以确定数据篡改的部分。实际应用时,第一业务哈希编码Hasha表示为:
Hasha=Hash1+Hash2*16*τ1+Hash3*16*(τ1+τ2)
其中Hasha为以16进制表示的第一业务哈希编码,Hash1、Hash2、Hash3分别为第一哈希值、第二哈希值和第三哈希值,τ1为在16进制下第一哈希值的位数,τ2为在16进制下第二哈希值的位数,16*τ1和16*(τ1+τ2)均用于隔开相邻哈希值的位置,从而避免相邻位置的哈希值产生叠加导致校验时出现错乱。
实际应用时,分别采用三种哈希方法计算,进而得到第一哈希值、第二哈希值、第三哈希值,一旦第一业务哈希编码整体不一致,可以进一步通过验证部分位置的哈希值来定位篡改的部分,提高验证时的精细程度。
在本实施例中,在用户节点所参与的区块链子网络中,针对任一贷款业务情况,若参与节点具有借款人或贷款人的身份标识,则具有合约查询请求权限,以查询合同履行的实时情况,若参与节点仅具有可参与标识,则仅参与共同验证过程。
在本实施例中,每个业务智能合约具有唯一的合约ID,合约ID用于定位用户节点在业务请求成功时加入的区块链子网络;实际应用时,合约ID为通过将三元组作为头部数据并结合尾部数据进行拼接组成得到,三元组为通过结合用户ID、容器集合ID与容器元素ID进行构成;示例性的,用户ID采用10位以上的数字构成,容器集合ID由2位以上的数字构成,容器元素ID由2位以上的数字构成,进而形成<用户ID,容器集合ID,容器元素ID>的三元组。合约ID为用户ID、容器集合ID、容器元素ID与尾部数据拼接而成的数据,实际应用时,若数字位数确定,则可以根据固定的位数截取数据以划分三元组的各个内容。
在本实施例中,尾部数据为唯一不重复的序号以区分同一个区块链子网络中的不同用户节点。例如尾部数据可以根据容器元素内的成员序号进行设置,还可以根据序号生成队列确定一个唯一不重复的序号进行设置,通过每次在前一个生成数值基础上叠加1使得每个尾部数据不同,进而使得每个合约ID是唯一的数值。
具体而言,业务协议信息包括借款人信息、贷款人信息、贷款合同信息、抵押物信息和债权转让信息,通过结合当前合约类型所对应的智能合约模板以生成业务智能合约,进而满足每个借款人的个性化需求。将业务智能合约部署后,通过智能合约的形式进行自动执行和管理,确保双方权益的维护,利用区块链子网络以去中心化方式连接借方和贷方,实现信息的共享和透明化,方便贷款机构进行监督和管理,同时通过区块链技术实现去中心化的存储和管理,确保抵押物的真实性和安全性,也确保了债权转让的合法性和透明化。
示例性的,借款人信息例如包括借款人的身份信息、信用记录、资产状况等;贷款人信息例如包括贷款人的身份信息、信用记录、资产状况等;贷款合同信息,例如包括贷款金额、期限、利率、还款方式、担保方式等;抵押物信息,包括抵押标识和抵押物记录,抵押物记录用于在抵押标识为真时进行补充,抵押物记录包含抵押物的种类、价值、归属;债权转让信息,包括债权转让许可标识和债权转让记录,债权转让记录用于在债权转让许可标识为真时进行补充,债权转让记录包括受让人、转让金额、转让时间。
在本实施例中,每个容器集合包括至少一个容器元素,且每个容器元素对应一个区块链子网络,每个容器集合具有唯一的容器集合ID,每个容器元素在容器集合内具有不同的容器元素ID以对应同一个容器集合内的不同区块链子网络。
进一步的,在分配区块链子网络时,进行突发扩容响应,具体为:当存在任一合约类型对应的业务请求的瞬时请求次数超过请求阈值时,判断任一合约类型对应的容器集合内容器元素的总容量是否超出该容器集合的预设容量阈值,且该合约类型对应的业务请求的瞬时请求次数的增速是否超出预设增速阈值时,若均符合则根据该业务请求在预设时间段内的总增量对该合约类型对应的容器集合进行扩容,以应对突然的高并发业务请求,否则按需进行正常扩容处理。
在本实施例中,按需进行正常扩容处理为:判断任一合约类型对应的容器集合内容器元素的总容量超出该容器集合的预设容量阈值,若超出则增加容器元素的数量,否则不做处理。
在本实施例中,在突发扩容响应中,具体包括:
判断任一合约类型对应的业务请求的瞬时请求次数超过请求阈值的条件,表示为:
qi(t)≥q0
其中,qi(t)为第i个合约类型对应的业务请求在第t秒的请求次数,q0表示请求阈值,q0为根据历史请求次数进行设置,例如可以剔除异常请求数据后设置为历史请求次数中的峰值的60%或70%,还可以设置为常量,例如5000,10000等,具体数值在此不做限定。实际应用时,将任一合约类型对应的业务请求的瞬时请求次数与请求阈值的判断作为前置触发条件,用于避免低请求次数造成扩容的误操作,提高了容量集合在扩容时的可靠性。
判断任一合约类型对应的容器集合内容器元素的总容量超出该容器集合的预设容量阈值的条件,表示为:
其中表示第i个合约类型对应的容器集合内的所有容器元素的当前容量累加值,capi,p为第i个合约类型对应的容器集合内第p个容器元素的当前容量,Ci表示第i个合约类型对应的容器集合的预设容量阈值,numi为第i个合约类型对应的容器集合内容器元素的个数,预设容量阈值Ci与numi正相关,i、p和numi均为正整数,capi表示第i个合约类型对应的容器集合内每个容器元素的最大容量,即对应容器元素内最大允许加入的节点个数,例如为10,20,50,100,200等;此外,关于capi,可以根据合约类型设置不同的安全等级,进而根据安全等级调整capi的数值,从而根据实际业务情况在验证效率和安全需求上达到平衡。
判断该合约类型对应的业务请求的瞬时请求次数的增速超出预设增速阈值的条件,表示为:
其中表示第i个合约类型对应的业务请求在第t秒请求次数的增速,δ表示预设增速阈值,可以根据实际情况设置为10以上的数值,例如设置为10,20,30等,qi(t)为第i个合约类型对应的业务请求在第t秒的请求次数,qi(t-1)为第i个合约类型对应的业务请求在第t-1秒的请求次数,t为大于1的正整数;
根据该业务请求在预设时间段内的总增量对该合约类型对应的容器集合进行扩容,表示为:
αi,j表示第i个合约类型对应的容器集合在第j个预设时间段内对容器元素增加的扩容个数,Qi,j为第i个合约类型在第j个预设时间段内的业务请求次数累加值,Qi,j-1为第i个合约类型在第j-1个预设时间段内的业务请求次数累加值,为扩充调节系数,tj表示第j个预设时间段的起始时刻值,T为每个预设时间段的周期值,tj+T表示第j个预设时间段的结束时刻值,qi(t)为第i个合约类型对应的业务请求在第t秒的请求次数。此外,表示不超过/>的最大正整数,例如[2.5]=2,[8.7]=8。
在业务执行阶段中,包含步骤S4,具体包括:
S4.在第二服务器中,接收由用户节点发出的还款确认请求,基于还款确认请求对合约ID对应的区块链子网络进行更新还款记录;
具体地,对还款确认请求进行解析,以获得合约ID、用户ID、还款数额、还款证明标识,基于合约ID、用户ID、还款数额和还款证明标识进行第二哈希计算以获得第二业务哈希编码,将合约ID、用户ID、还款数额、还款证明标识和第二业务哈希编码打包发送至合约ID对应的区块链子网络,以通过链上其余参与节点的共识验证进行更新还款记录。
在本实施例中,基于合约ID、用户ID、还款数额和还款证明标识进行第二哈希计算以获得第二业务哈希编码,具体包括:依次将合约ID、用户ID、还款数额和还款证明标识进行字符串拼接,以得到待处理字符串数据,对该待处理字符串数据分别采用第四预设哈希方法和第五预设哈希方法以计算得到第四哈希值和第五哈希值,采用第六预设哈希方法计算得到第六哈希值,将第四哈希值、第五哈希值和第六哈希值的相加值作为第二业务哈希编码,第四预设哈希方法和第五预设哈希方法不相同。实际应用时,由于一次哈希值可能存在碰撞,通过两种不同的预设哈希方法进行叠加,避免了碰撞时验证出错的概率,保证链上其余参与节点的共识验证时的准确性和可靠性。
在本实施例中,第二业务哈希编码Hashb表示为:
其中Hashb为以16进制数值表示的第二业务哈希编码,Hash4、Hash5、Hash6别为第四哈希值、第五哈希值和第六哈希值,μ表示还款数额,mod_5(μ)+1表示为相应预设哈希方法的序号,即基于还款数额进行对5取余数处理后,对该取余数的结果值进行加1得到的数值。
在本实施例中,第一预设哈希方法、第二预设哈希方法、第三预设哈希方法、第四预设哈希方法、第五预设哈希方法或第六预设哈希方法均可以采用以下任一方法进行选择计算:MD5哈希、SHA-1哈希、SHA-2哈希、SHA-3哈希、SHA-256哈希,且第四预设哈希方法和第五预设哈希方法采用的方法不相同。而第六预设哈希方法为根据实际的还款数额确定。示例性的,依次为第一预设哈希方法、第二预设哈希方法、第三预设哈希方法、第四预设哈希方法和第五预设哈希方法进行按1-5赋值,从而分别对应一个序号。该序号对应还款数额采用对5取余数处理后加1后的结果,即对5取余数处理后为0-4的范围,加1后得到1-5的范围,进而对应序号1-5,使得每一次的还款记录涉及的还款数额对第二哈希编码产生验证作用,通过提高还款数额对第二业务哈希编码的相关性,进一步提高第二业务哈希编码的加密安全性,提高对还款数额存在篡改情况的验证可靠性。其中MD5哈希为使用MD5算法对原始数据进行哈希计算,生成一个128位的哈希值;SHA-1哈希为使用SHA-1算法对原始数据进行哈希计算,生成一个160位的哈希值;SHA-2哈希为将输入消息分成若干个512位(64字节)的数据块,并使用哈希函数进行一系列的迭代计算,生成最终的哈希值;SHA-3哈希为使用SHA-3算法对原始数据进行哈希计算,生成一个256位的哈希值;SHA-256哈希为使用SHA-256算法对原始数据进行哈希计算,生成一个256位的哈希值。
在本实施例中,每个合约ID对应一个还款记录,以用于反映用户ID的信用状况和履约能力。还款证明标识为基于第一电子签名标识和第二电子签名标识均为真时产生,第一电子签名标识为借款人在确认完成还款环节时生成,第二电子签名标识为贷款人在确认完成还款环节时生成。
在合约变更阶段中,包含步骤S5至S6,包括:
S5.在第二服务器中,接收由用户节点发起的合约变更请求,解析合约变更请求,进而确定合约变更情况;
在本实施例中,合约变更请求包括用户ID、原合约ID和合约变更情况,合约变更情况为针对业务协议信息的变更元素集合。即当借款人信息、贷款人信息、贷款合同信息、抵押物信息或债权转让信息中的任一个或任意多个信息存在变更时,将其添加至变更元素集合中,变更元素集合为通过解析合约变更请求得到。
S6.根据合约变更情况生成新的业务智能合约以更新合约ID,在合约管理表中将原合约ID进行替换更新,以使调用智能合约时执行最新的合约手续,进而对原有的业务智能合约进行完成更新,合约管理表用于管理每个用户所关联的合约ID。
结合图4所示,在合约管理表中,以用户ID为索引进行匹配合约变更记录集合,合约变更记录集合包括至少一个合约变更记录,每个合约变更记录对应一个合约类型以进行区分不同业务,每个合约变更记录包含至少一组记录,每组记录基于时间值按时间先后排序并由一个时间值、一个当前合约和一个原合约构成。在替换更新时,新的业务智能合约对应新的合约ID,当前合约存储新的合约ID,原合约存储原合约ID。还需要说明的是,合约变更记录可以包含多组记录,当合约变更记录具有多组记录时,表示此时该用户当前已处理多个相同合约类型的贷款业务。
例如,在示例的合约管理表中,以用户ID区分每份合约变更记录集合,合约变更记录1对应合约类型1,其中的每组记录以时间值1、时间值2至时间值n的时间先后顺序,时间值1为最早的时间,最新的记录则对应为时间值n所在的数据,合约变更记录x对应合约类型x,通过合约变更记录1至合约变更记录x构成该用户的合约变更记录集合,其中的1至n,1至x的数字仅用于说明,在此不做限定。
在本实施例中,合约管理表用于管理每个用户所关联的合约ID,具体地,在调用智能合约时,根据合约管理表对每个用户的业务进行自适应管理,通过合约类型确定在智能合约模板,根据用户ID和合约ID确定业务协议信息,进而当出现合约变更手续的情况时,通过及时匹配正确的业务协议信息使得智能合约无需重新整体部署,提高了对合约变更时处理的灵活性。
需要说明的是,由于每个用户可能具有不同的业务内容,因此每个用户具有至少一个合约ID。在区块链子网络执行业务智能合约时,通过替换新的合约ID以模块化的方式实现对业务的自适应更新。
在业务结束阶段中,包含步骤S7-S8,包括:
S7.在第二服务器中,接收由用户节点发起的合约履行请求,根据合约ID对用户ID调用智能合约执行程序,在执行成功时设置合约完毕标识为真;
S8.在第二服务器中,响应于合约完毕标识为真,根据合约ID将相应容器元素里的参与节点进行调整权限。
具体而言,当用户完成针对贷款业务的所有还款环节时发起合约履行请求,通过用户ID和合约ID确定业务智能合约,以智能合约的形式执行该业务智能合约,以提高整个贷款流程自动化程度和个性化程度。当合约完毕标识为真时,根据合约ID找到对应的区块链子网络,进而将该合约ID的借款人和贷款人分别对应的参与节点进行调整权限,将该参与节点的借款人或贷款人的身份标识进行删除,仅保留可参与标识以继续支持该区块链子网络的共识验证过程。
在业务结束阶段中,还包括:
S9.在第二服务器中,根据预设周期对所有容器元素进行检测,当任一容器元素内的所有参与节点均只含有可参与标识时,释放该容器元素中的节点个数直至剩余3个,以继续为旧的存储数据进行备份。通过及时释放节点个数,自适应释放闲置的计算资源和空间资源。
实际应用时,预设周期为根据前1小时的请求次数统计量进行分阶设置。示例性的,若前1小时的请求次数统计量小于第一次数阈值则设置为12小时,若前1小时的请求次数统计量大于第一次数阈值且小于第二次数阈值则设置为3小时,若前1小时的请求次数统计量大于第二次数阈值则设置为1小时,通过结合前1小时的请求次数统计量对容器元素进行及时释放,以避免对存储空间和执行效率产生过多的消耗。
实施例2
本实施例2提供的一种基于智能合约的合约变更手续执行方法在实施例1的基础上对异常中断恢复的情况进行处理,以提高合约变更手续运行时的稳定性。
如图5所示,该方法还包括业务中断恢复阶段,业务中断恢复阶段在第二服务器中运行;
在业务中断恢复阶段中,具体包括:
S10.在第二服务器重启时,当检测到异常中断恢复标识为真时,查询历史请求记录以找出缺少完成标识的待恢复请求,以构成待恢复请求集合;
S11.依次遍历待恢复请求集合,若当前遍历的待恢复请求为合约变更请求时,结合当前遍历的待恢复请求和合约管理表对异常中断情况进行自适应恢复。
结合图6所示,结合当前遍历的待恢复请求和合约管理表对异常中断情况进行自适应恢复,具体包括:
S1101.从当前遍历的待恢复请求中提取用户ID和原合约ID,以组成第一参考信息;
S1102.基于第一参考信息,对合约管理表进行遍历;
S1103.当判断为第一变更异常中断情况,此时合约ID未更新,则基于当前遍历的待恢复请求进行重新执行合约变更阶段的相关步骤;
S1104.当判断为第二变更异常中断情况,此时合约ID已更新,则不做处理;
其中第一变更异常中断情况为:在合约管理表中,若基于用户ID的合约变更记录的原合约与第一参考信息的原合约ID不一致,且基于用户ID的合约变更记录的当前合约与第一参考信息的原合约ID一致时;
第二变更异常中断情况为:在合约管理表中,若基于用户ID的合约变更记录的原合约与第一参考信息的原合约ID一致时。
在本实施例中,每个请求在发起时或成功响应后会对历史请求记录进行更新,完成标识用于表示请求已成功执行完毕的状态,以便于异常中断恢复后对每个请求的完成情况进行确认。
在本实施例中,异常中断恢复标识为经过异常中断后服务器在重启时根据异常停机情况而进行设置得到。其中异常停机情况包括硬件故障和软件故障,示例性的,硬件故障为服务器硬件组件可能出现的故障,例如电源故障、硬盘故障、内存故障等导致服务器停机的情况。软件故障为服务器操作系统、应用程序或数据库出现的故障,例如系统崩溃、应用程序错误、数据库故障等导致服务器停机的情况。
实施例3
本实施例3提供了一种基于智能合约的合约变更手续执行系统,该系统与上述实施例中的基于智能合约的合约变更手续执行方法相对应,在此对相同内容不再赘述。
在本实施例中,该系统用于贷款区块链管理平台,贷款区块链管理平台在服务端中加载并支撑贷款业务;
如图7所示,该系统包括初始化模块、业务关联模块、业务执行模块、合约变更模块和业务结束模块,初始化模块在第一服务器中运行,业务关联模块、业务执行模块、合约变更模块和业务结束模块均在第二服务器中运行,服务端为由第一服务器和第二服务器组成的服务器集群;
初始化模块包括贷款业务类型匹配子模块和注册响应子模块,合约变更模块包括合约变更情况确定子模块和合约ID更新子模块,业务结束模块包括第一合约履行响应子模块,第二合约履行响应子模块和第三合约履行响应子模块;
贷款业务类型匹配子模块用于初始化区块链网络,根据所有的贷款业务类型分别通过第一业务合约映射表进行匹配以确定M个智能合约模板;
注册响应子模块用于接收由用户节点发起的注册请求,对用户节点进行身份注册,以使完成身份注册的用户节点具有可参与标识,统计所有具有可参与标识的用户节点进行构建可参与节点池,并将可参与节点池发送至第二服务器;
业务关联模块,用于接收由具有可参与标识的用户节点发起的业务请求,根据贷款业务类型进行匹配合约类型,将该用户节点添加至对应的区块链子网络;
业务执行模块,用于接收由用户节点发出的还款确认请求,基于还款确认请求对合约ID对应的区块链子网络进行更新还款记录;
合约变更情况确定子模块,用于接收由用户节点发起的合约变更请求,解析合约变更请求,进而确定合约变更情况,其中合约变更请求包括用户ID、原合约ID和合约变更情况,合约变更情况为针对业务协议信息的变更元素集合;
合约ID更新子模块,用于根据合约变更情况生成新的业务智能合约以更新合约ID,在合约管理表中将原合约ID进行替换更新,以使调用智能合约时执行最新的合约手续,进而对原有的业务智能合约进行完成更新,合约管理表用于管理每个用户所关联的合约ID;
第一合约履行响应子模块,用于接收由用户节点发起的合约履行请求,根据合约ID对用户ID调用智能合约执行程序,在执行成功时设置合约完毕标识为真;
第二合约履行响应子模块,用于响应于合约完毕标识为真,根据合约ID将相应容器元素里的参与节点进行调整权限,其中业务请求包含贷款业务类型、业务协议信息和用户ID,可参与节点池用于为每个容器元素对应的区块链子网络进行分配共识验证的参与节点,每个容器元素复制一份可参与节点池以用于在业务进行时补充帮助达成共识验证的参与节点;
第三合约履行响应子模块,用于根据预设周期对所有容器元素进行检测,当任一容器元素内的所有参与节点均只含有可参与标识时,释放该容器元素中的节点个数直至剩余3个,以继续为旧的存储数据进行备份。
进一步的,该系统还包括业务中断恢复模块,该业务中断恢复模块在第二服务器中运行,业务中断恢复模块包括待恢复请求集合子模块和自适应恢复子模块;
待恢复请求集合子模块,用于在第二服务器重启时,当检测到异常中断恢复标识为真时,查询历史请求记录以找出缺少完成标识的待恢复请求,以构成待恢复请求集合;
自适应恢复子模块,用于依次遍历待恢复请求集合,若当前遍历的待恢复请求为合约变更请求时,结合当前遍历的待恢复请求和合约管理表对异常中断情况进行自适应恢复。
实施例4
如图8所示,本实施例提供了一种终端,包括:至少一个存储器和至少一个处理器;其中,至少一个存储器用于存储程序代码,至少一个处理器用于调用至少一个存储器所存储的程序代码执行上述实施例中的任一种基于智能合约的合约变更手续执行方法。
实施例5
本实施例提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库为物理层用于存储各种数据库。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述实施例1至2中任一种基于智能合约的合约变更手续执行方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
实施例6
本实施例提供了一种存储介质,所述存储介质用于存储程序代码,所述程序代码用于执行上述的基于智能合约的合约变更手续执行方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
上述实施例为本申请较佳的实施方式,但本申请的实施方式并不受上述实施例的限制,其他的任何未背离本申请的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本申请的保护范围之内。
Claims (10)
1.一种基于智能合约的合约变更手续执行方法,其特征在于,用于贷款区块链管理平台,所述贷款区块链管理平台在服务端中加载并支撑贷款业务;
所述方法包括初始化阶段、业务关联阶段、业务执行阶段、合约变更阶段和业务结束阶段,所述初始化阶段在第一服务器中运行,所述业务关联阶段、所述业务执行阶段、所述合约变更阶段和所述业务结束阶段均在第二服务器中运行,所述服务端为由所述第一服务器和所述第二服务器组成的服务器集群;
在初始化阶段中,包括:S1.初始化区块链网络,根据所有的贷款业务类型分别通过第一业务合约映射表进行匹配以确定M个智能合约模板;
S2.接收由用户节点发起的注册请求,对用户节点进行身份注册,以使完成身份注册的用户节点具有可参与标识,统计所有具有可参与标识的用户节点进行构建可参与节点池,并将所述可参与节点池发送至第二服务器;
在业务关联阶段中,包括:S3.接收由具有可参与标识的用户节点发起的业务请求,根据贷款业务类型进行匹配合约类型,将该用户节点添加至对应的区块链子网络;
在业务执行阶段中,包括:S4.接收由用户节点发出的还款确认请求,基于还款确认请求对合约ID对应的区块链子网络进行更新还款记录;
在合约变更阶段中,包括:S5.接收由用户节点发起的合约变更请求,解析合约变更请求,进而确定合约变更情况,其中所述合约变更请求包括用户ID、原合约ID和合约变更情况,所述合约变更情况为针对业务协议信息的变更元素集合;
S6.根据合约变更情况生成新的业务智能合约以更新合约ID,在合约管理表中将原合约ID进行替换更新,以使调用智能合约时执行最新的合约手续,进而对原有的业务智能合约进行完成更新,所述合约管理表用于管理每个用户所关联的合约ID;
在业务结束阶段中,包括:S7.接收由用户节点发起的合约履行请求,根据合约ID对用户ID调用智能合约执行程序,在执行成功时设置合约完毕标识为真;
S8.响应于合约完毕标识为真,根据合约ID将相应容器元素里的参与节点进行调整权限;
其中所述业务请求包含贷款业务类型、业务协议信息和用户ID,所述可参与节点池用于为每个容器元素对应的区块链子网络进行分配共识验证的参与节点,每个容器元素复制一份可参与节点池以用于在业务进行时补充帮助达成共识验证的参与节点。
2.根据权利要求1所述的方法,其特征在于,在业务结束阶段中,还包括:S9.根据预设周期对所有容器元素进行检测,当任一容器元素内的所有参与节点均只含有可参与标识时,释放该容器元素中的节点个数直至剩余3个。
3.根据权利要求2所述的方法,其特征在于,在调用智能合约时,根据合约管理表对每个用户的业务进行自适应管理,通过合约类型确定在智能合约模板,根据用户ID和合约ID确定业务协议信息,进而当出现合约变更手续的情况时,通过及时匹配正确的业务协议信息使得智能合约无需重新整体部署;
在合约管理表中,以用户ID为索引进行匹配合约变更记录集合,合约变更记录集合包括至少一个合约变更记录,每个合约变更记录对应一个合约类型以进行区分不同业务,每个合约变更记录包含至少一组记录,每组记录基于时间值按时间先后排序并由一个时间值、一个当前合约和一个原合约构成,在替换更新时,新的业务智能合约对应新的合约ID,当前合约存储新的合约ID,原合约存储原合约ID。
4.根据权利要求3所述的方法,其特征在于,在根据所有的贷款业务类型分别通过第一业务合约映射表进行匹配以确定M个智能合约模板中,具体包括:
S101.利用预存的第一业务合约映射表,通过遍历所有的贷款业务类型以匹配M个合约类型,第一业务合约映射表用于建立贷款业务类型与合约类型的映射关系;
S102.对每个合约类型分别配置相应的智能合约模板,获得M个智能合约模板。
5.根据权利要求4所述的方法,其特征在于,在将该用户节点添加至对应的区块链子网络中,具体包括:
S31.基于第二业务合约映射表,根据合约类型进行查询容器集合ID,若查询的容器集合ID存在,则将该用户节点加入至容器集合ID所分配的区块链子网络,若查询的容器集合ID不存在,则建立新的容器集合,将该用户节点加入至新的容器集合ID所分配的区块链子网络;
S32.基于业务协议信息对当前合约类型所对应的智能合约模板进行填充,以生成业务智能合约,所述业务智能合约用于部署在该用户节点所参与的区块链子网络中,每个业务智能合约具有唯一的合约ID,合约ID用于定位用户节点在业务请求成功时加入的区块链子网络;
S33.按用户ID、合约ID、业务协议信息的顺序拼接得到第一待写入信息,分别对用户ID、合约ID、业务协议信息进行第一哈希计算以获得第一业务哈希编码,将第一待写入信息和对应的第一业务哈希编码写入该用户节点所参与的区块链子网络中,所述第一业务哈希编码用于通过共识机制进行校验时使用,以防止数据被篡改;
所述第二业务合约映射表为通过结合第一业务合约映射表进行构建,所述第二业务合约映射表用于建立合约类型与容器集合ID之间的映射关系,每个合约类型与一个容器集合ID对应,以区分不同智能合约模板的运行环境区域,每个容器集合包括至少一个容器元素,且每个容器元素对应一个区块链子网络,每个容器集合具有唯一的容器集合ID,每个容器元素在容器集合内具有不同的容器元素ID以对应同一个容器集合内的不同区块链子网络;
所述合约ID为通过将三元组作为头部数据并结合尾部数据组成得到,所述三元组为通过结合用户ID、容器集合ID与容器元素ID进行构成,所述尾部数据为唯一不重复的序号以区分同一个区块链子网络中的不同用户节点。
6.根据权利要求5所述的方法,其特征在于,在分别对用户ID、合约ID、业务协议信息进行第一哈希计算以获得第一业务哈希编码中,具体包括:
对用户ID采用第一预设哈希方法计算得到第一哈希值,对合约ID采用第二预设哈希方法计算得到第二哈希值,对业务协议信息采用第三预设哈希方法计算得到第三哈希值,依次拼接第一哈希值、第二哈希值和第三哈希值以构成所述第一业务哈希编码,在共识机制进行校验时通过分别校验以确定数据篡改的部分;
在业务执行阶段中,具体为:对还款确认请求进行解析,以获得合约ID、用户ID、还款数额、还款证明标识,基于合约ID、用户ID、还款数额和还款证明标识进行第二哈希计算以获得第二业务哈希编码,将合约ID、用户ID、还款数额、还款证明标识和第二业务哈希编码打包发送至合约ID对应的区块链子网络,以通过链上其余参与节点的共识验证进行更新还款记录;
在基于合约ID、用户ID、还款数额和还款证明标识进行第二哈希计算以获得第二业务哈希编码中,具体包括:
依次将合约ID、用户ID、还款数额和还款证明标识进行字符串拼接,以得到待处理字符串数据,对该待处理字符串数据分别采用第四预设哈希方法和第五预设哈希方法以计算得到第四哈希值和第五哈希值,采用第六预设哈希方法计算得到第六哈希值,将第四哈希值、第五哈希值和第六哈希值的相加值作为第二业务哈希编码,第四预设哈希方法和第五预设哈希方法不相同;
所述第一业务哈希编码表示为:
Hasha=Hash1+Hash2*16*τ1+Hash3*16*(τ1+τ2)
其中Hasha为以16进制表示的第一业务哈希编码,Hash1、Hash2、Hash3分别为第一哈希值、第二哈希值和第三哈希值,τ1为在16进制下第一哈希值的位数,τ2为在16进制下第二哈希值的位数,16*τ1和16*(τ1+τ2)均用于隔开相邻哈希值的位置;
所述第二业务哈希编码Hashb表示为:
其中Hashb为以16进制数值表示的第二业务哈希编码,Hash4、Hash5、Hash6别为第四哈希值、第五哈希值和第六哈希值,μ表示还款数额,mod_5(μ)+1表示为相应预设哈希方法的序号,即基于还款数额进行对5取余数处理后,对该取余数的结果值进行加1得到的数值。
7.根据权利要求6所述的方法,其特征在于,还包括:在分配区块链子网络时,进行突发扩容响应,具体为:
当存在任一合约类型对应的业务请求的瞬时请求次数超过请求阈值时,判断任一合约类型对应的容器集合内容器元素的总容量是否超出该容器集合的预设容量阈值,且该合约类型对应的业务请求的瞬时请求次数的增速是否超出预设增速阈值时,若均符合则根据该业务请求在预设时间段内的总增量对该合约类型对应的容器集合进行扩容,以应对突然的高并发业务请求,否则按需进行正常扩容处理。
8.根据权利要求7所述的方法,其特征在于,在突发扩容响应中:
判断任一合约类型对应的业务请求的瞬时请求次数超过请求阈值的条件,表示为:
qi(t)≥q0
其中,qi(t)为第i个合约类型对应的业务请求在第t秒的请求次数,q0表示请求阈值,q0为根据历史请求次数进行设置;
判断任一合约类型对应的容器集合内容器元素的总容量超出该容器集合的预设容量阈值的条件,表示为:
其中表示第i个合约类型对应的容器集合内的所有容器元素的当前容量累加值,capi,p为第i个合约类型对应的容器集合内第p个容器元素的当前容量,Ci表示第i个合约类型对应的容器集合的预设容量阈值,numi为第i个合约类型对应的容器集合内容器元素的个数,预设容量阈值Ci与numi正相关,i、p和numi均为正整数,capi表示第i个合约类型对应的容器集合内每个容器元素的最大容量;
判断该合约类型对应的业务请求的瞬时请求次数的增速超出预设增速阈值的条件,表示为:
其中表示第i个合约类型对应的业务请求在第t秒请求次数的增速,δ表示预设增速阈值,qi(t)为第i个合约类型对应的业务请求在第t秒的请求次数,qi(t-1)为第i个合约类型对应的业务请求在第t-1秒的请求次数,t为大于1的正整数;
所述根据该业务请求在预设时间段内的总增量对该合约类型对应的容器集合进行扩容,表示为:
αi,j表示第i个合约类型对应的容器集合在第j个预设时间段内对容器元素增加的扩容个数,Qi,j为第i个合约类型在第j个预设时间段内的业务请求次数累加值,Qi,j-1为第i个合约类型在第j-1个预设时间段内的业务请求次数累加值,为扩充调节系数,tj表示第j个预设时间段的起始时刻值,T为每个预设时间段的周期值,tj+T表示第j个预设时间段的结束时刻值,qi(t)为第i个合约类型对应的业务请求在第t秒的请求次数,表示不超过/>的最大正整数。
9.根据权利要求8所述的方法,其特征在于,还包括业务中断恢复阶段,所述业务中断恢复阶段在所述第二服务器中运行;
在所述业务中断恢复阶段中,具体包括:
S10.在第二服务器重启时,当检测到异常中断恢复标识为真时,查询历史请求记录以找出缺少完成标识的待恢复请求,以构成待恢复请求集合;
S11.依次遍历待恢复请求集合,若当前遍历的待恢复请求为合约变更请求时,结合当前遍历的待恢复请求和合约管理表对异常中断情况进行自适应恢复;
所述结合当前遍历的待恢复请求和合约管理表对异常中断情况进行自适应恢复,具体包括:从当前遍历的待恢复请求中提取用户ID和原合约ID,以组成第一参考信息;
基于第一参考信息,对合约管理表进行遍历;
当判断为第一变更异常中断情况,此时合约ID未更新,则基于当前遍历的待恢复请求进行重新执行合约变更阶段的相关步骤;
当判断为第二变更异常中断情况,此时合约ID已更新,则不做处理;
其中所述第一变更异常中断情况为:在合约管理表中,若基于用户ID的合约变更记录的原合约与第一参考信息的原合约ID不一致,且基于用户ID的合约变更记录的当前合约与第一参考信息的原合约ID一致时;
所述第二变更异常中断情况为:在合约管理表中,若基于用户ID的合约变更记录的原合约与第一参考信息的原合约ID一致;
每个请求在发起时或成功响应后会对历史请求记录进行更新,所述完成标识用于表示请求已成功执行完毕的状态,所述异常中断恢复标识为经过异常中断后服务器在重启时根据异常停机情况而进行设置得到。
10.一种基于智能合约的合约变更手续执行系统,其特征在于,用于贷款区块链管理平台,所述贷款区块链管理平台在服务端中加载并支撑贷款业务;
所述系统包括初始化模块、业务关联模块、业务执行模块、合约变更模块和业务结束模块,所述初始化模块在第一服务器中运行,所述业务关联模块、所述业务执行模块、所述合约变更模块和所述业务结束模块均在第二服务器中运行,所述服务端为由所述第一服务器和所述第二服务器组成的服务器集群;
所述初始化模块包括贷款业务类型匹配子模块和注册响应子模块,所述合约变更模块包括合约变更情况确定子模块和合约ID更新子模块,所述业务结束模块包括第一合约履行响应子模块,第二合约履行响应子模块和第三合约履行响应子模块;
所述贷款业务类型匹配子模块用于初始化区块链网络,根据所有的贷款业务类型分别通过第一业务合约映射表进行匹配以确定M个智能合约模板;
所述注册响应子模块用于接收由用户节点发起的注册请求,对用户节点进行身份注册,以使完成身份注册的用户节点具有可参与标识,统计所有具有可参与标识的用户节点进行构建可参与节点池,并将所述可参与节点池发送至第二服务器;
所述业务关联模块,用于接收由具有可参与标识的用户节点发起的业务请求,根据贷款业务类型进行匹配合约类型,将该用户节点添加至对应的区块链子网络;
所述业务执行模块,用于接收由用户节点发出的还款确认请求,基于还款确认请求对合约ID对应的区块链子网络进行更新还款记录;
所述合约变更情况确定子模块,用于接收由用户节点发起的合约变更请求,解析合约变更请求,进而确定合约变更情况,其中所述合约变更请求包括用户ID、原合约ID和合约变更情况,所述合约变更情况为针对业务协议信息的变更元素集合;
所述合约ID更新子模块,用于根据合约变更情况生成新的业务智能合约以更新合约ID,在合约管理表中将原合约ID进行替换更新,以使调用智能合约时执行最新的合约手续,进而对原有的业务智能合约进行完成更新,所述合约管理表用于管理每个用户所关联的合约ID;
第一合约履行响应子模块,用于接收由用户节点发起的合约履行请求,根据合约ID对用户ID调用智能合约执行程序,在执行成功时设置合约完毕标识为真;
第二合约履行响应子模块,用于响应于合约完毕标识为真,根据合约ID将相应容器元素里的参与节点进行调整权限,其中所述业务请求包含贷款业务类型、业务协议信息和用户ID,所述可参与节点池用于为每个容器元素对应的区块链子网络进行分配共识验证的参与节点,每个容器元素复制一份可参与节点池以用于在业务进行时补充帮助达成共识验证的参与节点;
第三合约履行响应子模块,用于根据预设周期对所有容器元素进行检测,当任一容器元素内的所有参与节点均只含有可参与标识时,释放该容器元素中的节点个数直至剩余3个,以继续为旧的存储数据进行备份。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311320764.4A CN117172913B (zh) | 2023-10-12 | 2023-10-12 | 一种基于智能合约的合约变更手续执行方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311320764.4A CN117172913B (zh) | 2023-10-12 | 2023-10-12 | 一种基于智能合约的合约变更手续执行方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117172913A true CN117172913A (zh) | 2023-12-05 |
CN117172913B CN117172913B (zh) | 2024-02-13 |
Family
ID=88939581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311320764.4A Active CN117172913B (zh) | 2023-10-12 | 2023-10-12 | 一种基于智能合约的合约变更手续执行方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117172913B (zh) |
Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682983A (zh) * | 2016-12-29 | 2017-05-17 | 深圳市喜悦智慧实验室有限公司 | 一种基于智能合约的贷款管理系统及方法 |
CN107038242A (zh) * | 2017-04-24 | 2017-08-11 | 杭州趣链科技有限公司 | 一种面向区块链全局智能合约业务数据解析方法 |
CN107943950A (zh) * | 2017-11-24 | 2018-04-20 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种区块链中数据智能合约生成的方法及系统 |
CN109003185A (zh) * | 2018-06-29 | 2018-12-14 | 中国银联股份有限公司 | 一种智能合约的建立方法、装置、计算设备及存储介质 |
CN109064321A (zh) * | 2018-10-31 | 2018-12-21 | 曾文华 | 一种自动借贷系统及方法 |
CN109325852A (zh) * | 2018-10-25 | 2019-02-12 | 平安科技(深圳)有限公司 | 基于区块链的贷款数据处理方法、装置、设备及存储介质 |
CN109409876A (zh) * | 2018-09-27 | 2019-03-01 | 深圳壹账通智能科技有限公司 | 基于区块链的电子合同签署方法、装置、设备及存储介质 |
CN109451061A (zh) * | 2018-12-20 | 2019-03-08 | 全链通有限公司 | 区块链的合约调整处理方法和系统 |
CN109559217A (zh) * | 2018-10-25 | 2019-04-02 | 平安科技(深圳)有限公司 | 基于区块链的贷款数据处理方法、装置、设备及存储介质 |
CN109829013A (zh) * | 2018-12-27 | 2019-05-31 | 上海点融信息科技有限责任公司 | 用于在区块链网络中运行智能合约的方法、存储介质、计算设备 |
CN110168582A (zh) * | 2018-11-30 | 2019-08-23 | 阿里巴巴集团控股有限公司 | 使用去中心化决策更新区块链智能合约 |
CN110188112A (zh) * | 2019-05-31 | 2019-08-30 | 深圳前海微众银行股份有限公司 | 一种区块链智能合约的变更记录的追溯方法及装置 |
CN110400217A (zh) * | 2018-04-25 | 2019-11-01 | 中国移动通信集团广东有限公司 | 智能合约的规则变更处理方法及装置 |
CN111164632A (zh) * | 2018-05-30 | 2020-05-15 | 重庆小雨点小额贷款有限公司 | 一种基于区块链的信息处理方法、装置及区块链网络 |
CN111194441A (zh) * | 2018-04-25 | 2020-05-22 | 重庆小雨点小额贷款有限公司 | 一种基于区块链的数据管理方法及相关系统 |
CN111445234A (zh) * | 2019-01-16 | 2020-07-24 | 延安医链区块链科技有限公司 | 一种基于医疗区块链的智能合约程序的更新系统及其方法 |
CN111640002A (zh) * | 2020-05-12 | 2020-09-08 | 普洛斯科技(重庆)有限公司 | 一种基于区块链的货押贷款方法和装置 |
CN111651469A (zh) * | 2020-06-01 | 2020-09-11 | 杭州溪塔科技有限公司 | 一种管理区块链系统合约的方法和装置 |
CN113486114A (zh) * | 2021-06-30 | 2021-10-08 | 电子科技大学 | 一种区块链智能合约调用管理方法 |
CN114020312A (zh) * | 2021-11-02 | 2022-02-08 | 中教云智数字科技有限公司 | 一种智能合约变更方法和系统 |
CN114219607A (zh) * | 2021-11-12 | 2022-03-22 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 数据处理方法、装置、电子设备及存储介质 |
CN115018621A (zh) * | 2022-05-23 | 2022-09-06 | 中国建设银行股份有限公司 | 一种合约变更方法、装置、设备及介质 |
CN115907964A (zh) * | 2022-11-30 | 2023-04-04 | 中国农业银行股份有限公司湖南省分行 | 一种贷款还款业务中基于现金流还款的方法和系统 |
CN116385133A (zh) * | 2022-12-14 | 2023-07-04 | 马上消费金融股份有限公司 | 基于区块链的抵押物更换方法、装置、设备及存储介质 |
-
2023
- 2023-10-12 CN CN202311320764.4A patent/CN117172913B/zh active Active
Patent Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682983A (zh) * | 2016-12-29 | 2017-05-17 | 深圳市喜悦智慧实验室有限公司 | 一种基于智能合约的贷款管理系统及方法 |
CN107038242A (zh) * | 2017-04-24 | 2017-08-11 | 杭州趣链科技有限公司 | 一种面向区块链全局智能合约业务数据解析方法 |
CN107943950A (zh) * | 2017-11-24 | 2018-04-20 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种区块链中数据智能合约生成的方法及系统 |
US20210042295A1 (en) * | 2018-04-25 | 2021-02-11 | Simplecredit Micro-Lending Co., Ltd. | Blockchain-based data management method and related system |
CN111194441A (zh) * | 2018-04-25 | 2020-05-22 | 重庆小雨点小额贷款有限公司 | 一种基于区块链的数据管理方法及相关系统 |
CN110400217A (zh) * | 2018-04-25 | 2019-11-01 | 中国移动通信集团广东有限公司 | 智能合约的规则变更处理方法及装置 |
CN111164632A (zh) * | 2018-05-30 | 2020-05-15 | 重庆小雨点小额贷款有限公司 | 一种基于区块链的信息处理方法、装置及区块链网络 |
CN109003185A (zh) * | 2018-06-29 | 2018-12-14 | 中国银联股份有限公司 | 一种智能合约的建立方法、装置、计算设备及存储介质 |
CN109409876A (zh) * | 2018-09-27 | 2019-03-01 | 深圳壹账通智能科技有限公司 | 基于区块链的电子合同签署方法、装置、设备及存储介质 |
CN109325852A (zh) * | 2018-10-25 | 2019-02-12 | 平安科技(深圳)有限公司 | 基于区块链的贷款数据处理方法、装置、设备及存储介质 |
CN109559217A (zh) * | 2018-10-25 | 2019-04-02 | 平安科技(深圳)有限公司 | 基于区块链的贷款数据处理方法、装置、设备及存储介质 |
CN109064321A (zh) * | 2018-10-31 | 2018-12-21 | 曾文华 | 一种自动借贷系统及方法 |
CN110168582A (zh) * | 2018-11-30 | 2019-08-23 | 阿里巴巴集团控股有限公司 | 使用去中心化决策更新区块链智能合约 |
CN109451061A (zh) * | 2018-12-20 | 2019-03-08 | 全链通有限公司 | 区块链的合约调整处理方法和系统 |
CN109829013A (zh) * | 2018-12-27 | 2019-05-31 | 上海点融信息科技有限责任公司 | 用于在区块链网络中运行智能合约的方法、存储介质、计算设备 |
CN111445234A (zh) * | 2019-01-16 | 2020-07-24 | 延安医链区块链科技有限公司 | 一种基于医疗区块链的智能合约程序的更新系统及其方法 |
CN110188112A (zh) * | 2019-05-31 | 2019-08-30 | 深圳前海微众银行股份有限公司 | 一种区块链智能合约的变更记录的追溯方法及装置 |
CN111640002A (zh) * | 2020-05-12 | 2020-09-08 | 普洛斯科技(重庆)有限公司 | 一种基于区块链的货押贷款方法和装置 |
CN111651469A (zh) * | 2020-06-01 | 2020-09-11 | 杭州溪塔科技有限公司 | 一种管理区块链系统合约的方法和装置 |
CN113486114A (zh) * | 2021-06-30 | 2021-10-08 | 电子科技大学 | 一种区块链智能合约调用管理方法 |
CN114020312A (zh) * | 2021-11-02 | 2022-02-08 | 中教云智数字科技有限公司 | 一种智能合约变更方法和系统 |
CN114219607A (zh) * | 2021-11-12 | 2022-03-22 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 数据处理方法、装置、电子设备及存储介质 |
CN115018621A (zh) * | 2022-05-23 | 2022-09-06 | 中国建设银行股份有限公司 | 一种合约变更方法、装置、设备及介质 |
CN115907964A (zh) * | 2022-11-30 | 2023-04-04 | 中国农业银行股份有限公司湖南省分行 | 一种贷款还款业务中基于现金流还款的方法和系统 |
CN116385133A (zh) * | 2022-12-14 | 2023-07-04 | 马上消费金融股份有限公司 | 基于区块链的抵押物更换方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117172913B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726229B (zh) | 一种区块链数据存储方法及装置 | |
US20210150521A1 (en) | Blockchain-based privacy transaction and blockchain-based privacy transaction application methods and apparatuses | |
TWI720918B (zh) | 基於錯誤校正碼之共用區塊鏈資料儲存的共識 | |
TWI740575B (zh) | 用於優先化共用區塊鏈資料儲存的方法、系統和裝置 | |
TWI737392B (zh) | 電腦實現的用於由區塊鏈網路的區塊鏈節點在可信賴執行環境tee中處理區塊鏈資料的方法、通信共享區塊鏈資料的系統及用於通信共享區塊鏈資料的裝置 | |
TWI729880B (zh) | 可信賴執行環境中基於錯誤校正編碼的共享區塊鏈資料儲存 | |
CN112840617B (zh) | 用于管理区块链资源的方法和计算节点,计算机可读介质 | |
CN111373378B (zh) | 基于纠错码的共享区块链数据存储的数据安全性 | |
CN111681003A (zh) | 资源跨链转移方法、装置、计算机设备以及存储介质 | |
CN111902817A (zh) | 基于共享节点和纠错编码的区块链数据存储 | |
CN110471982B (zh) | 基于区块链的数据处理方法和装置 | |
US20230259930A1 (en) | Cross-chain transaction processing method and apparatus, electronic device, and storage medium | |
CN117633843A (zh) | 一种基于区块链的数据加密存储方法与系统 | |
CN117172913B (zh) | 一种基于智能合约的合约变更手续执行方法及系统 | |
CN115001707B (zh) | 基于区块链的设备认证方法和相关设备 | |
CN117726334B (zh) | 一种金融数据处理方法及系统 | |
CN116308389A (zh) | 防止区块链双花的交易方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |