CN107886006B - 数据操作方法、装置及电子设备 - Google Patents
数据操作方法、装置及电子设备 Download PDFInfo
- Publication number
- CN107886006B CN107886006B CN201711214419.7A CN201711214419A CN107886006B CN 107886006 B CN107886006 B CN 107886006B CN 201711214419 A CN201711214419 A CN 201711214419A CN 107886006 B CN107886006 B CN 107886006B
- Authority
- CN
- China
- Prior art keywords
- contract
- data
- identifier
- public key
- shared data
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
Abstract
本发明是关于一种数据操作方法、装置及电子设备,属于信息技术领域。所述方法包括:当接收到合约引擎发送的共享数据操作请求时,获取共享数据操作请求携带的公钥和共享数据标识;基于共享数据标识,在合约数据中确定共享数据;当检测到公钥具备的对共享数据的操作权限时,执行操作权限对应的数据操作。本发明当接收到合约引擎发送的共享数据操作请求时,基于共享数据操作请求的共享数据标识,在合约数据中确定共享数据,并当检测到公钥具备操作权限时,执行数据操作,由于合约数据划分为共享数据和私有数据,使得其他智能合约可以通过公钥对共享数据进行相应的操作,无需请求授予数据操作权限,更便于跨合约对数据进行处理,简化了业务处理过程。
Description
技术领域
本发明涉及信息技术领域,特别涉及一种数据操作方法、装置及电子设备。
背景技术
随着信息技术的不断发展,区块链作为一项全新的技术得到大力的发展。区块链技术脱胎于2008年出现的比特币技术,是比特币的底层技术。区块链是指一串使用密码学方法相关联产生的区块,区块链中每个区块中的区块数据均与上一个区块中的区块数据存在关联,因此,无法通过篡改区块数据来进行作弊,能够确保任何区块上的区块数据均是公开透明的,提高了输入信息的安全性。随着区块链的快速发展,智能合约应运而生。智能合约是一套以程序化代码形式定义的承诺,被部署在区块链上,它可以维持自己的状态,在存储及操作自己的数据的同时,还可对接收到的外界信息或者数据进行回应。通过智能合约将数据共享系统中节点认可的业务规则执行进度固化在区块链中,在进行交易时,由合约引擎自动执行该智能合约并记录智能合约的执行状态,避免产生节点之间的纠纷和欺诈,降低了节点之间信任的成本。
相关技术中,区块链上可以部署多个智能合约,合约引擎通过执行多个智能合约处理不同的业务,对于多个智能合约中的任一智能合约来说,当合约引擎执行该智能合约时,智能合约在执行中产生的合约数据被存储,并操作存储的合约数据,以便按照依照规则对合约数据进行处理。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
对于区块链上部署的多个智能合约来说,每一个智能合约仅能通过合约引擎操作自己的合约数据,当一些业务需要跨合约进行处理时,需要进行对智能合约授予数据操作权限,使得跨合约处理受到了巨大的限制,导致业务处理过程较为繁琐。
发明内容
为克服相关技术中存在的跨合约处理受到了巨大的限制,导致业务处理过程较为繁琐的问题,本发明提供一种数据操作方法、装置及电子设备。
根据本发明实施例的第一方面,提供一种数据操作方法,所述方法应用于合约接口,所述方法包括:
当接收到合约引擎发送的共享数据操作请求时,获取所述共享数据操作请求携带的公钥和共享数据标识;
基于所述共享数据标识,在合约数据中确定共享数据,所述合约数据包括共享数据和私有数据;
当检测到所述公钥具备的对所述共享数据的操作权限时,执行所述操作权限对应的数据操作,所述操作权限至少包括数据访问权限、数据添加权限及数据删除权限。
在另一个实施例中,所述方法还包括:
当接收到所述合约引擎发送的私有数据操作请求时,获取所述私有数据操作请求携带的智能合约标识和私有数据标识;
如果所述智能合约标识与所述私有数据标识之间存在关联关系,则对所述私有数据标识指示的私有数据进行操作,并当完成所述操作后,向所述合约引擎返回成功指令;
如果所述智能合约标识与所述私有数据标识之间不存在关联关系,则停止当前流程,向所述合约引擎返回失败指令。
在另一个实施例中,所述当接收到合约引擎发送的共享数据操作请求时,获取所述共享数据操作请求携带的公钥和共享数据标识之前,所述方法还包括:
当接收到合约引擎发送的数据存储请求时,获取所述数据存储请求中携带的智能合约标识、至少一个公钥以及所述合约数据;
在所述合约数据中确定所述共享数据和所述私有数据;
生成所述私有数据的私有数据标识,将所述私有数据标识与所述智能合约标识对应存储;
生成所述共享数据的共享数据标识,对于所述至少一个公钥中的每一个公钥,为所述公钥设置对所述共享数据进行操作的操作权限,将所述共享数据标识、所述公钥与所述操作权限对应存储;
将所述公钥返回至所述合约引擎,以使所述合约引擎将所述公钥返回给智能合约。
在另一个实施例中,所述当检测到所述公钥具备的对所述共享数据的操作权限时,执行所述操作权限对应的数据操作包括:
基于所述公钥,在所述共享数据中查找与所述公钥对应的操作权限;
当所述共享数据中存在与所述公钥对应的操作权限时,获取与所述公钥对应的操作权限;
执行所述操作权限。
在另一个实施例中,所述当检测到所述公钥具备的对所述共享数据的操作权限时,执行所述操作权限对应的数据操作之后,所述方法还包括:
当所述数据操作执行完毕后,生成完成指令,并将所述完成指令传输至所述合约引擎,以使所述合约引擎获取所述完成指令,将所述完成指令展示给智能合约。
根据本发明实施例的第二方面,提供一种数据操作方法,所述方法应用于合约引擎,所述方法包括:
执行智能合约,获取所述智能合约的公钥;
当所述智能合约请求对共享数据进行操作时,基于所述智能合约发送的共享数据标识及及所述公钥,生成共享数据操作请求;
将所述共享数据操作请求发送至合约接口,以使所述合约接口基于所述公钥和所述共享数据标识确定是否允许所述合约引擎对所述共享数据进行操作;
当接收到合约接口返回的完成指令时,向所述智能合约展示所述完成指令,所述完成指令为所述合约接口完成对所述共享数据的操作后生成并发送的。
在另一个实施例中,所述方法还包括:
当所述智能合约请求对私有数据进行操作时,确定所述智能合约的智能合约标识以及待操作的私有数据的私有数据标识;
基于所述智能合约标识和所述私有数据标识生成私有数据操作请求,并将所述私有数据操作请求发送至所述合约接口,以使所述合约接口判断是否允许对所述私有数据标识指示的私有数据进行操作;
当检测到所述合约接口发送的成功指令时,展示所述成功指令,所述成功指令为所述合约接口确定允许对所述私有数据标识指示的私有数据进行操作后执行所述操作并生成的;
当检测到所述合约接口发送的失败指令时,停止当前操作流程,所述失败指令为所述合约接口确定不允许对所述私有数据标识指示的私有数据进行操作后生成并发送的。
根据本发明实施例的第三方面,提供一种数据操作装置,所述装置应用于合约接口,所述装置包括:
第一获取模块,用于当接收到合约引擎发送的共享数据操作请求时,获取所述共享数据操作请求携带的公钥和共享数据标识;
第一确定模块,用于基于所述共享数据标识,在合约数据中确定共享数据,所述合约数据包括共享数据和私有数据;
执行模块,用于当检测到所述公钥具备的对所述共享数据的操作权限时,执行所述操作权限对应的数据操作,所述操作权限至少包括数据访问权限、数据添加权限及数据删除权限。
在另一个实施例中,所述第一获取模块,还用于当接收到所述合约引擎发送的私有数据操作请求时,获取所述私有数据操作请求携带的智能合约标识和私有数据标识;
所述执行模块,还用于如果所述智能合约标识与所述私有数据标识之间存在关联关系,则对所述私有数据标识指示的私有数据进行操作,并当完成所述操作后,向所述合约引擎返回成功指令;
所述执行模块,还用于如果所述智能合约标识与所述私有数据标识之间不存在关联关系,则停止当前流程,向所述合约引擎返回失败指令。
在另一个实施例中,所述装置还包括:
第二获取模块,用于当接收到合约引擎发送的数据存储请求时,获取所述数据存储请求中携带的智能合约标识、至少一个公钥以及所述合约数据;
第二确定模块,用于在所述合约数据中确定所述共享数据和所述私有数据;
生成模块,用于生成所述私有数据的私有数据标识,将所述私有数据标识与所述智能合约标识对应存储;
所述生成模块,还用于生成所述共享数据的共享数据标识,对于所述至少一个公钥中的每一个公钥,为所述公钥设置对所述共享数据进行操作的操作权限,将所述共享数据标识、所述公钥与所述操作权限对应存储;
返回模块,用于将所述公钥返回至所述合约引擎,以使所述合约引擎将所述公钥返回给智能合约。
在另一个实施例中,所述执行模块包括:
查找子模块,用于基于所述公钥,在所述共享数据中查找与所述公钥对应的操作权限;
获取子模块,用于当所述共享数据中存在与所述公钥对应的操作权限时,获取与所述公钥对应的操作权限;
执行子模块,用于执行所述操作权限。
在另一个实施例中,所述装置还包括:
传输模块,用于当所述数据操作执行完毕后,生成完成指令,并将所述完成指令传输至所述合约引擎,以使所述合约引擎获取所述完成指令,将所述完成指令展示给智能合约。
根据本发明实施例的第四方面,提供一种数据操作装置,所述装置应用于合约引擎,所述装置包括:
执行模块,用于执行智能合约,获取所述智能合约的公钥;
生成模块,用于当所述智能合约请求对共享数据进行操作时,基于所述智能合约发送的共享数据标识及及所述公钥,生成共享数据操作请求;
发送模块,用于将所述共享数据操作请求发送至合约接口,以使所述合约接口基于所述公钥和所述共享数据标识确定是否允许所述合约引擎对所述共享数据进行操作;
展示模块,用于当接收到合约接口返回的完成指令时,向所述智能合约展示所述完成指令,所述完成指令为所述合约接口完成对所述共享数据的操作后生成并发送的。
在另一个实施例中,所述装置还包括:
确定模块,用于当所述智能合约请求对私有数据进行操作时,确定所述智能合约的智能合约标识以及待操作的私有数据的私有数据标识;
所述生成模块,还用于基于所述智能合约标识和所述私有数据标识生成私有数据操作请求,并将所述私有数据操作请求发送至所述合约接口,以使所述合约接口判断是否允许所述合约引擎对所述私有数据标识指示的私有数据进行操作;
所述展示模块,还用于当检测到所述合约接口发送的成功指令时,展示所述成功指令,所述成功指令为所述合约接口确定允许对所述私有数据标识指示的私有数据进行操作后执行所述操作并生成的;
所述展示模块,还用于当检测到所述合约接口发送的失败指令时,停止当前操作流程,所述失败指令为所述合约接口确定不允许对所述私有数据标识指示的私有数据进行操作后生成并发送的。
根据本发明实施例的第五方面,提供一种电子设备,包括上述第三部分所述的数据操作装置。
根据本发明实施例的第六方面,提供一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成上述第一部分所述的数据操作方法的操作。
根据本发明实施例的第七方面,提供一种电子设备,包括上述第四部分所述的数据操作装置。
根据本发明实施例的第八方面,提供一种电子设备,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成上述第二部分所述的数据操作方法的操作。
本发明的实施例提供的技术方案可以包括以下有益效果:
当接收到合约引擎发送的共享数据操作请求时,获取共享数据操作请求携带的公钥和共享数据标识,基于共享数据标识,在合约数据中确定共享数据,并当检测到公钥具备的对共享数据的操作权限时,执行操作权限对应的数据操作,由于将合约数据划分为共享数据和私有数据,使得其他智能合约可以通过公钥对共享数据进行相应的操作,无需请求授予数据操作权限,更便于跨合约对数据进行处理,简化了业务处理过程。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种数据操作方法的流程图;
图2是根据一示例性实施例示出的一种数据操作方法的流程图;
图3A是根据一示例性实施例示出的一种数据操作方法的示意图;
图3B是根据一示例性实施例示出的一种合约执行架构的示意图;
图4是根据一示例性实施例示出的一种数据共享系统的示意图;
图5A是根据一示例性实施例示出的一种数据操作装置的框图;
图5B是根据一示例性实施例示出的一种数据操作装置的框图;
图5C是根据一示例性实施例示出的一种数据操作装置的框图;
图5D是根据一示例性实施例示出的一种数据操作装置的框图;
图6A是根据一示例性实施例示出的一种数据操作装置的框图;
图6B是根据一示例性实施例示出的一种数据操作装置的框图;
图7是根据一示例性实施例示出的一种数据操作装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附发明内容中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种数据操作方法的流程图,如图1所示,该方法包括以下步骤。
在步骤101中,当接收到合约引擎发送的共享数据操作请求时,获取共享数据操作请求携带的公钥和共享数据标识。
在步骤102中,基于共享数据标识,在合约数据中确定共享数据,合约数据包括共享数据和私有数据。
在步骤103中,当检测到公钥具备的对共享数据的操作权限时,执行操作权限对应的数据操作,操作权限至少包括数据访问权限、数据添加权限及数据删除权限。
本发明实施例提供的方法,当接收到合约引擎发送的共享数据操作请求时,获取共享数据操作请求携带的公钥和共享数据标识,基于共享数据标识,在合约数据中确定共享数据,并当检测到公钥具备的对共享数据的操作权限时,执行操作权限对应的数据操作,由于将合约数据划分为共享数据和私有数据,使得其他智能合约可以通过公钥对共享数据进行相应的操作,无需请求授予数据操作权限,更便于跨合约对数据进行处理,简化了业务处理过程。
在另一个实施例中,所述方法还包括:
当接收到所述合约引擎发送的私有数据操作请求时,获取所述私有数据操作请求携带的智能合约标识和私有数据标识;
如果所述智能合约标识与所述私有数据标识之间存在关联关系,则对所述私有数据标识指示的私有数据进行操作,并当完成所述操作后,向所述合约引擎返回成功指令;
如果所述智能合约标识与所述私有数据标识之间不存在关联关系,则停止当前流程,向所述合约引擎返回失败指令。
在另一个实施例中,当接收到合约引擎发送的数据存储请求时,获取所述数据存储请求中携带的智能合约标识、至少一个公钥以及所述合约数据;
在所述合约数据中确定所述共享数据和所述私有数据;
生成所述私有数据的私有数据标识,将所述私有数据标识与所述智能合约标识对应存储;
生成所述共享数据的共享数据标识,对于所述至少一个公钥中的每一个公钥,为所述公钥设置对所述共享数据进行操作的操作权限,将所述共享数据标识、所述公钥与所述操作权限对应存储;
将所述公钥返回至所述合约引擎,以使所述合约引擎将所述公钥返回给智能合约。
在另一个实施例中,所述当检测到所述公钥具备的对所述共享数据的操作权限时,执行所述操作权限对应的数据操作包括:
基于所述公钥,在所述共享数据中查找与所述公钥对应的操作权限;
当所述共享数据中存在与所述公钥对应的操作权限时,获取与所述公钥对应的操作权限;
执行所述操作权限。
在另一个实施例中,所述当检测到所述公钥具备的对所述共享数据的操作权限时,执行所述操作权限对应的数据操作之后,所述方法还包括:
当所述数据操作执行完毕后,生成完成指令,并将所述完成指令传输至所述合约引擎,以使所述合约引擎获取所述完成指令,将所述完成指令展示给智能合约。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图2是根据一示例性实施例示出的一种数据操作方法的流程图,如图2所示,该方法包括以下步骤。
在步骤201中,执行智能合约,获取智能合约的公钥。
在步骤202中,当智能合约请求对共享数据进行操作时,基于智能合约发送的共享数据标识及及公钥,生成共享数据操作请求。
在步骤203中,将共享数据操作请求发送至合约接口,以使合约接口基于公钥和共享数据标识确定是否允许合约引擎对共享数据进行操作。
在步骤204中,当接收到合约接口返回的完成指令时,向所述智能合约展示所述完成指令,所述完成指令为所述合约接口完成对所述共享数据的操作后生成并发送的。
本发明实施例提供的方法,合约引擎通过执行智能合约,获取智能合约的公钥,当智能合约请求对共享数据进行操作时,基于智能合约发送的共享数据标识及及公钥,生成共享数据操作请求,将共享数据操作请求发送至合约接口,以使合约接口基于公钥和共享数据标识确定是否允许合约引擎对共享数据进行操作,且当接收到合约接口返回的完成指令时,向智能合约展示完成指令。由于将合约数据划分为共享数据和私有数据,使得其他智能合约可以通过公钥对共享数据进行相应的操作,无需请求授予数据操作权限,更便于跨合约对数据进行处理,简化了业务处理过程。
在另一个实施例中,方法还包括:
当所述智能合约请求对私有数据进行操作时,确定所述智能合约的智能合约标识以及待操作的私有数据的私有数据标识;
基于所述智能合约标识和所述私有数据标识生成私有数据操作请求,并将所述私有数据操作请求发送至所述合约接口,以使所述合约接口判断是否允许对所述私有数据标识指示的私有数据进行操作;
当检测到所述合约接口发送的成功指令时,展示所述成功指令,所述成功指令为所述合约接口确定允许对所述私有数据标识指示的私有数据进行操作后执行所述操作并生成的;
当检测到所述合约接口发送的失败指令时,停止当前操作流程,所述失败指令为所述合约接口确定不允许对所述私有数据标识指示的私有数据进行操作后生成并发送的。
在对本发明实施例进行详细的解释说明之前,先对本发明实施例涉及的合约执行架构进行简单介绍。
参见图3A所示的合约执行架构,合约执行架构部署在数据共享系统中的各个节点上,包括合约引擎、合约接口及合约存储。合约引擎用于执行数据共享系统中的多个智能合约,通过执行智能合约进行业务处理;合约接口用于对智能合约执行时产生的合约数据进行存储、访问、删除等操作,合约接口在接收到需要存储的合约数据时,会将合约数据划分为共享数据和私有数据,并将共享数据和私有数据传输至合约存储,以使合约存储分别将共享数据和私有数据进行存储。另外,一方面,合约接口可以部署在合约引擎中,与合约存储之间建立数据连接;另一方面,合约接口可以作为独立的设备部署在数据共享系统中的各个节点上,并分别与合约引擎和合约存储之间建立数据连接,本发明实施例对合约接口的部署方式不进行具体限定。
如图3A所示,当前合约引擎中正在执行的智能合约为智能合约1和智能合约2,合约接口将智能合约1执行产生的合约数据划分为智能合约1-共享数据和智能合约1-私有数据,将智能合约2执行产生的合约数据划分为智能合约2-共享数据和智能合约2-私有数据;随后,合约接口将划分完成的合约数据传输至合约存储,以使合约存储分别将不同智能合约的共享数据和私有数据对应存储。
需要说明的是,上述的合约执行框架可应用在数据共享系统中的节点上,数据共享系统是指用于进行节点与节点之间数据共享的系统,参见图3B,该数据共享系统可由区块链1,区块链2,网络组成。区块链1和区块链2包含四个计算机,计算机上运行分布式账本软件,且可以存储发送到数据共享系统中的数据。其中,数据共享系统可为交易系统,交易系统指用于金融交易的系统。交易系统中可以包括多个节点,每个节点在进行交易时生成账本数据,并基于账本数据维护该交易系统内的共享账本。本发明实施例对合约执行框架的部署位置、数据共享系统中包括的区块链个数及区块链包含的计算机个数不进行具体限定。
图4是根据一示例性实施例示出的一种数据操作方法的流程图,如图4所示,该方法包括以下步骤。
在步骤401中,当合约接口接收到合约引擎发送的数据存储请求时,获取数据存储请求中携带的智能合约标识以及合约数据,合约数据包括共享数据和私有数据。
在本发明实施例中,由于合约引擎通过执行多个智能合约处理不同的业务,因此,对于不同的智能合约来说,均存在与其对应的合约数据,当合约引擎执行智能合约时,便需要获取该智能合约对应的合约数据,基于该合约数据对业务进行处理。对于多个存在关联的业务来说,由于一个智能合约仅能与一个业务之间建立关系,使得在处理存在关联的多个业务时,需要跨合约进行处理;而与智能合约对应的合约数据仅能由该智能合约进行操作,其他智能合约禁止进行操作,使得在进行跨合约的业务处理时,需要对智能合约进行操作授权,进而完成业务的处理。
发明人认识到,对于一个与其他智能合约存在关联的智能合约来说,在对该智能合约进行跨合约处理时,使用到的有关该智能合约的合约数据是固定的,也即每一次该智能合约与其他智能合约共享的数据是固定的;且在一次跨合约的业务处理中,与该跨合约处理相关的每个智能合约需要执行的操作也是固定的,因此,合约接口可以在接收到合约引擎发送的合约数据时,对合约数据进行划分,将合约数据划分为私有数据和共享数据,并为多个智能合约设置操作权限,以便后续在进行跨合约操作时,与跨合约操作相关的多个智能合约可以直接获取到其需要的合约数据进行操作。其中,私有数据允许产生该合约数据的智能合约进行操作,禁止其他智能合约操作;共享数据允许具有权限的智能合约执行其权限内的操作,对于不具有操作权限的智能合约来说,无法对该共享数据进行操作。因此,当合约接口接收到合约引擎发送的数据存储请求时,会获取数据存储请求中携带的智能合约标识以及合约数据,以便后续将智能合约标识与合约数据对应进行存储。
在步骤402中,合约接口在合约数据中确定共享数据和私有数据,生成私有数据的私有数据标识,将私有数据标识与智能合约标识对应存储,生成共享数据的共享数据标识,为至少一个公钥设置对共享数据进行操作的操作权限,将至少一个公钥返回至合约引擎。
在本发明实施例中,操作权限至少包括数据访问权限、数据添加权限及数据删除权限,公钥可为用户账号、用户标识等。由于私有数据为产生该合约数据的智能合约才能操作的数据,因此,合约接口在确定合约数据中的私有数据后,可直接将该私有数据的私有数据标识与产生该合约数据的智能合约的智能合约标识对应存储,且仅允许该智能合约对私有数据进行操作。其中,在将智能合约标识与私有数据标识进行存储时,可以生成如表1所示的标识列表。
表1
私有数据标识 | 智能合约标识 |
私有数据1 | 智能合约1 |
私有数据2 | 智能合约2 |
… | … |
合约接口在确定合约数据中的共享数据后,由于不同的智能合约在后续需要对该共享数据进行不同的操作,因此,基于至少一个公钥为不同的智能合约设置不同的操作权限,以便后续不同的智能合约基于公钥对该共享数据进行不同的操作。在为至少一个公钥设置操作权限时,对于至少一个公钥中的每一个公钥,可以根据需要持有该公钥的用户拥有的权限进行设置,将公钥与其对应的操作权限及共享数据标识对应存储并在设置操作权限设置完成后,将该公钥返回至合约引擎,由合约引擎将公钥返回给智能合约,以使智能合约确定当前公钥的操作权限已经设置成功。需要说明的是,公钥可由智能合约的用户提供,也可由合约引擎提供。如果公钥由智能合约的用户提供,则在完成公钥的操作权限设置后,合约接口无需将公钥返回给合约引擎,仅需向合约引擎下发成功指令,以使合约引擎获知当前已经完成了操作权限的设置即可;如果公钥由合约接口提供,则在完成公钥的操作权限设置后,合约接口需要将公钥返回给合约引擎,由合约引擎将公钥发送至智能合约,以便智能合约需要对共享数据执行操作时,可以基于该公钥进行。其中,可以生成表2所示的操作权限列表,基于该操作权限列表存储公钥及其对应的操作权限和共享数据标识。
表2
共享数据标识 | 公钥 | 操作权限 |
共享数据A | 公钥1 | 数据访问权限 |
共享数据B | 公钥2 | 数据添加权限 |
… | … | … |
在实际应用的过程中,在为公钥设置操作权限时,还可以采用合约接口中的set_share_permit(key,pubkey,permit)接口设置,其中,key为共享数据标识,pubkey为公钥,permit为操作权限。进一步地,由于不同的智能合约可能需要具备多种操作权限,因此,在为公钥设置操作权限时,对于一个公钥来说,可以为该公钥设置多个操作权限,并当智能合约请求对共享数据执行操作时,允许智能合约执行多个操作权限中的任一操作权限。本发明实施例对设置公钥的操作权限的方式及为公钥设置的操作权限的个数不进行具体限定。
在步骤403中,合约引擎将至少一个公钥分配给多个智能合约。
在本发明实施例中,由于每个智能合约均存在与其对应的用户,用户通过账号实现对智能合约的控制,因此,合约引擎在将至少一个公钥分配给多个智能合约时,可以将公钥发送至智能合约对应的账号中,以便智能合约的用户获取该公钥,并采用公钥实现操作权限的执行。
需要说明的是,如果公钥由智能合约的用户提供,也即由智能合约通过合约引擎发送至合约接口,则在步骤304中,合约引擎在完成公钥的操作权限设置后,生成设置成功指令,并将该设置成功指令发送至智能合约即可,以便智能合约获知当前已经完成了对公钥的操作权限设置。
在步骤404中,合约引擎执行智能合约,获取智能合约的公钥。
在本发明实施例中,由于智能合约需要依靠合约引擎才可执行,因此,为了便于合约引擎在执行智能合约时更方便获取到智能合约对共享数据的操作权限,因此,当合约引擎首次执行某一智能合约时,便可获取到该智能合约的公钥,以便后续直接基于公钥获取智能合约对共享数据的操作权限。合约引擎在获取智能合约的公钥时,可以在用户控制智能合约的终端上提供公钥输入口,当用户需要执行智能合约时,显示该公钥输入口,并当用户完成公钥的输入时,才可执行该智能合约;还可以在用户的签名中提取公钥,并在提取公钥成功后执行该智能合约。在实际应用的过程中,合约引擎也可在执行跨合约处理的业务时获取当前智能合约的公钥,也即当智能合约请求对共享数据进行操作时获取该智能合约的公钥,本发明实施例对合约引擎获取智能合约的公钥的方式及时机不进行具体限定。
在步骤405中,当智能合约请求对共享数据进行操作时,合约引擎执行下述步骤406至步骤410;当智能合约请求对私有数据进行操作时,合约引擎执行下述步骤411至步骤416。
在本发明实施例中,由于私有数据和共享数据具有的操作权限是不同的,因此,对于一个智能合约来说,其在请求对私有数据和共享数据进行操作时,需要合约引擎执行不相同的操作,从而判断是否允许该智能合约执行相应的操作。当智能合约请求对共享数据进行操作时,合约引擎需要生成共享数据操作请求,也即执行下述步骤406至步骤410;当智能合约请求对私有数据进行操作时,合约引擎需要生成私有数据操作请求,也即执行下述步骤411至步骤416。
在步骤406中,当智能合约请求对共享数据进行操作时,基于智能合约发送的共享数据标识及公钥,生成共享数据操作请求,并将共享数据操作请求发送至合约接口。
在本发明实施例中,当智能合约请求对共享数据进行操作时,由于需要基于共享数据标识以及公钥对智能合约的操作权限进行判定,因此,合约引擎会获取该智能合约请求操作的共享数据的共享数据标识,并基于该智能合约的公钥和共享数据标识生成共享数据操作请求,将该共享数据操作请求发送至合约接口,以便合约接口基于共享数据标识及公钥确定该智能合约是否具备对共享数据进行操作的操作权限以及具备哪一种操作权限。
在步骤407中,当接收到合约引擎发送的共享数据操作请求时,合约接口获取共享数据操作请求携带的公钥和共享数据标识,基于共享数据标识,在合约数据中确定共享数据。
在本发明实施例中,当接收到合约引擎发送的共享数据操作请求后,合约接口在共享数据操作请求中提取公钥和共享数据标识,由于共享数据标识与共享数据是一一对应的,因此,可以基于共享数据标识确定待进行操作的共享数据。
在步骤408中,基于公钥,在共享数据中查找与公钥对应的操作权限,当共享数据中存在与公钥对应的操作权限时,获取与公钥对应的操作权限,执行操作权限。
在本发明实施例中,当获取到智能合约的公钥后,便可以根据公钥确定智能合约可以对哪个共享数据进行操作,以及确定智能合约的操作权限。其中,如果采用表2所示的操作权限列表存储公钥、共享数据标识及操作权限之间的对应关系,则可以基于公钥进行查找,查找公钥对应的操作权限,当查找到与公钥对应的操作权限时,即可获取该公钥对应的操作权限;当未查找到与公钥对应的操作权限时,即可确定该公钥在当前的共享数据中不具备操作权限,则无法对当前的共享数据执行操作。
其中,在执行操作权限时,合约接口可以基于不同的子接口实现。在实际应用的过程中,合约接口中的value=get_share_state(contract,key)子接口可以为智能合约提供数据访问权限,contract为共享数据标识,key为该共享数据的键值;合约接口中的create_share_state(key,value)子接口可以为智能合约提供数据添加权限,key为添加的共享数据的键值,value为添加的共享数据的目标值;合约接口中的value=delete_share_state(contract,key)可以为智能合约提供数据删除权限,contract为共享数据标识,key为该共享数据的键值。本发明实施例对执行各种操作权限的方式不进行具体限定。
在步骤409中,当数据操作执行完毕后,合约接口生成完成指令,并将完成指令传输至合约引擎。
在本发明实施例中,当合约接口执行数据操作完毕后,便可生成完成指令,并将完成指令传输至合约引擎,以便合约引擎在接收到该完成指令时,确定当前已经完成对共享数据的操作。
需要说明的是,在实际应用的过程中,当合约接口执行的数据操作为数据访问操作时,合约接口可获取访问的数据,并在完成指令中携带该数据,以便合约引擎获取到完成指令时,可以在该完成指令中提取数据,实现对数据的访问。
在步骤410中,当合约引擎接收到合约接口返回的完成指令时,向智能合约展示完成指令。
在本发明实施例中,当合约引擎接收到合约接口返回的完成指令时,即可确定合约接口已经完成了对数据的操作,便可向智能合约展示该完成指令,以使智能合约的用户基于该完成指令确定当前已经完成对数据的操作。
在实际应用的过程中,如果合约接口执行的数据操作为数据访问操作,则合约接口返回的完成指令中可能携带数据,这样,合约引擎在向智能合约展示完成指令时,可以直接将该数据展示给智能合约。
在步骤411中,当智能合约请求对私有数据进行操作时,合约引擎确定智能合约的智能合约标识以及待操作的私有数据的私有数据标识,基于智能合约标识和私有数据标识生成私有数据操作请求,并将私有数据操作请求发送至合约接口。
在本发明实施例中,当智能合约请求对私有数据进行操作时,由于私有数据仅可以由固定的智能合约执行操作,因此,合约引擎在检测到智能合约请求对私有数据进行操作时,确定当前智能合约的智能合约标识以及待操作的私有数据的私有数据标识,并生成携带该智能合约标识以及私有数据标识的私有数据操作请求,以便合约接口在接收到该私有数据操作请求时,可以基于私有数据操作请求携带的智能合约标识和私有数据标识确定该智能合约是否可以对私有数据进行操作。
在步骤412中,当合约接口接收到合约引擎发送的私有数据操作请求时,获取私有数据操作请求携带的智能合约标识和私有数据标识;如果智能合约标识与私有数据标识之间存在关联关系,则执行下述步骤413和步骤414;如果智能合约标识与私有数据标识之间不存在关联关系,则执行下述步骤415和步骤416。
在本发明实施例中,当合约接口接收到合约引擎发送的私有数据操作请求时,则在该私有数据操作请求中获取智能合约标识和私有数据标识,进而确定智能合约标识和私有数据标识之间是否存在关联关系,如果智能合约标识与私有数据标识之间存在关联关系,则表示可以允许该智能合约标识对应的智能合约对私有数据进行操作,也即执行下述步骤413和步骤414;如果智能合约标识与私有数据标识之间不存在关联关系,则表示禁止该智能合约标识对应的智能合约对私有数据进行操作,也即执行下述步骤415至步骤416。
在步骤413中,如果智能合约标识与私有数据标识之间存在关联关系,则合约接口对私有数据标识指示的私有数据进行操作,并当完成操作后,向合约引擎返回成功指令。
在本发明实施例中,当检测到智能合约标识与私有数据标识之间存在关联关系,则表示智能合约标识指示的智能合约可以对私有数据执行数据操作,因此,合约接口便对私有数据执行相应的数据操作,并当智能完成数据操作时,向合约引擎返回成功指令。其中,合约接口在对私有数据进行数据操作及返回成功指令的过程与上述步骤408和步骤409中所示的过程一致,此处不再进行赘述。
在步骤414中,当检测到合约接口发送的成功指令时,合约引擎展示成功指令。
在本发明实施例中,当接收到合约接口发送的成功指令后,合约引擎便展示该成功指令,以使智能合约获知当前已经完成了对私有数据的数据操作。其中,合约引擎展示成功指令的方式与上述步骤410中所示的方式一致,此处不再进行赘述。
在步骤415中,如果智能合约标识与私有数据标识之间不存在关联关系,则合约接口停止当前流程,向合约引擎返回失败指令。
在本发明实施例中,如果智能合约与私有标识之间不存在关联关系,则表示智能合约没有对该私有数据进行操作的权限,因此,合约接口生成失败指令,并结束当前流程,将该失败指令返回至合约引擎,以便合约引擎将该失败指令展示给智能合约,使智能合约获知当前的数据操作失败。
在步骤416中,当检测到合约接口发送的失败指令时,合约引擎停止当前操作流程。
在本发明实施例中,当接收到合约接口发送的失败指令时,表示禁止当前执行的智能合约对私有数据进行操作,这样,合约引擎便停止当前的操作流程。其中,合约引擎在接收到失败指令时,为了使智能合约获知禁止对私有数据进行操作,可将失败指令进行展示,例如,在智能合约的用户的终端展示“操作失败!”等字样进行提示。本发明实施例对合约引擎对智能合约进行提示的方式不进行具体限定。
本发明实施例提供的方法,当接收到合约引擎发送的共享数据操作请求时,获取共享数据操作请求携带的公钥和共享数据标识,基于共享数据标识,在合约数据中确定共享数据,并当检测到公钥具备的对共享数据的操作权限时,执行操作权限对应的数据操作,由于将合约数据划分为共享数据和私有数据,使得其他智能合约可以通过公钥对共享数据进行相应的操作,无需请求授予数据操作权限,更便于跨合约对数据进行处理,简化了业务处理过程。
图5A是根据一示例性实施例示出的一种数据操作装置的框图。参照图5A,该装置包括第一获取模块501,第一确定模块502和执行模块503。
该第一获取模块501,用于当接收到合约引擎发送的共享数据操作请求时,获取共享数据操作请求携带的公钥和共享数据标识;
该第一确定模块502,用于基于共享数据标识,在合约数据中确定共享数据,合约数据包括共享数据和私有数据;
该执行模块503,用于当检测到公钥具备的对共享数据的操作权限时,执行操作权限对应的数据操作,操作权限至少包括数据访问权限、数据添加权限及数据删除权限。
本发明实施例提供的装置,当接收到合约引擎发送的共享数据操作请求时,获取共享数据操作请求携带的公钥和共享数据标识,基于共享数据标识,在合约数据中确定共享数据,并当检测到公钥具备的对共享数据的操作权限时,执行操作权限对应的数据操作,由于将合约数据划分为共享数据和私有数据,使得其他智能合约可以通过公钥对共享数据进行相应的操作,无需请求授予数据操作权限,更便于跨合约对数据进行处理,简化了业务处理过程。
在另一个实施例中,该第一获取模块501,还用于当接收到合约引擎发送的私有数据操作请求时,获取私有数据操作请求携带的智能合约标识和私有数据标识;
该执行模块503,还用于如果智能合约标识与私有数据标识之间存在关联关系,则对私有数据标识指示的私有数据进行操作,并当完成操作后,向合约引擎返回成功指令;
该执行模块503,还用于如果智能合约标识与私有数据标识之间不存在关联关系,则停止当前流程,向合约引擎返回失败指令。
在另一个实施例中,参见图5B,该装置还包括第二获取模块504,第二确定模块505、生成模块506和返回模块507。
该第二获取模块504,用于当接收到合约引擎发送的数据存储请求时,获取数据存储请求中携带的智能合约标识、至少一个公钥以及合约数据;
该第二确定模块505,用于在合约数据中确定共享数据和私有数据;
该生成模块506,用于生成私有数据的私有数据标识,将私有数据标识与智能合约标识对应存储;
该生成模块506,还用于生成共享数据的共享数据标识,对于至少一个公钥中的每一个公钥,为公钥设置对共享数据进行操作的操作权限,将共享数据标识、公钥与操作权限对应存储。
该返回模块507,用于将公钥返回至合约引擎,以使合约引擎将公钥返回给智能合约。
在另一个实施例中,参见图5C,该执行模块503,包括查找子模块5031,获取子模块5032和执行子模块5033。
该查找子模块5031,用于基于公钥,在共享数据中查找与公钥对应的操作权限;
该获取子模块5032,用于当共享数据中存在与公钥对应的操作权限时,获取与公钥对应的操作权限;
该执行子模块5033,用于执行操作权限。
在另一个实施例中,参见图5D,该装置还包括传输模块508。
该传输模块508,用于当数据操作执行完毕后,生成完成指令,并将完成指令传输至合约引擎,以使合约引擎获取完成指令,将完成指令展示给智能合约。
图6A是根据一示例性实施例示出的一种数据操作装置的框图。参照图6A,该装置包括执行模块601,生成模块602,发送模块603和展示模块604。
该执行模块601,用于执行智能合约,获取智能合约的公钥;
该生成模块602,用于当智能合约请求对共享数据进行操作时,基于智能合约发送的共享数据标识及及公钥,生成共享数据操作请求;
该发送模块603,用于将共享数据操作请求发送至合约接口,以使合约接口基于公钥和共享数据标识确定是否允许合约引擎对共享数据进行操作;
该展示模块604,用于当接收到合约接口返回的完成指令时,向所述智能合约展示所述完成指令,所述完成指令为所述合约接口完成对所述共享数据的操作后生成并发送的。
本发明实施例提供的装置,合约引擎通过执行智能合约,获取智能合约的公钥,当智能合约请求对共享数据进行操作时,基于智能合约发送的共享数据标识及及公钥,生成共享数据操作请求,将共享数据操作请求发送至合约接口,以使合约接口基于公钥和共享数据标识确定是否允许合约引擎对共享数据进行操作,且当接收到合约接口返回的完成指令时,向智能合约展示完成指令。由于将合约数据划分为共享数据和私有数据,使得其他智能合约可以通过公钥对共享数据进行相应的操作,无需请求授予数据操作权限,更便于跨合约对数据进行处理,简化了业务处理过程。
在另一个实施例中,参见图6B,该装置还包括确定模块605。
该确定模块605,用于当智能合约请求对私有数据进行操作时,确定智能合约的智能合约标识以及待操作的私有数据的私有数据标识;
该生成模块602,还用于基于智能合约标识和私有数据标识生成私有数据操作请求,并将私有数据操作请求发送至合约接口,以使合约接口判断是否允许合约引擎对私有数据标识指示的私有数据进行操作;
该展示模块604,还用于当检测到所述合约接口发送的成功指令时,展示所述成功指令,所述成功指令为所述合约接口确定允许对所述私有数据标识指示的私有数据进行操作后执行所述操作并生成的;
该展示模块604,还用于当检测到所述合约接口发送的失败指令时,停止当前操作流程,所述失败指令为所述合约接口确定不允许对所述私有数据标识指示的私有数据进行操作后生成并发送的。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种数据操作的装置700的框图。例如,装置700可以被提供为一服务器。参照图7,装置700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述数据操作方法。
装置700还可以包括一个电源组件726被配置为执行装置700的电源管理,一个有线或无线网络接口750被配置为将装置700连接到网络,和一个输入输出(I/O)接口758。装置700可以操作基于存储在存储器732的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由上面的发明内容指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的发明内容来限制。
Claims (16)
1.一种数据操作方法,其特征在于,所述方法应用于合约接口,所述方法包括:
当接收到合约引擎发送的数据存储请求时,获取所述数据存储请求中携带的智能合约标识、至少一个公钥以及合约数据;
在所述合约数据中确定共享数据和私有数据;
生成所述私有数据的私有数据标识,将所述私有数据标识与所述智能合约标识对应存储;
生成所述共享数据的共享数据标识,对于所述至少一个公钥中的每一个公钥,为所述公钥设置对所述共享数据进行操作的操作权限,将所述共享数据标识、所述公钥与所述操作权限对应存储;
将所述公钥返回至所述合约引擎,以使所述合约引擎将所述公钥返回给智能合约;
当接收到合约引擎发送的共享数据操作请求时,获取所述共享数据操作请求携带的公钥和共享数据标识;
基于所述共享数据标识,在合约数据中确定共享数据,所述合约数据包括共享数据和私有数据;
当检测到所述公钥具备的对所述共享数据的操作权限时,执行所述操作权限对应的数据操作,所述操作权限至少包括数据访问权限、数据添加权限及数据删除权限。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到所述合约引擎发送的私有数据操作请求时,获取所述私有数据操作请求携带的智能合约标识和私有数据标识;
如果所述智能合约标识与所述私有数据标识之间存在关联关系,则对所述私有数据标识指示的私有数据进行操作,并当完成所述操作后,向所述合约引擎返回成功指令;
如果所述智能合约标识与所述私有数据标识之间不存在关联关系,则停止当前流程,向所述合约引擎返回失败指令。
3.根据权利要求1所述的方法,其特征在于,所述当检测到所述公钥具备的对所述共享数据的操作权限时,执行所述操作权限对应的数据操作包括:
基于所述公钥,在所述共享数据中查找与所述公钥对应的操作权限;
当所述共享数据中存在与所述公钥对应的操作权限时,获取与所述公钥对应的操作权限;
执行所述操作权限。
4.根据权利要求1所述的方法,其特征在于,所述当检测到所述公钥具备的对所述共享数据的操作权限时,执行所述操作权限对应的数据操作之后,所述方法还包括:
当所述数据操作执行完毕后,生成完成指令,并将所述完成指令传输至所述合约引擎,以使所述合约引擎获取所述完成指令,将所述完成指令展示给智能合约。
5.一种数据操作方法,其特征在于,所述方法应用于合约引擎,所述方法包括:
执行智能合约,获取所述智能合约的公钥;
当所述智能合约请求对共享数据进行操作时,基于所述智能合约发送的共享数据标识及所述公钥,生成共享数据操作请求;
将所述共享数据操作请求发送至合约接口,以使所述合约接口基于所述公钥和所述共享数据标识确定是否允许所述合约引擎对所述共享数据进行操作;
当接收到合约接口返回的完成指令时,向所述智能合约展示所述完成指令,所述完成指令为所述合约接口完成对所述共享数据的操作后生成并发送的;
其中,所述合约接口当接收到所述合约引擎发送的数据存储请求时,获取所述数据存储请求中携带的智能合约标识、至少一个公钥以及合约数据,在所述合约数据中确定所述共享数据和私有数据,生成所述私有数据的私有数据标识,将所述私有数据标识与所述智能合约标识对应存储,生成所述共享数据的共享数据标识,对于所述至少一个公钥中的每一个公钥,为所述公钥设置对所述共享数据进行操作的操作权限,将所述共享数据标识、所述公钥与所述操作权限对应存储,并将所述公钥返回至所述合约引擎,由所述合约引擎将所述公钥返回给所述智能合约。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述智能合约请求对私有数据进行操作时,确定所述智能合约的智能合约标识以及待操作的私有数据的私有数据标识;
基于所述智能合约标识和所述私有数据标识生成私有数据操作请求,并将所述私有数据操作请求发送至所述合约接口,以使所述合约接口判断是否允许对所述私有数据标识指示的私有数据进行操作;
当检测到所述合约接口发送的成功指令时,展示所述成功指令,所述成功指令为所述合约接口确定允许对所述私有数据标识指示的私有数据进行操作后执行所述操作并生成的;
当检测到所述合约接口发送的失败指令时,停止当前操作流程,所述失败指令为所述合约接口确定不允许对所述私有数据标识指示的私有数据进行操作后生成并发送的。
7.一种数据操作装置,其特征在于,所述装置应用于合约接口,所述装置包括:
第二获取模块,用于当接收到合约引擎发送的数据存储请求时,获取所述数据存储请求中携带的智能合约标识、至少一个公钥以及合约数据;
第二确定模块,用于在所述合约数据中确定共享数据和私有数据;
生成模块,用于生成所述私有数据的私有数据标识,将所述私有数据标识与所述智能合约标识对应存储;
所述生成模块,还用于生成所述共享数据的共享数据标识,对于所述至少一个公钥中的每一个公钥,为所述公钥设置对所述共享数据进行操作的操作权限,将所述共享数据标识、所述公钥与所述操作权限对应存储;
返回模块,用于将所述公钥返回至所述合约引擎,以使所述合约引擎将所述公钥返回给智能合约;
第一获取模块,用于当接收到合约引擎发送的共享数据操作请求时,获取所述共享数据操作请求携带的公钥和共享数据标识;
第一确定模块,用于基于所述共享数据标识,在合约数据中确定共享数据,所述合约数据包括共享数据和私有数据;
执行模块,用于当检测到所述公钥具备的对所述共享数据的操作权限时,执行所述操作权限对应的数据操作,所述操作权限至少包括数据访问权限、数据添加权限及数据删除权限。
8.根据权利要求7所述的装置,其特征在于,所述第一获取模块,还用于当接收到所述合约引擎发送的私有数据操作请求时,获取所述私有数据操作请求携带的智能合约标识和私有数据标识;
所述执行模块,还用于如果所述智能合约标识与所述私有数据标识之间存在关联关系,则对所述私有数据标识指示的私有数据进行操作,并当完成所述操作后,向所述合约引擎返回成功指令;
所述执行模块,还用于如果所述智能合约标识与所述私有数据标识之间不存在关联关系,则停止当前流程,向所述合约引擎返回失败指令。
9.根据权利要求7所述的装置,其特征在于,所述执行模块包括:
查找子模块,用于基于所述公钥,在所述共享数据中查找与所述公钥对应的操作权限;
获取子模块,用于当所述共享数据中存在与所述公钥对应的操作权限时,获取与所述公钥对应的操作权限;
执行子模块,用于执行所述操作权限。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
传输模块,用于当所述数据操作执行完毕后,生成完成指令,并将所述完成指令传输至所述合约引擎,以使所述合约引擎获取所述完成指令,将所述完成指令展示给智能合约。
11.一种数据操作装置,其特征在于,所述装置应用于合约引擎,所述装置包括:
执行模块,用于执行智能合约,获取所述智能合约的公钥;
生成模块,用于当所述智能合约请求对共享数据进行操作时,基于所述智能合约发送的共享数据标识及所述公钥,生成共享数据操作请求;
发送模块,用于将所述共享数据操作请求发送至合约接口,以使所述合约接口基于所述公钥和所述共享数据标识确定是否允许所述合约引擎对所述共享数据进行操作;
展示模块,用于当接收到合约接口返回的完成指令时,向所述智能合约展示所述完成指令,所述完成指令为所述合约接口完成对所述共享数据的操作后生成并发送的;
其中,所述合约接口当接收到所述合约引擎发送的数据存储请求时,获取所述数据存储请求中携带的智能合约标识、至少一个公钥以及合约数据,在所述合约数据中确定所述共享数据和私有数据,生成所述私有数据的私有数据标识,将所述私有数据标识与所述智能合约标识对应存储,生成所述共享数据的共享数据标识,对于所述至少一个公钥中的每一个公钥,为所述公钥设置对所述共享数据进行操作的操作权限,将所述共享数据标识、所述公钥与所述操作权限对应存储,并将所述公钥返回至所述合约引擎,由所述合约引擎将所述公钥返回给所述智能合约。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
确定模块,用于当所述智能合约请求对私有数据进行操作时,确定所述智能合约的智能合约标识以及待操作的私有数据的私有数据标识;
所述生成模块,还用于基于所述智能合约标识和所述私有数据标识生成私有数据操作请求,并将所述私有数据操作请求发送至所述合约接口,以使所述合约接口判断是否允许所述合约引擎对所述私有数据标识指示的私有数据进行操作;
所述展示模块,还用于当检测到所述合约接口发送的成功指令时,展示所述成功指令,所述成功指令为所述合约接口确定允许对所述私有数据标识指示的私有数据进行操作后执行所述操作并生成的;
所述展示模块,还用于当检测到所述合约接口发送的失败指令时,停止当前操作流程,所述失败指令为所述合约接口确定不允许对所述私有数据标识指示的私有数据进行操作后生成并发送的。
13.一种电子设备,其特征在于,包括权利要求7至10任意一项所述的数据操作装置。
14.一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成权利要求1至4任意一项所述的数据操作方法的操作。
15.一种电子设备,其特征在于,包括权利要求11和12任意一项所述的数据操作装置。
16.一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成权利要求5和6任意一项所述的数据操作方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711214419.7A CN107886006B (zh) | 2017-11-28 | 2017-11-28 | 数据操作方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711214419.7A CN107886006B (zh) | 2017-11-28 | 2017-11-28 | 数据操作方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107886006A CN107886006A (zh) | 2018-04-06 |
CN107886006B true CN107886006B (zh) | 2020-06-02 |
Family
ID=61775646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711214419.7A Expired - Fee Related CN107886006B (zh) | 2017-11-28 | 2017-11-28 | 数据操作方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107886006B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108710643B (zh) * | 2018-04-20 | 2020-11-24 | 广东省科技基础条件平台中心 | 数据共享方法、装置、计算机设备和存储介质 |
CN110555310B (zh) * | 2018-06-01 | 2022-07-19 | 本无链科技(深圳)有限公司 | 一种私有数据安全存储与共享的方法及其装置 |
CN108961052B (zh) * | 2018-06-25 | 2022-02-22 | 百度在线网络技术(北京)有限公司 | 区块链数据的验证方法、存储方法、装置、设备和介质 |
CN109947723A (zh) * | 2018-11-30 | 2019-06-28 | 上海点融信息科技有限责任公司 | 用于区块链网络的区块数据共享方法、存储介质、计算设备 |
CN109711838B (zh) * | 2018-12-06 | 2020-12-29 | 杭州秘猿科技有限公司 | 一种区块链中的系统功能治理方法、系统及设备 |
CN114978665A (zh) * | 2022-05-17 | 2022-08-30 | 中原银行股份有限公司 | 一种基于Redis分布式缓存平台的数据校验方法及数据隔离系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731408A (zh) * | 2012-10-16 | 2014-04-16 | 索尼公司 | 信息处理装置、信息处理终端、访问验证方法和程序 |
CN106130730A (zh) * | 2016-06-21 | 2016-11-16 | 中国银联股份有限公司 | 一种智能卡的数据共享方法和智能卡 |
CN107103252A (zh) * | 2017-04-27 | 2017-08-29 | 电子科技大学 | 基于区块链的数据访问控制方法 |
FR3049137A1 (fr) * | 2016-03-21 | 2017-09-22 | Sebastien Dupont | Procede permettant de gerer des contrats intelligents associes ou non a une identite digitale a travers un reseau informatique decentralise |
CN107273455A (zh) * | 2017-05-31 | 2017-10-20 | 深圳前海微众银行股份有限公司 | 区块链数据访问方法和装置 |
CN107329888A (zh) * | 2017-05-31 | 2017-11-07 | 深圳前海微众银行股份有限公司 | 智能合约操作码覆盖率计算方法和系统 |
-
2017
- 2017-11-28 CN CN201711214419.7A patent/CN107886006B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731408A (zh) * | 2012-10-16 | 2014-04-16 | 索尼公司 | 信息处理装置、信息处理终端、访问验证方法和程序 |
FR3049137A1 (fr) * | 2016-03-21 | 2017-09-22 | Sebastien Dupont | Procede permettant de gerer des contrats intelligents associes ou non a une identite digitale a travers un reseau informatique decentralise |
CN106130730A (zh) * | 2016-06-21 | 2016-11-16 | 中国银联股份有限公司 | 一种智能卡的数据共享方法和智能卡 |
CN107103252A (zh) * | 2017-04-27 | 2017-08-29 | 电子科技大学 | 基于区块链的数据访问控制方法 |
CN107273455A (zh) * | 2017-05-31 | 2017-10-20 | 深圳前海微众银行股份有限公司 | 区块链数据访问方法和装置 |
CN107329888A (zh) * | 2017-05-31 | 2017-11-07 | 深圳前海微众银行股份有限公司 | 智能合约操作码覆盖率计算方法和系统 |
Non-Patent Citations (1)
Title |
---|
基于联盟区块链的智能电网数据安全存储与共享系统;吴振铨 等;《计算机应用》;20171010;第34卷(第10期);说明书第0004段至第0274段 * |
Also Published As
Publication number | Publication date |
---|---|
CN107886006A (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107886006B (zh) | 数据操作方法、装置及电子设备 | |
EP3896633B1 (en) | Task processing method, system and device, and storage medium | |
CN108769230B (zh) | 交易数据存储方法、装置、服务器及存储介质 | |
CN108282527B (zh) | 生成服务实例的分布式系统和方法 | |
CN100583114C (zh) | 用于远程安全启用的系统和方法 | |
CN109510849A (zh) | 云存储的帐号鉴权方法和装置 | |
US10621651B2 (en) | Automatic recharge system and method, and server | |
US20140380310A1 (en) | Sharing usb key by multiple virtual machines located at different hosts | |
CN104506487A (zh) | 云环境下隐私策略的可信执行方法 | |
KR102001516B1 (ko) | 분할 기능을 이용한 자동 인증 처리 방법 및 시스템 | |
CN107800781A (zh) | 一种配置数据处理方法和装置 | |
CN110659100A (zh) | 容器管理方法、装置和设备 | |
CN109889410B (zh) | 测试业务功能的方法、系统、装置、代理设备和存储介质 | |
US10542569B2 (en) | Community-based communication network services | |
CN111241504A (zh) | 身份验证方法、装置、电子设备及存储介质 | |
CN110851853A (zh) | 一种数据隔离方法、装置、计算机设备及存储介质 | |
CN116578957A (zh) | 账号操作请求的响应方法、装置和电子设备 | |
CN114095200B (zh) | 资源访问权限管理方法、装置、电子设备及介质 | |
KR20190106589A (ko) | 전자 디바이스에 서비스를 제공하는 장치 및 그 방법 | |
CN110298165A (zh) | 安全访问共享内存的方法、装置以及认证代理 | |
CN111049787B (zh) | 信息关联方法、装置、系统和计算机可读存储介质 | |
CN113761513A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN114860390B (zh) | 容器数据管理方法、装置、程序产品、介质及电子设备 | |
KR102256912B1 (ko) | 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들과 연동하여 실시간 리서치를 수행하는 리서치 관리 서버 및 그 동작 방법 | |
US20150082464A1 (en) | Security adapter program and security adapter apparatus |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200602 Termination date: 20201128 |