CN115481121A - 一种数据跨链存储方法、装置、电子设备及存储介质 - Google Patents
一种数据跨链存储方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115481121A CN115481121A CN202110661503.3A CN202110661503A CN115481121A CN 115481121 A CN115481121 A CN 115481121A CN 202110661503 A CN202110661503 A CN 202110661503A CN 115481121 A CN115481121 A CN 115481121A
- Authority
- CN
- China
- Prior art keywords
- chain
- data
- block chain
- cross
- newly added
- 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.)
- Pending
Links
Images
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的数据跨链存储方法、装置、电子设备及存储介质,通过监控任一区块链的第一内存表中是否存在新增数据的业务信息;若存在,根据所述业务信息,确定所述新增数据是否需要上传至目标区块链;若需要,调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至所述目标区块链中;实现了通过监控区块链中的内存表,确定出指定的需要进行跨链存储的新增数据,并将指定的新增数据进行跨链存储,减少了不同区块链之间跨链存储导致的数据冗余,节约了区块链的存储空间,提高了区块链的运行性能。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种数据跨链存储方法、装置、电子设备及存储介质。
背景技术
随着区块链生态的繁荣和开源区块链框架的逐步开放,用户自主搭建一个区块链系统变得触手可及,越来越多的区块链平台被用户所使用。但是由于不同的区块链平台之间存在信息壁垒,在不同的区块链之间实现数据的跨链存储成为了用户的迫切需求。
目前,现有的区块链中信息跨链存储的方法,主要是通过设置主链和侧链,使用侧链协议与主链数据同步,将主链中的数据全部同步至侧链中,从而实现不同区块链中数据的同步和跨链存储。
由此可见,现有的区块链中信息跨链存储的方法,只能够将一个区块链中的全部数据同步至另一区块链中,造成了大量数据的冗余,且占用了区块链中大量的存储空间,导致区块链性能下降。
发明内容
本发明提供一种数据跨链存储方法、装置、电子设备及存储介质,用以解决现有的区块链中信息跨链存储的方法,只能够将一个区块链中的全部数据同步至另一区块链中,造成了大量数据的冗余,且占用了区块链中大量的存储空间,导致区块链性能下降的问题;通过监控区块链中的内存表,确定出指定的需要进行跨链存储的新增数据,并将指定的新增数据进行跨链存储,减少了不同区块链之间跨链存储导致的数据冗余,节约了区块链的存储空间,提高了区块链的运行性能。
本发明提供一种数据跨链存储方法,包括:
监控任一区块链的第一内存表中是否存在新增数据的业务信息;
若存在,根据所述业务信息,确定所述新增数据是否需要上传至目标区块链;
若需要,调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至所述目标区块链中。
根据本发明提供的一种数据跨链存储方法,所述监控任一区块链的第一内存表中是否存在新增数据的业务信息之前,包括:
对所述新增数据进行加密并上传到星际文件系统中;
获取所述星际文件系统返回的哈希值,并提取所述新增数据的业务信息;其中,所述业务信息包括:是否将所述新增数据进行跨链存储、目标区块链链名;
通过所述任一区块链的上链接口,将所述哈希值与所述业务信息存储至第一内存表中。
根据本发明提供的数据跨链存储方法,所述对所述新增数据进行加密,包括:
基于AES加密算法,对所述新增数据进行加密,生成加密新增数据文件;
基于RSA加密算法,通过所述RSA加密算法中的公钥对所述AES加密算法的AES密钥进行加密。
根据本发明提供的数据跨链存储方法,所述确定所述新增数据是否需要上传至所述目标区块链,包括:
以第一预设时间间隔,定时查询所述第一内存表中预设数量的距离当前时刻最近的业务信息;
若所述业务信息中包含将所述新增数据进行跨链存储的内容,确定需要将所述业务信息对应的新增数据上传至所述目标区块链。
根据本发明提供的数据跨链存储方法,所述调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至目标区块链中,包括:
以第二预设时间间隔,定时检查跨链任务队列,判断所述跨链任务队列中是否包含将所述新增数据进行跨链存储的业务信息;
若存在,根据所述业务信息,确定与所述业务信息对应的目标区块链;
调用与所述目标区块链对应的跨链去中心化应用,将所述业务信息对应的新增数据上传至目标区块链中。
根据本发明提供的数据跨链存储方法,将所述新增数据上传至所述目标区块链中之后,包括:
收取所述目标区块链发送的存证编号;
将所述存证编号存储至所述任一区块链的第二内存表中,以作为所述新增数据跨链存储的凭证。
根据本发明提供的数据跨链存储方法,所述将所述新增数据上传至目标区块链中之后,还包括:
通过调用所述目标区块链中的第一区块链接口,获取所述目标区块链中的最新不可逆区块编号;其中,所述最新不可逆区块编号为所述目标区块链中对新的新增数据进行存储的区块的编号;
比较所述最新不可逆区块编号是否大于所述目标区块链中的目标区块编号;其中所述目标区块编号对应的区块用于存储所述新增数据;
若大于,调用所述目标区块链中的第二区块链接口,判断所述新增数据是否存储于所述目标区块编号对应的区块中;
若所述新增数据存储于所述目标区块编号对应的区块中,确定成功将所述新增数据上传至所述目标区块链中。
本发明还提供一种数据跨链存储装置,包括:
监控单元,用于监控任一区块链的第一内存表中是否存在新增数据的业务信息;
确定单元,用于若存在,确定所述新增数据是否需要上传至目标区块链;
上传单元,用于若需要,调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至所述目标区块链中。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据跨链存储方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据跨链存储方法的步骤。
本发明提供的数据跨链存储方法、装置、电子设备及存储介质,通过监控任一区块链的第一内存表中是否存在新增数据的业务信息;若存在,根据所述业务信息,确定所述新增数据是否需要上传至目标区块链;若需要,调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至所述目标区块链中;实现了通过监控区块链中的内存表,确定出指定的需要进行跨链存储的新增数据,并将指定的新增数据进行跨链存储,减少了不同区块链之间跨链存储导致的数据冗余,节约了区块链的存储空间,提高了区块链的运行性能。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的软件实例异常的预测方法的流程示意图;
图2是本发明另一实施例提供的加密流程示意图;
图3是本发明另一实施例提供的解密流程示意图;
图4是本发明提供的数据跨链存储装置的结构示意图;
图5是本发明另一实施例提供的基于EOS区块链和IPFS可跨链存储隐私数字资产的系统的结构示意图;
图6是本发明另一实施例提供的EOS集群部署示意图;
图7是本发明实施例提供的EOS技术框架中应用层的结构示意图;
图8是本发明另一实施例提供的IPFS集群部署示意图;
图9是本发明另一实施例提供的监控系统结构示意图;
图10是本发明提供的电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对区块链的基本内容与本申请涉及到的技术名词进行说明。
EOS:是一种区块链底层公链系统,目的是解决现有的区块链应用性能低、安全性差、开发难度高以及过度依赖手续费的问题,实现分布式应用的性能扩展。EOS提供帐户,身份验证,数据库,异步通信以及在数以万计的CPU或群集上的程序调度。该技术的最终形式是一个区块链体系架构,该区块链每秒可以支持数百万个交易,同时普通用户无需支付使用费用。相比传统公链,如超级账本,EOS的优势主要体现在:(1)采用了DPOS(股份授权证明)共识算法机制,大幅提升底层公链的交易速度;(2)安全性高,可以避免DOS攻击;(3)兼容性高,可以兼容以太坊的智能合约;(4)扩展性强,可采用并行计算来加速吞吐量。
EOS智能合约:部署在EOS区块链节点上,它实现了协议输入输出行为,将合约的请求行为存储在区块链上。EOS智能合约定义了操作接口、参数、数据结构及相关实现代码。代码被编译成规范的字节码格式,以供节点运行和检索。
星际文件系统(InterPlanetary File System,缩写IPFS)是一个对等的分布式文件系统,它尝试为所有计算设备连接同一个文件系统。IPFS提供了一个高吞吐量、按内容寻址的块存储模型,及与内容相关超链接,结合了分布式散列表、鼓励块交换和一个自我认证的名字空间。IPFS没有单点故障,并且节点不需要相互信任。分布式内容传递可以节约带宽,和防止HTTP方案可能遇到的DDoS攻击。该文件系统可以通过多种方式访问,包括FUSE与HTTP。文件表示基于其哈希,因此有利于缓存。文件的分发采用一个基于BitTorrent的协议。其他查看内容的用户也有助于将内容提供给网络上的其他人。将一个文件放到IPFS节点中,将会得到基于其内容计算出的唯一加密哈希值。哈希值直接反映文件的内容,哪怕只修改1比特,哈希值也会完全不同。当IPFS被请求一个文件哈希时,它会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据。IPFS是通用目的的基础架构,基本没有存储上的限制。大文件会被切分成小的分块,下载的时候可以从多个服务器同时获取。IPFS的网络是不固定的、细粒度的、分布式的网络,可以很好的适应内容分发网络的要求。这样的设计可以很好的共享各类数据,包括图像、视频流、分布式数据库、整个操作系统、模块链,还有静态网站。
RSA(Rivest–Shamir–Adleman)是最早的公钥密码系统之一,被广泛用于安全数据传输。在这样的密码系统中,加密密钥是公共的,并且与保持秘密(私有)的解密密钥不同。在RSA中,这种不对称性是基于对一个极大数进行因式分解,即“分解问题”。对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式破解。到目前为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被破解的。RSA的用户基于两个大质数以及一个辅助值创建并发布一个公共密钥。质数必须保密。任何人都可以使用公共密钥对邮件进行加密,但是只有知道质数的人才能对邮件进行解码。RSA是一种相对较慢的算法,因此,它不常用于直接加密用户数据。RSA通常会通过加密的共享密钥进行对称密钥加密,从而可以更快地执行批量加密-解密操作。
高级加密标准(Advanced Encryption Standard,AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。现在,高级加密标准已然成为对称密钥加密中最流行的算法之一。AES的区块长度固定为128比特,密钥长度则可以是128,192或256比特。AES加密算法也是一种对称加密算法,意味着同一个密钥既用来进行数据的加密,也用来进行数据的解密。
跨链技术:所谓“跨链”就是指原本存储在特定区块链上的资产可以转换成为另一条链上的资产,从而实现价值的流通。也可以将其理解为不同资产持有人之间的一种兑换行为,这个过程实际并不改变每条区块链上的价值总额。就好比交易平台提供的币币交易一样,不同类型的数字货币之间可以进行兑换,只是交易平台的这一行为没有发生在区块链上而已。
从技术上来看区块链属于分布式账本,而从商业层面来看,它本质上属于一种价值网络,不同区块链之间的孤立性不仅导致了数字资产不能在区块链之间流通,同时也将其价值局限在了一个狭隘的范围内,一定程度上限制了其自身的发展空间。
主流跨链技术:包括公证人机制(Notary schemes)/去中心化交易所协议、哈希锁定(Hash-locking)、侧链/中继(Sidechains/relays)。
公证人机制,中心化或多重签名的见证人模式,见证人是链A的合法用户,负责监听链B的事件和状态,进而操作链A。本质特点是完全不用关注所跨链的结构和共识特性等。假设A和B是不能进行互相信任的,那就引入A和B都能够共同信任的第三方充当公证人作为中介。这样的话,A和B就间接可以互相信任。具有代表性的方案是Interledger,它本身不是一个账本,不寻求任何的共识。相反它提供了一个顶层加密托管系统称之为“连接者”,在这个中介机构的帮助下,不同的记账系统可以通过第三方“连接器”或“验证器”互相自由地传输货币。记账系统无需信任“连接器”,因为该协议采用密码算法用连接器为这两个记账系统创建资金托管,当所有参与方对交易达成共识时,便可相互交易。该协议移除了交易参与者所需的信任,连接器不会丢失或窃取资金,这意味着,这种交易无需得到法律合同的保护和过多的审核,大大降低了门槛。同时,只有参与其中的记账系统才可以跟踪交易,交易的详情可隐藏起来,“验证器”是通过加密算法来运行,因此不会直接看到交易的详情。理论上,该协议可以兼容任何在线记账系统,而银行现有的记账系统只需小小的改变就能使用该协议。从而使银行之间可以无需中央对手方或代理银行就可直接交易。简单来讲,这种模式需要第三方介入。
哈希时间锁定合约最典型的代表就是比特币的闪电网络,闪电网络提供一个可扩展的微支付通,用以提升链外的交易处理能力,使用哈希锁定将发起方的交易代币进行锁定,并通过时间锁定让接收方在某个约定的时刻前生成支付的密码学证明,并与先前约定的哈希值一致,则可完成交易。
侧链/中继系统可以读取主链的事件和状态,即支持SPV(Simple PaymentVerificaiton),能够验证块上Header、merkle tree的信息。本质特点是必须关注所跨链的结构和共识特性等。一般来说,主链不知道侧链的存在,而侧链必须要知道主链的存在;双链也不知道中继的存在,而中继必须要知道两条链。简单来讲,侧链和中继依旧是充当着第三方中介的角色,通过与链交互达到信息交换的目的。
Dapp:Decentralization Application(去中心化应用),简单来说Dapp=智能合约+App,站在软件开发的角度,Dapp=前端展示页面+智能合约,前端展示页面是和用户交互的,而智能合约可以调用区块链系统,所以Dapp可理解为可调用区块链系统能力的应用程序。
随着区块链生态的繁荣和开源区块链框架的逐步开放,用户自主搭建一个区块链系统变得触手可及,并且现在区块链平台百家齐放,但不难发现大公司的平台与平台间存在信息壁垒,用户只能使用单一平台的区块链服务,一旦有跨链、跨平台存储或多链存储、存证的需求,现有的平台就有些乏力了。
本实施例中,使用EOS区块链和IPFS,实现数据在不同区块链之间的跨链存储。
区块链本身是一个多方共享的分布式账本,链上的数据所有参与方共享,同时IPFS是一个分布式文件系统,各节点数据保持一致。但在实际的应用使用中,往往有着隐私保护的诉求,本发明实施例中将文件加密存储在IPFS中,同时将IPFS索引存储在区块链中,既通过技术上数据不可篡改的特性保证了存储信息的真实性,又通过加密算法保证了用户隐私数据不会被随意侵犯。
下面结合图1-图9描述本发明提供的数据跨链存储方法。
图1为本发明实施例提供的数据跨链存储方法的流程示意图。参见图1,该数据跨链存储方法包括:
步骤101:监控任一区块链的第一内存表中是否存在新增数据的业务信息。
在本实施例提供的EOS区块链中,存在两个内存表,包括cunzhenginfo内存表与cunzhengcros内存表,其中,将cunzhenginfo内存表作为第一内存表,将cunzhengcros内存表作为第二内存表。
具体的,将用户新上传的数据作为新增数据,每个新增数据存储到任一区块链中时,都会将该新增数据的信息更新到第一内存表中;cunzhenginfo内存表中保存着新增数据的数字资产信息(即业务信息),其中包括该新增数据是否需要跨链存储,以及需要跨链存储的目标区块链的链名。其中,对于新增数据是否需要跨链存储的信息,由用户填写,也可以由服务器自动判定出是否需要跨链存储,若需要跨链存储,则在相应的信息栏中填入“YES”,并填入对应的要跨链的目标区块链的链名。
步骤102:若存在,根据所述业务信息,确定所述新增数据是否需要上传至目标区块链。
若第一内存表中存在着新增数据的业务信息,根据第一内存表中是否需要跨链存储的信息,以及对应的要跨链的链名,确定该新增数据需要跨链存储至目标区块链。
步骤103:若需要,调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至所述目标区块链中。
跨链去中心化应用,即跨链Dapp,可以将需要跨链的数据上链到目标区块链中,其中,不同的跨链Dapp与不同的区块链相对应。
若监控到新增数据需要跨链到目标区块链中,调用与目标区块链对应的跨链Dapp,将新增数据上传到目标区块链中。
具体的,每一区块链都对应着一个IPFS,即在实际的数据存储过程中,第一种方法将新增数据的全部内容存储在区块链中;第二种方法是将新增数据的全部内容存储在IPFS中,只将新增数据的关键的业务信息存储在区块链中,由此减少新增数据在区块链中所占用的空间,当用户需要查询该新增数据时,通过业务信息中的内容,根据业务信息与新增数据的对应关系,在IPFS中查询到新增数据的全部内容并向用户展示。
相对应的,第一种方法中,当对新增数据进行跨链操作时,通过跨链Dapp,可以将新增数据的全部内容上链到目标区块链中;第二种方法中,还可以将新增数据的全部内容存储到目标区块链对应的IPFS中,将新增数据的业务信息存储到目标区块链中。具体的存储方式由区块链管理人员设定,本实施例中,采用第二种方法对新增数据进行跨链存储。
本发明提供的数据跨链存储方法,通过监控任一区块链的第一内存表中是否存在新增数据的业务信息;若存在,根据所述业务信息,确定所述新增数据是否需要上传至目标区块链;若需要,调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至所述目标区块链中;实现了通过监控区块链中的内存表,确定出指定的需要进行跨链存储的新增数据,并将指定的新增数据进行跨链存储,减少了不同区块链之间跨链存储导致的数据冗余,节约了区块链的存储空间,提高了区块链的运行性能。
进一步地,在上述实施例的基础上,根据本发明提供的数据跨链存储方法,所述监控任一区块链的第一内存表中是否存在新增数据的业务信息之前,包括:
对所述新增数据进行加密并上传到星际文件系统中;
获取所述星际文件系统返回的哈希值,并提取所述新增数据的业务信息;其中,所述业务信息包括:是否将所述新增数据进行跨链存储、目标区块链链名;
通过所述任一区块链的上链接口,将所述哈希值与所述业务信息存储至第一内存表中。
在将新增数据的业务信息存储在第一内存表中之前,需要首先将新增数据的内容进行加密,并上传保存到IPFS中。
将新增数据的内容上传到IPFS后,IPFS会生成该新增数据对应的哈希值,以使得用户可以根据该哈希值在IPFS中查询到该新增数据的内容。另外,在此过程中,还会获取到新增数据的其他关键的业务信息,包括是否将所述新增数据进行跨链存储、目标区块链链名等,将该新增数据的哈希值、是否将所述新增数据进行跨链存储、目标区块链链名等信息,通过所述任一区块链的上链接口,上传到区块链并保存在第一内存表中,以完成在第一内存表中对新增数据信息的更新。
本实施例中,通过将新增数据的内容存储在IPFS中,并将新增数据对应的哈希值与业务信息存储在区块链中,可以确定新增数据与第一内存表的对应关系,在保证了新增数据内容完整的基础上,节约了区块链的空间,也使得用户能够根据哈希值更精准快速的查找到新增数据。
进一步地,在上述实施例的基础上,根据本发明提供的数据跨链存储方法,所述对所述新增数据进行加密,包括:
基于AES加密算法,对所述新增数据进行加密,生成加密新增数据文件;
基于RSA加密算法,通过所述RSA加密算法中的公钥对所述AES加密算法的AES密钥进行加密。
在将新增数据上传到IPFS之前,需要对新增数据进行加密,本实施例中采用对称加密与非对称加密结合的方法进行加密。其中,对称加密算法具有计算速度快、占用空间小的特点;非对称加密算法具有安全性高、密钥分配管理便捷的优点。
图2为本发明另一实施例提供的加密流程示意图,图3为本发明另一实施例提供的解密流程示意图。参见图2、图3,加解密流程如下:
基于对称加密算法中的AES加密算法,对新增数据进行加密,并得到AES密钥;使用非对称加密算法中的RSA加密算法,生成公钥和私钥,并使用RSA算法中的公钥对AES密钥进行加密;即通过双重加密过程,完成对新增数据的加密。
在解密过程中,首先通过RSA加密算法的私钥,对加密后的AES密钥进行解密,再通过解密得到的AES密钥对通过AES加密得到的加密新增数据文件进行解密,最终得到新增数据的内容。
具体的,加密过程中,使用RSA加密算法生成公钥和私钥对,并以明文形式存于文件中,使用AES加密算法生成AES密钥,并使用公钥将AES密钥进行非对称加密,将得到的密文以文件形式进行存储,由于AES密钥以对象的形式存于内存中,可继续使用AES密钥对象将文件加密得到加密后的文件(使用AES256)。
解密过程中,根据加密数据模块的逻辑进行解密,先输入RSA私钥和公钥加密后的AES密钥,使用RSA解密算法,得到明文的AES密钥,再下载IPFS上对应的加密文件,使用AES算法解密该文件,最终得到明文文件。
进一步地,在对新增文件进行加密后,得到了RSA私钥与加密后的AES密钥,将RSA私钥与加密后的AES密钥,与将新增数据存储到IPFS后得到的哈希值一起上传到区块链中,并存储到区块链的第一内存表内。为了防止用户遗忘,还可以将RSA私钥、加密后的AES密钥、哈希值存储至可持久化的关系型数据库中,当用户调用RSA私钥、加密后的AES密钥、哈希值中的任一内容时,就可以获取到其他的相关内容。
本实施例中,通过对称加密与非对称加密结合的双重加密方法对新增文件进行加密,结合了对称加密算法计算速度快、占用空间小的优点,也结合了非对称加密安全性高、密钥分配管理便捷的优点。同时每上传一条数据,就采用AES加密算法生成一个密钥,并将密钥加密后存在区块链上,极大的提高了安全性。
进一步地,在上述实施例的基础上,根据本发明提供的数据跨链存储方法,所述确定所述新增数据是否需要上传至所述目标区块链,包括:
以第一预设时间间隔,定时查询所述第一内存表中预设数量的距离当前时刻最近的业务信息;
若所述业务信息中包含将所述新增数据进行跨链存储的内容,确定需要将所述业务信息对应的新增数据上传至所述目标区块链。
当存在新增数据时,会将新增数据的业务信息存储在第一内存表中,即查询第一内存表中的内容,就可以确定区块链中是否上传了新的数据。
通过第一预设时间间隔,定时查询第一内存表中存储的业务信息,查询最新生成的预设数量的业务信息,判断其中是否存在需要跨链的数据。其中,第一预设时间间隔与预设数量,可以由人员根据实际运行状况进行设置。
其中,当一条业务信息中包含存证编号,且已经存储在关系型数据库中,或者该业务信息中的“是否将所述新增数据进行跨链存储”的内容填写的是“NOT”,则确定该业务信息对应的数据不需要进行跨链存储。当一条业务信息中既未存储在关系型数据库中,又确定需要进行跨链存储,则将该业务信息存储在内存中,并通过调用跨链Dapp将该业务信息对应的新增数据进行跨链存储。
具体的,每经过30秒的时间间隔定时向EOS中的cunzhenginfo内存表发起查询请求,每次在内存表中取前100条数据,取到数据后按照字段名称和MySQL(关系型数据库)中的数据进行比对,如果数据已存在于MySQL中或数据的字段标识为不需要上链,则从内存中删除该条数据,否则存放于MySQL中且保留在内存中,其中,MySQL起到数据的过滤作用。
本申请中,通过以预设的时间间隔查询第一内存表中的业务信息,对第一内存表中的业务信息进行筛选,确定出需要跨链存储的新增数据,可以有计划的对新增数据进行跨链存储,从而减少区块链处理数据时的负荷,保证区块链的正常运行。
进一步地,在上述实施例的基础上,根据本发明提供的数据跨链存储方法,所述调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至目标区块链中,包括:
以第二预设时间间隔,定时检查跨链任务队列,判断所述跨链任务队列中是否包含将所述新增数据进行跨链存储的业务信息;
若存在,根据所述业务信息,确定与所述业务信息对应的目标区块链;
调用与所述目标区块链对应的跨链去中心化应用,将所述业务信息对应的新增数据上传至目标区块链中。
在确定了第一内存表中需要进行跨链存储的业务信息之后,将所有需要进行跨链存储的业务信息存储到内存中,之后将这些业务信息存入到跨链任务队列中。以第二预设时间间隔,检查跨链任务队列中是否存在将新增数据进行跨链存储的业务信息(即跨链任务),如果存在,则根据业务信息的内容,确定出该新增数据的目标区块链,调用与该目标区块链对应的跨链Dapp,将该业务信息对应的新增数据上传到目标区块链中。其中,第二预设时间间隔可以人为设定。
在跨链存储过程中,可能会存在跨链上链失败的情况,此时需要通过跨链Dapp重新对新增数据进行跨链操作,直到跨链存储成功。
具体的,内存数据存入消息队列Kafka(即跨链任务队列)中,Dapp客户端模块每隔30秒检查消息队列的存储情况,如果消息队列不为空就进行跨链任务,否则就每隔30秒检查消息队列的存储情况。Dapp客户端模块根据数据指定的跨链字段调用指定的跨链Dapp客户端,由跨链Dapp客户端完成指定数据的上链。
本实施例中,通过定时检查跨链任务队列,调用跨链Dapp,将新增数据跨链存储到目标区块链中,实现了对指定的新增数据的跨链存储,使得新增数据在不同区块链中的存储与流转。
进一步地,在上述实施例的基础上,根据本发明提供的数据跨链存储方法,将所述新增数据上传至所述目标区块链中之后,包括:
收取所述目标区块链发送的存证编号;
将所述存证编号存储至所述任一区块链的第二内存表中,以作为所述新增数据跨链存储的凭证。
目标区块链在接收到新增数据后,响应一个该新增数据的存证编号,将该存证编号存储到原区块链中的第二内存表中,作为用户查看、调用新增数据跨链存储结果的凭证。
具体的,还可以将第二内存表中的存证编号信息存储到关系型数据库中,与该新增数据的其他业务信息(哈希值、是否将所述新增数据进行跨链存储、目标区块链链名)一起存储;当用户查询任一信息时,都可以获得该新增数据的完整的业务信息内容。
本实施例中,将存证编号,作为新增数据跨链存储的凭证,使得用户可以根据该存证编号查看跨链存储的结果,并调用目标区块链中的新增数据。
进一步地,在上述实施例的基础上,根据本发明提供的数据跨链存储方法,所述将所述新增数据上传至目标区块链中之后,还包括:
通过调用所述目标区块链中的第一区块链接口,获取所述目标区块链中的最新不可逆区块编号;其中,所述最新不可逆区块编号为所述目标区块链中对新的新增数据进行存储的区块的编号;
比较所述最新不可逆区块编号是否大于所述目标区块链中的目标区块编号;其中所述目标区块编号对应的区块用于存储所述新增数据;
若大于,调用所述目标区块链中的第二区块链接口,判断所述新增数据是否存储于所述目标区块编号对应的区块中;
若所述新增数据存储于所述目标区块编号对应的区块中,确定成功将所述新增数据上传至所述目标区块链中。
在一个区块链中,会不断的生成新的区块,以存储数据;当区块链中不再生成新的区块时,说明该区块链运行出现问题,或者产生了分叉。通过区块链的该特性,判断新增数据是否成功存储至目标区块链中。
当把新增数据存储到该区块链中后,可以确定区块链中该新增数据所在区块的编号;调用区块链的第一区块链接口,获取区块链中的最新不可逆区块编号;由于区块链中不断产生新的区块,即当区块链正常运行时,该最新不可逆区块编号是大于存储所述新增数据的目标区块编号的。
进一步地,通过调用第二区块链接口,检查并判断新增数据是否存储于目标区块编号对应的区块中,当目标区块编号对应的区块中存储了该新增数据,说明新增数据已经成功跨链上传至目标区块链中。
具体的,成功执行上链操作后,需调用http://host:port/v1/chain/get_info(即第一区块链接口),从响应中获取到最新不可逆区块编号(last_irreversible_block_num)。如果last_irreversible_block_num大于block_num(即目标区块编号),说明区块已经变为不可逆状态,但是此时还不能完全确认交易是否已上链成功;需要进一步调用接口http://host:port/v1/chain/get_block(即第二区块链接口)获取编号为block_num的区块,查看交易是否已经被打包到区块中。如果交易已经被打包到区块中,说明交易已经上链成功。如果区块中没有,说明交易上链失败,需要重新上链。
进一步地,如果已经过了交易有效期,last_irreversible_block_num仍然小于block_num,说明当前交易可能上链失败。此时,因为客户端计算交易有效期结束时间点跟服务器可能存在差异,交易可能已经上链,此时,客户端可以通过接口http://host:port/v1/chain/get_info的返回值中的head_block_time字段,获取到当前区块链网络最新区块时间,进行再次确认。如果确认过了有效期,说明交易上链失败,需要重新上链。
如果last_irreversible_block_num长时间没有发生变化(持续时间超过60秒),可能区块链产生了分叉;此时,建议执行熔断降级操作,并不断通过http://host:port/v1/chain/get_info接口判断last_irreversible_block_num是否开始变化。等待last_irreversible_block_num再次开始稳定变化后(稳定时间持续超过60秒后),再进行交易上链操作。
本实施例中,通过第一区块链接口和第二区块链接口,确定新增数据是否成功进行跨链存储,保证了数据跨链存储的成功率。
具体的,对本发明实施例提供的EOS的关键步骤进行描述。
1、EOS集群部署:
本实施例中对EOS集群的部署,将节点分放于中国31省共31节点,每个节点通过nodeos服务相互连接。
2、EOS账号创建:其中,账号名称长度不得超过12位且不能重复,为了方便管理,统一长度为12位;账号中包括两个内存表:
cunzhenginfo内存表:存储数据资产的详细信息,使用该账号部署智能合约,合约名即为账号名;
cunzhengcros内存表:存储数据资产跨链后的信息,使用该账号部署智能合约,合约名即为账号名。
3、EOS内存表的设计
智能合约cunzhenginfo中的内存表设计为(下述cunzhenginfo内存表代表的是cunzhenginfo智能合约中的digitalprivacy_t):
其中,ID作为内存表数据的唯一索引作为主键;FILE_NAME文件名;FILE_DESC文件描述;FILE_HASH文件哈希值;IPFS_INDEX上传到IPFS后返回的哈希值;CROSS_CHAIN_NAME跨链的链名(如果不想跨链填入NOT,否则需填入对应的要跨链的链名)。
智能合约cunzhengcros中的内存表设计为(下述cunzhengcros内存表代表的是cunzhengcros智能合约中的crosschaininf_t):
其中,ID作为内存表数据的唯一索引作为主键;TABLE_ID TABLE_NAME表对应数据行的ID;TABLE_NAME需跨链的内存表的表名;CROSS_CHAIN_NAME所跨链的名称;DEPOSIT_EVIDENCE_NUM所跨链返回的存证编号。
4、EOS智能合约方法:
cunzhenginfo内存表、cunzhengcros内存表分别根据智能合约编写指南,编写内存表添加数据、修改数据和删除数据的方法。
进一步地,IPFS集群作为分布式文件系统随EOS的nodeos节点一同部署。
本发明实施例还提供了一种基于EOS区块链和IPFS可跨链存储隐私数字资产的方法,通过监控自建EOS系统特定内存表数据并结合IPFS来实现加密数字资产跨链存储功能。具体的技术方案如下:
基于EOS和IPFS技术框架,通过非对称和对称加密结合的方式上传加密文件到IPFS,实现用户隐私数据存储,再将IPFS返回的哈希值和经过公钥加密的文件密钥以JSON的格式进行组合并上链,实现数据共享保障存储数据的真实可靠。而后,监控程序定时读取EOS数字资产存证内存表,根据内存表的跨链字段决定是否跨链上传并存证,需要跨链的信息由监控程序中的对应链的Dapp程序发起上链请求,得到存证编码后再将相关信息写入EOS的跨链信息表中,以记录跨链存储的依据,而无需进行跨链的信息仅存储在EOS一条区块链中,此功能可由用户按需选择。
进一步地,该基于EOS区块链和IPFS可跨链存储隐私数字资产的方法具有以下优点:
1、可指定数据完成跨链存证操作;技术手段:建立多个跨链Dapp客户端,在监控系统发来跨链请求后,调用对应的跨链客户端实现指定数据的跨链操作。
2、跨链操作无需将多个链的数据完全同步,减少了数据的冗余、节约了存储空间;技术手段:以EOS区块链框架作为区块链存证系统主体存证链,跨链客户端通过监控EOScunzhenginfo内存表将指定数据跨链上链存证,并将响应结果上链到EOS并写入cunzhengcros内存表,仅完成了两个区块链系统的指定数据上链存证,而无需将两个链的所有数据进行同步。
3、可根据用户需求,动态插拔跨链Dapp客户端;技术手段:按照待跨链区块链平台的数据上链方案设计开发跨链Dapp客户端,并根据统一调用标准设置RPC接口供调用方调用。
4、既具有非对称加密的安全性,又具有对称加密的性能;技术手段:加密方式结合了对称加密和非对称加密算法。
下面对本发明提供的数据跨链存储装置进行描述,下文描述的数据跨链存储装置与上文描述的数据跨链存储方法可相互对应参照。
图4为本发明提供的数据跨链存储装置的结构示意图,参见图4,该数据跨链存储装置包括:
监控单元401,用于监控任一区块链的第一内存表中是否存在新增数据的业务信息;
确定单元402,用于若存在,确定所述新增数据是否需要上传至目标区块链;
上传单元403,用于若需要,调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至所述目标区块链中。
本实施例提供的数据跨链存储装置适用于上述各实施例提供的数据跨链存储方法,在此不再赘述。
具体的,根据本发明提供的一种数据跨链存储装置,所述监控任一区块链的第一内存表中是否存在新增数据的业务信息之前,包括:
对所述新增数据进行加密并上传到星际文件系统中;
获取所述星际文件系统返回的哈希值,并提取所述新增数据的业务信息;其中,所述业务信息包括:是否将所述新增数据进行跨链存储、目标区块链链名;
通过所述任一区块链的上链接口,将所述哈希值与所述业务信息存储至第一内存表中。
根据本发明提供的数据跨链存储装置,所述对所述新增数据进行加密,包括:
基于AES加密算法,对所述新增数据进行加密,生成加密新增数据文件;
基于RSA加密算法,通过所述RSA加密算法中的公钥对所述AES加密算法的AES密钥进行加密。
根据本发明提供的数据跨链存储装置,所述确定所述新增数据是否需要上传至所述目标区块链,包括:
以第一预设时间间隔,定时查询所述第一内存表中预设数量的距离当前时刻最近的业务信息;
若所述业务信息中包含将所述新增数据进行跨链存储的内容,确定需要将所述业务信息对应的新增数据上传至所述目标区块链。
根据本发明提供的数据跨链存储装置,所述调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至目标区块链中,包括:
以第二预设时间间隔,定时检查跨链任务队列,判断所述跨链任务队列中是否包含将所述新增数据进行跨链存储的业务信息;
若存在,根据所述业务信息,确定与所述业务信息对应的目标区块链;
调用与所述目标区块链对应的跨链去中心化应用,将所述业务信息对应的新增数据上传至目标区块链中。
根据本发明提供的数据跨链存储装置,将所述新增数据上传至所述目标区块链中之后,包括:
收取所述目标区块链发送的存证编号;
将所述存证编号存储至所述任一区块链的第二内存表中,以作为所述新增数据跨链存储的凭证。
根据本发明提供的数据跨链存储装置,所述将所述新增数据上传至目标区块链中之后,还包括:
通过调用所述目标区块链中的第一区块链接口,获取所述目标区块链中的最新不可逆区块编号;其中,所述最新不可逆区块编号为所述目标区块链中对新的新增数据进行存储的区块的编号;
比较所述最新不可逆区块编号是否大于所述目标区块链中的目标区块编号;其中所述目标区块编号对应的区块用于存储所述新增数据;
若大于,调用所述目标区块链中的第二区块链接口,判断所述新增数据是否存储于所述目标区块编号对应的区块中;
若所述新增数据存储于所述目标区块编号对应的区块中,确定成功将所述新增数据上传至所述目标区块链中。
进一步地,图5为本发明另一实施例提供的基于EOS区块链和IPFS可跨链存储隐私数字资产的系统的结构示意图。参见图5,该基于EOS区块链和IPFS可跨链存储隐私数字资产的系统分为6部分,分别是:前端展示交互层、中台服务、加密模块、区块链、分布式文件存储、监控系统。
1、前端展示交互层
该层主要提供用户选择数字资产(文件)、对应省份、是否跨链以及跨几条链的表单,如果用户选择了跨链,应实时展示数据的跨链状态:准备中、跨链中、跨链完成。用户确定之后,显示上传文件的进度条,前端交互层将请求发送至中台服务层,并返回用户IPFSHash、RSA私钥、已被RSA公钥加密后的AES密钥;
提供用户输入RSA私钥、已被RSA公钥加密后的AES密钥、IPFS Hash进行文件下载,用户点击确定并等待文件下载的进度条达到100%,即可得到指定文件;
提供用户显示已上传文件列表功能。用户点击后,得到曾上传的文件IPFS Hash值,对应的RSA私钥和对应的已被RSA公钥加密后的AES密钥;
前端交互层可以基于web、android app、ios app、windows、macos、微信小程序的形式。UI设计包括但不限于使用FluentUI等UI设计框架,前端代码的形式既可以是native的形式也可以是Flutter、uniapp的形式,只要完成上述选择表单的功能即可。
2、中台服务层
该层提供4个服务,分别是:keosd钱包服务,EOS RPC,IPFS RPC,处理前端请求的Controller层;
(1)keosd钱包服务
keosd属于EOS自带的钱包服务,在本实施例中主要用于对每笔要上传到EOS区块链上的交易进行签名。在运行keosd服务时需要指定钱包运行的地址和端口。
(2)EOS RPC
数据上链需要通过以下几个步骤实现,分别是:基础信息配置(线下构建)→链信息获取(线上接口)→块信息获取(线上接口)→智能合约请求参数转换(线上接口获取)→交易签名(线上接口)→交易请求打包(线下构建)→交易提交(线上接口);
其中基础信息配置为配置好用于调用智能合约的账户actor,权限permission,及公钥publicKey。
在将数据上链之前,需要先使用合约账号进行智能合约的部署。另外,EOS上链时,需要对上链是否成功进行判断。
(3)IPFS RPC
主要使用IPFS两个HTTP接口,一个是上传文件后取得Hash值的接口,一个是通过指定Hash值在IPFS上下载文件的接口。
(4)处理前端请求的Controller层
处理用户上传文件请求:通过请求收集文件后调用加密模块进行文件加密,文件加密后调用IPFS RPC上传文件接口上传文件至IPFS,并获取IPFS Hash索引值,而后返回用户RSA私钥、加密后的AES密钥、IPFS Hash索引值,为了防止用户遗忘,将上述数值存储于可持久化关系型数据库上。之后,调用EOS RPC接口进行数据上链并存储在EOS内存表上。
处理用户下载文件请求:以用户的请求参数为输入,通过解密模块解析出AES密钥,通过IPFS下载对应文件,并使用AES密钥解密已下载的文件,并将该文件流作为响应返回。
3、加解密模块
具体的,参见图3和图4,通过加密数据模块与解密数据模块,完成对数据的加解密过程。
4、区块链层
图6为本发明另一实施例提供的EOS集群部署示意图。参见图6,EOS框架借鉴了石墨烯架构思想,进行了重新开发,主要包括应用层、插件层、库函数层和智能合约层。
(1)应用层
图7为本发明实施例提供的EOS技术框架中应用层的结构示意图。参见图7,该应用层的结构包括三个部分:cleos、nodeos、keosd;
Cleos:用户通过该命令集合,调用相应的接口,例如操作钱包、调用区块等;
Nodeos:EOS的服务端,用于接收客户端的请求,产生区块;
Keosd:钱包管理模块,用于管理钱包wallets。
(2)插件层
支持动态加载组件,实现了应用层的业务逻辑和区块链底层的解耦,为开发者提供API接口。比较重要的组件有:chain_plugin,http_plugin,net_plugin,producer_plugin。
(3)库函数层
为应用层和插件层提供基础能力,实现了区块链底层的关键技术,如交易处理、区块生成、加密、文件操作等等。
(4)智能合约层
主要包含了智能合约代码,用来实现业务逻辑、数据存储等功能。
5、分布式文件存储层
图8为本发明另一实施例提供的IPFS集群部署示意图,参见图8,在IPFS技术框架中,IPFS集群作为分布式文件系统随EOS的nodeos节点一同部署,各IPFS节点间通过4001端口进行节点间数据交换保证数据一致性。同时每个节点对外提供5001端口以供用户进行数据的上传和下载操作;
其中,上传操作:输入为文件,输出为IPFS Hash值;
下载操作:输入为IPFS Hash值,输出为文件。
6、监控系统
图9为本发明另一实施例提供的监控系统结构示意图。参见图9,该监控系统包括:
(1)定时采集模块
定时采集模块主要有两个功能其一是按照设定的定时时间向EOS的cunzhenginfo内存表发起采集请求得到相应数据而后做后续处理,其二是作为EOS的Dapp客户端上链由跨链Dapp客户端返回的存证编号,并将存证编号存于cunzhengcros EOS内存表中。
(2)Dapp客户端模块
可根据存证需要设计多个可跨链的Dapp客户端,跨链Dapp客户端根据各个区块链平台的上链技术方案提前做好准备工作,当定时采集模块采集到需跨链的数据后传给跨链Dapp客户端后,跨链Dapp客户端向相应的区块链平台发起数据上链请求以存证数据,上链成功后返回该链存证编码给定时采集模块。
具体的,该监控系统的工作流程包括:
定时采集模块每经过30秒的时间间隔定时向EOS中的cunzhenginfo内存表发起查询请求,每次在内存表中取前100条数据,取到数据后按照字段名称和MySQL中的数据进行比对,如果数据已存在于MySQL中或数据的字段标识为不需要上链则从内存中删除该条数据,否则存放于MySQL中且保留在内存中,其中MySQL起到数据的过滤作用。
然后,内存数据存入消息队列Kafka中,Dapp客户端模块每隔30秒检查消息队列的存储情况,如果消息队列不为空就进行消费,否则就每隔30秒检查消息队列的存储情况。Dapp客户端模块根据数据指定的跨链字段调用指定的跨链Dapp客户端,当跨链Dapp客户端成功完成指定数据上链后,将对应区块链平台响应的存证编号信息传给定时采集模块中的EOS Dapp客户端,EOS Dapp客户端发起上链请求,并将跨链数据信息存入EOScunzhengcros内存表中。如果跨链上链失败,Dapp客户端模块应重新上链该数据直到成功为止。
具体的,监控系统由定时采集模块和Dapp客户端模块组成。定时采集模块由内存表查询、消息队列、可持久化存储数据库以及EOS Dapp客户端组成,其中,Dapp客户端模块由可插拔跨链Dapp客户端组成且该Dapp客户端可根据跨链存证需求增减对应客户端的数量。
该监控系统的部署说明为:
由于EOS区块链数据可在31个节点中流转,所以监控系统可在31节点中的任何一个节点进行部署,如果在多个节点部署需要进一步优化内存表的结构,保证EOS内存表中不会对重复数据进行记录。本实施例中仅在一个节点中进行了部署,以实现全节点数据同步。
进一步地,该基于EOS区块链和IPFS可跨链存储隐私数字资产的系统中,数据存储方式为:
数字资产的详细信息存储在EOS cunzhenginfo内存表中,对应的跨链信息存储在EOS cunzhengcros内存表中。
图10示例了一种电子设备的实体结构示意图,如图10所示,该电子设备可以包括:处理器(processor)1010、通信接口(Communications Interface)1020、存储器(memory)1030和通信总线1040,其中,处理器1010,通信接口1020,存储器1030通过通信总线1040完成相互间的通信。处理器1010可以调用存储器1030中的逻辑指令,以执行数据跨链存储方法,该方法包括:监控任一区块链的第一内存表中是否存在新增数据的业务信息;若存在,根据所述业务信息,确定所述新增数据是否需要上传至目标区块链;若需要,调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至所述目标区块链中。
此外,上述的存储器1030中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的数据跨链存储方法,该方法包括:监控任一区块链的第一内存表中是否存在新增数据的业务信息;若存在,根据所述业务信息,确定所述新增数据是否需要上传至目标区块链;若需要,调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至所述目标区块链中。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的数据跨链存储方法,该方法包括:监控任一区块链的第一内存表中是否存在新增数据的业务信息;若存在,根据所述业务信息,确定所述新增数据是否需要上传至目标区块链;若需要,调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至所述目标区块链中。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据跨链存储方法,其特征在于,包括:
监控任一区块链的第一内存表中是否存在新增数据的业务信息;
若存在,根据所述业务信息,确定所述新增数据是否需要上传至目标区块链;
若需要,调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至所述目标区块链中。
2.根据权利要求1所述的数据跨链存储方法,其特征在于,所述监控任一区块链的第一内存表中是否存在新增数据的业务信息之前,包括:
对所述新增数据进行加密并上传到星际文件系统中;
获取所述星际文件系统返回的哈希值,并提取所述新增数据的业务信息;其中,所述业务信息包括:是否将所述新增数据进行跨链存储、目标区块链名;
通过所述任一区块链的上链接口,将所述哈希值与所述业务信息存储至第一内存表中。
3.根据权利要求2所述的数据跨链存储方法,其特征在于,所述对所述新增数据进行加密,包括:
基于AES加密算法,对所述新增数据进行加密,生成加密新增数据文件;
基于RSA加密算法,通过所述RSA加密算法中的公钥对所述AES加密算法的AES密钥进行加密。
4.根据权利要求1所述的数据跨链存储方法,其特征在于,所述确定所述新增数据是否需要上传至所述目标区块链,包括:
以第一预设时间间隔,定时查询所述第一内存表中预设数量的距离当前时刻最近的业务信息;
若所述业务信息中包含将所述新增数据进行跨链存储的内容,确定需要将所述业务信息对应的新增数据上传至所述目标区块链。
5.根据权利要求1所述的数据跨链存储方法,其特征在于,所述调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至目标区块链中,包括:
以第二预设时间间隔,定时检查跨链任务队列,判断所述跨链任务队列中是否包含将所述新增数据进行跨链存储的业务信息;
若存在,根据所述业务信息,确定与所述业务信息对应的目标区块链;
调用与所述目标区块链对应的跨链去中心化应用,将所述业务信息对应的新增数据上传至目标区块链中。
6.根据权利要求1所述的数据跨链存储方法,其特征在于,将所述新增数据上传至所述目标区块链中之后,包括:
收取所述目标区块链发送的存证编号;
将所述存证编号存储至所述任一区块链的第二内存表中,以作为所述新增数据跨链存储的凭证。
7.根据权利要求1所述的数据跨链存储方法,其特征在于,所述将所述新增数据上传至目标区块链中之后,还包括:
通过调用所述目标区块链中的第一区块链接口,获取所述目标区块链中的最新不可逆区块编号;其中,所述最新不可逆区块编号为所述目标区块链中对新的新增数据进行存储的区块的编号;
比较所述最新不可逆区块编号是否大于所述目标区块链中的目标区块编号;其中所述目标区块编号对应的区块用于存储所述新增数据;
若大于,调用所述目标区块链中的第二区块链接口,判断所述新增数据是否存储于所述目标区块编号对应的区块中;
若所述新增数据存储于所述目标区块编号对应的区块中,确定成功将所述新增数据上传至所述目标区块链中。
8.一种数据跨链存储装置,其特征在于,包括:
监控单元,用于监控任一区块链的第一内存表中是否存在新增数据的业务信息;
确定单元,用于若存在,确定所述新增数据是否需要上传至目标区块链;
上传单元,用于若需要,调用与所述目标区块链对应的跨链去中心化应用,将所述新增数据上传至所述目标区块链中。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述数据跨链存储方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据跨链存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110661503.3A CN115481121A (zh) | 2021-06-15 | 2021-06-15 | 一种数据跨链存储方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110661503.3A CN115481121A (zh) | 2021-06-15 | 2021-06-15 | 一种数据跨链存储方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115481121A true CN115481121A (zh) | 2022-12-16 |
Family
ID=84419295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110661503.3A Pending CN115481121A (zh) | 2021-06-15 | 2021-06-15 | 一种数据跨链存储方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115481121A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117278337A (zh) * | 2023-11-23 | 2023-12-22 | 北京航空航天大学 | 一种基于区块链的数据安全传输及一致性检验系统 |
-
2021
- 2021-06-15 CN CN202110661503.3A patent/CN115481121A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117278337A (zh) * | 2023-11-23 | 2023-12-22 | 北京航空航天大学 | 一种基于区块链的数据安全传输及一致性检验系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7281514B2 (ja) | デジタルコンテンツの制御及び配信のためのブロックチェーンにより実施される方法 | |
KR101727525B1 (ko) | 블록체인 기반 분산 저장 방법 및 이를 이용한 장치 | |
CN108683747B (zh) | 资源获取、分发、下载方法、装置、设备及存储介质 | |
CN110992027B (zh) | 在区块链中实现隐私保护的高效交易方法及装置 | |
US10790976B1 (en) | System and method of blockchain wallet recovery | |
CN109314636B (zh) | 用于从区块链中安全提取数据的密码方法和系统 | |
JP6199518B1 (ja) | プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム | |
KR102347022B1 (ko) | 블록체인과 ipfs 기반의 암호화 데이터 공유 시스템 | |
CN110915164A (zh) | 基于可信执行环境中执行的智能合约操作处理区块链数据 | |
CN110061845A (zh) | 区块链数据加密方法、装置、计算机设备及存储介质 | |
CN110149322A (zh) | 一种不可逆的动态失效重验重建的区块链加密方法 | |
EP3933642A1 (en) | Managing transactions in multiple blockchain networks | |
CN112215608A (zh) | 数据处理方法和装置 | |
CN111131336B (zh) | 多方授权场景下的资源访问方法、装置、设备及存储介质 | |
CN110881063A (zh) | 一种隐私数据的存储方法、装置、设备及介质 | |
CN111507839B (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN110601830B (zh) | 基于区块链的密钥管理方法、装置、设备及存储介质 | |
EP3937050A1 (en) | Managing transactions in multiple blockchain networks | |
CN112751673A (zh) | 一种基于端边云协同的可监管数据隐私共享方法 | |
CN110149323B (zh) | 一种具有千万级tps合约处理能力的处理装置 | |
US11403632B2 (en) | Managing transactions in multiple blockchain networks | |
US12093349B2 (en) | Method for distributing certificate of right to use digital content, and computer program stored in medium in order to carry out method | |
CN113987062A (zh) | 一种数据上链存储方法、系统、装置以及存储介质 | |
CN115481121A (zh) | 一种数据跨链存储方法、装置、电子设备及存储介质 | |
CN112003925A (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 |