CN110009362B - 区块链智能合约修改方法、装置和计算机可读存储介质 - Google Patents
区块链智能合约修改方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110009362B CN110009362B CN201910262573.4A CN201910262573A CN110009362B CN 110009362 B CN110009362 B CN 110009362B CN 201910262573 A CN201910262573 A CN 201910262573A CN 110009362 B CN110009362 B CN 110009362B
- Authority
- CN
- China
- Prior art keywords
- transaction
- intelligent contract
- signature information
- block chain
- rule
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种区块链智能合约修改方法、装置和计算机可读存储介质,该方法包括:首先,接收经过修改的第一交易校验规则,所述第一交易校验规则包括成员签名信息;其次,在区块链中广播所述第一交易校验规则,并对所述成员签名信息进行合法性验证;从而,当所述成员签名信息合法时,将所述第一交易校验规则作为变量存储于所述区块链的智能合约中。本申请实施例提供的区块链智能合约修改方法,将交易校验规则作为变量存储,能够随时方便地修改交易校验规则,且只需要修改一次,避免了对每一个节点都进行升级操作,提高了区块链智能合约修改的效率。
Description
技术领域
本发明一般涉及信息技术领域,具体涉及一种区块链智能合约修改方法、装置和计算机可读存储介质。
背景技术
区块链(Block chain)是分布式数据存储、点对点传输、共识机制和加密算法等计算机技术的新型应用模式。本质上,区块链是一个去中心化的数据库,能安全地存储交易数据,信息不可伪造和篡改,且可以灵活地发布并执行智能合约,无需任何中心化机构的审核。其中,交易既可以是类似比特币这样的数字货币,也可以是债权、股权、版权等数字资产。由于区块链技术很好地解决了拜占庭将军问题,大大降低了现实经济的信任成本与会计成本,从而重新定义了互联网时代的产权制度。而智能合约则是一套以数字形式定义的承诺,包括合约参与方可以在智能合约上执行这些承诺的“协议”。也就是说,智能合约是一套能够自动执行某些手动才能完成任务的协议。归根结底,智能合约相当于在计算机系统中构建一份参与方均可读的合同。只有当某一事件触发后,智能合约才会立即执行,进而可以实现各种各样的业务需求,使得区块链技术可以支持的业务变得灵活多样。
现有的区块链技术主要包括两个方向:第一,以比特币、以太坊等为代表的公有链技术;第二,以Hyperledger Fabric为代表的联盟链技术。公有链技术虽然支持智能合约,但智能合约只要一经部署,任何人都能参与到智能合约的相关操作中,并且合约逻辑无法修改,无法升级。而相较于公有链技术而言,联盟链技术虽然更加适合于企业级的联盟链相关的业务需求,但也只能通过一个相当繁琐的升级操作,实现对智能合约的逻辑进行修改。总而言之,无论是现有的公有链技术,还是现有的联盟链技术,都不能够支持在智能合约部署之后,简单方便地直接去修改智能合约的内部逻辑。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种区块链智能合约修改方法、装置和计算机可读存储介质,能够动态地修改智能合约,并且智能合约升级操作简单方便,提高了修改效率;同时,在智能合约升级完成之后,自动删除旧版本的智能合约,避免了无效的旧版本智能合约占用系统资源。
第一方面,本申请提供一种区块链智能合约修改方法,包括:
接收经过修改的第一交易校验规则,所述第一交易校验规则包括成员签名信息;
在区块链中广播所述第一交易校验规则,并对所述成员签名信息进行合法性验证;
当所述成员签名信息合法时,将所述第一交易校验规则作为变量存储于所述区块链的智能合约中。
第二方面,本申请提供一种区块链智能合约修改装置,包括:
接收模块,用于接收经过修改的第一交易校验规则,所述第一交易校验规则包括成员签名信息;
验证模块,用于在区块链中广播所述第一交易校验规则,并对所述成员签名信息进行合法性验证;
存储模块,用于当所述成员签名信息合法时,将所述第一交易校验规则作为变量存储于所述区块链的智能合约中。
第三方面,本申请提供一种计算机可读存储介质,该计算机程序用于实现如第一方面所述的区块链智能合约修改方法。
综上,本申请实施例提供的一种区块链智能合约修改方法、装置和计算机可读存储介质,对于公有链的智能合约而言,智能合约只要一经部署,合约逻辑便无法修改,并且无法升级;而对于联盟链的智能合约而言,虽然能够对智能合约的逻辑进行修改,但是由于安装智能合约的节点数量巨大,需要对每一个节点进行升级操作,过程相当繁琐;基于此,本申请实施例中首先接收经过修改的第一交易校验规则,其中第一交易校验规则包括成员签名信息;然后,在区块链中广播第一交易校验规则,并对成员签名信息进行合法性验证;进而,当成员签名信息合法时,将第一交易校验规则作为变量存储于区块链的智能合约中。本申请实施例将交易校验规则作为变量存储,能够随时方便地修改交易校验规则,且只需要修改一次,避免了对每一个节点都进行升级操作,提高了区块链智能合约修改的效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的一种区块链智能合约修改方法的基本流程示意图;
图2为本申请实施例提供的一种区块链智能合约修改方法的示例;
图3为本申请实施例提供的另一种区块链智能合约修改方法的示例;
图4为本申请实施例提供的一种区块链智能合约修改装置;
图5为本申请实施例提供的另一种区块链智能合约修改装置;
图6为本申请实施例提供的一种计算机系统。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本申请实施例提供一种区块链智能合约修改方法,该方法应用于终端中。需要说明的是,本申请实施例中所涉及的终端可以包括但不限于个人计算机(PersonalComputer,PC)、个人数字助理(Personal Digital Assistant,PDA)、平板电脑(TabletComputer)、无线手持设备和手机等。
为了便于理解和说明,下面通过图1至图5详细的阐述本申请实施例提供的区块链智能合约修改方法及装置。
请参考图1,其为本申请实施例提供的一种区块链智能合约修改方法的基本流程示意图,该方法包括以下步骤:
S101,接收经过修改的第一交易校验规则,第一交易校验规则包括成员签名信息。
S102,在区块链中广播第一交易校验规则,并对成员签名信息进行合法性验证。
具体的,本申请实施例中通过提取第一交易校验规则中的成员签名信息,并将成员签名信息发送至区块链中的节点,以验证成员签名信息的合法性。
需要说明的是,在区块链中每个可接收业务请求的server都称之为节点,发起业务逻辑上的请求称之为交易。当一个节点收到一笔交易时,就会将交易广播到全网。然后,每个节点会先去验证交易发起者的身份是否合法,接着会验证发起者对交易的签名,以防交易被篡改。进而,会根据交易请求头中的智能合约id去找到对应的智能合约,并将请求传给智能合约去执行具体的业务逻辑。待所有节点的智能合约都执行完成之后,通过全网共识返回交易执行成功的通知。
在本申请的其它实施例中,将成员签名信息发送至区块链中的节点,以验证成员签名信息的合法性,通过如下步骤进行:
步骤一、获取成员签名信息对应的第一特征码以及区块链中的节点对应的第二特征码。
需要说明的是,特征码由一系列字符串组成。特征码可以为字母与数字的交叉组合,并且字母区分大小写,比如为Ac123fGjk、sk753QhlD;特征码也可以为纯数字或者纯字母,比如为13567892、dfHjiKir。其中,特征码的位数可以根据实际需要进行设定,本申请实施例对此不进行特别限定。
步骤二、遍历区块链中的节点对应的第二特征码,若第一特征码与第二特征码相同,则成员签名信息合法。
需要说明的是,本申请实施例中第一特征码与第二特征码相同,可以为完全相同,也可以前缀或者后缀相同。比如,第一特征码为abc123456,第二特征码为abc789012。由于第一特征码与第二特征码的前缀都为abc,因此第一特征码与第二特征码相同。
S103,当成员签名信息合法时,将第一交易校验规则作为变量存储于区块链的智能合约中。
需要说明的是,本申请实施例中使用qlang,即Q Language就可以将某个功能的实现逻辑变量化。变量没有固定的值,是可以进行改变的数。Q Language是一个数据语言,目前被限定为一个数据定义语言(Data Definition Language,DDL)。Q Language采用JSON/XML模式,并配备了一个专用的用于定义数据的类型系统,和一个称为“信息合约”的理论,用于程序和数据交换语言之间的互操作。比如,某个人的账户余额,在收到别人转账的时候,余额的值会变大;在给别人转账时,余额的值就会变小。简而言之,变量就是可以通过后期的一些操作去改变它的数值。而源代码编译的过程,其实也就是把高级语言编译成计算机可以识别的二进制的字节码。在二进制程序运行之后,通常会包含以下几个部分:
BSS(Block Started by Symbol)段:通常是指用来存放程序中未初始化的全局变量的一块内存区域,属于静态内存分配。
数据段:通常是指用来存放程序中已初始化的全局变量的一块内存区域,属于静态内存分配。
代码段:通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读,某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。其中,程序段为程序代码在内存中的映射,一个程序可以在内存中有多个副本。
堆:用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc/free等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张)/释放的内存从堆中被剔除(堆被缩减)。
栈:又称堆栈,存放程序的局部变量(但不包括static声明的变量,static意味着在数据段中存放变量)。除此以外,在函数被调用时,栈用来传递参数和返回值。由于栈的先进先出特点,所以栈特别方便用来保存/恢复调用现场。
由于条件、循环等控制语句都在代码段中,属于只读空间,那么代码段中的内容在编译时就已经确定无法动态修改了。而变量则由于在堆和栈空间,可以在程序运行之后动态地修改。
qlang相当于自带了解析器,可以把一些校验逻辑保存到变量中。当调用这段代码的时候,再去动态地将这段代码翻译为机器指令去执行。因此,这段保存在变量中的校验逻辑,就可以在程序运行的过程中动态地修改了。智能合约和qlang结合之后,智能合约就可实现上述功能,将业务逻辑的实现变得灵活可变,随时能够修改某个功能的实现逻辑。比如一个转账操作,初始的限制条件是每个账户在给别人转账时,转出金额减去余额不能小于0。而如果业务需求发生改变,允许每个账户可以赊账1000,那么转账的校验规则就需要变成转出金额减去余额不能小于-1000。这时,首先要将转账的校验规则使用qlang的语法规则实现,然后将此实现以字符串的形式借助智能合约存储在区块链上(比如以“check”为索引)。每次执行转账操作时,先从智能合约里面取出“check”对应的字符串,然后调用qlang提供的执行代码的接口执行其校验逻辑,判断操作是否合法。如果想修改转账的校验规则,那么只需修改“check”对应的内容即可。
对于传统的智能合约而言,在转账的接口里通常会有一段判断逻辑。以“如果余额小于转账金额就返回错误信息,并结束操作”为例,进行说明:
由于智能合约在运行之前首先要完成编译,而上述判断逻辑属于源代码并且不属于变量。因此会参与到编译可执行程序的操作中,在编译完成,即程序运行之后可以动态地修改。
如果是qlang实现的智能合约,就可以把转账逻辑替换成:
如此,初始时候就可以设置上述注释中的“check”为转账接口默认的校验规则。对于需要修改转账接口的校验规则,那么只需要增加一个修改“check”所对应的字符串的内容的接口,并修改“check”对应的内容即可。
为便于更好地理解上述S101~S103,现以一个具体的实现过程为例进行说明。如图2所示,其为本申请实施例提供的一种区块链智能合约修改方法的示例。
S201,客户端修改转账交易校验规则。
具体的,在智能合约启动时执行初始化操作,将默认的转账交易校验规则写入账本(索引为“check”),另外还需额外增加修改转账交易校验规则的接口。当执行转账操作时,首先从账本中取出check对应的转账交易校验规则,然后调用qlang接口进行验证。如果想修改转账交易校验规则,则直接调用额外增加的修改规则接口即可。
需要说明的是,客户端的角色定义可以包括但不限于核心成员、主要成员和普通成员。其中,核心成员可以对流程进行投票以及发起新的流程,主要成员可以对区块链进行读写操作,而普通成员对区块链只有读取的功能。按照管理权限划分,只有核心成员才能对转账交易校验规则进行修改。
S202,客户端核心成员签名。
需要说明的是,本申请实施例中设置为必须区块链上具有管理权限的成员才能修改转账交易校验规则,比如核心成员;并且,为了保证正常操作,而非恶意操作,本申请实施例设置成员签名的最低数量,比如修改转账交易校验规则需要区块链上51%的核心成员对流程进行签名。其中,百分数计算规则为向上取整。比如,核心成员的数量为50位,而50×51%=25.5,则取整为26,即修改转账交易校验规则需要区块链上26位核心成员的签名。如此,本申请实施例就能够实现智能合约校验逻辑不需要重新部署,并且不需要升级便可灵活地进行修改。
S203,区块链中的接收节点广播交易给其它节点。
S204,验证发起者身份是否合法,如果合法,执行S205;如果不合法,则结束。
S205,将新的转账交易校验规则存入账本中。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
另外,本申请其它实施例还能够为第一交易校验规则添加版本号,并将第一交易校验规则以及第一交易校验规则对应的版本号共同存储于区块链的智能合约中。由于每个版本的操作都对应一个校验规则,本申请实施例能够实现同一个合约可以支持多版本的业务校验规则,并且支持的版本也可动态增加,大大地增加了智能合约的灵活性以及可扩展性。
需要说明的是,在本申请的其它实施例中,当第一交易校验规则存储于区块链的智能合约中时,自动删除第二交易校验规则。其中,第二交易校验规则为第一交易校验规则的旧版本。本申请实施例中在智能合约升级完成之后,自动删除旧版本的智能合约,避免了无效的旧版本智能合约占用系统资源。
基于前述实施例,本申请实施例提供的另一种区块链智能合约修改方法的示例,如图3所示,该方法包括以下步骤:
S301,客户端发起转账操作。
S302,区块链中的接收节点广播交易给其它节点。
S303,验证发起者身份是否合法,如果不合法,执行步骤S304;如果合法,则执行S305。
具体的,当区块链上的节点验证发起者的身份为不合法时,向客户端发送错误报告,并在客户端的显示屏上进行显示,以提醒交易发起者知晓。
S304,返回错误。
比如,返回错误时可以为在客户端界面上进行文字提示,也可以同时发出语音提示。
S305,调用转账接口。
S306,从账本中获取转账交易校验规则。
需要说明的是,本申请实施例中在修改转账交易校验规则之后,当客户端再次发起转账交易时,区块链上的节点就会按照新设置的转账交易校验规则进行校验。这样,就能够在很大程度上增强了智能合约的灵活性和可扩展性。
S307,余额是否满足条件,如果不满足,执行S308;如果满足,则执行S309。
比如,限制条件为每个账户在给别的账户进行转账时,转出金额减去余额不能小于0。
S308,返回错误。
比如,返回错误时可以为在客户端界面上进行文字提示,也可以同时发出语音提示。
S309,落账。
具体的,在余额满足条件之后,将转账交易记录在区块链的账本中。另外,本申请的其它实施例中还需要经过共识过程才能落账,即当对转账交易达到一定数量的合法投票时,该转账交易才会被共识为合法。由于共识过程具有不可篡改的属性,保证了交易的公平、公开和透明。
S310,返回成功。
具体的,可以通过声学效果以及视觉效果发出提示,本申请实施例对此不进行特别限定。比如,返回成功时可以为在客户端界面上进行文字提示,也可以同时发出语音提示,并伴随着呼吸灯闪烁。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
本申请实施例提供的一种区块链智能合约修改方法,对于公有链的智能合约而言,智能合约只要一经部署,合约逻辑便无法修改,并且无法升级;而对于联盟链的智能合约而言,虽然能够对智能合约的逻辑进行修改,但是由于安装智能合约的节点数量巨大,需要对每一个节点进行升级操作,过程相当繁琐;基于此,本申请实施例中首先接收经过修改的第一交易校验规则,其中第一交易校验规则包括成员签名信息;然后,在区块链中广播第一交易校验规则,并对成员签名信息进行合法性验证;进而,当成员签名信息合法时,将第一交易校验规则作为变量存储于区块链的智能合约中。本申请实施例将交易校验规则作为变量存储,能够随时方便地修改交易校验规则,且只需要修改一次,避免了对每一个节点都进行升级操作,提高了区块链智能合约修改的效率。
基于前述实施例,本申请实施例提供一种区块链智能合约修改装置,该装置可以应用于图1~3对应的实施例提供的区块链智能合约修改方法中。参照图4所示,该区块链智能合约修改装置4包括:
接收模块41,用于接收经过修改的第一交易校验规则,第一交易校验规则包括成员签名信息;
验证模块42,用于在区块链中广播第一交易校验规则,并对成员签名信息进行合法性验证;
存储模块43,用于当成员签名信息合法时,将第一交易校验规则作为变量存储于区块链的智能合约中。
在本申请的其它实施例中,如图5所示,验证模块42包括:
提取单元421,用于提取第一交易校验规则中的成员签名信息;
验证单元422,用于将成员签名信息发送至区块链中的节点,以验证成员签名信息的合法性。
在本申请的其它实施例中,验证单元422具体用于获取成员签名信息对应的第一特征码以及区块链中的节点对应的第二特征码;
遍历区块链中的节点对应的第二特征码,若第一特征码与第二特征码相同,则成员签名信息合法。
在本申请的其它实施例中,存储模块43还用于为第一交易校验规则添加版本号,并将第一交易校验规则以及第一交易校验规则对应的版本号共同存储于区块链的智能合约中。
在本申请的其它实施例中,存储模块43还用于当第一交易校验规则存储于区块链的智能合约中时,自动删除第二交易校验规则。
其中,第二交易校验规则为第一交易校验规则的旧版本。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
本申请实施例提供的一种区块链智能合约修改装置,对于公有链的智能合约而言,智能合约只要一经部署,合约逻辑便无法修改,并且无法升级;而对于联盟链的智能合约而言,虽然能够对智能合约的逻辑进行修改,但是由于安装智能合约的节点数量巨大,需要对每一个节点进行升级操作,过程相当繁琐;基于此,本申请实施例中首先接收经过修改的第一交易校验规则,其中第一交易校验规则包括成员签名信息;然后,在区块链中广播第一交易校验规则,并对成员签名信息进行合法性验证;进而,当成员签名信息合法时,将第一交易校验规则作为变量存储于区块链的智能合约中。本申请实施例将交易校验规则作为变量存储,能够随时方便地修改交易校验规则,且只需要修改一次,避免了对每一个节点都进行升级操作,提高了区块链智能合约修改的效率。
基于前述实施例,本申请实施例提供一种计算机系统。请参照图6所示,该计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM603中,还存储有系统操作所需的各种程序和数据。CPU 601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本申请的实施例,上文参考流程图1~3描述的过程可以被实现为计算机软件程序。例如,本申请的实施例1包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序由CPU 601执行,以实现如下步骤:
接收经过修改的第一交易校验规则,第一交易校验规则包括成员签名信息;
在区块链中广播第一交易校验规则,并对成员签名信息进行合法性验证;
当成员签名信息合法时,将第一交易校验规则作为变量存储于区块链的智能合约中。
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例区块链智能合约修改方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块、验证模块及存储模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的终端中所包含的;也可以是单独存在,而未装配入该终端中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该终端执行时,使得该终端实现如上述实施例中的区块链智能合约修改方法。
例如,终端可以实现如图1中所示的:S101,接收经过修改的第一交易校验规则,第一交易校验规则包括成员签名信息;S102,在区块链中广播第一交易校验规则,并对成员签名信息进行合法性验证;S103,当成员签名信息合法时,将第一交易校验规则作为变量存储于区块链的智能合约中。又如,终端可以实现如图2和图3中所示的各个步骤。
应当注意,尽管在上文详细描述中提及了用于动作执行的终端的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种区块链智能合约修改方法,其特征在于,所述方法包括:
接收经过修改的第一交易校验规则,所述第一交易校验规则包括成员签名信息;
在区块链中广播所述第一交易校验规则,并对所述成员签名信息进行合法性验证;
当所述成员签名信息合法时,通过Q语言将所述第一交易校验规则作为变量存储于所述区块链的智能合约中,所述Q语言用于对所述第一交易校验规则进行解析之后以变量形式保存,并在调用所述第一交易校验规则时,将所述第一交易校验规则翻译为机器可执行指令。
2.根据权利要求1所述的区块链智能合约修改方法,其特征在于,所述在区块链中广播所述第一交易校验规则,并对所述成员签名信息进行合法性验证,包括:
提取所述第一交易校验规则中的所述成员签名信息;
将所述成员签名信息发送至所述区块链中的节点,以验证所述成员签名信息的合法性。
3.根据权利要求2所述的区块链智能合约修改方法,其特征在于,所述将所述成员签名信息发送至所述区块链中的节点,以验证所述成员签名信息的合法性,包括:
获取所述成员签名信息对应的第一特征码以及所述区块链中的节点对应的第二特征码;
遍历所述区块链中的节点对应的第二特征码,若所述第一特征码与所述第二特征码相同,则所述成员签名信息合法。
4.根据权利要求1所述的区块链智能合约修改方法,其特征在于,所述当所述成员签名信息合法时,将所述第一交易校验规则作为变量存储于所述区块链的智能合约中,还包括:
为所述第一交易校验规则添加版本号,并将所述第一交易校验规则以及所述第一交易校验规则对应的版本号共同存储于所述区块链的智能合约中。
5.根据权利要求1所述的区块链智能合约修改方法,其特征在于,所述方法还包括:
当所述第一交易校验规则存储于所述区块链的智能合约中时,自动删除第二交易校验规则;其中,所述第二交易校验规则为所述第一交易校验规则的旧版本。
6.一种区块链智能合约修改装置,其特征在于,所述装置包括:
接收模块,用于接收经过修改的第一交易校验规则,所述第一交易校验规则包括成员签名信息;
验证模块,用于在区块链中广播所述第一交易校验规则,并对所述成员签名信息进行合法性验证;
存储模块,用于当所述成员签名信息合法时,通过Q语言将所述第一交易校验规则作为变量存储于所述区块链的智能合约中,所述Q语言用于对所述第一交易校验规则进行解析之后以变量形式保存,并在调用所述第一交易校验规则时,将所述第一交易校验规则翻译为机器可执行指令。
7.根据权利要求6所述的区块链智能合约修改装置,其特征在于,所述验证模块包括:
提取单元,用于提取所述第一交易校验规则中的所述成员签名信息;
验证单元,用于将所述成员签名信息发送至所述区块链中的节点,以验证所述成员签名信息的合法性。
8.根据权利要求7所述的区块链智能合约修改装置,其特征在于,所述验证单元具体用于获取所述成员签名信息对应的第一特征码以及所述区块链中的节点对应的第二特征码;
遍历所述区块链中的节点对应的第二特征码,若所述第一特征码与所述第二特征码相同,则所述成员签名信息合法。
9.根据权利要求6所述的区块链智能合约修改装置,其特征在于,所述存储模块还用于为所述第一交易校验规则添加版本号,并将所述第一交易校验规则以及所述第一交易校验规则对应的版本号共同存储于所述区块链的智能合约中。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至5中任意一项所述的区块链智能合约修改方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910262573.4A CN110009362B (zh) | 2019-04-02 | 2019-04-02 | 区块链智能合约修改方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910262573.4A CN110009362B (zh) | 2019-04-02 | 2019-04-02 | 区块链智能合约修改方法、装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110009362A CN110009362A (zh) | 2019-07-12 |
CN110009362B true CN110009362B (zh) | 2021-07-06 |
Family
ID=67169611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910262573.4A Active CN110009362B (zh) | 2019-04-02 | 2019-04-02 | 区块链智能合约修改方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110009362B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112308712A (zh) * | 2019-08-02 | 2021-02-02 | 苏红 | 一种将交易逻辑嵌入区块链交易中的方法 |
CN110807195B (zh) * | 2019-09-26 | 2023-08-25 | 图灵人工智能研究院(南京)有限公司 | 一种智能合约的发布方法、发布平台装置及发布系统 |
CN110675153A (zh) * | 2019-10-10 | 2020-01-10 | 北京京东振世信息技术有限公司 | 基于区块链的数据校验方法及装置、存储介质及电子设备 |
CN111221904A (zh) * | 2019-12-23 | 2020-06-02 | 深圳壹账通智能科技有限公司 | 智能合约部署、执行方法、装置、电子设备及存储介质 |
CN111475777B (zh) * | 2020-03-09 | 2023-04-25 | 上海零数众合信息科技有限公司 | 一种区块链智能合约的升级方法 |
CN111507714B (zh) * | 2020-04-10 | 2021-04-02 | 成都质数斯达克科技有限公司 | 一种验证方法、装置、服务器及存储介质 |
CN112085604A (zh) * | 2020-09-10 | 2020-12-15 | 北京金山云网络技术有限公司 | 一种升级智能合约的方法及装置 |
CN112001799B (zh) * | 2020-10-28 | 2021-02-05 | 支付宝(杭州)信息技术有限公司 | 在区块链中执行智能合约的方法和装置 |
CN113191774A (zh) * | 2021-04-19 | 2021-07-30 | 深圳前海移联科技有限公司 | 一种可更新的智能合约的动态验证方法 |
CN113542405B (zh) * | 2021-07-14 | 2023-10-17 | 广东卓启云链科技有限公司 | 基于区块链的网络通信系统、方法、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598579A (zh) * | 2016-12-06 | 2017-04-26 | 北京果仁宝科技有限公司 | 区块链上集成动态类型编程语言方法和装置 |
CN108256859A (zh) * | 2018-01-02 | 2018-07-06 | 中国工商银行股份有限公司 | 基于区块链的金融产品交易共识方法、节点及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11055703B2 (en) * | 2017-06-19 | 2021-07-06 | Hitachi, Ltd. | Smart contract lifecycle management |
CN107464148A (zh) * | 2017-08-23 | 2017-12-12 | 众安信息技术服务有限公司 | 一种基于联盟链的智能合约升级方法和系统 |
CN108833398B (zh) * | 2018-06-08 | 2020-12-15 | 深圳智链未来科技有限公司 | 一种区块链智能合约更新方法、装置及设备 |
CN108881312A (zh) * | 2018-08-24 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 智能合约升级方法、系统和相关设备以及存储介质 |
CN109451061B (zh) * | 2018-12-20 | 2021-06-01 | 全链通有限公司 | 区块链的合约调整处理方法和系统 |
-
2019
- 2019-04-02 CN CN201910262573.4A patent/CN110009362B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598579A (zh) * | 2016-12-06 | 2017-04-26 | 北京果仁宝科技有限公司 | 区块链上集成动态类型编程语言方法和装置 |
CN108256859A (zh) * | 2018-01-02 | 2018-07-06 | 中国工商银行股份有限公司 | 基于区块链的金融产品交易共识方法、节点及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110009362A (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110009362B (zh) | 区块链智能合约修改方法、装置和计算机可读存储介质 | |
CN107025559B (zh) | 一种业务处理方法及装置 | |
CN112104709B (zh) | 智能合约的处理方法、装置、介质及电子设备 | |
CN110377462B (zh) | 接口测试方法、装置及终端设备 | |
CN110262783B (zh) | 一种接口生成方法、装置及终端设备 | |
CN110138767B (zh) | 事务请求的处理方法、装置、设备和存储介质 | |
CN108846129B (zh) | 存储数据访问方法、装置及存储介质 | |
CN110928534B (zh) | 一种基于区块链的工作流节点认证方法及装置 | |
CN110221840B (zh) | 应用程序的功能实现方法及装置、设备及存储介质 | |
CN109299913B (zh) | 员工薪资方案生成方法及装置 | |
CN116089992A (zh) | 日志信息处理方法、装置、设备、存储介质和程序产品 | |
US20230208659A1 (en) | Blockchain apparatus and method for mobile edge computing | |
CN107277108B (zh) | 一种区块链的节点处的消息处理方法、装置及系统 | |
CN108052842B (zh) | 签名数据的存储、验证方法及装置 | |
KR20210106532A (ko) | 블록체인을 통해 행해지는 전송의 성능을 제어하거나 강제하기 위한 컴퓨터-구현된 시스템 및 방법 | |
CN110166272B (zh) | 提供终端设备指标仲裁服务的方法、装置及系统 | |
CN112801661B (zh) | 区块链跨链规则管理方法及系统 | |
CN114168937A (zh) | 一种资源访问方法、计算设备及可读存储介质 | |
KR102304953B1 (ko) | 피어 노드와 그 정보 처리 방법 및 블록체인 플랫폼 시스템 | |
CN114186958A (zh) | 将列表数据导出为电子表格的方法、计算设备及存储介质 | |
CN113312900A (zh) | 数据校验的方法和装置 | |
CN112925523A (zh) | 对象比较方法、装置、设备及计算机可读介质 | |
CN114629954B (zh) | 内容分发方法、系统、设备和存储介质 | |
US20230110520A1 (en) | Ui service package generation and registration method and apparatus, and ui service loading method and apparatus | |
Pérez-García | Improving Firmware Development Through the Rust Programming Language |
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 |