CN111488388B - 一种数据存储合约的部署方法、装置及设备 - Google Patents
一种数据存储合约的部署方法、装置及设备 Download PDFInfo
- Publication number
- CN111488388B CN111488388B CN202010459544.XA CN202010459544A CN111488388B CN 111488388 B CN111488388 B CN 111488388B CN 202010459544 A CN202010459544 A CN 202010459544A CN 111488388 B CN111488388 B CN 111488388B
- Authority
- CN
- China
- Prior art keywords
- data
- contract
- data storage
- transaction
- timing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or 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/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/3827—Use of message hashing
-
- 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
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
公开了一种数据存储合约的部署方法、装置及设备。数据上传方可以预先创建包含了定时配置的数据存储合约,并部署在区块链系统中,进而把数据存储合约的地址写入预先部署的定时合约,从而可以通过该数据存储合约将本地数据通过节点上传到区块链网络中进行存储,并且把数据的存储地址写在数据存储合约中,以便随时查询一个数据的时间是否符合其预先定义的定时配置。
Description
技术领域
本说明书实施例涉及信息技术领域,尤其涉及一种数据存储合约的部署方法、装置及设备。
背景技术
随着区块链技术的发展应用,物理世界大量数据需要自动上链。例如,很多仓储数据需要每天自动更新并上链。
但是目前的区块链中,基本没有提供定时任务的。一部分也是普通服务器层的定时功能,和区块链服务本质上是不同的系统,但是这种中心化的定时功能,依赖于中心化定时器的稳定性。
基于此,本说明书实施例提供一种基于区块链系统进行定时上传数据的方案。
发明内容
本申请实施例的目的是提供一种基于区块链系统进行定时上传数据的方案。
为解决上述技术问题,本申请实施例是这样实现的:
一方面,本说明书实施例提供一种数据存储合约的部署方法,应用于已经预先部署了定时合约的区块链系统的节点中,所述方法包括:
获取数据上传方所创建的对应于所述数据上传方的数据存储合约,所述数据存储合约中包含所述数据上传方的定时配置;
生成包含所述数据存储合约的合约交易,将所述合约交易广播至所述区块链系统中,以便对所述合约交易进行共识,并在共识通过后部署所述数据存储合约至所述区块链系统中;
确定所述数据存储合约的合约账户地址,将所述合约账户地址写入所述定时合约的存储区域。
另一方面,本说明书实施例还提供一种基于前述数据存储合约的数据存储方法,所述方法包括:
获取数据上传方所发送的待存储数据,所述待存储数据中包含上传时间点;
基于所述数据存储合约,生成包含所述待存储数据的数据交易并广播至所述区块链系统中,以便对所述数据交易进行共识,并在共识通过后存储所述数据交易至所述区块链系统中;
确定所述数据交易在所述区块链系统中的位置信息,将所述数据交易的位置信息写入所述数据存储合约的存储区域。
与一方面对应的,本说明书实施例还提供一种数据存储合约的部署装置,应用于已经预先部署了定时合约的区块链系统的节点中,所述装置包括:
第一获取模块,获取数据上传方所创建的对应于所述数据上传方的数据存储合约,所述数据存储合约中包含所述数据上传方的定时配置;
第一生成模块,生成包含所述数据存储合约的合约交易,将所述合约交易广播至所述区块链系统中,以便对所述合约交易进行共识,并在共识通过后部署所述数据存储合约至所述区块链系统中;
第一确定模块,确定所述数据存储合约的合约账户地址,将所述合约账户地址写入所述定时合约的存储区域。
与另一方面对应的,本说明书实施例还提供一种基于前述数据存储合约的数据存储装置,所述装置包括:
第二获取模块,获取数据上传方所发送的待存储数据,所述待存储数据中包含上传时间点;
第二生成模块,基于所述数据存储合约,生成包含所述待存储数据的数据交易并广播至所述区块链系统中,以便对所述数据交易进行共识,并在共识通过后存储所述数据交易至所述区块链系统中;
第二确定模块,确定所述数据交易在所述区块链系统中的位置信息,将所述数据交易的位置信息写入所述数据存储合约的存储区域。
通过本说明书实施例所提供的方案,数据上传方可以预先创建包含了定时配置的数据存储合约,并部署在区块链系统中,进而把数据存储合约的地址写入预先部署的定时合约,从而可以通过该数据存储合约将本地数据通过节点上传到区块链网络中进行存储,并且把数据的存储地址写在数据存储合约中,以便随时查询一个数据的时间是否符合其预先定义的定时配置。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本说明书实施例所涉及的系统架构示意图;
图2为本说明书实施例所提供的一种数据存储合约的部署方法的流程示意图;
图3为本说明书实施例所提供的一种数据存储方法的流程示意图;
图4为本说明书实施例所提供的一种数据存储合约的部署装置的结构示意图;
图5为本说明书实施例所提供的一种数据存储装置的结构示意图;
图6是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
在当前的区块链系统的架构中,用户如果想要执行定时任务(例如,摄像头需要每隔一个小时将期间拍的得到的图片上链),其基本业务逻辑是,用户发送数据至服务端,服务端提供定时服务,根据用户的配置上传数据至区块链节点上链,区块链系统本身不提供相关服务。
在一个服务端可能服务多个用户时,(例如,可能有多个地方的摄像头都需要将数据上链),服务端的稳定性就变的很重要了。这种中心化的定时数据上链,依赖于中心化定时器的稳定性。
基于此,本说明书实施例提供一种基于区块链系统进行定时上传数据的方案,具体包括两个方面:数据存储合约的部署,以及数据存储。涉及到的系统架构如图1所示,图1为本说明书实施例所涉及的系统架构示意图。在该架构中,区块链系统中的每个节点上分别部署了一个定时合约和一个数据存储合约,其各自的功能和部署方式将在后文详述。在该架构中的数据上传方可以是节点本身,也可以是节点服务的用户或者设备等等。
对于本说明书实施例所涉及的第一方面,如图2所示,图2为本说明书实施例所提供的一种数据存储合约的部署方法的流程示意图,应用于已经预先部署了定时合约的区块链系统的节点中,包括:
S201,获取数据上传方所创建的对应于所述数据上传方的数据存储合约,所述数据存储合约中包含所述数据上传方的定时配置。
如前所述,数据上传方可以是节点本身,也可以是节点服务的用户或者设备等等。在数据上传方需要定时上传数据之前,即可以通过为其提供服务的节点创建相应的数据存储合约。
数据存储合约中应该包含有由该用户所定义的定时配置。定时配置即为一个数据上传的时间条件。例如,每隔一个小时上传一次数据,或者每隔两天上传一个数据等等。定时配置的具体情形可以根据数据上传方的实际需要进行预先的自定义。
在一种实施方式中,数据存储合约中还可以包含数据上传方的公钥,用于日后对于数据上传方的数字签名进行合法性验证。在这种实施方式下,数据上传方在上传数据之前需要使用自己的私钥对于自己的待存储数据进行加密,得到对应的数字签名。
需要说明的是,在实际应用中,可能存在多个数据上传方,那么就会存在多个不同的数据存储合约,其区别点在于,每个数据存储合约所对应的数据上传方不同,此外,每个数据存储合约中的时间配置也是可能不同的。
同时,每个节点可以知道一个数据上传方所对应的数据存储合约是哪个。例如,在数据上传方通过节点创建数据存储合约时即确定二者的对应关系,并存储;或者,通过在数据存储合约中加入公钥的方式,阻止其它方基于该数据存储合约进行数据上链。
S203,生成包含所述数据存储合约的合约交易,将所述合约交易广播至所述区块链系统中,以便对所述合约交易进行共识,并在共识通过后部署所述数据存储合约至所述区块链系统中。
将一个智能合约部署至区块链系统中在当前已经是很成熟的技术,此处不再赘述。
S205,确定所述数据存储合约的合约账户地址,将所述合约账户地址写入所述定时合约的存储区域。
在区块链系统中,每一个智能合约均存在一个对应的合约账户(包括已经预先部署的定时合约)。以以太坊的合约账户为例,每个合约账户中包含有描述账户状态的多个属性,一个智能合约的账户状态就由这些属性共同决定。例如,合约账户的属性中可以包括:
序号nonce,如果账户是一个合约账户,nonce代表此账户创建的合约序号;
持币数量balance,包含了该账户当下可花费的以太币的数量;
存储树哈希值storageRoot,即存储区域的哈希值。存储区域即为智能合约在运行中,产生的数据的存储地。在合约的生命周期里,该区域的内容被合约代码不断写入、读取。存储区存放于以太坊网络节点的硬盘上。存储区的内容通过散列函数得出校验哈希值,该值即为存储区的哈希值。
代码区哈希值codeHash,代码区的内容通过散列函数得出校验哈希值,该值即为代码区的哈希值。
同时,每一个智能合约在部署成功之后即会有一个对应的合约账户地址,任一节点都可以基于该地址找到该合约并执行其预先定义的逻辑。而一个智能合约的存储区域中具体存放的内容可以其预先定义的逻辑来确定,例如,在本说明书实施例中,定时合约的存储区域中用于存储数据存储合约的合约账户地址。
在本说明书实施例所涉及的区块链系统中,每部署一个新的数据存储合约成功,在定时合约中的存储区域中即应该写入该数据存储合约所对应的合约账户地址。换言之,在定时合约的存储区域中,维护了一系列的数据存储合约的地址。对于本说明书实施例所涉及的定时合约的其它功能,将在后文详述。
显然,改变定时合约的存储区域的内容将会导致存储树哈希值的改变,也会导致账户状态的改变。换言之,在区块链系统中改变一个定时合约的账户状态,并不是指在一个节点中进行改变,而是需要在所有节点上同时进行改变,并达成一致。
换言之,将数据存储合约的合约账户地址写入定时合约的存储区域是在每区块链的每个节点上均执行的。
在一种实施方式中,数据上传方在创建数据存储合约时还可以包含回调地址,回调地址用于区块链系统给数据上传方发送相关的通知消息。相应的,定时合约需要将所述合约账户地址和所述回调地址都写入所述定时合约的存储区域。
在一种实施方式中,对于已经写入了定时合约的合约账户地址,节点还可以在本地创建一个轮询索引,用于存放合约账户地址。例如,轮询索引中一条数据记录的形式可以是(合约账户地址,数据上传方标识,回调地址),从而,可以存放多个合约账户地址至本地,实现便利的合约账户地址查询。
在已经部署了数据存储合约至区块链系统中之后,即可以进行数据存储,对于本说明书实施例所涉及的第二方面,如图3所示,图3为本说明书实施例所提供的一种基于前述数据存储合约的数据存储方法的流程示意图,包括:
S301,获取数据上传方所发送的待存储数据,所述待存储数据中包含上传时间点。
待存储数据可以是诸如图片、视频、文件等等多种格式的数据,其中包含了数据上传方的上传时间点。
在一种实施方式,如果数据上传方在部署数据存储合约时即确定了需要加密传输,即选在所述数据存储合约中还包含所述数据上传方的公钥时,那么数据上传方还可以对于待存储数据进行私钥签名,即数据上传方发送给节点的数据可以包括两个部分:待存储数据+对于待存储数据的私钥签名。
S303,基于所述数据存储合约,生成包含所述待存储数据的数据交易并广播至所述区块链系统中,以便对所述数据交易进行共识,并在共识通过后存储所述数据交易至所述区块链系统中。
节点在接收到数据上传方上传的待存储数据时,由于每个数据上传方的时间配置可能不同,因此节点首先需要确定对应的数据存储合约。例如,基于预先就存储的数据上传方和数据存储合约的对应关系来确定;又例如,还可以基于对私钥签名的验证来确定。
在服务端可以预先存储了多个数据上传方的公钥(公钥时从数据存储合约中得到的),每个公钥对应一个数据存储合约。对于接收到的数据,如果其中包含有私钥签名,则可以基于公钥解密,如果成功,则可以确定包含了该公钥的数据存储合约即为对应该数据上传方的。
在确定了对应的数据存储合约之后,例如,节点确定了该数据上传方的数据存储合约的地址为“contract_data_address1”,而待存储的数据为“current_data1”,则节点可以发起指令(contract_data_address1,current_data1),即,指示调用该数据存储合约来执行数据上链。
当然,待上传数据中还包含有数据上传方的私钥签名,则可以将私钥签名页添加到指令中,即指令形式可以是(contract_data_address1,current_data1,signature1)。
数据存储合约即以“current_data1”和“signature”作为输入参数,执行其代码所确定的逻辑,生成包含所述待存储数据的数据交易并广播至所述区块链系统中,以便对所述数据交易进行共识,并在共识通过后存储所述数据交易至所述区块链系统中。
S305,确定所述数据交易在所述区块链系统中的位置信息,将所述数据交易的位置信息写入所述数据存储合约的存储区域。
在区块链系统中,每个数据交易也会存在一个对应的位置信息。例如,交易所处的块高和交易在数据块中的偏移量,或者,交易所处的块高和交易在数据块中的交易序号等等。基于此,可以将该数据交易的位置信息入所述数据存储合约的存储区域。
通过这样的方式,每一个数据存储合约的存储区域中所写入的都是同一个数据上传方的已经被写入了链上的数据交易的地址。
与此同时,每个节点即可以基于自身所部署的定时合约对于各数据存储合约的状态进行监控。具体而言,区块链上的每个节点均可以在己方设备上随时执行所述定时合约。换言之,每个节点都拥有自己的定时器(虽然每个定时器中的内容相同),每个节点相互独立,从而可以防止别的节点不工作,实现分布式的定时任务监控。
以任一节点为例,在该节点启动时,即可以启动该节点上所部署的定时合约,或者也可以由运营人员手动执行。定时合约中的逻辑被设置于如下:
(1),被执行时,即从指定的地址获取合约账户地址。具体而言,可以从定时合约的存储区域中获取合约账户地址;或者,从预先建立的轮询索引中获取合约账户地址。
(2),根据所述合约账户地址从区块链系统中查询得到对应的数据存储合约。由于合约账户地址和数据存储合约一一对应,如果有多个合约账户地址,则可以得到多份数据存储合约。
(3),获取所述数据存储合约中所包含的数据上传方的定时配置,以及,获取所述数据存储合约的存储区域中所包含的数据交易的位置信息。
(4),根据所述数据交易的位置信息从所述区块链系统中获取对应的数据交易,从所述数据交易中查询获取上传时间点。由于位置信息可以是多个,那么查询得到的上传时间点也可以是多个,即一个时间序列。
(5)根据所述上传时间点、当前时间和所述定时配置,确定所述数据存储合约所对应的数据上传方是否正常工作。
具体而言,判定的方式需要根据定时配置而确定。例如,如果定时配置是要求每隔1小时上传一次数据,那么就可以获取最近的上传时间点并与本地时间判断,间隔是不是超过了一个小时;又例如,如果定时配置是要求每天上传8次数据,每次上传间隔不低于2小时,则可以判断获取得到的时间序列和当前时间是否满足一天内上传了8次数据,且与上一次的间隔是不是不低于2小时。
同时仍然需要说明的是,在区块链系统中的一次判定,仍然是需要每个节点进行共识之后才能确定。换言之,这种对于定时任务的监督,在每个节点上均要执行,实现分布式的定时任务监督,避免了中心化的定时服务。
在一种实施方式中,如果数据存储合约中还包含回调地址,且,区块链系统确定所述数据存储合约所对应的数据上传方工作不正常时,那么还可以选出一个通知节点,发送包含所述数据上传方不正常工作的通知信息至所述回调地址。通知节点的选出可以是随机的,也可以是确定由对应的接收数据存储合约的节点来发送。
在一种实施方式中,当获取得到的合约账户地址为多个时,显然,此时需要对多个合约账户地址进行轮询。轮询的方式即为,执行定时合约的逻辑时,需要在区块链系统中确定一个节点上传的数据是不是正常(即符合对应的定时配置)之后,再对下一个节点执行前述的定时合约的(1)至(5)的逻辑。
在一种实施方式中,如果数据上传方在创建数据存储合约中还包含所述数据上传方的公钥时,那么意味着其上传待存储数据时,还会包含所述数据上传方对于所述待存储数据的私钥签名。对应的,也会生成包含所述待存储数据和所述私钥签名的数据交易,并上链。
那么区块链系统中的任一节点,在验证数据上传方是否正常工作之前,还可以从所述数据存储合约中获取所述数据上传方的公钥,并对所述交易中所包含的数字签名进行合法性验证,验证成功,即可以继续后续流程,如果验证失败,则无需后续的流程,直接发送警告信息至回调地址。通过使用公钥来判断确实是用户上传的数据,可以防止某个节点的篡改数据提交上链。
通过本说明书实施例所提供的方案,数据上传方可以预先创建包含了定时配置的数据存储合约,并部署在区块链系统中,进而把数据存储合约的地址写入预先部署的定时合约,从而可以通过该数据存储合约将本地数据通过节点上传到区块链网络中进行存储,并且把数据的存储地址写在数据存储合约中,以便随时查询一个数据的时间是否符合其预先定义的定时配置,通过分布式的定时合约进行监督,避免了中心化的定时服务。
与一方面对应的,本说明书实施例还提供一种数据存储合约的部署装置,应用于已经预先部署了定时合约的区块链系统的节点中,如图4所示,图4为本说明书实施例所提供的一种数据存储合约的部署装置的结构示意图,所述装置包括:
第一获取模块401,获取数据上传方所创建的对应于所述数据上传方的数据存储合约,所述数据存储合约中包含所述数据上传方的定时配置;
第一生成模块403,生成包含所述数据存储合约的合约交易,将所述合约交易广播至所述区块链系统中,以便对所述合约交易进行共识,并在共识通过后部署所述数据存储合约至所述区块链系统中;
第一确定模块405,确定所述数据存储合约的合约账户地址,将所述合约账户地址写入所述定时合约的存储区域。
进一步地,当所述数据存储合约中还包括回调地址时,相应的,所述第一确定模块405,将所述合约账户地址和所述回调地址写入所述定时合约的存储区域。
进一步地,所述装置还包括索引模块407,获取所述定时合约的存储区域中所包含的合约账户地址,将所述合约账户地址写入本地预存的轮询索引。
进一步地,所述数据存储合约中包含所述数据上传方的定时配置,包括:所述数据存储合约中包含所述数据上传方的定时配置和所述数据上传方的公钥。
与第二方面对应的,本说明书实施例还提供一种基于前述数据存储合约的数据存储装置,如图5所示,图5为本说明书实施例所提供的一种数据存储装置的结构示意图,所述装置包括:
第二获取模块501,获取数据上传方所发送的待存储数据,所述待存储数据中包含上传时间点;
第二生成模块503,基于所述数据存储合约,生成包含所述待存储数据的数据交易并广播至所述区块链系统中,以便对所述数据交易进行共识,并在共识通过后存储所述数据交易至所述区块链系统中;
第二确定模块505,确定所述数据交易在所述区块链系统中的位置信息,将所述数据交易的位置信息写入所述数据存储合约的存储区域。
进一步地,所述装置还包括定时模块507,执行所述定时合约,获取数据存储合约的合约账户地址;根据所述合约账户地址从区块链系统中查询得到对应的数据存储合约;获取所述数据存储合约中所包含的数据上传方的定时配置,以及,获取所述数据存储合约的存储区域中所包含的数据交易的位置信息;根据所述数据交易的位置信息从所述区块链系统中获取对应的数据交易,从所述数据交易中查询获取最近的上传时间时间点;根据所述上传时间点、当前时间和所述定时配置,确定所述数据存储合约所对应的数据上传方是否正常工作。
进一步地,当所述数据存储合约中还包含回调地址,且,确定所述数据存储合约所对应的数据上传方工作不正常时,所述装置还包括发送模块509,发送包含所述数据上传方不正常工作的通知信息至所述回调地址。
进一步地,所述定时模块507,从所述定时合约的存储区域中获取合约账户地址;或者,从预先建立的轮询索引中获取合约账户地址。
进一步地,当获取得到的合约账户地址为多个时,所述装置还包括轮询模块511,轮询所述合约账户地址。
进一步地,当所述待存储数据中还包含所述数据上传方对于所述待存储数据的私钥签名,以及,所述数据存储合约中还包含所述数据上传方的公钥时,相应的,所述第二生成模块503,生成包含所述待存储数据和所述私钥签名的数据交易;
相应的,在确定所述数据存储合约所对应的数据上传方是否正常工作之前,所述装置还包括验证模块513,从所述数据存储合约中获取所述数据上传方的公钥,并对所述交易中所包含的数字签名进行合法性验证。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图2所示的数据存储合约的部署方法。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图3所示的数据存储方法。
图6示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图2所示的数据存储合约的部署方法。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图3所示的数据存储方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (21)
1.一种数据存储合约的部署方法,应用于已经预先部署了定时合约的区块链系统的节点中,所述方法包括:
获取数据上传方所创建的对应于所述数据上传方的数据存储合约,所述数据存储合约中包含所述数据上传方的定时配置,所述定时配置为一个数据上传的时间条件;
生成包含所述数据存储合约的合约交易,将所述合约交易广播至所述区块链系统中,以便对所述合约交易进行共识,并在共识通过后部署所述数据存储合约至所述区块链系统中;
确定所述数据存储合约的合约账户地址,将所述合约账户地址写入所述定时合约的存储区域。
2.如权利要求1所述的方法,当所述数据存储合约中还包括回调地址时,相应的,将所述合约账户地址写入所述定时合约的存储区域,包括:将所述合约账户地址和所述回调地址写入所述定时合约的存储区域。
3.如权利要求1所述的方法,所述方法还包括:
获取所述定时合约的存储区域中所包含的合约账户地址,将所述合约账户地址写入本地预存的轮询索引。
4.如权利要求1所述的方法,所述数据存储合约中包含所述数据上传方的定时配置,包括:
所述数据存储合约中包含所述数据上传方的定时配置和所述数据上传方的公钥。
5.一种基于权利要求1所述的数据存储合约的数据存储方法,所述方法包括:
获取数据上传方所发送的待存储数据,所述待存储数据中包含上传时间点;
基于所述数据存储合约,生成包含所述待存储数据的数据交易并广播至所述区块链系统中,以便对所述数据交易进行共识,并在共识通过后存储所述数据交易至所述区块链系统中;
确定所述数据交易在所述区块链系统中的位置信息,将所述数据交易的位置信息写入所述数据存储合约的存储区域。
6.如权利要求5所述的方法,还包括:
执行所述定时合约,获取数据存储合约的合约账户地址;
根据所述合约账户地址从区块链系统中查询得到对应的数据存储合约;
获取所述数据存储合约中所包含的数据上传方的定时配置,以及,获取所述数据存储合约的存储区域中所包含的数据交易的位置信息;
根据所述数据交易的位置信息从所述区块链系统中获取对应的数据交易,从所述数据交易中查询获取上传时间点;
根据所述上传时间点、当前时间和所述定时配置,确定所述数据存储合约所对应的数据上传方是否正常工作。
7.如权利要求6所述的方法,当所述数据存储合约中还包含回调地址,且,确定所述数据存储合约所对应的数据上传方工作不正常时,所述方法还包括:发送包含所述数据上传方不正常工作的通知信息至所述回调地址。
8.如权利要求6所述的方法,获取数据存储合约的合约账户地址,包括:
从所述定时合约的存储区域中获取合约账户地址;或者,从预先建立的轮询索引中获取合约账户地址。
9.如权利要求6所述的方法,当获取得到的合约账户地址为多个时,所述方法还包括:轮询所述合约账户地址。
10.如权利要求6所述的方法,当所述待存储数据中还包含所述数据上传方对于所述待存储数据的私钥签名,以及,所述数据存储合约中还包含所述数据上传方的公钥时,
相应的,生成包含所述待存储数据的数据交易,包括:生成包含所述待存储数据和所述私钥签名的数据交易;
相应的,在确定所述数据存储合约所对应的数据上传方是否正常工作之前,所述方法还包括:从所述数据存储合约中获取所述数据上传方的公钥,并对所述交易中所包含的数字签名进行合法性验证。
11.一种数据存储合约的部署装置,应用于已经预先部署了定时合约的区块链系统的节点中,所述装置包括:
第一获取模块,获取数据上传方所创建的对应于所述数据上传方的数据存储合约,所述数据存储合约中包含所述数据上传方的定时配置,所述定时配置为一个数据上传的时间条件;
第一生成模块,生成包含所述数据存储合约的合约交易,将所述合约交易广播至所述区块链系统中,以便对所述合约交易进行共识,并在共识通过后部署所述数据存储合约至所述区块链系统中;
第一确定模块,确定所述数据存储合约的合约账户地址,将所述合约账户地址写入所述定时合约的存储区域。
12.如权利要求11所述的装置,当所述数据存储合约中还包括回调地址时,相应的,所述第一确定模块,将所述合约账户地址和所述回调地址写入所述定时合约的存储区域。
13.如权利要求11所述的装置,所述装置还包括索引模块,获取所述定时合约的存储区域中所包含的合约账户地址,将所述合约账户地址写入本地预存的轮询索引。
14.如权利要求11所述的装置,所述数据存储合约中包含所述数据上传方的定时配置,包括:所述数据存储合约中包含所述数据上传方的定时配置和所述数据上传方的公钥。
15.一种基于权利要求1所述的数据存储合约的数据存储装置,所述装置包括:
第二获取模块,获取数据上传方所发送的待存储数据,所述待存储数据中包含上传时间点;
第二生成模块,基于所述数据存储合约,生成包含所述待存储数据的数据交易并广播至所述区块链系统中,以便对所述数据交易进行共识,并在共识通过后存储所述数据交易至所述区块链系统中;
第二确定模块,确定所述数据交易在所述区块链系统中的位置信息,将所述数据交易的位置信息写入所述数据存储合约的存储区域。
16.如权利要求15所述的装置,还包括定时模块,执行所述定时合约,获取数据存储合约的合约账户地址;根据所述合约账户地址从区块链系统中查询得到对应的数据存储合约;获取所述数据存储合约中所包含的数据上传方的定时配置,以及,获取所述数据存储合约的存储区域中所包含的数据交易的位置信息;根据所述数据交易的位置信息从所述区块链系统中获取对应的数据交易,从所述数据交易中查询获取最近的上传时间时间点;根据所述上传时间点、当前时间和所述定时配置,确定所述数据存储合约所对应的数据上传方是否正常工作。
17.如权利要求16所述的装置,当所述数据存储合约中还包含回调地址,且,确定所述数据存储合约所对应的数据上传方工作不正常时,所述装置还包括发送模块,发送包含所述数据上传方不正常工作的通知信息至所述回调地址。
18.如权利要求16所述的装置,所述定时模块,从所述定时合约的存储区域中获取合约账户地址;或者,从预先建立的轮询索引中获取合约账户地址。
19.如权利要求16所述的装置,当获取得到的合约账户地址为多个时,所述装置还包括轮询模块,轮询所述合约账户地址。
20.如权利要求16所述的装置,当所述待存储数据中还包含所述数据上传方对于所述待存储数据的私钥签名,以及,所述数据存储合约中还包含所述数据上传方的公钥时,
相应的,所述第二生成模块,生成包含所述待存储数据和所述私钥签名的数据交易;
相应的,在确定所述数据存储合约所对应的数据上传方是否正常工作之前,所述装置还包括验证模块,从所述数据存储合约中获取所述数据上传方的公钥,并对所述交易中所包含的数字签名进行合法性验证。
21.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010459544.XA CN111488388B (zh) | 2020-05-27 | 2020-05-27 | 一种数据存储合约的部署方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010459544.XA CN111488388B (zh) | 2020-05-27 | 2020-05-27 | 一种数据存储合约的部署方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488388A CN111488388A (zh) | 2020-08-04 |
CN111488388B true CN111488388B (zh) | 2023-10-13 |
Family
ID=71811396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010459544.XA Active CN111488388B (zh) | 2020-05-27 | 2020-05-27 | 一种数据存储合约的部署方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488388B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108156040A (zh) * | 2018-01-30 | 2018-06-12 | 北京交通大学 | 一种分布式云存储系统中的中央控制节点 |
CN108830606A (zh) * | 2018-05-30 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 智能合约的部署、调用、执行方法和装置 |
CN109493203A (zh) * | 2018-09-30 | 2019-03-19 | 咪咕文化科技有限公司 | 一种数据核算方法、装置及存储介质 |
CN109615517A (zh) * | 2018-12-07 | 2019-04-12 | 北京瑞卓喜投科技发展有限公司 | 一种智能合约执行方法及智能合约执行系统 |
CN111061685A (zh) * | 2019-11-21 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 日志查询方法、装置、节点设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102288045B1 (ko) * | 2018-05-21 | 2021-08-10 | 성신여자대학교 연구 산학협력단 | 블록 체인 기반 대상 데이터 관리 방법 및 장치 |
US20200034571A1 (en) * | 2018-07-25 | 2020-01-30 | Nicholas Andrew Fett | Method for Smart Contract Data Input through a Proof-of-Work Consensus Mechanism |
US11741239B2 (en) * | 2018-10-17 | 2023-08-29 | Omnitracs, Llc | Blockchain-based hours-of-service system |
-
2020
- 2020-05-27 CN CN202010459544.XA patent/CN111488388B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108156040A (zh) * | 2018-01-30 | 2018-06-12 | 北京交通大学 | 一种分布式云存储系统中的中央控制节点 |
CN108830606A (zh) * | 2018-05-30 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 智能合约的部署、调用、执行方法和装置 |
CN109493203A (zh) * | 2018-09-30 | 2019-03-19 | 咪咕文化科技有限公司 | 一种数据核算方法、装置及存储介质 |
CN109615517A (zh) * | 2018-12-07 | 2019-04-12 | 北京瑞卓喜投科技发展有限公司 | 一种智能合约执行方法及智能合约执行系统 |
CN111061685A (zh) * | 2019-11-21 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 日志查询方法、装置、节点设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111488388A (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111091429B (zh) | 电子票据标识分配方法及装置、电子票据生成系统 | |
CN110020854B (zh) | 一种基于多个区块链网络的数据存证方法及系统 | |
CN110162523B (zh) | 数据存储方法、系统、装置及设备 | |
CN112487492B (zh) | 数据验证方法、系统及设备 | |
CN110334094B (zh) | 一种基于倒排索引的数据查询方法、系统、装置及设备 | |
CN110022260B (zh) | 一种跨环境回执消息处理方法及系统 | |
CN111290866A (zh) | 业务处理方法及装置 | |
CN110060153B (zh) | 一种基于多个区块链网络的数据存证方法及系统 | |
CN110020945B (zh) | 一种基于多个区块链网络的数据读取方法及系统 | |
EP3817333B1 (en) | Method and system for processing requests in a consortium blockchain | |
CN111163130A (zh) | 一种网络服务系统及其数据传输方法 | |
CN109167819A (zh) | 数据同步系统、方法、装置及存储介质 | |
CN111669434A (zh) | 一种通信群组的建立方法、系统、装置及设备 | |
CN112291321B (zh) | 业务处理方法、装置及系统 | |
CN111464319B (zh) | 一种基于中心化块链式账本的交易存储、签名校验方法 | |
CN111488388B (zh) | 一种数据存储合约的部署方法、装置及设备 | |
CN113949632B (zh) | 一种区块链的节点动态配置方法及装置 | |
CN108681558B (zh) | 一种数据回滚方法、装置、及终端 | |
US11973687B2 (en) | Multilayer decentralized server network | |
CN111626802A (zh) | 用于处理信息的方法和装置 | |
CN110968453A (zh) | 一种数据存储方法及装置 | |
CN111563272B (zh) | 信息统计方法及装置 | |
CN110060152B (zh) | 一种基于多个区块链网络的数据读取方法及系统 | |
CN114331447B (zh) | 一种跨链消息提交方法及装置 | |
CN114092252B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40034125 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |