CN110070360A - 一种事务请求处理方法、装置、设备及存储介质 - Google Patents
一种事务请求处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110070360A CN110070360A CN201910351297.9A CN201910351297A CN110070360A CN 110070360 A CN110070360 A CN 110070360A CN 201910351297 A CN201910351297 A CN 201910351297A CN 110070360 A CN110070360 A CN 110070360A
- Authority
- CN
- China
- Prior art keywords
- user
- data
- transactions requests
- block chain
- transaction information
- 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
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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种事务请求处理方法、装置、设备及存储介质。该方法由区块链节点执行,该方法包括:接收基于智能合约发起的事务请求;调用所述智能合约执行所述事务请求,确定事务数据,其中,所述事务数据中包括写数据集;如果确定所述写数据集中包括用户数据,则查看所述事务数据中的所述用户数据对应用户的用户签名;其中,所述用户数据为对应于区块链中用户账号的所属数据;如果所述用户签名验证通过,则向区块链写入所述事务数据。以实现能够对智能合约进行灵活修改,且同时提高用户利益的保障能力。
Description
技术领域
本发明实施例涉及区块链数据处理技术,尤其涉及一种事务请求处理方法、装置、设备及存储介质。
背景技术
区块链节点通常是基于智能合约来完成对区块链数据的处理过程,对于区块链中的智能合约,早期的一些智能合约,如传统的未花费的交易输出(Unspent TransactionOutput,UTXO),是内嵌入硬件部署的;而后续开发的智能合约通常是可独立于硬件可安装和运行的软件代码。现有的区块链技术,在创建区块链时部署智能合约,且该智能合约中约定的对数据处理的规则在部署时是通过所有节点认证同意的,不会损害用户的利益。
但是,由于编写智能合约程序代码的过程中,避免不了会出现程序漏洞,或后期需要对智能合约功能升级的情况,此时,就会出现对预先部署的智能合约进行修改的需求。修改后的智能合约可能出现对用户数据的修改,进而损害用户利益;此外,有些节点还会基于智能合约的程序漏洞来进行有损于用户利益的恶意操作。针对上述情况,现有技术没有提供有效的解决方案。
发明内容
本发明实施例提供一种事务请求处理方法、装置、设备及存储介质,以实现能够对智能合约进行灵活修改,且同时提高用户利益的保障能力。
第一方面,本发明实施例提供了一种事务请求处理方法,由区块链节点执行,该方法包括:
接收基于智能合约发起的事务请求;
调用所述智能合约执行所述事务请求,确定事务数据,其中,所述事务数据中包括写数据集;
如果确定所述写数据集中包括用户数据,则查看所述事务数据中的所述用户数据对应用户的用户签名;其中,所述用户数据为对应于区块链中用户账号的所属数据;
如果所述用户签名验证通过,则向区块链写入所述事务数据。
第二方面,本发明实施例还提供了一种事务请求处理装置,配置于区块链节点中,该装置包括:
事务请求接收模块,用于接收基于智能合约发起的事务请求;
事务数据确定模块,用于调用所述智能合约执行所述事务请求,确定事务数据,其中,所述事务数据中包括写数据集;
用户签名查看模块,用于如果确定所述写数据集中包括用户数据,则查看所述事务数据中的所述用户数据对应用户的用户签名;其中,所述用户数据为对应于区块链中用户账号的所属数据;
事务数据写入模块,用于如果所述用户签名验证通过,则向区块链写入所述事务数据。
第三方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的事务请求处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的事务请求处理方法。
本发明实施例的技术方案,区块链节点接收事务请求后,调用智能合约执行该事务请求确定事务数据,若事务数据中的写数据集中包括用户数据,则查看用户数据对应的用户签名,并对其进行验证,若验证通过则向区块链写入该事务数据。解决了因智能合约的修改或智能合约的程序漏洞给用户利益造成损害的问题,实现能够对智能合约进行灵活修改,且同时提高用户利益的保障能力。
附图说明
图1是本发明实施例一提供的一种事务请求处理方法的流程图;
图2是本发明实施例二提供的一种事务请求处理方法的流程图;
图3是本发明实施例三提供的一种事务请求处理装置的结构框图;
图4是本发明实施例四提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种事务请求处理方法的流程图,本实施例可适用于对基于智能合约发起的事务请求进行处理的情况,该方法可以由区块链节点来执行,例如,可以是由区块链节点中的区块生成节点执行。该方法可以由配置在区块链节点中的事务请求处理装置或设备来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于承载区块链节点的电子设备中,该方法具体包括如下步骤:
S101,接收基于智能合约发起的事务请求。
其中,事务请求可以是区块链中的任意节点或者是可以与区块链进行交互的非区块链节点在产生事务请求发起需求时,调用虚拟机运行智能合约的相关程序代码生成的事务请求。本实施例中所涉及的智能合约可以是实现事务请求发起及处理等所有相关流程的程序集合,在该智能合约中可提供交互界面,供各节点方发起数据和响应数据的不同内容,从而发起或处理各个具体的事务请求。
可选的,在本实施例中,区块链节点接收基于智能合约发起的事务请求可以包括如下两种情况:
情况一、接收用户在本地节点的交互界面,基于智能合约发起的事务请求。
具体的,情况一是当用户有产生事务请求需求时,就会触发其本地节点设备基于智能合约展示交互界面,用户会基于该交互界面填入本次请求的需求信息,本地节点设备就会基于智能合约生成事务请求,并发送至区块链网络。区块链的区块生成节点就会接收该事务请求进行处理。可选的,若生成该事务请求的本地节点是区块链的当前区块生成节点,则此时就是本地节点接收自身基于智能合约发起的事务请求。
情况二、接收其他节点传输的基于智能合约发起的事务请求。
具体的,情况二是指向区块链网络发送本次事务请求的节点并不是产生该事务请求的节点,只是作为事务请求的中间传输节点。例如,若用户通过其终端设备上安装的客户端提供的交互页面基于智能合约发起了事务请求,该客户端无法直接向区块链发送该事务请求,此时客户端需要通过与区块链节点设备A进行交互,由区块链节点设备A将该事务请求发送至区块链网络,此时该区块链节点设备A即为情况二中的其他节点。区块链的区块生成节点就会接收节点设备A传输的事务请求进行处理。
S102,调用智能合约执行事务请求,确定事务数据,其中,事务数据中包括写数据集。
其中,事务数据可以是指区块链节点基于智能合约对事务请求进行处理后,得到的所有数据,其可以包括读数据集和写数据集。其中,写数据集可以是指在处理事务请求的过程中,需要执行写入操作的数据,读数据集可以指在处理事务请求的过程中,需要执行读取操作的数据。例如,某一交易请求是当账户A的金额达到100元时,从账户B转账10元到账户C。调用智能合约执行该交易请求时,需要查看账户A金额是否达到100元,但不对其执行写入操作,所以账户A金额数据属于事务数据中的读数据集;而账户B和账户C的金额数据是需要根据交易进行修改的数据,涉及了数据写入操作。所以账户B和账户C的金额数据属于事务数据中的写数据集。
可选的,区块链节点在接收到基于智能合约发起的事务请求后,调用虚拟机运行智能合约的相关程序代码,对接收到的事务请求进行处理,得到处理该事务请求的事务数据。需要说明的是,本步骤中区块链节点调用智能合约执行事务请求的过程与现有技术中区块链节点基于智能合约执行事务请求得到事务数据的过程相同,区别在于,本实施例中确定出事务数据后,并不直接将其存储在区块链中,而是执行后续S103,对事务数据中的写数据集进行进一步的审核验证后,才决定是否将事务数据写入到区块链中。
需要说明的是,本实施例所处理的事务请求为事务数据中包含写数据集的事务请求,尤其处理的是写数据集中包括用户数据的事务请求。
S103,如果确定写数据集中包括用户数据,则查看事务数据中的用户数据对应用户的用户签名;其中,用户数据为对应于区块链中用户账号的所属数据。
可选的,写数据集中的数据可以包括用户数据、合约数据以及其他数据(如事务请求的内容、事务请求处理时间、处理节点等)。其中,用户数据为对应于区块链中用户账号的所属数据。区块链中的每一个用户都有其对应的账号,该账号可以是区块链节点在用户注册账户时为新用户设定的,该账号下对应的就是和该用户相关的用户数据。例如,用户数据可以包括:账户资产、用户基本信息和用户密钥等等。合约数据为对应于智能合约代码内容的数据,可以是开发的一个新的智能合约的代码内容的数据,也可以是对已有智能合约的代码内容进行修改的数据。
用户签名可以是在发起事务请求时,用户对其用户数据即将进行的写入操作审核同意后,生成的该用户的签名。可选的,用户签名可以是用户的身份权限私钥;也可以是采用身份权限私钥或预设加密算法对用户同意执行本次写入操作的用户数据进行签名得到的。该用户签名可以是用户接收到请求发起方节点发送的写数据签名请求后,对用户数据的写入操作进行审核通过后生成的,例如,在事务请求的执行过程中,按照智能合约中的代码规定,向待写入数据的用户发起写数据签名请求,以请求用户对用户数据的写入操作进行审核,若用户审核通过,则生成用户签名反馈给请求发起方。也可以是在用户基于智能合约发起一个新的事务请求时,直接提供给节点的用户签名表明用户对此事务请求中用户数据的写入操作是认可的。
可选的,本实施例中,识别写数据集中是否包括用户数据的方法有很多,对此本实施例不进行限定。可以是基于写数据集中各数据内容的本身来识别写数据集中是否包括用户数据,例如,写数据集中的各数据可以是按照设定格式存储的字段,而对于用户数据其设定格式的字段中,预设一个或几个字段的内容是用户数据所特有的标识,此时区块链节点可以通过识别写数据集中各数据的预设字段的内容是否为用户数据所特有的标识,若是,则说明该数据为用户数据。
还可以是通过识别各数据的存储位置,来确定该数据是否为用户数据,例如,若写数据集中的某一数据存储在用户空间,则说明该数据为用户数据。也可以是根据数据集中各数据的标签来确定用户数据,例如,用户数据都设有用户标签,在写数据集中查找有用户标签的数据,即为用户数据。
可选的,本实施例中,若确定写数据集中包括用户数据,则进一步从事务数据中查找用户数据对应的用户签名。由上述介绍可知,如果事务请求的事务数据中有用户数据写入操作时,事务数据中就会包含用户数据对应的用户签名,所以本步骤在确定写数据集中包括用户数据时,可以从对事务请求处理得到的事务数据中查看是否有用户数据对应的用户签名。
可选的,本实施例中,用户数据可以包括非获利型数据和获利型数据,其中,非获利类型的用户数据为向用户账户进行数字资产转入的用户数据。获利型的用户数据为向用户账户进行数字资产获取的用户数据。例如,账户A向账户B转账10元钱,此时用户A的用户数据为非获利型数据,用户B的用户数据为获利型数据。可选的,由于获利型数据是代表用户利益的增加,而本实施例主要是为了防止用户的利益受损,所以为了提高事务请求的处理效率,本实施例的另一种实施方式可以是,若用户数据为非获利型数据时,则执行查看事务数据中的用户数据对应用户的用户签名;若用户数据为获利型数据时,则无需查看用户数据对应的用户签名,直接执行S104,默认用户签名验证通过,执行向区块链写入事务数据。
S104,如果用户签名验证通过,则向区块链写入事务数据。
可选的,对用户签名验证的过程可以包括但不限于:验证S103中确定的用户数据是否有对应的用户签名,若有,则验证通过。也可以是验证用户签名是否正确,例如,若用户签名是用户的私钥,则将其与区块链网络中存储的用户公钥进行验证,若用户签名是对用户数据采用其私钥或预设加密算法生成的,则可以是采用用户的公钥或预设加密算法对待写入的用户数据进行加密生成的签名对用户签名进行验证等。如果验证通过,则将向区块链写入事务数据。否则拒绝向区块链写入事务数据。
需要说明的是,本实施例所述的事务请求处理方法,由区块链节点中部署的系统级程序来执行。其中,系统级程序可以是部署于区块链底层操作系统软件中的程序,独立于智能合约,该系统级程序的稳定性和可靠性强,在节点部署区块链系统后通常是不会改变的。所以由区块链节点中部署的系统级程序来执行本发明实施例的方法,可以很好的对智能合约进行监督,实现了基于智能合约和系统级程序对用户利益进行多重保障,使得无论智能合约是否修改,是否存在程序漏洞,都不会对用户利益造成威胁。
本发明实施例的技术方案,区块链节点接收事务请求后,调用智能合约执行该事务请求确定事务数据,若事务数据中的写数据集中包括用户数据,则查看用户数据对应的用户签名,并对其进行验证,若验证通过则向区块链写入该事务数据。解决了因智能合约的修改或智能合约的程序漏洞给用户利益造成损害的问题,能够允许对智能合约进行灵活修改,且基于区块链节点中部署的系统级程序执行本发明实施例的方法提高了用户利益的保障能力。
实施例二
图2为本发明实施例二提供的一种事务请求处理方法的流程图,本实施例在上述实施例的基础上,进行了进一步的优化,具体给出了如何确定所述写数据集中包括用户数据的具体情况介绍,该方法具体包括:
S201,接收基于智能合约发起的事务请求。
示例性的,若接收到的智能合约发起的事务请求为:基于智能合约将用户A的数字猫a转给用户B。其相关程序代码为:
USER[B].cat.insert(catid_a,USER[A].cat[catid_a])
USER[A].cat.erase(catid_a)
其中,USER为用户标签;USER[B]为用户B的账户;USER[A]为用户A的账户,cat.insert为数字猫插入函数;cat.erase为数字猫删除函数;catid_a为数字猫a。
S202,调用智能合约执行事务请求,确定事务数据,其中,事务数据中包括写数据集。
示例性的,区块链节点调用智能合约,对S201接收到的事务请求进行处理,得到的事务数据包括:S201中的事务请求的相关程序代码、用户A的数字猫数据(包括本次交易前和交易后的相关数据)以及用户B的数字猫数据(包括本次交易前和交易后的相关数据)等。由于执行本次事务请求,需要对用户A和用户B所拥有的数字猫的数据进行修改,即用户A的资产中删除数字猫a,用户B的资产中增加数字猫a。所以,此时事务数据中包括的写数据是:用户A的数字猫数据和用户B的数字猫数据。
S203,将写数据集中包括用户标签的数据确定为用户数据。
其中,为了对区块链中存储的数据进行区别,可以为同一种类的数据设置一个公有的标签,如为用户数据设置公有的用户标签,为合约数据设置公有的合约标签。用户标签就是就是为用户数据设置的,用于表征该数据为用户数据的标签。该用户标签可以由数字、字母或汉字等构成。
可选的,区块链的数据可以是以设定存储结构进行存储,所述设定存储结构的最小存储单元的标识中包括用户标签。其中,设定存储结构可以包括很多,如字符串存储结构、数组存储结构以及键值对存储结构等。若设定存储结构为键值对存储结构,所述最小存储单元为键值对,所述用户标签为键值对中键域内键标识的一个字段。
具体的,由于字符串存储结构和数组存储结果,在进行数据索引时,需要遍历字符串的每一个字段或数组中的每一个元素,检索过程繁琐,当数据较多时需要耗费较长的时间。所以,为了便于区块链数据的索引,本实施例优先采用键值对存储结构来存储用户数据。
其中,键值对存储结构(Keys.Value)包括键域(Keys)和值域(Value)两个部分,键域用来区分不同的对象,值域用来表示不同对象对应的数值。例如,按照键值对存储结构存储的数据“用户A.数字猫a”,则说明该数据记录的是用户A的数字猫a。
可选的,对于键值对存储结构,用户标签为键值对中键域内键标识的一个字段。键标识是每个通过键值形式存储的数据的标识,每一个用户的数据都有其对应的一个键标识,可选的,为了区分同一存储空间的不同用户的数据,可以采用存储空间(Bucket)技术,为键域内的键标识设置多个字段,从而保证每个用户的键标识各不相同,键标识中的各字段间可以用空格、点标识来等进行隔开,可选的,一个用户的键标识可以包括:用户标签[空格]账户名称,如“USER[A]”。本实施例通过为用户数据设置多字段的键标识,保证了每个用户数据都有其唯一对应的键标识。可选的,用户标签的字段可以是键标识字段的前缀标识、也可以是键标识字段的后缀标识,也可以是键标识字段是中间标识。
可选的,本实施例为用户数据添加用户标签的过程可以通过如下方式实现:接收用户发起的用户账户创建事务请求,调用用户创建智能合约创建用户账户,并将用户账户配置在用户空间中,以为所述用户账户的所属数据添加用户标签。具体的,当用户想要在区块链中创建账户时,可以是通过本地节点、可与区块链进行交互的终端设备或客户端的交互界面,基于用户创建智能合约发起创建事务请求,发送至区块链网络,区块链节点在接收到该创建事务请求后,会调用用户创建智能合约为该用户创建用户账户,并将创建的用户账户配置在用户空间,其中,用户空间就是用来记录用户账户信息以及存储用户数据的空间。可选的,可以将用户空间的标签作为用户标签,当用户账户配置在用户空间中后,该账户对应的用户数据就具有了用户标签。例如,假设用户空间的标签是“USER”,且将用户账户A配置在该用户空间,此时,用户账户A的用户数据以键值对存储结构存储时,最小存储单元中的标识中都包含用户标签“USER”,如用户A的数据“USER[A].cat[catid_a]”中的前缀“USER”即为用户标签。
示例性的,针对S202的事务数据,查找事务数据中的写数据中是否包含用户标签“USER”,由于用户A的数字猫数据和用户B的数字猫数据中都包括用户标签“USER”,所以将用户A的数字猫数据和用户B的数字猫数据确定为用户数据。
S204,如果写数据集中包括用户数据,则查看事务数据中的用户数据对应用户的用户签名;其中,用户数据为对应于区块链中用户账号的所属数据。
示例性的,由于事务数据中包括用户数据:用户A的数字猫数据和用户B的数字猫数据,所以从S202确定的事务数据中查找用户A和用户B的用户标签。可选的,由于用户A的数据属于非获利型数据;用户B的数据数据获利型数据,本实施例还可以是只从事务数据中查找非获利型数据对应的用户A的用户标签。
S205,对用户签名进行验证,若验证通过,执行S206;若验证不通过,则执行S207。
示例性的,对查找到的用户A的用户标签进行验证,或对查找到的用户A和用户B的用户标签进行验证。具体验证方法可以是:验证是否查找到用户数据对应的用户标签,如事务数据中是否有用户A的用户标签;还可以是验证查找的用户标签是否正确,如查找到的用户A的用户标签是否真的是用户A的标签,该标签是否被篡改等。如果对用户标签验证通过,则可以执行S206,向区块链写入事务数据。否则,执行S207,拒绝事务数据在本地节点的写入操作。
S206,如果用户签名验证通过,则向区块链写入事务数据。
S207,如果用户签名验证不通过,则拒绝事务数据在本地节点的写入操作。
示例性的,如果用户标签验证不通过,则说明基于智能合约发起的事务请求可能损害用户的利益,并且没有经过该用户的签名允许,此时拒绝将S202中调用智能合约执行事务请求得到的事务数据写入区块链中,同时区块链节点在本地也不进行事务数据的写入。可选的,区块链节点拒绝事务数据在本地节点的写入操作后,可以是向请求发起方反馈拒绝原因,以使请求发起方请求用户对用户数据进行审核签名后重新发起事务请求;区块链节点也可以在拒绝事务数据在本地节点的写入操作后,不再执行其他操作,请求发起方在预设时间内没有接收到区块链节点发送的写有事务请求对应的事务数据区块,则默认请求发起方发起的事务请求无效。需要说明的是,无论执行当前操作的区块链节点是否为生成事务请求的节点,都需拒绝执行事务数据在本地节点的写入操作。
可选的,如果用户签名验证不通过,且执行当前操作的区块链节点为请求发起方节点,此时本实施例的另一种实施方式可以是:拒绝向区块链网络发起事务请求。具体的,如果执行当前操作的节点为请求发起方节点,则该节点在用户签名验证不通过后,及可确定其本次基于智能合约发起的事务请求可能损害用户利益,此时该节点可以拒绝将生成的事务请求发送至区块链网络,即拒绝发起本次事务请求。
本发明实施例的技术方案,区块链节点接收事务请求后,调用智能合约执行该事务请求确定事务数据,若事务数据的写数据中包含有用户标签的数据,则包含有用户标签的数据为用户数据,查看用户数据对应的用户签名,并对其进行验证,若验证通过则向区块链写入该事务数据,否则,拒绝事务数据在本地节点的写入操作。本方案可以很好的对智能合约进行监督,实现了基于智能合约和系统级程序对用户利益进行多重保障。
实施例三
图3为本发明实施例三提供的一种事务请求处理装置的结构框图,该装置可配置于区块链节点中。该装置可执行本发明上述各实施例所提供的事务请求处理方法,具备执行方法相应的功能模块和有益效果。
如图3所示,该装置包括:
事务请求接收模块301,用于接收基于智能合约发起的事务请求;
事务数据确定模块302,用于调用所述智能合约执行所述事务请求,确定事务数据,其中,所述事务数据中包括写数据集;
用户签名查看模块303,用于如果确定所述写数据集中包括用户数据,则查看所述事务数据中的所述用户数据对应用户的用户签名;其中,所述用户数据为对应于区块链中用户账号的所属数据;
事务数据写入模块304,用于如果所述用户签名验证通过,则向区块链写入所述事务数据。
本发明实施例的技术方案,区块链节点接收事务请求后,调用智能合约执行该事务请求确定事务数据,若事务数据中的写数据集中包括用户数据,则查看用户数据对应的用户签名,并对其进行验证,若验证通过则向区块链写入该事务数据。解决了因智能合约的修改或智能合约的程序漏洞给用户利益造成损害的问题,能够实现基于事务数据中的合约数据对智能合约进行灵活修改,且基于区块链节点中部署的系统级程序执行本发明实施例的方法提高了用户利益的保障能力。
进一步的,上述用户数据,包括:非获利类型的用户数据。所述非获利类型的用户数据为向用户账户进行数字资产转入的用户数据。
进一步的,上述写数据集中还包括合约数据,所述合约数据为对应于智能合约代码内容的数据。
进一步的,上述事务请求接收模块301具体用于:
接收用户在本地节点的交互界面,基于智能合约发起的事务请求;或
接收其他节点传输的基于智能合约发起的事务请求。
进一步的,上述装置还包括:
拒绝操作模块,用于如果所述用户签名验证不通过,则拒绝向区块链网络发起所述事务请求;或拒绝所述事务数据在本地节点的写入操作。
进一步的,上述装置还包括:用户数据确定模块,用于确定所述写数据集中包括用户数据,具体用于将所述写数据集中包括用户标签的数据确定为用户数据。
进一步的,区块链的数据以设定存储结构进行存储,所述设定存储结构的最小存储单元的标识中包括所述用户标签。
进一步的,设定存储结构为键值对存储结构,所述最小存储单元为键值对,所述用户标签为键值对中键域内键标识的一个字段。
进一步的,上述装置还包括:
账户创建模块,用于接收用户发起的用户账户创建事务请求,调用用户创建智能合约创建用户账户,并将所述用户账户配置在用户空间中,以为所述用户账户的所属数据添加用户标签。
进一步的,上述装置中部署有系统级程序,由部署的系统级程序来执行本发明实施例的事务请求处理方法。
实施例四
图4为本发明实施例四提供的一种设备的结构示意图,图4示出了适于用来实现本发明实施例实施方式的示例性设备的框图。图4显示的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备典型可以是配置有区块链节点的设备。
如图4所示,设备400以通用计算设备的形式表现。设备400的组件可以包括但不限于:一个或者多个处理器或者处理单元416,存储器428,连接不同系统组件(包括存储器428和处理单元416)的总线418。
总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备400典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备400访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)430和/或高速缓存存储器432。设备400可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储器428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明实施例各实施例的功能。
具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储器428中,这样的程序模块442包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明实施例所描述的实施例中的功能和/或方法。
设备400也可以与一个或多个外部设备414(例如键盘、指向设备、显示器424等)通信,还可与一个或者多个使得用户能与该设备400交互的设备通信,和/或与使得该设备400能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口422进行。并且,设备400还可以通过网络适配器420与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与设备400的其它模块通信。应当明白,尽管图中未示出,可以结合设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元416通过运行存储在存储器428中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任一实施例所提供的事务请求处理方法。
实施例五
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行一种事务请求处理方法,该方法包括:
接收基于智能合约发起的事务请求;
调用所述智能合约执行所述事务请求,确定事务数据,其中,所述事务数据中包括写数据集;
如果确定所述写数据集中包括用户数据,则查看所述事务数据中的所述用户数据对应用户的用户签名;其中,所述用户数据为对应于区块链中用户账号的所属数据;
如果所述用户签名验证通过,则向区块链写入所述事务数据。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (14)
1.一种事务请求处理方法,其特征在于,由区块链节点执行,所述方法包括:
接收基于智能合约发起的事务请求;
调用所述智能合约执行所述事务请求,确定事务数据,其中,所述事务数据中包括写数据集;
如果确定所述写数据集中包括用户数据,则查看所述事务数据中的所述用户数据对应用户的用户签名;其中,所述用户数据为对应于区块链中用户账号的所属数据;
如果所述用户签名验证通过,则向区块链写入所述事务数据。
2.根据权利要求1所述的方法,其特征在于,所述用户数据,包括:非获利类型的用户数据。
3.根据权利要求2所述的方法,其特征在于,所述非获利类型的用户数据为向用户账户进行数字资产转入的用户数据。
4.根据权利要求1所述的方法,其特征在于,所述写数据集中还包括合约数据,所述合约数据为对应于智能合约代码内容的数据。
5.根据权利要求1所述的方法,其特征在于,接收基于智能合约发起的事务请求包括:
接收用户在本地节点的交互界面,基于智能合约发起的事务请求;或
接收其他节点传输的基于智能合约发起的事务请求。
6.根据权利要求1所述的方法,其特征在于,如果所述用户签名验证不通过,所述方法还包括:
拒绝向区块链网络发起所述事务请求;或
拒绝所述事务数据在本地节点的写入操作。
7.根据权利要求1所述的方法,其特征在于,确定所述写数据集中包括用户数据,包括:
将所述写数据集中包括用户标签的数据确定为用户数据。
8.根据权利要求7所述的方法,其特征在于,区块链的数据以设定存储结构进行存储,所述设定存储结构的最小存储单元的标识中包括所述用户标签。
9.根据权利要求8所述的方法,其特征在于,设定存储结构为键值对存储结构,所述最小存储单元为键值对,所述用户标签为键值对中键域内键标识的一个字段。
10.根据权利要求7-9任一所述的方法,其特征在于,还包括:
接收用户发起的用户账户创建事务请求,调用用户创建智能合约创建用户账户,并将所述用户账户配置在用户空间中,以为所述用户账户的所属数据添加用户标签。
11.根据权利要求1-6任一所述的方法,其特征在于,所述方法由区块链节点中部署的系统级程序来执行。
12.一种事务请求处理装置,其特征在于,配置于区块链节点中,所述装置包括:
事务请求接收模块,用于接收基于智能合约发起的事务请求;
事务数据确定模块,用于调用所述智能合约执行所述事务请求,确定事务数据,其中,所述事务数据中包括写数据集;
用户签名查看模块,用于如果确定所述写数据集中包括用户数据,则查看所述事务数据中的所述用户数据对应用户的用户签名;其中,所述用户数据为对应于区块链中用户账号的所属数据;
事务数据写入模块,用于如果所述用户签名验证通过,则向区块链写入所述事务数据。
13.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一所述的事务请求处理方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-11中任一所述的事务请求处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910351297.9A CN110070360B (zh) | 2019-04-28 | 2019-04-28 | 一种事务请求处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910351297.9A CN110070360B (zh) | 2019-04-28 | 2019-04-28 | 一种事务请求处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110070360A true CN110070360A (zh) | 2019-07-30 |
CN110070360B CN110070360B (zh) | 2021-07-09 |
Family
ID=67369362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910351297.9A Active CN110070360B (zh) | 2019-04-28 | 2019-04-28 | 一种事务请求处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110070360B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110503433A (zh) * | 2019-08-28 | 2019-11-26 | 北京百度网讯科技有限公司 | 一种区块链中背书的实现方法、装置、设备和介质 |
CN111399993A (zh) * | 2020-03-25 | 2020-07-10 | 百度国际科技(深圳)有限公司 | 一种关联事务请求的跨链实现方法、装置、设备和介质 |
CN112000679A (zh) * | 2020-08-22 | 2020-11-27 | 杭州烽顺科技信息服务有限公司 | 业务操作与数据操作分离的区块链数据处理方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170213209A1 (en) * | 2016-01-21 | 2017-07-27 | International Business Machines Corporation | Enterprise blockchains and transactional systems |
CN107103473A (zh) * | 2017-04-27 | 2017-08-29 | 电子科技大学 | 一种基于区块链的智能合约实现方法 |
US20170310653A1 (en) * | 2016-04-22 | 2017-10-26 | Sony Corporation | Client, server, method and identity verification system |
CN109522729A (zh) * | 2018-11-02 | 2019-03-26 | 中链科技有限公司 | 智能合约状态变更方法及装置 |
CN109522735A (zh) * | 2018-11-29 | 2019-03-26 | 上海中信信息发展股份有限公司 | 一种基于智能合约的数据权限验证方法及装置 |
CN109587253A (zh) * | 2018-12-11 | 2019-04-05 | 浙江大学 | 一种基于区块链对文件实现分布式存储的方法 |
CN109583891A (zh) * | 2018-11-14 | 2019-04-05 | 咪咕文化科技有限公司 | 一种信息处理方法、装置及存储介质 |
CN109685507A (zh) * | 2018-12-26 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 事务请求有效性识别和发起方法、装置、设备和介质 |
-
2019
- 2019-04-28 CN CN201910351297.9A patent/CN110070360B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170213209A1 (en) * | 2016-01-21 | 2017-07-27 | International Business Machines Corporation | Enterprise blockchains and transactional systems |
US20170310653A1 (en) * | 2016-04-22 | 2017-10-26 | Sony Corporation | Client, server, method and identity verification system |
CN107103473A (zh) * | 2017-04-27 | 2017-08-29 | 电子科技大学 | 一种基于区块链的智能合约实现方法 |
CN109522729A (zh) * | 2018-11-02 | 2019-03-26 | 中链科技有限公司 | 智能合约状态变更方法及装置 |
CN109583891A (zh) * | 2018-11-14 | 2019-04-05 | 咪咕文化科技有限公司 | 一种信息处理方法、装置及存储介质 |
CN109522735A (zh) * | 2018-11-29 | 2019-03-26 | 上海中信信息发展股份有限公司 | 一种基于智能合约的数据权限验证方法及装置 |
CN109587253A (zh) * | 2018-12-11 | 2019-04-05 | 浙江大学 | 一种基于区块链对文件实现分布式存储的方法 |
CN109685507A (zh) * | 2018-12-26 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 事务请求有效性识别和发起方法、装置、设备和介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110503433A (zh) * | 2019-08-28 | 2019-11-26 | 北京百度网讯科技有限公司 | 一种区块链中背书的实现方法、装置、设备和介质 |
CN111399993A (zh) * | 2020-03-25 | 2020-07-10 | 百度国际科技(深圳)有限公司 | 一种关联事务请求的跨链实现方法、装置、设备和介质 |
CN111399993B (zh) * | 2020-03-25 | 2023-03-07 | 百度国际科技(深圳)有限公司 | 一种关联事务请求的跨链实现方法、装置、设备和介质 |
CN112000679A (zh) * | 2020-08-22 | 2020-11-27 | 杭州烽顺科技信息服务有限公司 | 业务操作与数据操作分离的区块链数据处理方法及装置 |
CN112000679B (zh) * | 2020-08-22 | 2024-01-09 | 杭州烽顺科技信息服务有限公司 | 业务操作与数据操作分离的区块链数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110070360B (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096857B (zh) | 区块链系统的权限管理方法、装置、设备和介质 | |
US11875171B2 (en) | Blockchain network transaction processing method, apparatus, device, and storage medium | |
CN108305072B (zh) | 部署区块链网络的方法、设备和计算机存储介质 | |
EP3591510A1 (en) | Method and device for writing service data in block chain system | |
CN110297689A (zh) | 智能合约执行方法、装置、设备及介质 | |
CN109951547A (zh) | 事务请求并行处理方法、装置、设备和介质 | |
CN110070360A (zh) | 一种事务请求处理方法、装置、设备及存储介质 | |
KR101876674B1 (ko) | 블록 체인을 이용한 공동 계좌 관리 방법 및 이를 실행하는 시스템 | |
CN110310205A (zh) | 一种区块链数据监控方法、装置、设备和介质 | |
CN109710695B (zh) | 事务请求有效性识别和发起方法、装置、设备和介质 | |
CN109995523B (zh) | 激活码管理方法及装置、激活码生成方法及装置 | |
US9270684B2 (en) | Providing a domain to IP address reputation service | |
CN109597640B (zh) | 一种应用程序的账号管理方法、装置、设备和介质 | |
CN109359449B (zh) | 一种基于微服务的鉴权方法、装置、服务器及存储介质 | |
CN109344631A (zh) | 区块链的数据修改及区块验证方法、装置、设备和介质 | |
CN110968437A (zh) | 一种基于Java智能合约的单个合约并行执行的方法、装置、设备及介质 | |
CN104769598A (zh) | 用于检测非法应用程序的系统和方法 | |
CN103310139A (zh) | 一种输入验证方法和输入验证装置 | |
CN111598575A (zh) | 业务流程控制方法、装置、电子设备和可读存储介质 | |
CN110321219A (zh) | 一种事务请求的并行执行方法、装置、设备和介质 | |
CN111221904A (zh) | 智能合约部署、执行方法、装置、电子设备及存储介质 | |
CN107171808A (zh) | 一种电子档案真实性的验证方法及装置 | |
CN112579929B (zh) | 一种可视化区块链浏览器页面构建方法及装置 | |
CN109685507A (zh) | 事务请求有效性识别和发起方法、装置、设备和介质 | |
CN111597269A (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 |