CN110019101B - 一种区块链对象的外部存储方法及系统 - Google Patents

一种区块链对象的外部存储方法及系统 Download PDF

Info

Publication number
CN110019101B
CN110019101B CN201810812603.XA CN201810812603A CN110019101B CN 110019101 B CN110019101 B CN 110019101B CN 201810812603 A CN201810812603 A CN 201810812603A CN 110019101 B CN110019101 B CN 110019101B
Authority
CN
China
Prior art keywords
blockchain
dapp
url
swift
hash signature
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
Application number
CN201810812603.XA
Other languages
English (en)
Other versions
CN110019101A (zh
Inventor
宋明明
王伟兵
商广勇
马岩堂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Group Co Ltd
Original Assignee
Inspur Software Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Software Group Co Ltd filed Critical Inspur Software Group Co Ltd
Priority to CN201810812603.XA priority Critical patent/CN110019101B/zh
Publication of CN110019101A publication Critical patent/CN110019101A/zh
Application granted granted Critical
Publication of CN110019101B publication Critical patent/CN110019101B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种区块链对象的外部存储方法及系统,属于区块链对象存储技术领域。本发明的区块链对象的外部存储方法,用户通过Dapp进行对象上传和对象访问,Dapp为对象生成url及对象的hash签名,并把对象的url及对象的hash签名记录在以太坊区块链上,同时通过kong的认证后,根据Dapp为对象生成的url上传到Swift进行存储;用户访问Swift上的对象时,根据对象的url从Swift上取得对象文件,并从以太坊区块链上取出对象的hash签名,Dapp验证对象的hash签名无误后,使用此对象。该发明的区块链对象的外部存储方法,安全性高、放篡改、高效、低成本,具有很好的推广应用价值。

Description

一种区块链对象的外部存储方法及系统
技术领域
本发明涉及区块链对象存储技术领域,具体提供一种区块链对象的外部存储方法及系统。
背景技术
以太坊是一个全新开放的区块链平台,它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用,被称为Dapp。就像比特币一样,以太坊不受任何人控制,也不归任何人所有,它是一个开放源代码项目,由全球范围内的很多人共同创建。
以太坊支持分布式文件存储,是以太坊生态中的重要一环,它使得以太坊不但是个Dapp的平台,还是个分布式文件存储平台,它将文件存放在以太坊客户端主机器的存储空间里,并且奖励给客户端相应的费用(以太币)。
这样一来,以太坊用户的燃料(gas)不仅仅是用来支付计算的费用,而且也用来支付存储的费用。整个以太坊网络上的存储是整个以太坊网络必须要负担的成本。以太坊存储需要花费的总费用与所使用的32位字节的最小倍数成比例,在以太坊中存储文件是非常昂贵的,这就限制了用户在以太坊网络中存储对象的规模。
发明内容
本发明的技术任务是针对上述存在的问题,提供一种安全性高、放篡改、高效、低成本的区块链对象的外部存储方法。
本发明进一步的技术任务是提供一种区块链对象的外部存储系统。
为实现上述目的,本发明提供了如下技术方案:
一种区块链对象的外部存储方法,用户通过Dapp进行对象上传和对象访问,Dapp为对象生成url及对象的hash签名,并把对象的url及对象的hash签名记录在以太坊区块链上,同时通过kong的认证后,根据Dapp为对象生成的url上传到Swift进行存储;用户访问Swift上的对象时,根据对象的url从Swift上取得对象文件,并从以太坊区块链上取出对象的hash签名,Dapp验证对象的hash签名无误后,使用此对象。
所述Dapp为分布式应用。
url即Uniform Resoure Locator,为统一资源定位符。
kong为应用程序接口网关。
Swift是OpenStack开源云计算项目的一个子项目,称为对象存储,提供了强大的扩展性、冗余和持久性,用于静态数据的长期存储。Swift通过keystone完成用户的身份认证与权限控制,而不是采用自带的TempAuth。
作为优选,该方法具体包括以下步骤:
S1:搭建以太坊区块链网络环境;
S2:用户通过Dapp进行对象上传和对象访问,Dapp为对象生成url及对象的hash签名,并把对象的url及对象的hash签名记录在以太坊区块链上;
S3:搭建keystone和Swift对象存储环境
Swift用于对象存储,通过keystone完成用户的身份认证与权限控制;
S4:搭建kong网关环境
Keystone和Swift完全信任kong网关,认证和权限控制完全交给kong网关;
S5:区块链存储
使用kong网关,对象通过kong的认证后,根据Dapp为对象生成的url上传到Swift进行存储;
S6:对象访问
根据对象的url从Swift上取得对象文件,并从以太坊区块链上取出对象的hash签名,Dapp验证对象的hash签名无误后,使用此对象。
Keystone即认证服务器。
Kong是一个API网关,是大型分布式系统中,为保护内部服务设计的一道屏障,可以提供高性能、高可用的API托管服务,从而帮助服务的开发者便捷地对外提供服务,而不用考虑安全控制、流量控制、审计日志等问题,统一在网关层将安全认证、流量控制、审计日志、黑白名单等实现。
作为优选,步骤S1中,使用若干个Parity客户端搭建以太坊区块链网络环境。
Parity即以太坊钱包。使用Parity客户端搭建以太坊区块链网络环境,包括完整节点和轻量节点。
使用以太坊运行完整节点需要大量的计算机资源。区块链下载和验证过程对CPU和磁盘IO的压力很大。因此,需要在具有多核CPU、4GB RAM、SSD固态硬盘以及至少100GB可用空间的计算机上运行完整节点。
以太坊轻量节点不需要下载并执行整个区块链的验证。轻节点依靠安全节点来接收区块头并验证交易。因此,以太坊轻量节点比完整节点的资源要求低很多,只需要使用单核CPU、512MB RAM和128MB可用空间的计算机或移动客户端即可运行。
作为优选,步骤S3中,用户使用用户名和密码换取keystone,使用换取到的keystone与Swift进行存储和访问的交互。
作为优选,步骤S4中,在kong网关上安装JWT插件,利用HMAC-SHA256加密签名的JWT插件对对象进行认证。
JWT即JSON Web Token的缩写,为用户令牌。
一种区块链对象的外部存储系统,该系统包括以下模块:
以太坊区块链网络环境搭建模块:用于搭建以太坊区块链网络环境;
以太坊区块链记录模块:用于将对象的url及对象的hash签名记录在以太坊区块链上;
keystone和Swift对象存储环境搭建模块:用于搭建keystone和Swift对象存储环境;
kong网关环境搭建模块:用于搭建kong网关环境,Keystone和Swift完全信任kong网关,认证和权限控制完全交给kong网关;
区块链存储模块:使用kong网关,对象通过kong的认证后,根据Dapp为对象生成的url上传到Swift进行存储;
对象访问模块:根据对象的url从Swift上取得对象文件,并从以太坊区块链上取出对象的hash签名,Dapp验证对象的hash签名无误后,使用此对象。
作为优选,以太坊区块链网络环境搭建模块使用若干个Parity客户端搭建以太坊区块链网络环境。
作为优选,以太坊区块链记录模块中,用户通过Dapp进行对象上传和对象访问,Dapp为对象生成url及对象的hash签名,并把对象的url及对象的hash签名记录在以太坊区块链上。
作为优选,keystone和Swift对象存储环境搭建模块中,用户使用用户名和密码换取keystone,使用换取到的keystone与Swift进行存储和访问的交互。
作为优选,kong网关环境搭建模块中,在kong网关上安装JWT插件,利用HMAC-SHA256加密签名的JWT插件对对象进行认证。
与现有技术相比,本发明的区块链对象的外部存储方法具有以下突出的有益效果:
(一)所述区块链对象的外部存储方法在区块链外存储大对象,使用Swift存储和访问对象的效率更高,存储空间更大,不需要让区块链网络中的各个完整节点都存储对象,减少对区块链网络资源的消耗;
(二)需要经过使用区块链中的kong网关的认证才能存储和访问,安全性较高;
(三)在区块链中记录对象的url和对象的hash签名,避免对象被篡改,使用对象时,需要从区块链上取出此hash签名,并与访问对象的hash签名对比,对比无误后才可使用对象,进一步增强安全性,具有良好的推广应用价值。
附图说明
图1是本发明所述区块链对象的外部存储方法的流程图;
图2是本发明所述区块链对象的外部存储系统的拓扑图。
具体实施方式
下面将结合附图和实施例,对本发明的区块链对象的外部存储方法及系统作进一步详细说明。
实施例
如图1所示,本发明的区块链对象的外部存储方法,用户通过Dapp进行对象上传和对象访问,Dapp为对象生成url及对象的hash签名,并把对象的url及对象的hash签名记录在以太坊区块链上。同时通过kong的认证后,根据Dapp为对象生成的url上传到Swift进行存储。用户访问Swift上的对象时,根据对象的url从Swift上取得对象文件,并从以太坊区块链上取出对象的hash签名,Dapp验证对象的hash签名无误后,使用此对象。具体包括以下步骤:
S1:搭建以太坊区块链网络环境。
使用若干个Parity客户端搭建以太坊区块链网络环境。
S2:用户通过Dapp进行对象上传和对象访问,Dapp为对象生成url及对象的hash签名,并把对象的url及对象的hash签名记录在以太坊区块链上;
S3:搭建keystone和Swift对象存储环境
Swift用于对象存储,通过keystone完成用户的身份认证与权限控制。
用户使用用户名和密码换取keystone,使用换取到的keystone与Swift进行存储和访问的交互。
S4:搭建kong网关环境
Keystone和Swift完全信任kong网关,认证和权限控制完全交给kong网关。
在kong网关上安装JWT插件,利用HMAC-SHA256加密签名的JWT插件对对象进行认证。
S5:区块链存储
使用kong网关,对象通过kong的认证后,根据Dapp为对象生成的url上传到Swift进行存储。
S6:对象访问
根据对象的url从Swift上取得对象文件,并从以太坊区块链上取出对象的hash签名,Dapp验证对象的hash签名无误后,使用此对象。
如图2所示,本发明的区块链对象的外部存储系统,该系统包括以下模块:
以太坊区块链网络环境搭建模块:使用若干个Parity客户端搭建以太坊区块链网络环境。
以太坊区块链记录模块:用于将对象的url及对象的hash签名记录在以太坊区块链上。
用户通过Dapp进行对象上传和对象访问,Dapp为对象生成url及对象的hash签名,并把对象的url及对象的hash签名记录在以太坊区块链上。
keystone和Swift对象存储环境搭建模块:用于搭建keystone和Swift对象存储环境。
用户使用用户名和密码换取keystone,使用换取到的keystone与Swift进行存储和访问的交互。
kong网关环境搭建模块:用于搭建kong网关环境,Keystone和Swift完全信任kong网关,认证和权限控制完全交给kong网关;
区块链存储模块:使用kong网关,对象通过kong的认证后,根据Dapp为对象生成的url上传到Swift进行存储。
在kong网关上安装JWT插件,利用HMAC-SHA256加密签名的JWT插件对对象进行认证。
对象访问模块:根据对象的url从Swift上取得对象文件,并从以太坊区块链上取出对象的hash签名,Dapp验证对象的hash签名无误后,使用此对象。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

Claims (9)

1.一种区块链对象的外部存储方法,其特征在于:该方法中,用户通过Dapp进行对象上传和对象访问,Dapp为对象生成url及对象的hash签名,并把对象的url及对象的hash签名记录在以太坊区块链上,同时通过kong的认证后,根据Dapp为对象生成的url上传到Swift进行存储;用户访问Swift上的对象时,根据对象的url从Swift上取得对象文件,并从以太坊区块链上取出对象的hash签名,Dapp验证对象的hash签名无误后,使用此对象,具体包括以下步骤:
S1:搭建以太坊区块链网络环境;
S2:用户通过Dapp进行对象上传和对象访问,Dapp为对象生成url及对象的hash签名,并把对象的url及对象的hash签名记录在以太坊区块链上;
S3:搭建keystone和Swift对象存储环境Swift用于对象存储,通过keystone完成用户的身份认证与权限控制;
S4:搭建kong网关环境
Keystone和Swift完全信任kong网关,认证和权限控制完全交给kong网关;
S5:区块链存储
使用kong网关,对象通过kong的认证后,根据Dapp为对象生成的url上传到Swift进行存储;
S6:对象访问
根据对象的url从Swift上取得对象文件,并从以太坊区块链上取出对象的hash签名,Dapp验证对象的hash签名无误后,使用此对象。
2.根据权利要求1所述的区块链对象的外部存储方法,其特征在于:步骤S1中,使用若干个Parity客户端搭建以太坊区块链网络环境。
3.根据权利要求2所述的区块链对象的外部存储方法,其特征在于:步骤S3中,用户使用用户名和密码换取keystone,使用换取到的keystone与Swift进行存储和访问的交互。
4.根据权利要求3所述的区块链对象的外部存储方法,其特征在于:步骤S4中,在kong网关上安装JWT插件,利用HMAC-SHA256加密签名的JWT插件对对象进行认证。
5.一种区块链对象的外部存储系统,其特征在于:该系统包括以下模块:
以太坊区块链网络环境搭建模块:用于搭建以太坊区块链网络环境;以太坊区块链记录模块:用于将对象的url及对象的hash签名记录在以太坊区块链上;
keystone和Swift对象存储环境搭建模块:用于搭建keystone和Swift对象存储环境;
kong网关环境搭建模块:用于搭建kong网关环境,Keystone和Swift完全信任kong网关,认证和权限控制完全交给kong网关;
区块链存储模块:使用kong网关,对象通过kong的认证后,根据Dapp为对象生成的url上传到Swift进行存储;
对象访问模块:根据对象的url从Swift上取得对象文件,并从以太坊区块链上取出对象的hash签名,Dapp验证对象的hash签名无误后,使用此对象。
6.根据权利要求5所述的区块链对象的外部存储系统,其特征在于:以太坊区块链网络环境搭建模块使用若干个Parity客户端搭建以太坊区块链网络环境。
7.根据权利要求5或6所述的区块链对象的外部存储系统,其特征在于:以太坊区块链记录模块中,用户通过Dapp进行对象上传和对象访问,Dapp为对象生成url及对象的hash签名,并把对象的url及对象的hash签名记录在以太坊区块链上。
8.根据权利要求7所述的区块链对象的外部存储系统,其特征在于:keystone和Swift对象存储环境搭建模块中,用户使用用户名和密码换取keystone,使用换取到的keystone与Swift进行存储和访问的交互。
9.根据权利要求8所述的区块链对象的外部存储系统,其特征在于:kong网关环境搭建模块中,在kong网关上安装JWT插件,利用HMAC-SHA256加密签名的JWT插件对对象进行认证。
CN201810812603.XA 2018-07-23 2018-07-23 一种区块链对象的外部存储方法及系统 Active CN110019101B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810812603.XA CN110019101B (zh) 2018-07-23 2018-07-23 一种区块链对象的外部存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810812603.XA CN110019101B (zh) 2018-07-23 2018-07-23 一种区块链对象的外部存储方法及系统

Publications (2)

Publication Number Publication Date
CN110019101A CN110019101A (zh) 2019-07-16
CN110019101B true CN110019101B (zh) 2023-06-09

Family

ID=67188328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810812603.XA Active CN110019101B (zh) 2018-07-23 2018-07-23 一种区块链对象的外部存储方法及系统

Country Status (1)

Country Link
CN (1) CN110019101B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112241513B (zh) * 2019-07-19 2024-04-19 傲为有限公司 一种待认证数字资产处理系统
CN111147235B (zh) * 2019-12-23 2022-11-11 杭州宏杉科技股份有限公司 对象访问方法、装置、电子设备及机器可读存储介质
CN113315801B (zh) * 2020-06-08 2024-06-04 阿里巴巴集团控股有限公司 存储区块链数据的方法和系统
CN114615335A (zh) * 2022-03-07 2022-06-10 支付宝实验室(新加坡)有限公司 基于区块链的资源调度方法以及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106295401A (zh) * 2016-08-13 2017-01-04 深圳市樊溪电子有限公司 一种用于区块链的只读安全文件存储系统及其方法
CN107742352B (zh) * 2017-09-20 2018-08-24 黄玉宇 基于区块链及智能合约的去中心化抽签/排队方法及系统

Also Published As

Publication number Publication date
CN110019101A (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
Koteska et al. Blockchain implementation quality challenges: a literature
Xu et al. Towards secure network computing services for lightweight clients using blockchain
CN110383279B (zh) 用于检测重放攻击的系统和方法
US10581613B2 (en) Cryptographically verifiable data structure having multi-hop forward and backwards links and associated systems and methods
CN110771120B (zh) 用于基于区块链的认证的系统和方法
CN110019101B (zh) 一种区块链对象的外部存储方法及系统
CN110431577B (zh) 用于检测重放攻击的系统和方法
JP7065956B2 (ja) 機器を制御および/またはモニターするための方法および制御システム
KR102618665B1 (ko) 블록체인을 사용한 버전 이력 관리
WO2019055585A1 (en) PARALLEL CHAIN ARCHITECTURE FOR BLOCK CHAIN SYSTEMS
He et al. Securing over-the-air IoT firmware updates using blockchain
CN112513900A (zh) 用于共识管理的系统和方法
Leal et al. Performance evaluation of private ethereum networks
CN113261253B (zh) 用于控制资源的释放的方法和系统
JP2023542681A (ja) ブロックチェーンの許可フレームワークへのデバイスアイデンティティの統合
US11888981B2 (en) Privacy preserving auditable accounts
KR102627868B1 (ko) 블록체인에서 생성된 데이터를 인증하는 방법 및 시스템
TW202139127A (zh) 用於與區塊鏈相關聯之服務平台之運算服務
CN113302610A (zh) 基于区块链的可信平台
Hassan et al. E-voting system based on ethereum blockchain technology using ganache and remix environments
CN113302612B (zh) 一种用于跨链和跨网络数据传输的计算机实现方法、系统及装置
Pintaldi Implementation of a Blockchain-based Distributed PKI for IoT using Emercoin NVS and TPM 2.0
CN113597608A (zh) 基于区块链的可信平台
Lim et al. AuthChain: a decentralized blockchain-based authentication system
US20230010791A1 (en) Pre-signed transaction requests for cryptographic key management

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