JP6671617B1 - Distributed storage platform and application program realized by blockchain technology and distributed storage technology - Google Patents

Distributed storage platform and application program realized by blockchain technology and distributed storage technology Download PDF

Info

Publication number
JP6671617B1
JP6671617B1 JP2019223803A JP2019223803A JP6671617B1 JP 6671617 B1 JP6671617 B1 JP 6671617B1 JP 2019223803 A JP2019223803 A JP 2019223803A JP 2019223803 A JP2019223803 A JP 2019223803A JP 6671617 B1 JP6671617 B1 JP 6671617B1
Authority
JP
Japan
Prior art keywords
file
storage
partial data
search
node
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
JP2019223803A
Other languages
Japanese (ja)
Other versions
JP2021093016A (en
Inventor
晨 李
晨 李
衛東 曲
衛東 曲
Original Assignee
株式会社ブルーキャッスル
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 株式会社ブルーキャッスル filed Critical 株式会社ブルーキャッスル
Priority to JP2019223803A priority Critical patent/JP6671617B1/en
Priority to JP2020019041A priority patent/JP7462922B2/en
Application granted granted Critical
Publication of JP6671617B1 publication Critical patent/JP6671617B1/en
Publication of JP2021093016A publication Critical patent/JP2021093016A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】高い安全性を担保しつつ、小規模ストレージの集合により大規模データサーバと同様の機能を実現すること。【解決手段】ファイルを分散保存するための複数の保存用ノードを含む保存用ネットワークと、複数の保存用ノードのロケーションを含むロケーションリストをブロックチェーン化しつつ保存する検索用ノードを複数含む検索用ネットワークと、ファイルを複数の部分データに分割し、複数の部分データのそれぞれを複数の保存用ノードに含まれる少なくとも2つの保存用ノードに送信して保存させる保存処理部と、を備え、検索用ノードは、前記部分データを保存した前記保存用ノードの識別情報を用いて、ロケーションリストを更新する更新処理部を備えた。【選択図】 図1APROBLEM TO BE SOLVED: To realize the same function as a large-scale data server by assembling a small-scale storage while ensuring high security. A storage network including a plurality of storage nodes for distributed storage of files, and a search network including a plurality of search nodes for storing a location list including locations of the plurality of storage nodes while forming a block chain. And a storage processing unit that divides the file into a plurality of partial data and transmits each of the plurality of partial data to at least two storage nodes included in the plurality of storage nodes to store the partial data. Includes an update processing unit that updates the location list using the identification information of the storage node that has stored the partial data. [Selection diagram] FIG. 1A

Description

本発明は、ブロックチェーン技術と分散ストレージ技術とにより実現した分散型ストレージプラットフォームおよびアプリケーションプログラムに関する。   The present invention relates to a distributed storage platform and an application program realized by blockchain technology and distributed storage technology.

上記技術分野において、特許文献1には、データの分散保存における冗長性の技術が開示されている。   In the above technical field, Patent Literature 1 discloses a technique of redundancy in distributed storage of data.

米国特許第10127108号公報US Patent No. 10127108

しかしながら、上記文献に記載の技術では、中央集中型のデータセンタを前提としており、安全性が十分とは言えなかった。複数のデータセンタが同時にダウンしてしまうと、データが消えてしまうことがあった。   However, the technology described in the above literature presupposes a centralized data center, and is not sufficiently secure. If a plurality of data centers go down at the same time, data may be lost.

本発明の目的は、上述の課題を解決する技術を提供することにある。   An object of the present invention is to provide a technique for solving the above-mentioned problem.

上記目的を達成するため、本発明に係る情報処理システムは、
ファイルを分散保存するための複数の保存用ノードを含む保存用ネットワークと、
前記複数の保存用ノードの識別情報を含むロケーションリストをブロックチェーン化しつつ保存する検索用ノードを複数含む検索用ネットワークと、
前記ファイルを複数の部分データに分割し、前記複数の部分データのそれぞれを前記複数の保存用ノードに含まれる少なくとも2つの保存用ノードに送信して保存させる保存処理部と、
を備え、
前記検索用ノードは、前記部分データを保存した前記保存用ノードの識別情報を用いて、前記ロケーションリストを更新する更新処理部を備えた。
In order to achieve the above object, an information processing system according to the present invention includes:
A storage network including a plurality of storage nodes for storing files in a distributed manner;
A search network including a plurality of search nodes for saving while blockchaining a location list including identification information of the plurality of storage nodes,
A storage processing unit that divides the file into a plurality of partial data, and transmits and stores each of the plurality of partial data to at least two storage nodes included in the plurality of storage nodes,
With
The search node includes an update processing unit that updates the location list using identification information of the storage node that stores the partial data.

上記目的を達成するため、本発明に係る情報処理システムは、
ファイルの分割により生成された複数の部分データを保存するための複数の保存用ノードを含む保存用ネットワークと、
前記複数の保存用ノードの識別情報を含むロケーションリストをブロックチェーン化しつつ保存する検索用ノードを複数含む検索用ネットワークと、
前記複数の部分データを前記保存用ノードから取得し、前記複数の部分データを合成して前記ファイルを復元する復元処理部と、
を備え、
前記保存用ネットワークは、ファイルの分割により生成された前記複数の部分データを、前記複数の保存用ノードに保存すると共に、前記ファイルの分割により生成された前記複数の部分データのそれぞれを、少なくとも2つの保存用ノードに分けて保存し、
前記検索用ノードは、前記ロケーションリストに基づいて、前記複数の部分データが保存されている前記保存用ノードを検索する検索処理部を備えた。
In order to achieve the above object, an information processing system according to the present invention includes:
A storage network including a plurality of storage nodes for storing a plurality of partial data generated by dividing the file,
A search network including a plurality of search nodes for saving while blockchaining a location list including identification information of the plurality of storage nodes,
A restoration processing unit that acquires the plurality of partial data from the storage node and combines the plurality of partial data to restore the file;
With
The storage network stores the plurality of partial data generated by dividing the file in the plurality of storage nodes, and stores each of the plurality of partial data generated by dividing the file by at least two. Divided into two storage nodes,
The search node includes a search processing unit that searches the storage node in which the plurality of partial data is stored based on the location list.

上記目的を達成するため、本発明に係る情報処理方法は、
ファイルを分散保存するための複数の保存用ノードを含む保存用ネットワークと、
前記複数の保存用ノードの識別情報を含むロケーションリストをブロックチェーン化しつつ保存する検索用ノードを複数含む検索用ネットワークと、
を備える情報処理システムの情報処理方法であって、
前記ファイルを複数の部分データに分割し、前記複数の部分データのそれぞれを前記複数の保存用ノードに含まれる少なくとも2つの保存用ノードに送信して保存させる保存処理ステップと、
前記部分データを保存した前記保存用ノードの識別情報を用いて、前記ロケーションリストを更新する更新処理ステップと、
を含む。
In order to achieve the above object, an information processing method according to the present invention comprises:
A storage network including a plurality of storage nodes for storing files in a distributed manner;
A search network including a plurality of search nodes for saving while blockchaining a location list including identification information of the plurality of storage nodes,
An information processing method for an information processing system comprising:
A storage processing step of dividing the file into a plurality of partial data, transmitting each of the plurality of partial data to at least two storage nodes included in the plurality of storage nodes, and storing the transmitted partial data;
An update processing step of updating the location list using identification information of the storage node that has stored the partial data;
including.

上記目的を達成するため、本発明に係る情報処理方法は、
ファイルの分割により生成された複数の部分データを保存するための複数の保存用ノードを含む保存用ネットワークと、
前記複数の保存用ノードの識別情報を含むロケーションリストをブロックチェーン化しつつ保存する検索用ノードを複数含む検索用ネットワークと、
を備える情報処理システムの情報処理方法であって、
前記保存用ネットワークは、ファイルの分割により生成された前記複数の部分データを、前記複数の保存用ノードに保存すると共に、前記ファイルの分割により生成された前記複数の部分データのそれぞれを、少なくとも2つの保存用ノードに分けて保存し、
前記ロケーションリストに基づいて、前記複数の部分データが保存されている前記保存用ノードを検索する検索処理ステップと、
前記複数の部分データを前記保存用ノードから取得し、前記複数の部分データを合成して前記ファイルを復元する復元処理ステップと、
を含む。
In order to achieve the above object, an information processing method according to the present invention comprises:
A storage network including a plurality of storage nodes for storing a plurality of partial data generated by dividing the file,
A search network including a plurality of search nodes for saving while blockchaining a location list including identification information of the plurality of storage nodes,
An information processing method for an information processing system comprising:
The storage network stores the plurality of partial data generated by dividing the file in the plurality of storage nodes, and stores each of the plurality of partial data generated by dividing the file by at least two. Divided into two storage nodes,
Based on the location list, a search processing step for searching for the storage node in which the plurality of partial data is stored,
A restoration processing step of acquiring the plurality of partial data from the storage node and combining the plurality of partial data to restore the file;
including.

上記目的を達成するため、本発明に係るアプリケーションプログラムは、
ファイルの分割により生成された複数の部分データのそれぞれを保存する、少なくとも2つの保存用ノードから、前記複数の部分データを取得して合成するためのアプリケーションプログラムであって、
ファイルのハッシュ値であるファイルハッシュを取得するハッシュ取得ステップと、
前記ファイルハッシュを検索用ノードに送信し、対応するファイルリストを検索させるファイルハッシュ送信ステップと、
受信した前記ファイルハッシュに対応する前記ファイルリストを、前記検索用ノードから取得するファイルリスト取得ステップと、
前記ファイルリストが示す前記複数の部分データを、前記ファイルリストに指定される、前記保存用ノードから取得する部分データ取得ステップと、
前記保存用ノードから取得した前記複数の部分データを合成して、前記ファイルを復元する復元処理ステップと、
をコンピュータに実行させる。
To achieve the above object, an application program according to the present invention comprises:
An application program for acquiring and synthesizing the plurality of partial data from at least two storage nodes, wherein each of the plurality of partial data generated by dividing the file is stored,
A hash obtaining step of obtaining a file hash which is a hash value of the file;
A file hash transmission step of transmitting the file hash to a search node and causing a corresponding file list to be searched ;
File list acquisition step of acquiring the file list corresponding to the received file hash from the search node ,
A plurality of partial data indicated by the file list, specified in the file list, a partial data acquisition step of acquiring from the storage node,
A restoration processing step of combining the plurality of partial data acquired from the storage node and restoring the file;
On a computer.

本願発明によれば、高い安全性を担保しつつ、小規模ストレージの集合により大規模データサーバと同様の機能を実現することができる。   According to the present invention, a function similar to that of a large-scale data server can be realized by a collection of small-scale storages while ensuring high security.

本発明の第1実施形態に係る情報処理システムの構成を示すブロック図である。1 is a block diagram illustrating a configuration of an information processing system according to a first embodiment of the present invention. 本発明の第2実施形態に係る情報処理システムの構成を示すブロック図である。It is a block diagram showing the composition of the information processing system concerning a 2nd embodiment of the present invention. 本発明の第3実施形態に係る情報処理システムの構成を示すブロック図である。It is a block diagram showing the composition of the information processing system concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係る情報処理システムの、ファイルを分散して保存する動作手順を示す図である。FIG. 14 is a diagram illustrating an operation procedure of distributing and saving files in the information processing system according to the third embodiment of the present invention. 本発明の第3実施形態に係る情報処理システムの、ファイルを合成して再現する動作手順を示す図である。It is a figure showing the operation procedure which synthesizes and reproduces a file of the information processing system concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係る情報処理システムの、保存用ノードまたは検索用ノードに参加する動作手順を示す図である。It is a figure showing the operation procedure which participates in the node for storage or the node for search of the information processing system concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係るクライアントアプリケーションの構成を示す図である。It is a figure showing composition of a client application concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係るクライアントアプリケーションを含むクライアント端末のハードウェア構成を示すブロック図である。FIG. 13 is a block diagram illustrating a hardware configuration of a client terminal including a client application according to a third embodiment of the present invention. 本発明の第3実施形態に係るクライアントアプリケーションの処理手順を示すフローチャートである。It is a flow chart which shows a processing procedure of a client application concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係るファイル保存処理部の機能構成を示すブロック図である。It is a block diagram showing the functional composition of the file storage processing part concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係るファイル保存処理部で使用するデータの構成を示す図である。It is a figure showing the composition of the data used by the file storage processing part concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係るファイル保存処理部の処理手順を示すフローチャートである。It is a flow chart which shows a processing procedure of a file storage processing part concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係るデータの分割処理の手順を示すフローチャートである。It is a flow chart which shows the procedure of the data division processing concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係る保存先ノードの選定処理の手順を示すフローチャートである。It is a flow chart which shows the procedure of the selection processing of the storage destination node concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係るリスト検索処理部の機能構成を示すブロック図である。It is a block diagram showing the functional composition of the list search processing part concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係るリスト検索処理部で使用するデータの構成を示す図である。It is a figure showing the composition of the data used by the list search processing part concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係るリスト検索処理部の処理手順を示すフローチャートである。It is a flow chart which shows a processing procedure of a list search processing part concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係るファイル取得処理部の機能構成を示すブロック図である。It is a block diagram showing the functional composition of the file acquisition processing part concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係るファイル取得処理部で使用するデータの構成を示す図である。It is a figure showing the composition of the data used by the file acquisition processing part concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係るデータ取得処理部の処理手順を示すフローチャートである。It is a flow chart which shows a processing procedure of a data acquisition processing part concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係る報酬処理部の機能構成を示すブロック図である。It is a block diagram showing functional composition of a reward processing part concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係る報酬処理部で使用するデータの構成を示す図である。It is a figure showing the composition of the data used by the reward processing part concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係る報酬処理部の処理手順を示すフローチャートである。It is a flow chart which shows a processing procedure of a reward processing part concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係る保存用ノードの機能構成を示すブロック図である。It is a block diagram showing the functional composition of the node for storage concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係る保存用ノードの処理手順を示すフローチャートである。It is a flow chart which shows a processing procedure of a node for storage concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係る検索用ノードの機能構成を示すブロック図である。It is a block diagram showing the functional composition of the node for search concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係る検索用ノードの処理手順を示すフローチャートである。It is a flow chart which shows a processing procedure of a search node concerning a 3rd embodiment of the present invention. 本発明の第3実施形態に係る保存用ノードまたは検索用ノードとなるクライアント装置のハードウェア構成を示すブロック図である。FIG. 13 is a block diagram illustrating a hardware configuration of a client device serving as a storage node or a search node according to a third embodiment of the present invention. 本発明の第4実施形態に係る情報処理システムの構成を示すブロック図である。It is a block diagram showing the composition of the information processing system concerning a 4th embodiment of the present invention. 本発明の第5実施形態に係る情報処理システムの構成を示すブロック図である。It is a block diagram showing the composition of the information processing system concerning a 5th embodiment of the present invention.

以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。   Hereinafter, embodiments of the present invention will be illustratively described in detail with reference to the drawings. However, the components described in the following embodiments are merely examples, and are not intended to limit the technical scope of the present invention thereto.

[第1実施形態]
本発明の第1実施形態としての情報処理システム110について、図1Aを用いて説明する。
[First Embodiment]
An information processing system 110 according to a first embodiment of the present invention will be described with reference to FIG. 1A.

図1Aに示すように、情報処理システム110は、保存用ネットワーク101と、検索用ネットワーク102と、保存処理部103と、を含む。保存用ネットワーク101は、ファイル130を分散保存するための複数の保存用ノード111を含む。検索用ネットワーク102は、複数の保存用ノード111のロケーションを含むロケーションリスト122をブロックチェーン化しつつ保存する検索用ノード121を複数含む。保存処理部103は、ファイル130を複数の部分データ131〜13nに分割し、複数の部分データ131〜13nのそれぞれを複数の保存用ノード111に含まれる少なくとも2つの保存用ノードに送信して保存させる。更新処理部123は、検索用ノード121に含まれ、部分データを保存した保存用ノード111の識別情報を用いて、ロケーションリスト122を更新する。   As shown in FIG. 1A, the information processing system 110 includes a storage network 101, a search network 102, and a storage processing unit 103. The storage network 101 includes a plurality of storage nodes 111 for storing files 130 in a distributed manner. The search network 102 includes a plurality of search nodes 121 that store a location list 122 including locations of a plurality of storage nodes 111 while forming a blockchain. The storage processing unit 103 divides the file 130 into a plurality of partial data 131 to 13n, and transmits and stores each of the plurality of partial data 131 to 13n to at least two storage nodes included in the plurality of storage nodes 111. Let it. The update processing unit 123 updates the location list 122 using the identification information of the storage node 111 that is included in the search node 121 and stores the partial data.

本実施形態によれば、高い安全性を担保しつつ、小規模ストレージの集合により大規模データサーバと同様の機能を実現することができる。   According to the present embodiment, a function similar to that of a large-scale data server can be realized by a collection of small-scale storages while ensuring high security.

[第2実施形態]
本発明の第2実施形態に係る情報処理システム120について図1Bを用いて説明する。
[Second embodiment]
An information processing system 120 according to the second embodiment of the present invention will be described with reference to FIG. 1B.

図1Bに示すように、情報処理システム120は、保存用ネットワーク101と、検索用ネットワーク105と、復元処理部104とを含む。検索用ネットワーク105は、複数の保存用ノードのロケーションを含むロケーションリスト152をブロックチェーン化しつつ保存する検索用ノード151を複数含む。また、各検索用ノード151は、検索処理部153を含む。検索処理部153は、ロケーションリスト122に基づいて、複数の部分データ141〜14nが保存されている保存用ノード111を検索する。復元処理部104は、保存用ノード111から複数の部分データ141〜14nを取得し、複数の部分データ141〜14nを合成してファイル140を復元する。   As shown in FIG. 1B, the information processing system 120 includes a storage network 101, a search network 105, and a restoration processing unit 104. The search network 105 includes a plurality of search nodes 151 that store a location list 152 including locations of a plurality of storage nodes while forming a blockchain. Each search node 151 includes a search processing unit 153. The search processing unit 153 searches for the storage node 111 in which the plurality of partial data 141 to 14n is stored based on the location list 122. The restoration processing unit 104 acquires the plurality of partial data 141 to 14n from the storage node 111, and combines the plurality of partial data 141 to 14n to restore the file 140.

本実施形態によれば、高い安全性を担保しつつ、小規模ストレージの集合により大規模データサーバと同様の機能を実現することができる。   According to the present embodiment, a function similar to that of a large-scale data server can be realized by a collection of small-scale storages while ensuring high security.

[第3実施形態]
本発明の第3実施形態に係る情報処理システム200について図2以降を用いて説明する。
本実施形態の情報処理システム200は、ファイルおよびその分割された部分データがハッシュ化(以下、ハッシュをHash、ハッシュ値をHash値と表す)されて、検索用ネットワークと保存用ネットワークとの独立した二層構造で管理される。そして、ファイルのアップロードでは、ファイルから分割した複数の部分データを、複数の保存用ノードから複数の部分データのそれぞれの保存先として選定した保存用ノードに保存させる。そして、複数の部分データをそれぞれ保存する選定された保存用ノードを示すロケーションリストをブロックチェーン化しつつ生成し、複数の検索用ノードに共有させる。一方、ファイルのダウンロードでは、複数の検索用ノードに共有されたロケーションリストをいずれか1つの検索用ノードから取得して、ファイルに対応するロケーションリストを検索する。そして、検索したロケーションリストに従って、ファイルから分割された複数の部分データをそれぞれ保存する複数の保存用ノードから取得し、複数の部分データを合成して取得対象のファイルを生成する。
[Third embodiment]
An information processing system 200 according to the third embodiment of the present invention will be described with reference to FIG.
In the information processing system 200 of the present embodiment, the file and the divided partial data are hashed (hereinafter, the hash is represented as Hash and the hash value is represented as Hash value), and the search network and the storage network are independent. It is managed in a two-layer structure. Then, in the file upload, the plurality of partial data divided from the file is stored in the storage node selected as the storage destination of each of the plurality of partial data from the plurality of storage nodes. Then, a location list indicating the selected storage node that stores each of the plurality of partial data is generated while forming a blockchain, and is shared by the plurality of search nodes. On the other hand, in downloading a file, a location list shared by a plurality of search nodes is acquired from any one of the search nodes, and a location list corresponding to the file is searched. Then, in accordance with the searched location list, a plurality of partial data divided from the file are acquired from a plurality of storage nodes for saving, and the plurality of partial data are combined to generate an acquisition target file.

ファイルをアップロードする際には、ファイルを暗号化し、暗号化されたファイルから分割した複数の部分データを保存先として選定した保存用ノードに保存させる。また、ファイルをダウンロードする際には、暗号化ファイルから分割された複数の部分データをそれぞれ保存する複数の保存用ノードから取得し、暗号化ファイルを構成する。そして、暗号化ファイルからファイルを復号する。なお、検索用ノードおよび保存用ノードは、ノードを識別するノード識別情報のHash値により識別されることが望ましい。   When uploading a file, the file is encrypted, and a plurality of partial data divided from the encrypted file are stored in a storage node selected as a storage destination. Also, when downloading a file, a plurality of partial data divided from the encrypted file are obtained from a plurality of storage nodes that respectively store the partial data, and the encrypted file is configured. Then, the file is decrypted from the encrypted file. The search node and the storage node are desirably identified by a hash value of node identification information for identifying the node.

《情報処理システム》
以下、図2〜図4に従って、本実施形態の情報処理システム200の構成および動作について説明する。
《Information processing system》
Hereinafter, the configuration and operation of the information processing system 200 according to the present embodiment will be described with reference to FIGS.

(ブロック構成)
図2は、本実施形態に係る情報処理システム200の構成を示すブロック図である。
(Block configuration)
FIG. 2 is a block diagram illustrating a configuration of the information processing system 200 according to the present embodiment.

情報処理システム200は、保存用ネットワーク201と、検索用ネットワーク202と、クライアント端末203とを有する。クライアント端末203は、ファイル保存処理、リスト検索処理およびファイル取得処理を実現するクライアントアプリケーション232を実行するよう構成されている。   The information processing system 200 includes a storage network 201, a search network 202, and a client terminal 203. The client terminal 203 is configured to execute a client application 232 that performs a file saving process, a list search process, and a file acquisition process.

保存用ネットワーク201は、P2P通信を行う複数の保存用ノード211を含む。複数の保存用ノード211のそれぞれは、クライアントアプリケーション232からのファイルの保存要求において、ファイルから分割された部分データを、ファイルHash(ファイルハッシュ)と部分Hash(部分ハッシュ)を検索キーとして保存する。また、複数の保存用ノード211は、クライアントアプリケーション232からのファイルの取得要求において、検索用ノード221がロケーションリストからファイルのHash値によって検索したファイルリストを含まれる部分Hashを用いて、部分データを検索して読出し、クライアント端末203に送信する。   The storage network 201 includes a plurality of storage nodes 211 that perform P2P communication. Each of the plurality of storage nodes 211 stores the partial data divided from the file in response to a file storage request from the client application 232, using the file Hash (file hash) and the partial Hash (partial hash) as search keys. In addition, in the file acquisition request from the client application 232, the plurality of storage nodes 211 use the partial Hash that includes the file list searched by the search node 221 based on the Hash value of the file from the location list in order to obtain the partial data. Search and read, and transmit to client terminal 203.

検索用ネットワーク202は、P2P通信を行う複数の検索用ノード221を含む。検索用ノード221は、ファイルが複数の保存用ノード211に保存された場合に、そのファイルのHash値によって特定されたファイルリストを含むロケーションリストを生成して複数の検索用ノード221で共有する。また、検索用ノード221は、クライアント端末203からのファイルの取得要求において、最新のロケーションリストから、取得要求されたファイルに対応するファイルHashと部分Hashと保存用ノードIDとから構成されるファイルリストを検索して、クライアント端末203に提供する。   The search network 202 includes a plurality of search nodes 221 that perform P2P communication. When the file is stored in the plurality of storage nodes 211, the search node 221 generates a location list including the file list specified by the Hash value of the file, and shares the location list with the plurality of search nodes 221. Further, in response to a file acquisition request from the client terminal 203, the search node 221 searches the latest location list for a file list composed of a file Hash, a partial Hash, and a storage node ID corresponding to the file requested to be acquired. Is retrieved and provided to the client terminal 203.

クライアントアプリケーション232は、ファイルの保存要求に対しては、ファイルを分割して部分データを部分Hashを検索キーとして、複数の保存用ノード211から選択された保存用ノードに保存する。部分データの保存が完了すると、保存用ノード211は、ファイルHashと部分Hashと部分データを保存した保存用ノードIDとを検索用ノード221に通知する。そして、検索用ノード221が、ファイルHashと、部分Hash値と、保存用ノードIDと、から構成されたファイルリストを生成して、ロケーションリストを更新する。更新されたロケーションリストは、全ての検索用ノード221で共有される。   In response to a file storage request, the client application 232 divides the file and stores the partial data in the storage node selected from the plurality of storage nodes 211 using the partial Hash as a search key. When the storage of the partial data is completed, the storage node 211 notifies the search node 221 of the file Hash, the partial Hash, and the storage node ID storing the partial data. Then, the search node 221 generates a file list including the file Hash, the partial Hash value, and the storage node ID, and updates the location list. The updated location list is shared by all search nodes 221.

クライアントアプリケーション232は、ファイルの取得要求に対しては、ファイルashを検索キーとして、近傍の検索用ノード221に送り、最新のロケーションリストに含まれるファイルのファイルリストを取得する。取得したファイルリストには、ファイルHashと、部分Hashと、保存用ノードIDと、が含まれている。クライアントアプリケーション232は、ファイルリストから抽出した部分Hashと保存用ノードIDとの組合せを用いて、部分データを保存用ノードから読出す。   In response to a file acquisition request, the client application 232 sends the file ash to the nearby search node 221 using the file ash as a search key, and acquires a file list of files included in the latest location list. The acquired file list includes a file Hash, a partial Hash, and a storage node ID. The client application 232 reads the partial data from the storage node using the combination of the partial Hash extracted from the file list and the storage node ID.

以下、図3A、図3Bおよび図4を参照して、情報処理システム200の動作手順を示す。   Hereinafter, an operation procedure of the information processing system 200 will be described with reference to FIGS. 3A, 3B, and 4.

(ファイルの保存手順)
図3Aは、実施形態に係る情報処理システム200の、ファイルを分散して保存する動作手順を示す図である。
(File saving procedure)
FIG. 3A is a diagram illustrating an operation procedure of distributing and saving files in the information processing system 200 according to the embodiment.

ファイルの保存を要求するクライアント301は、クライアント端末203にファイル名によりファイルデータの保存を指示する。ファイルデータ311は、クライアント端末203のクライアントアプリケーション232に渡される。   The client 301 requesting to save the file instructs the client terminal 203 to save the file data by the file name. The file data 311 is passed to the client application 232 of the client terminal 203.

クライアントアプリケーション232は、ファイルデータ311を暗号化し、暗号化ファイルデータ312を生成する。そして、クライアントアプリケーション232は、ファイルハッシュ生成処理として、暗号化ファイルデータ312からファイルHash313を算出する。クライアントアプリケーション232は、ファイルHash313を検索用ノード221に送信する。なお、送信先の検索用ノード221は、ロケーションリスト317の検索用ノードリスト324を参照して、例えば、KAD(Kademlia)ネットワークにおけるノード検索の再帰アルゴリズムを用いて、最も近い検索用ノードを見付けることが望ましい。また、本実施形態においては、ファイルの暗号化後にファイルHashを算出したが、ファイルHashを算出した後にファイルHashを含んでファイルを暗号化してもよい。   The client application 232 encrypts the file data 311 and generates encrypted file data 312. Then, the client application 232 calculates a file Hash 313 from the encrypted file data 312 as a file hash generation process. The client application 232 transmits the file Hash 313 to the search node 221. Note that the search node 221 of the transmission destination refers to the search node list 324 of the location list 317 and finds the closest search node using, for example, a recursive algorithm for node search in a KAD (Kademlia) network. Is desirable. Further, in the present embodiment, the file Hash is calculated after encrypting the file. However, the file may be encrypted including the file Hash after calculating the file Hash.

検索用ノード221は、保持するロケーションリスト317に、ファイルHash313を検索キーとして有する空のファイルリストを生成して追加する。そして、検索用ネットワーク202に含まれる全ての検索用ノードは、P2P通信により空のファイルリストが追加された最新のロケーションリストを保持することができる。なお、ファイル名と検索キーとなるファイルHash313との対応データ314を生成してアプリケーションに保持しておくことによって、ファイルの取得を行う場合のクライアントからの要求を簡易にすることができる。   The search node 221 generates and adds an empty file list having the file Hash 313 as a search key to the retained location list 317. Then, all search nodes included in the search network 202 can hold the latest location list to which an empty file list has been added by P2P communication. By generating the correspondence data 314 between the file name and the file Hash 313 serving as a search key and storing it in the application, it is possible to simplify the request from the client when acquiring the file.

一方、クライアントアプリケーション232は、暗号化ファイルデータ312を、クライアントやファイルの重要性、さらに、復元可能な冗長性を考慮して複数の部分データ315に分割する。そして、クライアントアプリケーション232は、部分ハッシュ生成処理として、複数の部分データ315のそれぞれのHash値を算出して、部分Hash316を生成する。部分Hash316は、部分データ315の先頭から順に、前の部分Hash316に次の部分データ315を加えてHash値を算出することによりブロックチェーン化する。ブロックチェーン化してHash値を算出するので、ファイルリストに保持された部分Hashや保存用ノードから読み出した部分Hashから部分データの合成順を知ることができる。なお、部分Hash316は、各部分データ315に対して独立して算出してもよい。独立して部分Hashを算出する場合には、ファイルの読み出し時に部分データを合成する順序を保持する必要がある。例えば、ロケーションリストのファイルリスト322に保持する、あるいは、保存用ノードに保存された部分データや部分Hash内に保持することができる。   On the other hand, the client application 232 divides the encrypted file data 312 into a plurality of partial data 315 in consideration of the importance of the client and the file, and further, the recoverable redundancy. Then, as a partial hash generation process, the client application 232 calculates a Hash value of each of the plurality of partial data 315 and generates a partial Hash 316. The partial Hash 316 is formed into a block chain by calculating a Hash value by adding the next partial data 315 to the previous partial Hash 316 in order from the beginning of the partial data 315. Since the Hash value is calculated by blockchaining, the synthesis order of the partial data can be known from the partial Hash held in the file list and the partial Hash read from the storage node. Note that the partial Hash 316 may be calculated independently for each partial data 315. When calculating the partial Hash independently, it is necessary to maintain the order of combining the partial data when reading the file. For example, it can be stored in the file list 322 of the location list, or can be stored in the partial data or partial Hash stored in the storage node.

クライアントアプリケーション232は、検索用ノード221のロケーションリスト317から保存用ネットワーク201に参加する保存用ノードリスト318を取得する。なお、クライアントアプリケーション232から検索用ノード221へのファイルHash313の送信と、検索用ノード221からクライアントアプリケーション232への保存用ノードリスト318の送信とは、一緒に行われてもよい。また、検索用ノード221のロケーションリスト317には検索用ノードリスト324も保持されており、クライアントアプリケーション232からアクセスする検索用ノードを選定する場合に参照され、クライアント端末の検索用ノードとしての参加や離脱時には、最新データに更新される。   The client application 232 acquires the storage node list 318 that participates in the storage network 201 from the location list 317 of the search node 221. The transmission of the file Hash 313 from the client application 232 to the search node 221 and the transmission of the storage node list 318 from the search node 221 to the client application 232 may be performed together. Further, the location list 317 of the search node 221 also holds a search node list 324, which is referred to when selecting a search node to be accessed from the client application 232, and which is used when the client terminal participates as a search node. At the time of withdrawal, it is updated to the latest data.

クライアントアプリケーション232は、受信した保存用ノードリスト318から、分割された複数の部分データ315の数に相当する保存ノードを識別する保存用ノードID319を選定する。なお、保存用ノードID319は、保存用ノードに関連する属性から算出されたHash値であるのが望ましい。また、選定される保存用ノードID319の数は、保存時のエラーを考慮して分割された複数の部分データ315の数より多く選定する。   The client application 232 selects a storage node ID 319 for identifying a storage node corresponding to the number of the plurality of divided partial data 315 from the received storage node list 318. Preferably, the storage node ID 319 is a Hash value calculated from an attribute related to the storage node. Further, the number of selected storage node IDs 319 is selected to be larger than the number of the plurality of partial data 315 divided in consideration of an error at the time of storage.

クライアントアプリケーション232は、ファイルHash313と部分データ315と部分Hash316との組合せと、選定された保存用ノードID319とを組み合わせて、選定された保存用ノードに対して保存を指示する保存用メッセージ320を生成する。ここで、ファイルHash313と部分データ315と部分Hash316との組合せ、あるいは、少なくとも部分データ315は各データごとに暗号鍵で暗号化される。そして、クライアントアプリケーション232は、各保存用メッセージ320を各保存用ノードに送信する。なお、保存用メッセージ320の送信は、保存相手の複数の保存用ノードに一斉送信するのが高速化の面で望ましい。   The client application 232 combines the combination of the file Hash 313, the partial data 315, and the partial Hash 316 with the selected storage node ID 319 to generate a storage message 320 instructing the selected storage node to store. I do. Here, a combination of the file Hash 313, the partial data 315, and the partial Hash 316, or at least the partial data 315 is encrypted with an encryption key for each data. Then, the client application 232 transmits each save message 320 to each save node. The transmission of the storage message 320 is desirably simultaneously transmitted to a plurality of storage nodes of the storage partner from the viewpoint of speeding up.

保存相手の保存用ノード211では、保存用ノードID319を確認して、ファイルHashと部分Hashとを検索キーとした部分データ321を保存する。そして、保存がエラーなく完了すると、保存用ノード211は検索用ノードに保存完了報告を行う。この保存完了報告には、ファイルHashと部分Hashと保存用ノードIDとの組合せが含まれる。なお、保存完了報告は、全検索用ノードに一斉送信されても、先にクライアントアプリケーション232がアクセスした検索用ノードであってもよい。なお、検索用ネットワーク202では、全検索用ノードがP2P通信により空のファイルリストを含む最新のロケーションリストを保持している。図示されていないが、保存完了報告を行った保存用ノードには、保存対価の報酬が支払われる。   The storage node 211 of the storage partner confirms the storage node ID 319 and stores the partial data 321 using the file Hash and the partial Hash as search keys. Then, when the saving is completed without any error, the saving node 211 reports the completion of the saving to the searching node. The storage completion report includes a combination of the file Hash, the partial Hash, and the storage node ID. The storage completion report may be transmitted to all the search nodes at once, or may be the search node previously accessed by the client application 232. In the search network 202, all the search nodes hold the latest location list including the empty file list by P2P communication. Although not shown, a reward for the storage fee is paid to the storage node that has reported the storage completion.

エラーなしに保存完了した保存用ノードからの保存完了報告を受信した検索用ノードは、保存完了報告に含まれる部分Hashと保存用ノードIDとの組合せを、ファイルHashを検索キーとする空のファイルリストに順次に記憶する。冗長を含む保存対象のファイルが再生可能な数の部分データが保存されると、新たなファイルリスト322が追加された最新のロケーションリストが完成する。   The search node that has received the save completion report from the save node that has completed the save without errors uses the combination of the partial Hash and the save node ID included in the save completion report as an empty file with the file Hash as the search key. Store them sequentially in a list. When the number of pieces of partial data that can be reproduced for the file to be saved including the redundancy is saved, the latest location list to which the new file list 322 has been added is completed.

図示されていないが、ファイルの保存用ネットワーク201の保存用ノードへの保存が完了すると、ファイルの保存を要求したクライアント301から通常は保存料金が徴収される。   Although not shown, when the storage of the file in the storage node of the storage network 201 is completed, a storage fee is normally collected from the client 301 which has requested the storage of the file.

(ファイルの再現手順)
図3Bは、本実施形態に係る情報処理システム200の、ファイルを合成して復元する動作手順を示す図である。なお、図3Bにおいては、図3Aで保存したファイルを読み出す例を説明するが、他のファイルであっても動作手順は同様である。
(File reproduction procedure)
FIG. 3B is a diagram illustrating an operation procedure of synthesizing and restoring a file in the information processing system 200 according to the present embodiment. Although FIG. 3B illustrates an example in which the file stored in FIG. 3A is read, the operation procedure is the same for other files.

ファイルの取得を要求するクライアント303からのクライアント端末203に対して入力されたファイル名は、クライアントアプリケーション232に渡される。クライアントアプリケーション232は、ファイルハッシュ取得処理として、対応データ314を参照してファイル名に対応付けて保持されているファイルHash313を取得する。そして、取得したファイルHash313を検索用ノードに送信する。なお、ファイルの保存時と同様に、送信先の検索用ノードは、ロケーションリスト317の検索用ノードリストを参照して、例えば、KAD(Kademlia)ネットワークにおけるノード検索の再帰アルゴリズムを用いて、最も近い検索用ノードを見付けることが望ましい。   The file name input to the client terminal 203 from the client 303 requesting the acquisition of the file is passed to the client application 232. The client application 232 acquires the file Hash 313 stored in association with the file name by referring to the correspondence data 314 as the file hash acquisition processing. Then, the obtained file Hash 313 is transmitted to the search node. As in the case of saving the file, the search node of the transmission destination refers to the search node list of the location list 317 and, for example, uses the recursive algorithm of the node search in the KAD (Kademlia) network to find the nearest It is desirable to find a search node.

検索用ノードは、受信したファイルHash313を検索キーとして、ファイルのファイルリスト322を検索する。そして、ファイルHash313を有するファイルリスト325を見つける。そして、検索用ノードは、見つけたファイルリスト325をクライアントアプリケーション232に送信する。   The search node searches the file list 322 of the file using the received file Hash 313 as a search key. Then, a file list 325 having the file Hash 313 is found. Then, the search node transmits the found file list 325 to the client application 232.

クライアントアプリケーション232は、保存用ノード情報取得処理として、受信したファイルリスト325に含まれる、ファイルの分割数だけの部分Hashと保存用ノードIDとの組合せ326をそれぞれ抽出する。そして、クライアントアプリケーション232は、保存用ノードIDが示す保存用ノードに対してファイルHashと部分Hashとを送信する。なお、保存用ノードIDとファイルHashと部分Hashとは、保存用ネットワーク201の保存用ノードに対してP2P送信される。   The client application 232 extracts, as the storage node information acquisition processing, a combination 326 of the partial Hash corresponding to the number of file divisions and the storage node ID included in the received file list 325, respectively. Then, the client application 232 transmits the file Hash and the partial Hash to the storage node indicated by the storage node ID. The storage node ID, the file Hash, and the partial Hash are transmitted in a P2P manner to the storage node of the storage network 201.

送信された各保存用ノードIDを有する保存用ノード211は、受信したファイルHashと部分Hashとを検索キーとして部分データを検索する。そして、保存用ノード211は、見つかった部分データを、ファイルHashと部分Hashと共にクライアントアプリケーション232に送信する。図示されていないが、本実施形態においては、部分データを読み出してクライアントアプリケーション232に送信した保存用ノード211には、保存時の報酬よりも高い読出の報酬が支払われる。   The storage node 211 having the transmitted storage node IDs searches for the partial data using the received file Hash and the partial Hash as search keys. Then, the storage node 211 transmits the found partial data to the client application 232 together with the file Hash and the partial Hash. Although not shown, in the present embodiment, the storage node 211 that has read out the partial data and transmitted it to the client application 232 is paid a higher reading fee than the saving fee.

クライアントアプリケーション232は、それぞれの保存用ノード211からファイルHashと部分Hashと部分データとの組合せ321を受信して、その数がファイルを復元できる数を超えた場合、保存用ネットワーク201からのファイルの読み出しが成功したとする。クライアントアプリケーション232は、受信したデータを部分データを暗号化した暗号鍵に対応する復号鍵で復号し、部分Hashと部分データとの組合せ321に含まれる各部分Hashを照合して、部分データ315を分割した順序で合成して、暗号化ファイルデータ312を復元する。なお、複数の部分データの合成については、先にファイルの保存処理で説明したように、部分データを分割順にブロックチェーン化して部分Hashを算出しているので、合成順序を持つ必要はない。ただし、各部分データから独立に部分Hashを算出する場合は、部分データの合成順序を保持する必要がある。   The client application 232 receives the combination 321 of the file Hash, the partial Hash, and the partial data from each of the storage nodes 211, and if the number exceeds the number of files that can be restored, the client application 232 deletes the file from the storage network 201. It is assumed that the reading is successful. The client application 232 decrypts the received data with a decryption key corresponding to the encryption key obtained by encrypting the partial data, collates each partial Hash included in the combination 321 of the partial Hash and the partial data, and converts the partial data 315 The encrypted file data 312 is restored by combining them in the order of division. Note that, as described above in the file storage process, the partial data is divided into block chains in the order of division to calculate the partial Hash, so that it is not necessary to combine the partial data. However, when calculating the partial Hash independently from each partial data, it is necessary to maintain the synthesis order of the partial data.

クライアントアプリケーション232は、復元された暗号化ファイルデータからファイルを暗号化した暗号鍵に対応する復号鍵でファイルデータを復号して、クライアント端末203によりクライアント303に提供する。なお、図示していないが、クライアント303にファイルが提供されると、普通はクライアント303からファイルを提供した料金が徴収される。   The client application 232 decrypts the file data from the restored encrypted file data with a decryption key corresponding to the encryption key for encrypting the file, and provides the decrypted file data to the client 303 by the client terminal 203. Although not shown, when a file is provided to the client 303, a fee for providing the file from the client 303 is generally collected.

(保存用ノードまたは検索用ノードの動作手順)
図4は、本実施形態に係る情報処理システム200の、保存用ノードまたは検索用ノードの動作手順を示す図である。
(Operation procedure of storage node or search node)
FIG. 4 is a diagram illustrating an operation procedure of the storage node or the search node of the information processing system 200 according to the present embodiment.

(保存用ノード)
クライアント端末が保存用ネットワーク201の保存用ノード211として参加する場合、クライアント端末は、ステップS451において、保存用ノードアプリケーション411をダウンロードして駆動する。保存用ノードアプリケーション411は、ステップS452において、電子キャッシュ保存部を設定する。
(Storage node)
When the client terminal participates as the storage node 211 of the storage network 201, the client terminal downloads and drives the storage node application 411 in step S451. The storage node application 411 sets the electronic cache storage unit in step S452.

クライアント端末は、ステップS453において、保存用ノードへの参加を申し込み、ステップS454において、クライアント情報としてストレージサイズやクライアント属性などを保存用ノードアプリケーション411に送出する。保存用ノードアプリケーション411は、ステップS455において、クライアント情報に基づいて保存用ノード211の選定時に考慮されるノードの信頼性を示すノードランクが初期設定され、保存用ノード211を識別するHashIDが設定される。そして、保存用ノードの登録は、検索用ノードに伝えられて検索用ノードに保持されたロケーションリスト内の保存用ノードリストが最新状態に更新される。   In step S453, the client terminal applies for participation in the storage node, and in step S454, sends the storage size, the client attribute, and the like to the storage node application 411 as client information. In step S455, the storage node application 411 initializes a node rank indicating the reliability of the node considered when selecting the storage node 211 based on the client information, and sets a HashID for identifying the storage node 211. You. Then, the registration of the storage node is transmitted to the search node, and the storage node list in the location list held in the search node is updated to the latest state.

保存用ノード211が部分ファイルを保存する場合、保存用ノードアプリケーション411は、ステップS456において、クライアントアプリケーション232から保存用ノードIDを送信先として(ファイルHash、部分Hash、部分データ)の組合せを取得して保存する。そして、保存用ノードアプリケーション411は、ステップS457において、保存報酬を取得する。   When the storage node 211 stores the partial file, the storage node application 411 acquires a combination of (file Hash, partial Hash, partial data) from the client application 232 with the storage node ID as a transmission destination in step S456. And save. Then, the storage node application 411 acquires a storage reward in step S457.

保存用ノード211が部分データを読出す場合、保存用ノードアプリケーション411は、ステップS458において、クライアントアプリケーション232から保存用ノードIDを送信先としてファイルHasnと部分Hashとを取得する。そして、保存用ノードアプリケーション411は、ファイルHasnと部分Hashとを検索キーとして部分データを検索して読み出し、クライアントアプリケーション232に送る。保存用ノードアプリケーション411は、ステップS459において、保存報酬より多い読出報酬を取得する。   When the storage node 211 reads the partial data, the storage node application 411 acquires the file Hasn and the partial Hash from the client application 232 with the storage node ID as the transmission destination in step S458. Then, the storage node application 411 searches for and reads out the partial data using the file Hasn and the partial Hash as search keys, and sends the partial data to the client application 232. In step S459, the storage node application 411 acquires a read reward higher than the save reward.

(検索用ノード)
クライアント端末が検索用ネットワーク202の検索用ノード221として参加する場合、クライアント端末は、ステップS461において、検索用ノードアプリケーション421をダウンロードして駆動する。検索用ノードアプリケーション421は、ステップS462において、電子キャッシュ保存部を設定する。
(Search node)
When the client terminal participates as the search node 221 of the search network 202, the client terminal downloads and drives the search node application 421 in step S461. In step S462, the search node application 421 sets an electronic cache storage unit.

クライアント端末は、ステップS463において、検索用ノードへの参加を申し込み、ステップS464において、クライアント情報としてクライアント属性や参加料金などを検索用ノードアプリケーション421に送出する。検索用ノードアプリケーション421は、ステップS465において、検索用ノードから選ばれた管理グループに対して、参加可否の判定要求をして、判定結果を取得する。なお、参加可否の判定は、検索用ネットワーク202に参加する検索用ノードの投票で行われる。そして、検索用ノードアプリケーション421は、ステップS466において、クライアント情報に基づいて検索用ノード221の投票時に考慮されるノードの信頼性を示すノードランクが設定され、検索用ノード221を識別するHashIDが設定される。そして、検索用ノードの登録は、検索用ノードが保持するロケーションリスト内の検索用ノードリストを最新状態に更新する。   In step S463, the client terminal applies for participation in the search node, and in step S464, sends a client attribute, a participation fee, and the like to the search node application 421 as client information. In step S465, the search node application 421 requests the management group selected from the search node to determine whether participation is possible, and obtains a determination result. The determination as to whether participation is possible is made by voting of search nodes participating in the search network 202. Then, in step S466, the search node application 421 sets a node rank indicating the reliability of the node considered at the time of voting of the search node 221 based on the client information, and sets a HashID for identifying the search node 221. Is done. The registration of the search node updates the search node list in the location list held by the search node to the latest state.

検索用ノード221がロケーションリストを保存して共有する場合、検索用ノードアプリケーション421は、ステップS467において、クライアント端末からファイルHashを受信すると、ファイルHashを検索キーとする空のファイルリストをロケーションリストに追加する。そして、各保存用ノードから部分データの保存完了報告を受信すると、検索用ノードアプリケーション421は、ステップS468において、空のファイルリストに、部分Hashと、部分データを保存した保存用ノードIDとの組合せを書き込む。また、ファイルの取得要求として、クライアント端末からファイルHashを受信すると、検索用ノードアプリケーション421は、ステップS469において、ロケーションリストからファイルHashを含むファイルリストを読出して、クライアントアプリケーション232に送信する。   When the search node 221 stores and shares the location list, the search node application 421 receives the file Hash from the client terminal in step S467, and converts the empty file list using the file Hash as a search key into the location list. to add. Then, when receiving the partial data storage completion report from each storage node, the search node application 421 determines in step S468 that the empty file list includes the combination of the partial Hash and the storage node ID storing the partial data. Write. Further, when receiving the file Hash from the client terminal as a file acquisition request, the search node application 421 reads the file list including the file Hash from the location list in step S469 and transmits the file list to the client application 232.

検索用ノード221が検索用ネットワーク202における投票に参加する場合、検索用ノードアプリケーション421は、ステップS470において、各投票に参加すると、ステップS471において、参加に対する報酬を取得する。   When the search node 221 participates in voting in the search network 202, the search node application 421 acquires a reward for participation in step S471 when participating in each vote in step S470.

《クライアントアプリケーション》
以下、図5〜図7に従って、クライアントアプリケーション232の構成および動作について説明する。
《Client application》
Hereinafter, the configuration and operation of the client application 232 will be described with reference to FIGS.

図5は、本実施形態に係るクライアントアプリケーション232の構成を示す図である。   FIG. 5 is a diagram illustrating a configuration of the client application 232 according to the present embodiment.

クライアントアプリケーション232は、通信制御部500〜502と、ファイル保存処理部503と、リスト検索処理部505と、ファイル取得処理部506と、を備える。   The client application 232 includes communication control units 500 to 502, a file storage processing unit 503, a list search processing unit 505, and a file acquisition processing unit 506.

通信制御部500は、クライアント端末203との通信を制御する。通信制御部501は、保存用ネットワーク201との間でP2Pトンネルによる(ファイルHash、部分Hash、部分データ)の組合せや報酬などの通信を制御する。通信制御部502は、検索用ネットワーク202との間で保存用ノードリストまたはファイルリストをやり取りする独立したP2Pネットワークを制御する。   The communication control unit 500 controls communication with the client terminal 203. The communication control unit 501 controls communication such as a combination of (file Hash, partial Hash, and partial data) and reward through the P2P tunnel with the storage network 201. The communication control unit 502 controls an independent P2P network that exchanges a storage node list or a file list with the search network 202.

ファイル保存処理部503は、クライアント端末203から通信制御部500を介して取得したファイルを暗号化してHash値であるファイルHashを生成する。また、ファイル保存処理部503は、暗号化したファイルを部分データに分割して、各部分データのHash値である部分Hashを生成する。さらに、ファイル保存処理部503は、検索用ノードから取得した保存用ノードリストに記載された複数の保存用ノードから、部分データの分割数と冗長数を加えたブロック数の保存用ノードを選定する。そして、ファイル保存処理部503は、通信制御部501を介して、選定された保存用ノードに(ファイルHash、部分Hash、部分データ)の組合せを送信して、ファイルHashと部分Hashとを検索キーとして部分データを保存させる。   The file storage processing unit 503 encrypts a file obtained from the client terminal 203 via the communication control unit 500 to generate a file Hash, which is a Hash value. Further, the file storage processing unit 503 divides the encrypted file into partial data and generates a partial Hash which is a Hash value of each partial data. Further, the file storage processing unit 503 selects, from a plurality of storage nodes described in the storage node list acquired from the search node, storage nodes of the number of blocks obtained by adding the number of divisions of the partial data and the number of redundancy. . Then, the file storage processing unit 503 transmits the combination of (file Hash, partial Hash, partial data) to the selected storage node via the communication control unit 501, and searches the file Hash and the partial Hash for a search key. To save the partial data.

リスト検索処理部505は、クライアント端末203から取得を望むファイルを表す取得対象情報、例えば、文書名、ファイル名、動画タイトルなどを取得し、取得対象情報をファイルに対応付けられた検索キーとしてのファイルHashを生成する。リスト検索処理部505は、通信制御部502を介して、検索用ネットワーク202内の近傍にある検索用ノードから、ファイルHashを検索キーとして検索された、最新のロケーションリスト内のファイルリストを取得する。   The list search processing unit 505 acquires acquisition target information representing a file desired to be acquired from the client terminal 203, for example, a document name, a file name, a movie title, and the like, and acquires the acquisition target information as a search key associated with the file. Generate file Hash. The list search processing unit 505 acquires, via the communication control unit 502, a file list in the latest location list searched using the file Hash as a search key from a search node nearby in the search network 202. .

ファイル取得処理部506は、リスト検索処理部505から取得したファイルリストから各部分データの(部分Hash、保存用ノードID)の組合せを抽出する。そして、ファイル取得処理部506は、通信制御部501を介して、(ファイルHash、部分Hash、保存用ノードID)の組合せを用いて、各部分データを対応する保存用ノードから検索して読み出す。ファイル取得処理部506は、各部分データを復号して、正しく読み出された部分データのブロック数が所定数以上の場合には、部分データを合成して暗号化ファイルを再生する。ファイル取得処理部506は、再生された暗号化ファイルを暗号化鍵に対応する復号鍵で復号してクライアント端末203に送出する。   The file acquisition processing unit 506 extracts a combination of (partial Hash, storage node ID) of each partial data from the file list acquired from the list search processing unit 505. Then, the file acquisition processing unit 506 retrieves and reads out each partial data from the corresponding storage node using the combination of (file Hash, partial Hash, storage node ID) via the communication control unit 501. The file acquisition processing unit 506 decrypts each partial data and, when the number of blocks of the correctly read partial data is equal to or more than a predetermined number, synthesizes the partial data and reproduces the encrypted file. The file acquisition processing unit 506 decrypts the reproduced encrypted file with a decryption key corresponding to the encryption key, and sends the decrypted encrypted file to the client terminal 203.

図6は、本実施形態に係るクライアントアプリケーション232を含むクライアント端末203のハードウェア構成を示すブロック図である。   FIG. 6 is a block diagram illustrating a hardware configuration of the client terminal 203 including the client application 232 according to the present embodiment.

図6で、CPU610は演算制御用のプロセッサであり、プログラムを実行することで図5の構成を実現する。CPU(Central Processing Unit)610は1つであっても複数であってもよい。ROM(Read Only Memory)620は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。ネットワークインタフェース630は、保存用ネットワーク201や検索用ネットワーク202との通信を制御する。   In FIG. 6, a CPU 610 is an arithmetic control processor, and realizes the configuration of FIG. 5 by executing a program. The number of CPUs (Central Processing Units) 610 may be one or more. A ROM (Read Only Memory) 620 stores fixed data such as initial data and programs and programs. The network interface 630 controls communication with the storage network 201 and the search network 202.

RAM(Random Access Memory)640は、CPU610が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM640には、本実施形態の実現に必要なデータを記憶する領域が確保されている。保存すべきファイル641は、保存用ネットワーク201の保存用ノード211に部分データとして分散保存するためのファイルである。取得したファイル642は、保存用ネットワーク201の保存用ノード211に分散保存された部分データを合成して復元されたファイルである。ロケーションリスト643は、検索用ネットワーク202の全ての検索用ノードに共有された分散保存の構成を示すリストである。ファイルHash644は、保存すべきファイル641あるいは取得したファイル642のHash値である。検索用ノードID645は、クライアント端末203がアクセスしているロケーションリストを保持する検索用ノードを識別するためのIDである。部分Hashと部分データと保存用ノードID646は、分割されて各保存用ノードに保存される部分データと、その部分データのHash値と、保存先ノードのIDである。なお、保存用ノードIDは保存用ノードを識別する識別情報のHash値であることが望ましい。電子キャッシュデータ647は、ファイル保存や取得に対応する料金の支払い、あるいは、ファイル保存や読出しの報酬の受取りのためのブロックチェーンされたデータである。送受信データ648は、ネットワークインタフェース630を介して送受信されるデータである。入出力データ649は、入出力インタフェース660を介して入出力機器と入出力するデータである。   A RAM (Random Access Memory) 640 is a random access memory used by the CPU 610 as a work area for temporary storage. In the RAM 640, an area for storing data necessary for realizing the present embodiment is secured. The file 641 to be stored is a file for distributed storage as partial data in the storage node 211 of the storage network 201. The acquired file 642 is a file restored by combining partial data distributed and stored in the storage node 211 of the storage network 201. The location list 643 is a list indicating a configuration of distributed storage shared by all search nodes of the search network 202. The file Hash 644 is a hash value of the file 641 to be saved or the acquired file 642. The search node ID 645 is an ID for identifying a search node that holds the location list accessed by the client terminal 203. The partial Hash, the partial data, and the storage node ID 646 are the partial data that is divided and stored in each storage node, the hash value of the partial data, and the ID of the storage destination node. Preferably, the storage node ID is a hash value of identification information for identifying the storage node. The electronic cash data 647 is blockchain data for paying a fee corresponding to file storage or acquisition, or receiving a fee for file storage or reading. The transmission / reception data 648 is data transmitted / received via the network interface 630. The input / output data 649 is data input / output to / from an input / output device via the input / output interface 660.

ストレージ650は、CPU610が使用する、本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。データベース651は、本実施形態の実現に必要な基本データを保持する。各種アルゴリズム652は、本実施形態の実現に必要なアルゴリズムを保持する。各種パラメータ653は、各種アルゴリズム652が用いる本実施形態の実現に必要なアルゴリズムを保持する。電子キャッシュ保持部654は、電子サイフとして、本実施形態の処理に必要な料金の支払い、あるいは、処理により得られる報酬をブロックチェーンされた電子キャッシュで保持する。   The storage 650 stores the following data or programs used by the CPU 610 and necessary for realizing the present embodiment. The database 651 holds basic data necessary for realizing the present embodiment. Various algorithms 652 hold the algorithms necessary for realizing the present embodiment. The various parameters 653 hold the algorithms used by the various algorithms 652 to implement the present embodiment. The electronic cash holding unit 654 serves as an electronic wallet, and pays a fee required for the processing of the present embodiment, or holds a reward obtained by the processing in an electronic cash that is chained.

ストレージ650には、以下のプログラムが格納される。クライアント端末制御プログラム655は、クライアント端末203の全体を制御するプログラムである。クライアントアプリケーション232は、クライアント端末203にダウンロードされて、あるいは、ブラウザ機能を伴ってクライアント端末203で実行されるアプリケーションである。クライアントアプリケーション232は、以下のモジュールを有する。   The storage 650 stores the following programs. The client terminal control program 655 is a program for controlling the entire client terminal 203. The client application 232 is an application downloaded to the client terminal 203 or executed on the client terminal 203 with a browser function. The client application 232 has the following modules.

ファイル保存処理部503として機能するファイル保存処理モジュールは、図5に図示された、保存すべきファイル641を分割した部分データを保存用ノードに分散保存させるモジュールである。リスト検索処理部505として機能するリスト検索処理モジュールは、図5に図示された、1つの検索用ノードが保持するロケーションリストからファイルHashを検索キーとして検索したファイルリストを受信モジュールである。ファイル取得処理部506として機能するファイル取得処理モジュールは、図5に図示された、リスト検索処理モジュールにより受信したファイルリストが保持するファイルHashと部分Hashと保存用ノードIDとの組合せを用いて部分データを読出して合成して、取得したファイル642を復元するモジュールである。報酬処理部として機能する報酬処理モジュールは、ファイル保存完了通知や、ファイル取得完了通知に応答して、参加ノード特に保存用ノードに対する報酬を提供するためのモジュールである。各種通信制御部500、501、502として機能する通信制御モジュールは、図5に図示された、各通信制御を行うモジュールである。   The file storage processing module that functions as the file storage processing unit 503 is a module illustrated in FIG. 5 that distributes and stores partial data obtained by dividing the file 641 to be stored in the storage node. The list search processing module functioning as the list search processing unit 505 is a receiving module that receives a file list obtained by using the file Hash as a search key from the location list held by one search node illustrated in FIG. The file acquisition processing module functioning as the file acquisition processing unit 506 is configured by using a combination of the file Hash, the partial Hash, and the storage node ID held in the file list received by the list search processing module illustrated in FIG. This is a module for reading and combining data and restoring the obtained file 642. The reward processing module functioning as a reward processing unit is a module for providing a reward to the participating nodes, particularly the storage node, in response to the file storage completion notification and the file acquisition completion notification. The communication control modules that function as the various communication control units 500, 501, and 502 are the modules that perform each communication control illustrated in FIG.

入出力インタフェース660は、入出力デバイスとのデータ入出力を制御するためのインタフェースを行なう。本実施形態においては、入出力インタフェース660には、表示部661、操作部662、音声入出力部663、記憶媒体664などが接続される。   The input / output interface 660 performs an interface for controlling data input / output with an input / output device. In the present embodiment, the display unit 661, the operation unit 662, the audio input / output unit 663, the storage medium 664, and the like are connected to the input / output interface 660.

なお、図6のRAM640やストレージ650には、クライアント端末203が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。   Note that programs and data related to general-purpose functions and other realizable functions of the client terminal 203 are not illustrated in the RAM 640 or the storage 650 in FIG.

図7は、本実施形態に係るクライアントアプリケーション232の処理手順を示すフローチャートである。このフローチャートは、図6のCPU610がRAM640を用いて実行し、図5の機能構成を実現する。   FIG. 7 is a flowchart illustrating a processing procedure of the client application 232 according to the present embodiment. This flowchart is executed by the CPU 610 of FIG. 6 using the RAM 640, and implements the functional configuration of FIG.

クライアント端末203は、ステップS711において、ファイルの保存であるか否かを判定する。ファイルの保存であれば、クライアント端末203は、ステップS713において、ファイルを分割して、分割された部分データを保存用ノード211に保存するデータ保存処理を実行する。   In step S711, the client terminal 203 determines whether the file is to be saved. If the file is to be saved, in step S713, the client terminal 203 executes a data saving process of dividing the file and saving the divided partial data in the saving node 211.

ファイルの保存でないと判定された場合、クライアント端末203は、ステップS721において、ファイルの取得(または閲覧)であるか否かを判定する。ファイルの取得であれば、クライアント端末203は、ステップS723において、1つの検索用ノードが保持するロケーションリストから、ファイルを識別するファイルHashに一致するファイルリストを受信するリスト検索処理を実行する。そして、クライアント端末203は、ステップS725において、ファイルから分割された部分データを、ファイルリストに含まれる部分Hashと保存用ノードIDとに基づいて読出し、部分データからファイルを合成して復元するファイル取得処理を実行する。   If it is determined that the file is not to be saved, the client terminal 203 determines in step S721 whether the file is to be acquired (or browsed). If the file is to be obtained, the client terminal 203 executes a list search process of receiving a file list that matches the file Hash identifying the file from the location list held by one search node in step S723. Then, in step S725, the client terminal 203 reads out the partial data divided from the file based on the partial Hash and the storage node ID included in the file list, and combines and restores the file from the partial data to obtain a file. Execute the process.

(ファイル保存処理部)
図8は、本実施形態に係るファイル保存処理部503の機能構成を示すブロック図である。
(File storage processing section)
FIG. 8 is a block diagram illustrating a functional configuration of the file storage processing unit 503 according to the present embodiment.

ファイル保存処理部503は、ファイル暗号化部831と、ファイルHash生成部832と、部分データ生成部833と、部分Hash生成部834と、保存用ノード選定部835と、分散保存指示部836と、を備える。   The file storage processing unit 503 includes a file encryption unit 831, a file Hash generation unit 832, a partial data generation unit 833, a partial Hash generation unit 834, a storage node selection unit 835, a distributed storage instruction unit 836, Is provided.

ファイル暗号化部831は、暗号化アルゴリズムと暗号化鍵とを有し、クライアントから保存を指示されたファイルを暗号化する。なお、使用される暗号化アルゴリズムや暗号化鍵は限定されないが、クライアントに対応する暗号化鍵が配布されているとする。ファイルHash生成部832は、ファイル暗号化部831において暗号化されたファイルのHash値を算出する。なお、Hash値の算出方法は、その認証方法と対応していれば限定されない。部分データ生成部833は、分割アルゴリズムと分割アルゴリズムで算出された分割数とを有し、データ分割部として、ファイル暗号化部831において暗号化されたファイルを算出された分割数に基づいて分割する。なお、部分データ生成部833の分割アルゴリズムは、ファイルに対応して部分データの数を制御すると共に、保存時や取得時のエラーによってもデータ復元が可能なように、分割における冗長のための処理が含まれる。部分Hash生成部834は、部分データ生成部833で分割された部分データのHash値を算出する。なお、Hash値の算出方法は、その認証方法と対応していれば限定されない。保存用ノード選定部835は、選定アルゴリズムと選定アルゴリズムで選定された保存先ノードIDとを有し、部分データ生成部833で冗長を含めて分割された分割数の部分データを保存する保存用ノードを、各々の保存用ノードの信頼性も考慮して選定する。なお、保存用ノードの識別は、保存用ノードに関連する情報のHash値であるのが望ましい。かかる保存用ノードを識別するHash値は、保存用ノードとして保存用ネットワーク201に参加する時に付与される。   The file encryption unit 831 has an encryption algorithm and an encryption key, and encrypts a file instructed to be stored by a client. Although the encryption algorithm and the encryption key to be used are not limited, it is assumed that the encryption key corresponding to the client is distributed. The file hash generation unit 832 calculates a hash value of the file encrypted by the file encryption unit 831. The method of calculating the Hash value is not limited as long as it corresponds to the authentication method. The partial data generation unit 833 has a division algorithm and the number of divisions calculated by the division algorithm, and divides the file encrypted by the file encryption unit 831 based on the calculated number of divisions as a data division unit. . The division algorithm of the partial data generation unit 833 controls the number of partial data corresponding to the file, and performs processing for redundancy in the division so that data can be restored even when an error occurs during storage or acquisition. Is included. The partial Hash generation unit 834 calculates a Hash value of the partial data divided by the partial data generation unit 833. The method of calculating the Hash value is not limited as long as it corresponds to the authentication method. The storage node selection unit 835 has a selection algorithm and a storage destination node ID selected by the selection algorithm, and stores the partial data of the number of divisions including the redundancy by the partial data generation unit 833. Is selected in consideration of the reliability of each storage node. It is desirable that the identification of the storage node is a Hash value of information related to the storage node. The Hash value for identifying the storage node is given when the storage node joins the storage network 201 as a storage node.

分散保存指示部836は、保存データテーブル837を有し、ファイルHashと、部分Hash生成部834で生成された部分Hashを部分データを識別する識別子として部分データと組み合わせ、保存用ノード選定部835が選定した各保存用ノードへ保存を指示する。なお、図示しないが、部分データは暗号化鍵により暗号化される。   The distributed storage instruction unit 836 has a storage data table 837, combines the file Hash, and the partial Hash generated by the partial Hash generation unit 834 with the partial data as an identifier for identifying the partial data. Instruct the selected storage nodes to save. Although not shown, the partial data is encrypted using an encryption key.

図9は、本実施形態に係るファイル保存処理部503で使用する保存データテーブル837の構成を示す図である。保存データテーブル837には、分散保存指示部836で保存用ノードに部分データを保存するための情報が保持される。   FIG. 9 is a diagram illustrating a configuration of a storage data table 837 used by the file storage processing unit 503 according to the present embodiment. The storage data table 837 holds information for storing the partial data in the storage node by the distributed storage instruction unit 836.

保存データテーブル837は、ファイルHash921に対応付けて、分割数912の各々の部分データ923について、部分Hash922と、対応する部分データ923と、選定された保存用ノードID924とを記憶する。   The storage data table 837 stores the partial Hash 922, the corresponding partial data 923, and the selected storage node ID 924 for each of the partial data 923 of the division number 912 in association with the file Hash 921.

図10は、実施形態に係るファイル保存処理部503の処理手順を示すフローチャートである。このフローチャートは、図6のCPU610がRAM640を用いて実行し、図8のファイル保存処理部503の機能構成部を実現する。   FIG. 10 is a flowchart illustrating a processing procedure of the file storage processing unit 503 according to the embodiment. This flowchart is executed by the CPU 610 in FIG. 6 using the RAM 640, and implements the functional components of the file storage processing unit 503 in FIG.

ファイル保存処理部503は、ステップS1001において、保存すべきファイルを取得したか否かを判定する。ファイルを取得した場合、ファイル保存処理部503は、ステップS1003において、ファイルの暗号化処理を実行する。ファイル保存処理部503は、ステップS1005において、暗号化されたファイルのHash値を算出する。   The file storage processing unit 503 determines in step S1001 whether a file to be stored has been acquired. If a file has been acquired, the file storage processing unit 503 executes file encryption processing in step S1003. In step S1005, the file storage processing unit 503 calculates a hash value of the encrypted file.

ファイル保存処理部503は、ステップS1007において、暗号化されたファイルの部分データへの分割処理を実行する。ファイル保存処理部503は、ステップS1009において、分割された部分データを保存する保存先の保存用ノードを選定する。   In step S1007, the file storage processing unit 503 executes a process of dividing the encrypted file into partial data. In step S1009, the file storage processing unit 503 selects a storage node as a storage destination for storing the divided partial data.

ファイル保存処理部503は、ステップS1011において、選定された各保存用ノードに(ファイルHash、部分Hash、部分データ)により保存を指示する。   In step S1011, the file storage processing unit 503 instructs each of the selected storage nodes to store (file Hash, partial Hash, partial data).

図11Aは、本実施形態に係るファイル分割処理S1007の手順を示すフローチャートである。   FIG. 11A is a flowchart illustrating a procedure of the file division processing S1007 according to the present embodiment.

ファイル保存処理部503は、ステップS1171において、ファイルのサイズを取得する。ファイル保存処理部503は、ステップS1173において、データブロック数を、(データブロック数=サイズ/部分データサイズ)の式により算出する。次に、ファイル保存処理部503は、ステップS1175において、冗長ブロック数を、(冗長ブロック数=データブロック数/所定数)の式により算出する。所定数は、本実施形態では例えば、3が用いられる。次に、ファイル保存処理部503は、ステップS1177において、分割数を、(分割数=データブロック数+冗長ブロック数)の式により算出する。そして、ファイル保存処理部503は、ステップSS1179において、ステップS1003で暗号化されたファイルを算出された分割数に分割する。   The file storage processing unit 503 acquires the size of the file in step S1171. In step S1173, the file storage processing unit 503 calculates the number of data blocks by the expression (number of data blocks = size / partial data size). Next, in step S1175, the file storage processing unit 503 calculates the number of redundant blocks by the expression (number of redundant blocks = number of data blocks / predetermined number). In the present embodiment, for example, three is used as the predetermined number. Next, in step S1177, the file storage processing unit 503 calculates the number of divisions according to the equation (number of divisions = number of data blocks + number of redundant blocks). Then, in step SS1179, the file storage processing unit 503 divides the file encrypted in step S1003 into the calculated number of divisions.

図11Bは、本実施形態に係る保存先ノードの選定処理S1009の手順を示すフローチャートである。   FIG. 11B is a flowchart illustrating a procedure of a storage destination node selection process S1009 according to the present embodiment.

ファイル保存処理部503は、ステップS1191において、ステップS1177で算出された分割数を取得する。次に、ファイル保存処理部503は、ステップS1193において、保存用ネットワーク201に参加する保存用ノードのリストを1つの検索用ノードから取得する。そして、ファイル保存処理部503は、ステップS1195において、ファイルの重要度や保存要求クライアントの重要度などを取得する。ファイル保存処理部503は、ステップS1197において、取得したファイルの重要度、および/または、保存要求クライアントの重要度を考慮して、クライアント端末により近い分割数に相当する保存用ノードを選定する。   In step S1191, the file storage processing unit 503 acquires the number of divisions calculated in step S1177. Next, in step S1193, the file storage processing unit 503 acquires a list of storage nodes participating in the storage network 201 from one search node. Then, in step S1195, the file storage processing unit 503 acquires the importance of the file, the importance of the storage requesting client, and the like. In step S1197, the file storage processing unit 503 selects a storage node corresponding to the number of divisions closer to the client terminal in consideration of the importance of the acquired file and / or the importance of the storage requesting client.

図11Bには、ステップS1195およびS1197における処理で用いられる保存用ノードのテーブル1110が図示されている。保存用ノードのテーブル1110は、各保存用ノードID(Hash値)1111に対応付けて、保存用ノードの属性1112、保存用ノードの信頼度(レベル)1113、保存用ノードの位置1114を記憶する。そして、各保存用ノードID(Hash値)1111に対応付けて、選択結果1115を記憶する。   FIG. 11B illustrates a storage node table 1110 used in the processing in steps S1195 and S1197. The storage node table 1110 stores an attribute 1112 of the storage node, a reliability (level) 1113 of the storage node, and a position 1114 of the storage node in association with each storage node ID (Hash value) 1111. . Then, the selection result 1115 is stored in association with each storage node ID (Hash value) 1111.

(リスト検索処理部)
図12は、本実施形態に係るリスト検索処理部505の機能構成を示すブロック図である。
(List search processing section)
FIG. 12 is a block diagram illustrating a functional configuration of the list search processing unit 505 according to the present embodiment.

リスト検索処理部505は、ファイルHash取得部1251と、ファイルHash送信部(ファイルハッシュ送信部)1252と、ファイルリスト取得部1253と、ファイルリスト通知部1255と、を備える。ファイルHash取得部1251は、取得対象情報、例えば、取得対象のファイル名や文書名、動画題名などから、ファイルの保存時にあらかじめ保持された対応するファイルHashを取得する。ファイルHash送信部1252は、検索用ネットワーク202中の近接する1つの検索用ノードから、ファイルのHash値を検索キーとして最新のロケーションリストから検索したファイルリストを取得する。ファイルリスト通知部1255は、ファイルリスト1256を有し、ファイルリスト取得部1253が取得したファイルリストをファイル取得処理部506に通知する。   The list search processing unit 505 includes a file hash acquisition unit 1251, a file hash transmission unit (file hash transmission unit) 1252, a file list acquisition unit 1253, and a file list notification unit 1255. The file hash acquisition unit 1251 acquires a corresponding file hash that is stored in advance when a file is saved, from acquisition target information, for example, a file name, a document name, and a moving image title to be acquired. The file hash transmission unit 1252 acquires a file list searched from the latest location list using the hash value of the file as a search key from one adjacent search node in the search network 202. The file list notification unit 1255 has a file list 1256, and notifies the file acquisition processing unit 506 of the file list acquired by the file list acquisition unit 1253.

図13は、本実施形態に係るリスト検索処理部505で使用するファイルリスト1256の構成を示す図である。図13には、ファイルリスト通知部1255がファイル取得処理部506に通知するファイルリスト1256の構成を図示する。   FIG. 13 is a diagram illustrating a configuration of the file list 1256 used by the list search processing unit 505 according to the present embodiment. FIG. 13 illustrates the configuration of the file list 1256 that the file list notification unit 1255 notifies the file acquisition processing unit 506.

図14は、本実施形態に係るリスト検索処理部505の処理手順を示すフローチャートである。このフローチャートは、図6のCPU610がRAM640を用いて実行し、図12の機能構成を実現する。   FIG. 14 is a flowchart illustrating a processing procedure of the list search processing unit 505 according to the present embodiment. This flowchart is executed by the CPU 610 of FIG. 6 using the RAM 640, and implements the functional configuration of FIG.

リスト検索処理部505は、ステップS1401において、クライアント端末203からファイルを示す取得対象情報を取得する。リスト検索処理部505は、ステップS1403において、取得した取得対象情報に対応して保持されたファイルHashを取得する。   The list search processing unit 505 acquires acquisition target information indicating a file from the client terminal 203 in step S1401. In step S1403, the list search processing unit 505 acquires the file Hash held corresponding to the acquired acquisition target information.

リスト検索処理部505は、ステップS1405において、検索用ネットワーク202中の近くの検索用ノードにファイルHashを送信する。そして、リスト検索処理部505は、ステップS1407において、検索用ノードから返信される、ファイルHashを探索キーとして最新のロケーションリストを検索して得られたファイルリストの受信を待つ。ファイルリストが受信されれば、リスト検索処理部505は、ステップS1411において、ファイルリストをファイル取得処理部506に通知する。   In step S1405, the list search processing unit 505 transmits the file Hash to a nearby search node in the search network 202. Then, in step S1407, the list search processing unit 505 waits for reception of a file list returned from the search node and obtained by searching the latest location list using the file Hash as a search key. If the file list has been received, the list search processing unit 505 notifies the file acquisition processing unit 506 of the file list in step S1411.

(ファイル取得処理部)
図15は、本実施形態に係るファイル取得処理部506の機能構成を示すブロック図である。
(File acquisition processing unit)
FIG. 15 is a block diagram illustrating a functional configuration of the file acquisition processing unit 506 according to the present embodiment.

ファイル取得処理部506は、ファイルリスト取得部1561と、部分データ情報抽出部1562と、部分データ取得部1563と、部分データ合成部1564と、を備える。さらに、ファイル取得処理部506は、ファイル復号部1566と、ファイル送出部1567と、を備える。   The file acquisition processing unit 506 includes a file list acquisition unit 1561, a partial data information extraction unit 1562, a partial data acquisition unit 1563, and a partial data synthesis unit 1564. Further, the file acquisition processing unit 506 includes a file decryption unit 1566 and a file transmission unit 1567.

ファイルリスト取得部1561は、リスト検索処理部505からファイルリストを取得する。部分データ情報抽出部1562は、ファイルリストに含まれる分割された部分データのロケーションを示す部分データ情報である保存用ノードIDと部分hashとを抽出する。部分データ取得部1563は、保存用ノードIDとファイルHashと各部分データの部分Hashとを用いて、保存用ノードIDが示す保存用ノードから一斉に部分データを取得する。   The file list obtaining unit 1561 obtains a file list from the list search processing unit 505. The partial data information extraction unit 1562 extracts a storage node ID and a partial hash, which are partial data information indicating the location of the divided partial data included in the file list. The partial data acquisition unit 1563 simultaneously acquires partial data from the storage node indicated by the storage node ID using the storage node ID, the file Hash, and the partial Hash of each partial data.

部分データ合成部1564は、データ合成テーブル1565を有し、部分データ取得部1563が取得した部分データの数が所定数以上になれば、部分データを合成して暗号化ファイルを復元する。すなわち、部分データの取得にエラーが生じた場合であっても、所定数以上の部分データの取得があればファイルを復元可能である。なお、部分データ合成部1564では、保存用ノードから取得した部分データを保存時に暗号鍵に対応する復号鍵で復号する処理も行う。   The partial data synthesizing unit 1564 has a data synthesizing table 1565. When the number of partial data acquired by the partial data acquiring unit 1563 becomes equal to or more than a predetermined number, the partial data is merged to restore the encrypted file. That is, even if an error occurs in the acquisition of the partial data, the file can be restored if a predetermined number or more of the partial data is acquired. Note that the partial data synthesizing unit 1564 also performs a process of decrypting the partial data obtained from the storage node with a decryption key corresponding to the encryption key at the time of storage.

ファイル復号部1566は、復元された暗号化ファイルを保存時に暗号化した暗号鍵に対応する復号鍵で復号する。なお、かかる復号鍵は、クライアントに対応して配布された暗号化鍵に対応するものである。このように構成することにより、クライアント以外の人は復号鍵をいずれかの方法で取得しない限り、ファイルを復号して復元することができない。ファイル送出部1567は、復号されたファイルをクライアント端末203に送出する。ファイルの取得完了通知を報酬処理部に通知して、読出報酬を取得してもよい。   The file decryption unit 1566 decrypts the restored encrypted file with a decryption key corresponding to the encryption key encrypted at the time of storage. The decryption key corresponds to the encryption key distributed to the client. With this configuration, a person other than the client cannot decrypt and restore the file unless the decryption key is obtained by any method. The file sending unit 1567 sends the decrypted file to the client terminal 203. The file acquisition completion notification may be notified to the reward processing unit to acquire the read reward.

図16は、本実施形態に係るファイル取得処理部506で使用するデータ合成テーブル1565の構成を示す図である。データ合成テーブル1565は、部分データ合成部1564が取得した部分データから暗号化されたファイルを合成するために使用される。   FIG. 16 is a diagram illustrating a configuration of the data synthesis table 1565 used in the file acquisition processing unit 506 according to the present embodiment. The data synthesis table 1565 is used to synthesize an encrypted file from the partial data obtained by the partial data synthesis unit 1564.

データ合成テーブル1565は、部分Hash1601と、読出された部分データ1602と、部分データ1602の所定数以上から合成された、暗号化されたファイルである合成ファイル1603と、復号されたファイルである復号ファイル1604とを記憶する。なお、部分データ1602の合成順序は、ブロックチェーン化された部分Hash1601から知ることができる。ブロックチェーン化されない部分Hash1601においては、合成順序を別途保存しておく必要がある。   The data synthesis table 1565 includes a partial Hash 1601, read partial data 1602, a synthesized file 1603 that is an encrypted file synthesized from a predetermined number or more of the partial data 1602, and a decrypted file that is a decrypted file. 1604 is stored. Note that the synthesis order of the partial data 1602 can be known from the block chained partial Hash 1601. In the part Hash 1601 that is not converted into a block chain, the synthesis order needs to be separately stored.

図17は、本実施形態に係るファイル取得処理部506の処理手順を示すフローチャートである。このフローチャートは、図6のCPU610がRAM640を用いて実行し、図15のファイル取得処理部506の機能構成を実現する。   FIG. 17 is a flowchart illustrating a processing procedure of the file acquisition processing unit 506 according to the present embodiment. This flowchart is executed by the CPU 610 in FIG. 6 using the RAM 640, and implements the functional configuration of the file acquisition processing unit 506 in FIG.

ファイル取得処理部506は、ステップS1701において、リスト検索処理部505からファイルリストを取得する。ファイル取得処理部506は、ステップS1703において、ファイルリストから分割されて保存された部分データを取得するための(部分Hash、保存用ノードID)の組合せを抽出する。ファイル取得処理部506は、ステップS1705において、(ファイルHash、部分Hash、保存用ノードID)の組合せを用いて、保存用ネットワーク201の保存用ノードから分割数の部分データを取得する。   The file acquisition processing unit 506 acquires a file list from the list search processing unit 505 in step S1701. In step S1703, the file acquisition processing unit 506 extracts a combination of (partial Hash, node ID for saving) for acquiring the divided data saved from the file list. In step S1705, the file acquisition processing unit 506 acquires partial data of the number of divisions from the storage node of the storage network 201 using a combination of (file Hash, partial Hash, storage node ID).

ファイル取得処理部506は、ステップS1707において、正しく取得した部分データの取得数を数える。例えば、保存用ノードの故障、保存用ノードの部分データの削除、改ざんやエラー、通信状況によるエラーなど、その一部は部分Hashにより検証可能である。ファイル取得処理部506は、ステップS1709において、正しく取得した部分データの取得数が所定数α以上である、復元可能な数であるか否かを判定する。   In step S1707, the file acquisition processing unit 506 counts the number of correctly acquired partial data. For example, a part of the storage node can be verified by the partial hash, such as a failure of the storage node, deletion of partial data of the storage node, falsification or error, or an error due to communication status. In step S1709, the file acquisition processing unit 506 determines whether or not the number of correctly acquired partial data is equal to or larger than the predetermined number α and is a restorable number.

部分データの取得数が所定数α以上である場合、ファイル取得処理部506は、ステップS1711において、正しく取得した部分データを合成する。ファイル取得処理部506は、ステップS1713において、合成ファイルを復号する。ファイル取得処理部506は、ステップS1715において、部分データから合成され復号されたファイルをクライアント端末203から送出する。   If the number of acquired partial data is equal to or greater than the predetermined number α, the file acquisition processing unit 506 combines the correctly acquired partial data in step S1711. The file acquisition processing unit 506 decrypts the combined file in step S1713. In step S1715, the file acquisition processing unit 506 sends the file synthesized and decoded from the partial data from the client terminal 203.

部分データの取得数が所定数α未満である場合、ファイル取得処理部506は、ステップS1719において、データ取得エラーをクライアント端末203に通知する。   If the number of acquired partial data is less than the predetermined number α, the file acquisition processing unit 506 notifies the client terminal 203 of a data acquisition error in step S1719.

(報酬処理部)
図18は、本実施形態に係る報酬処理部1800の機能構成を示すブロック図である。なお、報酬処理部1800は、検索用サーバに搭載されていても、クライアントアプリケーション232に組み込まれていても、あるいは、検索用ノードアプリケーションや保存用ノードアプリケーションなどに分散されていてもよい。また、報酬処理部1800を含む管理サーバを別途設ける構成であってもよい。
(Reward processing section)
FIG. 18 is a block diagram illustrating a functional configuration of the reward processing unit 1800 according to the present embodiment. Note that the reward processing unit 1800 may be mounted on the search server, incorporated in the client application 232, or distributed in a search node application, a storage node application, or the like. Further, a configuration in which a management server including the reward processing unit 1800 is separately provided may be employed.

報酬処理部1800は、保存完了通知取得部1871と、取得完了通知取得部1872と、報酬算出アルゴリズム取得部1873と、報酬算出部1874と、報酬提供部1876と、を備える。   The reward processing unit 1800 includes a storage completion notification acquiring unit 1871, an acquisition completion notification acquiring unit 1872, a reward calculation algorithm acquiring unit 1873, a reward calculating unit 1874, and a reward providing unit 1876.

保存完了通知取得部1871は、保存完了した各保存用ノードから部分データの保存完了通知を取得する。取得完了通知取得部1872は、ファイル取得処理部506からファイルの取得完了通知を取得する。   The storage completion notification obtaining unit 1871 obtains a storage completion notification of the partial data from each storage node whose storage has been completed. The acquisition completion notification acquisition unit 1872 acquires a file acquisition completion notification from the file acquisition processing unit 506.

報酬算出アルゴリズム取得部1873は、情報処理システム200における、保存用ネットワーク201に保存用ノードとして参加したクライアント、あるいは、検索用ネットワーク202に検索用ノードとして参加したクライアントに、どのように報酬を提供するかのアルゴリズムを取得する。本実施形態においては、例えば、ファイルの保存時に徴収する料金の内から総額2割程度の比較的少ない初期報酬を保存用ノードに提供し、その後は、所定期間でゼロとなる下降曲線で残りの8割をファイルの読み出し時に還元する報酬提供アルゴリズムを採用している。このようなアルゴリズムを用いることにより、保存用ノードの参加者が保存された部分データを削除しないように誘導している。しかしながら、報酬の提供アルゴリズムはこれに限定されない。   How the reward calculation algorithm acquisition unit 1873 provides a reward to the client in the information processing system 200 that has participated in the storage network 201 as a storage node or the client that has participated in the search network 202 as a search node. Get the algorithm. In the present embodiment, for example, a relatively small initial reward of about 20% in total is provided to the storage node from the fees collected when the file is stored, and thereafter, the remaining curve is reduced by a descending curve that becomes zero in a predetermined period. A reward providing algorithm that returns 80% when reading the file is adopted. By using such an algorithm, the participant of the storage node is guided not to delete the stored partial data. However, the reward providing algorithm is not limited to this.

報酬算出部1874は、報酬テーブル1875を有し、報酬提供アルゴリズムに従って、部分データの保存完了時および部分データの読出し完了時に保存用ノードに対して提供する報酬を算出する。報酬提供部1876は、報酬算出部1874が算出した報酬を、部分データを保存あるいは読出した保存用ノードに提供する。   The reward calculation unit 1874 has a reward table 1875, and calculates a reward to be provided to the storage node at the time of completion of the storage of the partial data and at the time of completion of the reading of the partial data, according to the reward provision algorithm. The reward providing unit 1876 provides the reward calculated by the reward calculating unit 1874 to the storage node that has stored or read the partial data.

なお、図18には、検索用ネットワーク202の検索用ノードへの報酬については図示されてない。本実施形態においては、例えば、検索用ネットワーク202への新規参加時、あるいは、保存用ノードに対して提供する報酬の算出アルゴリズムなどの決定あるいは変更時などに行われる保存用ノードによる投票への参加に対して、報酬を提供する。   FIG. 18 does not show the reward to the search node of the search network 202. In the present embodiment, for example, when the storage node newly participates in the search network 202, or when the storage node determines or changes the calculation algorithm of the reward to be provided to the storage node, it participates in the voting. To provide a reward.

図19は、本実施形態に係る報酬処理部1800で使用する報酬テーブル1875の構成を示す図である。報酬テーブル1875は、報酬算出部1874が本実施形態のアルゴリズムで保存用ノードに報酬を提供する場合に用いる。   FIG. 19 is a diagram illustrating a configuration of the reward table 1875 used in the reward processing unit 1800 according to the present embodiment. The reward table 1875 is used when the reward calculation unit 1874 provides a reward to the storage node using the algorithm of the present embodiment.

報酬テーブル1875は、保存対象あるいは取得対象のファイルHashによるファイルID1910に対応付けて、保存料金1902と取得または閲覧料金×回数1903とを考慮して算出された、データ保存時の報酬1904とデータ読出時の報酬1905とを記憶する。なお、データ読出時の報酬1905の変化は、初期値と減少する変化曲線とを含む。   The reward table 1875 is associated with the file ID 1910 of the file Hash to be stored or obtained, and calculated in consideration of the storage fee 1902 and the acquisition or browsing fee × number of times 1903, the reward 1904 at the time of data storage and the data reading. The time reward 1905 is stored. The change of the reward 1905 at the time of data reading includes an initial value and a decreasing change curve.

図20は、本実施形態に係る報酬処理部1800の処理手順を示すフローチャートである。このフローチャートは、報酬処理部1800のCPUがRAMを用いて実行し、図18の報酬処理部1800の機能構成部を実現する。   FIG. 20 is a flowchart illustrating a processing procedure of the reward processing unit 1800 according to the present embodiment. This flowchart is executed by the CPU of the reward processing unit 1800 using the RAM, and implements the functional components of the reward processing unit 1800 in FIG.

報酬処理部1800は、ステップS2001において、各保存用ノードからの保存完了通知、または、ファイル取得処理部506からの取得完了通知を待つ。保存完了通知、または、取得完了通知があれば、報酬処理部1800は、ステップS2003において、部分データの保存であるかファイルの取得であるかを判定する。   In step S2001, the reward processing unit 1800 waits for a storage completion notification from each storage node or an acquisition completion notification from the file acquisition processing unit 506. If there is a storage completion notification or an acquisition completion notification, in step S2003, the reward processing unit 1800 determines whether to save the partial data or obtain the file.

部分データの保存完了であれば、報酬処理部1800は、ステップS2005において、保存料金から各保存用ノードへの報酬Xを算出する。そして、報酬処理部1800は、ステップS2007において、部分データを保存した保存用ノードに報酬Xを提供する。   If the saving of the partial data is completed, in step S2005, the reward processing unit 1800 calculates the reward X to each storage node from the storage fee. Then, in step S2007, the reward processing unit 1800 provides the reward X to the storage node storing the partial data.

一方、ファイルを取得した場合、報酬処理部1800は、ステップS2009において、保存料金(+取得料金)から各保存用ノードへの報酬Yを算出する。ここで、報酬Yは報酬Xよりも多い。そして、報酬処理部1800は、ステップS2011において、ファイルの部分データを正しく読出した保存用ノードに報酬Yを提供する。   On the other hand, when the file is acquired, the reward processing unit 1800 calculates the reward Y to each storage node from the storage fee (+ the acquisition fee) in step S2009. Here, the reward Y is larger than the reward X. Then, in step S2011, the reward processing unit 1800 provides the reward Y to the storage node that has correctly read the partial data of the file.

《保存用ノード》
図21は、本実施形態に係る保存用ノード211の機能構成を示すブロック図である。
《Save node》
FIG. 21 is a block diagram illustrating a functional configuration of the storage node 211 according to the present embodiment.

保存用ノード211は、P2Pの通信制御部2101と、入出力インタフェース2102と、保存用ノードアプリケーションダウンロード部2103と、保存用ノードアプリケーション実行部2104と、を備える。   The storage node 211 includes a P2P communication control unit 2101, an input / output interface 2102, a storage node application download unit 2103, and a storage node application execution unit 2104.

P2Pの通信制御部2101は、クライアント端末203や保存用ネットワーク201の他の保存用ノードとのP2P通信を制御する。入出力インタフェース2102は、保存用ノード211に接続する入出力機器である、表示部2121、操作部2122、音声入出力部2123、記憶媒体2124などとの入出力を制御する。保存用ノードアプリケーションダウンロード部2103は、種々のクライアント端末が保存用ノードとして保存用ネットワーク201に参入するために保存用ノードアプリケーションをダウンリードする。保存用ノードアプリケーション実行部2104は、保存用ノードアプリケーションダウンロード部2103がダウンロードした保存用ノードアプリケーションを実行し、保存用ノードとして機能する。   A P2P communication control unit 2101 controls P2P communication with the client terminal 203 and another storage node of the storage network 201. The input / output interface 2102 controls input / output with the display unit 2121, the operation unit 2122, the audio input / output unit 2123, the storage medium 2124, and the like, which are input / output devices connected to the storage node 211. The storage node application download unit 2103 down-reads the storage node application so that various client terminals enter the storage network 201 as storage nodes. The storage node application execution unit 2104 executes the storage node application downloaded by the storage node application download unit 2103, and functions as a storage node.

保存用ノードアプリケーション実行部2104は、HashID記憶部2141と、保存用部分データ受信部2142と、ストレージ2143と、部分データ保存完了通知部2144と、を有する。さらに、保存用ノードアプリケーション実行部2104は、部分データ要求受信部2145と、部分データ送信部2146と、電子キャッシュ保存部2147と、料金送信部2148と、報酬受信部2149と、を有する。   The storage node application execution unit 2104 includes a HashID storage unit 2141, a storage partial data reception unit 2142, a storage 2143, and a partial data storage completion notification unit 2144. Further, the storage node application execution unit 2104 includes a partial data request reception unit 2145, a partial data transmission unit 2146, an electronic cash storage unit 2147, a fee transmission unit 2148, and a reward reception unit 2149.

HashID記憶部2141は、保存用ノードとして保存用ネットワーク201に参入した時に付与される保存用ノード情報のHash値であるIDを記憶する。この保存用ノードHashIDは、保存用ノードIDとして使用される。保存用部分データ受信部2142は、ファイル保存処理部503からの保存用の部分データをファイルHashおよび部分Hashと共に受信する。ストレージ2143は、保存用部分データ受信部2142が受信した(ファイルHash、部分Hash、部分データ)を、ファイルHashと部分Hashとを検索キーとして保存する。部分データ保存完了通知部2144は、ストレージ2143へのファイルHashと部分Hashとを検索キーとした部分データの保存が完了した場合に、その旨を(ファイルHash、部分Hash、保存用ノードID)の組合せと共に検索用ノードに通知する。部分データ要求受信部2145は、ファイル取得処理部506からのファイルhashと部分Hashとを検索キーとする部分データの読み出し要求を受信する。部分データ送信部2146は、ファイルHashと部分Hashとの検索キーにより検索された部分データをストレージ2143から読出して、ファイル取得処理部506に送信する。   The HashID storage unit 2141 stores an ID that is a Hash value of storage node information given when the storage node 201 enters the storage network 201 as a storage node. This storage node HashID is used as a storage node ID. The saving partial data receiving unit 2142 receives the saving partial data from the file saving processing unit 503 together with the file Hash and the partial Hash. The storage 2143 saves (the file Hash, the partial Hash, and the partial data) received by the storage partial data receiving unit 2142 using the file Hash and the partial Hash as search keys. When the storage of the partial data in the storage 2143 using the file Hash and the partial Hash as a search key is completed, the partial data storage completion notifying unit 2144 indicates that (the file Hash, the partial Hash, and the storage node ID). The search node is notified together with the combination. The partial data request receiving unit 2145 receives a partial data read request from the file acquisition processing unit 506 using the file hash and the partial Hash as search keys. The partial data transmission unit 2146 reads the partial data retrieved using the retrieval key of the file Hash and the partial Hash from the storage 2143, and transmits the partial data to the file acquisition processing unit 506.

電子キャッシュ保存部2147は、保存用ノードとして保存用ネットワーク201に参入する場合に、設定される電子キャッシュの記憶部である。料金送信部2148は、保存用ノードとして参入する場合、あるいは、他の料金支払いが必要な場合に、電子キャッシュ保存部2147から電子キャッシュを送金する。報酬受信部2149は、報酬処理部1800からの報酬を受信して、電子キャッシュ保存部2147に保存する。   The electronic cache storage unit 2147 is a storage unit of an electronic cache that is set when joining the storage network 201 as a storage node. The fee transmission unit 2148 remits the electronic cash from the electronic cash storage unit 2147 when joining as a storage node or when another payment is required. The reward receiving unit 2149 receives the reward from the reward processing unit 1800 and stores it in the electronic cash storage unit 2147.

図22は、本実施形態に係る保存用ノード211の動作手順を示すフローチャートである。このフローチャートは、保存用ノード211となるクライアント端末のCPUがRAMを用いて実行し、図21の機能構成を実現する。   FIG. 22 is a flowchart illustrating an operation procedure of the storage node 211 according to the present embodiment. This flowchart is executed by the CPU of the client terminal serving as the storage node 211 using the RAM, and implements the functional configuration of FIG.

保存用ノード211は、ステップS2211において、保存用の部分データの受信か否かを判定する。保存用の部分データの受信であると判定する場合、保存用ノード211は、ステップS2213において、取得した(ファイルhash、部分Hash、部分データ)の組合せをストレージ2143に保存する。そして、ストレージ2143への保存が完了すると、保存用ノード211は、ステップS2215において、保存完了を(ファイルhash、部分Hash、保存用ノードID)の組合せと共に、検索用ノードに通知する。   The storage node 211 determines in step S2211 whether or not the storage partial data has been received. If it is determined that the received partial data is to be received, the storage node 211 stores the acquired combination of (file hash, partial Hash, partial data) in the storage 2143 in step S2213. When the storage in the storage 2143 is completed, the storage node 211 notifies the search node of the completion of the storage together with the combination of (file hash, partial Hash, storage node ID) in step S2215.

保存用の部分データの受信でないと判定する場合、保存用ノード211は、ステップS2221において、部分データの読み出し要求か否かを判定する。部分データの読み出し要求であると判定された場合、保存用ノード211は、ステップS2223において、読出し要求に伴うファイルHashと部分Hashとを受け取り、ファイルHashと部分Hashとを検索キーとしてストレージ2143に保存された部分データを検索する。保存用ノード211は、ステップS2225において、部分データがストレージ2143内に有るか否かを判定する。部分データが見つかった場合、保存用ノード211は、ステップS2227において、部分データをファイルHashおよび部分Hashと共にファイル取得処理部506に送信する。部分データが見つからなかった場合、保存用ノード211は、ステップS2229において、エラー処理を行う。   If it is determined that the received partial data has not been received, the storage node 211 determines in step S2221 whether the request is a partial data read request. If it is determined that the request is a partial data read request, in step S2223, the storage node 211 receives the file Hash and the partial Hash accompanying the read request, and saves the file Hash and the partial Hash in the storage 2143 as a search key. Search the partial data. In step S2225, the storage node 211 determines whether the partial data exists in the storage 2143. If partial data is found, the storage node 211 transmits the partial data to the file acquisition processing unit 506 together with the file Hash and the partial Hash in step S2227. If no partial data is found, the storage node 211 performs error processing in step S2229.

保存用の部分データの受信でもなく、部分データの要求でもないと判定する場合、保存用ノード211は、ステップS2231において、料金の送信か否かを判定する。料金の送信と判定された場合、保存用ノード211は、ステップS2233において、電子キャッシュ保存部2147から電子キャッシュを取得し、ステップS2235において、取得した電子キャッシュを送信する。保存用の部分データの受信でもなく、部分データの要求でもなく、料金の送信でもないと判定する場合、保存用ノード211は、ステップS2241において、報酬の受信か否かを判定する。報酬の受信と判定された場合、保存用ノード211は、ステップS2243において、報酬処理部1800からの報酬を受信し、ステップS2245において、受信した報酬を電子キャッシュ保存部2147に保存する。   When it is determined that neither the reception of the partial data for storage nor the request of the partial data is performed, the storage node 211 determines in step S <b> 2231 whether or not to transmit a fee. If it is determined that the fee is to be transmitted, the storage node 211 acquires the electronic cash from the electronic cash storage unit 2147 in step S2233, and transmits the acquired electronic cash in step S2235. If it is determined that neither the reception of the partial data for storage nor the request of the partial data nor the transmission of the fee, the storage node 211 determines in step S2241 whether or not a reward has been received. If it is determined that the reward has been received, the storage node 211 receives the reward from the reward processing unit 1800 in step S2243, and stores the received reward in the electronic cash storage unit 2147 in step S2245.

《検索用ノード》
図23は、本実施形態に係る検索用ノード221の機能構成を示すブロック図である。なお、図23には、検索用ノード221が行う、ロケーションリスト317内の検索用ノードリストや保存用ノードリストを作成あるいは更新するための機能構成については、図面が煩雑となるため図示していない。
《Search node》
FIG. 23 is a block diagram illustrating a functional configuration of the search node 221 according to the present embodiment. Note that FIG. 23 does not show a functional configuration for creating or updating a search node list or a storage node list in the location list 317 performed by the search node 221 because the drawing becomes complicated. .

検索用ノード221は、P2Pの通信制御部2301と、入出力インタフェース2302と、検索用ノードアプリケーションダウンロード部2303と、検索用ノードアプリケーション実行部2304と、を備える。   The search node 221 includes a P2P communication control unit 2301, an input / output interface 2302, a search node application download unit 2303, and a search node application execution unit 2304.

P2Pの通信制御部2301は、クライアント端末203や検索用ネットワーク202の他の検索用ノードとのP2P通信を制御する。入出力インタフェース2302は、検索用ノード221に接続する入出力機器である、表示部2321、操作部2322、音声入出力部2323、記憶媒体2324などとの入出力を制御する。検索用ノードアプリケーションダウンロード部2303は、種々のクライアント端末が検索用ノードとして検索用ネットワーク202に参入するために検索用ノードアプリケーションをダウンリードする。検索用ノードアプリケーション実行部2304は、検索用ノードアプリケーションダウンロード部2303がダウンロードした検索用ノードアプリケーションを実行し、検索用ノードとして機能する。   A P2P communication control unit 2301 controls P2P communication with the client terminal 203 and other search nodes of the search network 202. The input / output interface 2302 controls input / output with a display unit 2321, an operation unit 2322, a voice input / output unit 2323, a storage medium 2324, and the like, which are input / output devices connected to the search node 221. The search node application download unit 2303 down-loads the search node application so that various client terminals can enter the search network 202 as search nodes. The search node application execution unit 2304 executes the search node application downloaded by the search node application download unit 2303, and functions as a search node.

検索用ノードアプリケーション実行部2304は、検索用ノードHashID記憶部2341と、ロケーションリスト更新指示受信部2342と、ロケーションリスト保存ストレージ2343と、部分データ保存完了通知受信部2344と、を有する。さらに、検索用ノードアプリケーション実行部2304は、ファイルリスト要求受信部2345と、ファイルリスト送信部2346と、電子キャッシュ保存部2347と、料金送信部2348と、報酬受信部2349と、を有する。   The search node application execution unit 2304 includes a search node HashID storage unit 2341, a location list update instruction receiving unit 2342, a location list storage unit 2343, and a partial data storage completion notification receiving unit 2344. Further, the search node application execution unit 2304 includes a file list request reception unit 2345, a file list transmission unit 2346, an electronic cash storage unit 2347, a fee transmission unit 2348, and a reward reception unit 2349.

検索用ノードHashID記憶部2341は、検索用ノードとして検索用ネットワーク202に参入した時に付与される検索用ノード情報のHash値であるIDを記憶する。この検索用ノードHashIDは、検索用ノードを特定するIDとして使用される。ロケーションリスト更新指示受信部2342は、ファイル保存要求の場合に、クライアント端末203からファイルHashを受信して、ロケーションリストにファイルHashを検索キーとする空のファイルリストを追加する。ロケーションリスト保存ストレージ2343は、ロケーションリスト更新指示受信部2342により更新された最新のロケーションリストを保存し、他の検索用ノードと共有する。部分データ保存完了通知受信部2344は、部分データの保存が完了した保存用ノードから保存完了通知を、(ファイルHash、部分Hash、保存用ノードID)の組合せと共に受信して、ロケーションリスト保存ストレージ2343内の空のファイルリストに挿入する。ファイルリスト要求受信部2345は、ファイル取得要求の場合に、クライアント端末203のリスト検索処理部505から、ファイルHashを検索キーとする最新ロケーションリストからのファイルリストの読み出し要求を受信する。ファイルリスト送信部2346は、ロケーションリスト保存ストレージ2343に保持されたロケーションリストを、ファイルHashを検索キーとして検索し、見つけたファイルリストをリスト検索処理部505に送信する。   The search node HashID storage unit 2341 stores an ID that is a Hash value of search node information given when the search node 202 enters the search network 202 as a search node. This search node HashID is used as an ID for specifying the search node. The location list update instruction receiving unit 2342 receives the file Hash from the client terminal 203 and adds an empty file list using the file Hash as a search key to the location list in the case of a file storage request. The location list storage 2343 stores the latest location list updated by the location list update instruction receiving unit 2342 and shares it with other search nodes. The partial data storage completion notification receiving unit 2344 receives a storage completion notification from the storage node in which the storage of the partial data is completed, together with the combination of (file Hash, partial Hash, storage node ID), and stores the location list storage storage 2343. To an empty file list in. In the case of a file acquisition request, the file list request receiving unit 2345 receives, from the list search processing unit 505 of the client terminal 203, a request to read a file list from the latest location list using the file Hash as a search key. The file list transmission unit 2346 searches the location list held in the location list storage 2343 using the file Hash as a search key, and transmits the found file list to the list search processing unit 505.

電子キャッシュ保存部2347は、検索用ノードとして検索用ネットワーク202に参入する場合に、設定される電子キャッシュの記憶部である。料金送信部2348は、検索用ノードとして参入する場合、あるいは、投票の参加するなどによる他の料金支払いが必要な場合に、電子キャッシュ保存部2347から電子キャッシュを送金する。報酬受信部2349は、報酬処理部1800からの報酬を受信して、電子キャッシュ保存部2347に保存する。   The electronic cache storage unit 2347 is a storage unit of an electronic cache that is set when entering the search network 202 as a search node. The fee transmission unit 2348 remits the electronic cash from the electronic cash storage unit 2347 when joining as a search node or when another fee payment is required by participating in voting or the like. The reward receiving unit 2349 receives the reward from the reward processing unit 1800 and stores it in the electronic cash storage unit 2347.

図24は、本実施形態に係る検索用ノード221の動作手順を示すフローチャートである。このフローチャートは、検索用ノード221となるクライアント端末のCPUがRAMを用いて実行し、図23の機能構成を実現する。なお、図24においても、検索用ノード221が行う、ロケーションリスト317の検索用ノードリストや保存用ノードリストを作成あるいは更新するための動作手順については、図面が煩雑となるため図示していない。   FIG. 24 is a flowchart illustrating an operation procedure of the search node 221 according to the present embodiment. This flowchart is executed by the CPU of the client terminal serving as the search node 221 using the RAM, and implements the functional configuration of FIG. In FIG. 24, the operation procedure performed by the search node 221 for creating or updating the search node list and the storage node list of the location list 317 is not shown because the drawing becomes complicated.

検索用ノード221は、ステップS2411において、ロケーションリスト更新指示の受信か否かを判定する。ロケーションリスト更新指示の受信であると判定する場合、検索用ノード221は、ステップS2413において、ロケーションリスト更新指示に付随して送信されたファイルHashを取得する。そして、検索用ノード221は、ステップS2413において、取得したファイルHashを検索キーとする空のファイルリストをロケーションリストに追加し、最新のロケーションリストをロケーションリスト保存ストレージ2343に保存する。   The search node 221 determines in step S2411 whether or not a location list update instruction has been received. When determining that the location list update instruction has been received, the search node 221 acquires the file Hash transmitted along with the location list update instruction in step S2413. Then, in step S2413, the search node 221 adds an empty file list using the obtained file Hash as a search key to the location list, and stores the latest location list in the location list storage 2343.

ロケーションリスト更新指示の受信でないと判定する場合、検索用ノード221は、ステップS2421において、部分データの保存完了通知か否かを判定する。部分データの保存完了通知であると判定された場合、検索用ノード221は、ステップS2423において、保存完了通知に付随するファイルHashによりロケーションリスト内の空の(あるいは未完の)ファイルリストを検索する。そして、検索用ノード221は、ステップS2425において、空の(あるいは未完の)ファイルリストに保存完了通知と共に受信した(部分Hash、保存用ノードID)の組合せを挿入する。   If it is determined that the location list update instruction has not been received, the search node 221 determines in step S2421 whether the notification is a partial data save completion notification. If it is determined that the notification is a partial data storage completion notification, in step S2423, the search node 221 searches for an empty (or unfinished) file list in the location list by using the file Hash accompanying the storage completion notification. Then, in step S2425, the search node 221 inserts the combination (partial Hash, storage node ID) received together with the storage completion notification into the empty (or unfinished) file list.

ロケーションリストの受信でなく、部分データの保存完了通知でもないと判定する場合、検索用ノード221は、ステップS2431において、ファイルリストの読み出し要求か否かを判定する。ファイルリストの読み出し要求であると判定された場合、検索用ノード221は、ステップS2433において、ロケーションリスト保存ストレージ2343に保持された最新のロケーションリストから、読み出し要求と共に受信したファイルHashを検索キーとしてファイルリストを検索する。そして、検索用ノード221は、ステップS2435において、ファイルリストを読み出し要求元のリスト検索処理部505に送信する。   If it is determined that the reception of the location list is not the notification of the completion of storing the partial data, the search node 221 determines in step S2431 whether the request is a read request of the file list. If it is determined that the request is a file list read request, in step S2433, the search node 221 uses the file Hash received with the read request as a search key from the latest location list held in the location list storage 2343 as a search key. Search the list. Then, in step S2435, the search node 221 reads the file list and transmits the file list to the list search processing unit 505 that has issued the request.

ロケーションリストの受信でもなく、部分データの保存完了通知でもなく、ロケーションリストの要求でもないと判定する場合、検索用ノード221は、ステップS2441において、料金の送信か否かを判定する。料金の送信と判定された場合、検索用ノード221は、ステップS2433において、電子キャッシュ保存部2347から電子キャッシュを取得し、ステップS2445において、取得した電子キャッシュを送信する。   If it is determined that the received location list is not received, the storage completion notification of the partial data is not received, and the location list is not requested, the search node 221 determines in step S2441 whether or not to transmit a fee. If it is determined that the fee is to be transmitted, the search node 221 acquires the electronic cash from the electronic cash storage unit 2347 in step S2433, and transmits the acquired electronic cash in step S2445.

ロケーションリストの受信でもなく、部分データの保存完了通知でもなく、ロケーションリストの要求でもなく、料金の送信でもないと判定する場合、検索用ノード221は、ステップS2451において、報酬の受信か否かを判定する。報酬の受信と判定された場合、検索用ノード221は、ステップS2453において、報酬処理部1800からの報酬を受信し、ステップS2455において、受信した報酬を電子キャッシュ保存部2347に保存する。   If it is determined that neither the reception of the location list nor the notification of the completion of the storage of the partial data, the request of the location list, nor the transmission of the fee, the search node 221 determines in step S2451 whether or not to receive the reward. judge. If it is determined that the reward has been received, the search node 221 receives the reward from the reward processing unit 1800 in step S2453, and stores the received reward in the electronic cash storage unit 2347 in step S2455.

(クライアント端末のハードウェア構成)
図25は、本実施形態に係る保存用ノード211または検索用ノード221となるクライアント端末のハードウェア構成を示すブロック図である。
(Hardware configuration of client terminal)
FIG. 25 is a block diagram illustrating a hardware configuration of a client terminal serving as the storage node 211 or the search node 221 according to the present embodiment.

図25で、CPU2510は演算制御用のプロセッサであり、プログラムを実行することで図21または図23の機能構成部を実現する。CPU(Central Processing Unit)2510は1つであっても複数であってもよい。ROM(Read Only Memory)2520は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。ネットワークインタフェース2530は、クライアント端末203や、保存用ネットワーク201や検索用ネットワーク202の他の保存用ノードや検索用ノードとの通信を制御する。   In FIG. 25, a CPU 2510 is a processor for arithmetic control, and realizes the functional components of FIG. 21 or 23 by executing a program. The number of CPUs (Central Processing Units) 2510 may be one or more. A ROM (Read Only Memory) 2520 stores fixed data such as initial data and programs and programs. The network interface 2530 controls communication with the client terminal 203 and other storage nodes and search nodes other than the storage network 201 and the search network 202.

RAM(Random Access Memory)2540は、CPU2510が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM2540には、本実施形態の実現に必要なデータを記憶する領域が確保されている。保存用ノードのデ−タ2541は、保存用ノードとして動作する場合のデータである。保存用ノードのデ−タ2541には、部分Hashや部分データが含まれる。検索用ノードのデ−タ2542は、検索用ノードとして動作する場合のデータである。検索用ノードのデ−タ2542には、ファイルHashや、ファイルHashを検索キーとするファイルリストや、登録されている保存用ノードの一覧である保存用ノードリストが含まれる。電子キャッシュデータ2543は、送金あるいは報酬受信されるデータである。送受信データ2544は、ネットワークインタフェース2530を介して送受信されるデータである。入出力データ2545は、入出力インタフェース2102や2302を介して入出力機器と入出力するデータである。   A RAM (Random Access Memory) 2540 is a random access memory used by the CPU 2510 as a work area for temporary storage. In the RAM 2540, an area for storing data necessary for realizing the present embodiment is secured. The data 2541 of the storage node is data when operating as a storage node. The data 2541 of the storage node includes partial Hash and partial data. The search node data 2542 is data when operating as a search node. The search node data 2542 includes a file Hash, a file list using the file Hash as a search key, and a storage node list that is a list of registered storage nodes. The electronic cash data 2543 is data to be remitted or received as a reward. The transmission / reception data 2544 is data transmitted / received via the network interface 2530. The input / output data 2545 is data input / output to / from an input / output device via the input / output interface 2102 or 2302.

ストレージ2550は、CPU2510が使用する、本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。データベース2551は、本実施形態の実現に必要な基本データを保持する。保存用ノードまたは検索用ノードのHashID記憶部2141/2341は、ノード参入時に配布されるノードIDである。ストレージ2143/2343は、部分データやロケーションリストを保存するストレージである。電子キャッシュ保存部2147/2347は、電子キャッシュを保存するストレージである。   The storage 2550 stores the following data or programs used by the CPU 2510 and necessary for realizing the present embodiment. The database 2551 holds basic data necessary for realizing the present embodiment. The HashID storage unit 2141/2341 of the storage node or the search node is a node ID distributed at the time of joining the node. The storage 2143/2343 is a storage for storing partial data and a location list. The electronic cache storage unit 2147/2347 is a storage for storing an electronic cache.

ストレージ2550には、以下のプログラムが格納される。クライアント端末制御プログラム2552は、保存用ノードや検索用ノードに参入したクライアント端末の全体を制御するプログラムである。保存用ノードアプリケーションプログラム2553は、保存用ノードとして機能する場合のアプリケーションプログラムである。検索用ノードアプリケーションプログラム2554は、検索用ノードとして機能する場合のアプリケーションプログラムである。   The storage 2550 stores the following programs. The client terminal control program 2552 is a program that controls the entire client terminal that has entered the storage node or the search node. The storage node application program 2553 is an application program when functioning as a storage node. The search node application program 2554 is an application program that functions as a search node.

入出力インタフェース2102/2302は、入出力デバイスとのデータ入出力を制御するためのインタフェースを行なう。本実施形態においては、入出力インタフェース2102/2302には、表示部2121/2321、操作部2122/2322、音声入出力部2123/2323、記憶媒体2124/2324などが接続される。   The input / output interface 2102/2302 performs an interface for controlling data input / output with the input / output device. In the present embodiment, the display unit 2121/2321, the operation unit 2122/2322, the audio input / output unit 2123/2323, the storage medium 2124/2324, and the like are connected to the input / output interface 2102/2302.

なお、図25のRAM2540やストレージ2550には、保存用ノードや検索用ノードとして機能するクライアント端末が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。   Note that the RAM 2540 and the storage 2550 in FIG. 25 do not show programs and data related to general-purpose functions and other realizable functions of the client terminal functioning as a storage node or a search node.

本実施形態によれば、データおよびその分割された部分データがHash化されて、検索用ネットワークと保存用ネットワークとの独立した二層構造で管理されるため、高い安全性を担保しつつ、小規模ストレージの集合により大規模データサーバと同様の機能を実現することができる。   According to the present embodiment, the data and the divided partial data are hashed and managed in an independent two-layer structure of the search network and the storage network. The same function as the large-scale data server can be realized by the aggregation of the large-scale storage.

また、本実施形態によれば、ファイルは暗号化されて部分データに分割され、ファイルは部分データから合成されて復号されるので、機密性を高めることができる。また、保存するブロック数に冗長性を持たせて保存するので、所定数以上の正常なブロックがあればデータを再現できる。また、保存時の報酬と読出時の報酬とを制御することにより、保存用ノードでの部分データの喪失を防ぐことができる。   Further, according to the present embodiment, the file is encrypted and divided into partial data, and the file is synthesized from the partial data and decrypted, so that confidentiality can be improved. Further, since the number of blocks to be stored is stored with redundancy, data can be reproduced if there are at least a predetermined number of normal blocks. Further, by controlling the reward at the time of saving and the reward at the time of reading, it is possible to prevent partial data from being lost at the node for storage.

また、本実施形態によれば、インターネット上で第三者がストレージ容量を提供し、それに対して報酬を支払うことによって、効率的なインセンティブシステムによりシステム全体を維持および管理することができる。したがって、ユーザはハードディスクの空きスペースを十分に活用し、収益を得ることができる。すなわち、膨大なデータ量が発生し、これらのデータをどのように保存して、よりよいデータをどのように利用していくという問題がある中で、世界中に存在するハードディスクの大半が使用されておらず、価値のある資源が知らない間に消費されている。本実施形態においては、ユーザがソフトウェア(保存用ノードアプリケーションや検索用ノードアプリケーション)を、パソコンやスマートフォンにダウンロードあるいはインストールした後、ネットワークノード(保存用ノードおよび/または検索用ノード)になれる。したがって、ユーザは、専用のマイニングマシーンを自宅に設置することで報酬を得られることになる。   Further, according to the present embodiment, a third party provides storage capacity on the Internet and pays the storage capacity, so that the entire system can be maintained and managed by an efficient incentive system. Therefore, the user can make full use of the free space of the hard disk and earn profit. In other words, a huge amount of data is generated, and there is a problem of how to store these data and how to use better data. And valuable resources are being consumed unknowingly. In the present embodiment, the user can become a network node (storage node and / or search node) after downloading or installing software (storage node application or search node application) on a personal computer or smartphone. Therefore, the user can get a reward by installing a dedicated mining machine at home.

また、本実施形態によれば、システムは2層の保存用ネットワークと検索用ネットワークとに分離されて構成され、ネットワーク効率を高める同時に、マイニング閾値を下げる。マイニングマシーンはストレージと検索の要求にとって異なり、検索には、高価なコンピューティングパワーとエネルギー消費が必要だが、ストレージには、空きストレージリソースと帯域幅資源とが必要である。ストレージと検索との分離は、低コストのマイニングマシーンを使ってスステムの運営に貢献するのに役に立つ。さらに、2層ネットワークの保存と検索とが分離されることによって、ネットワークの効率を向上させる。なお、実施形態では言及されていないが、検索用ノードは、P2Pネットワーク全体の中で最も見つけられ攻撃され易い部分であるので、検索ノード用に対する保護を強化する必要があり、検索用ノードのIPアドレスを暗号化して保護している。   Further, according to the present embodiment, the system is configured to be separated into a two-layer storage network and a search network, thereby increasing the network efficiency and lowering the mining threshold. Mining machines differ from storage and retrieval requirements, where retrieval requires expensive computing power and energy consumption, while storage requires free storage and bandwidth resources. The separation between storage and search helps to contribute to the operation of the system using low-cost mining machines. Furthermore, the efficiency of the network is improved by separating the storage and retrieval of the two-layer network. Although not mentioned in the embodiment, since the search node is the most easily found and attacked part in the entire P2P network, it is necessary to strengthen the protection for the search node. The address is encrypted and protected.

本実施形態によれば、ユーザのファイルデータを一定数に分割して保存し、分割された部分データが異なるノードに保存されていることを保証する。あるノードの部分データが異常な状況で消えても、他のノードのバックアップを通じて、ユーザのファイルデータを完全に復元することができる。また、保存されたデータのセキュリティを保証することができる。分散型ストレージは、戦争、自然災害、あるいは人為的な原因で発生するデータの損失を減らし、価値のあるデータを永久に保存できるように有利になる。すなわち、ファイルデータは破片に分割し、異なったノードに分布するので、データの安全性はより高く、同時に覗きされたりコピーされたりはしない。さらに、データの冗長技術を加えることによって、分割された破片データが失われた場合や、ノードがオフラインになってもとしても、完全にファイルを復元することができる。同時にある破片が復元されても、?部のデータだけなのでファイルデータ全体は保護される。なお、ノードに障害が発生してアクセス不能な場合、システムはネットワークの既存の副本を新しいノードに転送することによって、ネットワーク複製プロセスを開始して、ファイルデータを復元する。   According to the present embodiment, the user's file data is divided into a certain number and stored, and it is guaranteed that the divided partial data is stored in different nodes. Even if partial data of one node disappears in an abnormal situation, the user's file data can be completely restored through backup of another node. Also, security of the stored data can be guaranteed. Distributed storage is advantageous because it reduces data loss caused by wars, natural disasters, or human causes and allows valuable data to be stored forever. That is, since the file data is divided into fragments and distributed to different nodes, the data is more secure, and is not simultaneously viewed or copied. Further, by adding a data redundancy technique, a file can be completely restored even if the divided fragment data is lost or a node goes offline. Even if a certain piece is restored at the same time, the entire file data is protected because only some data is recovered. If a node fails and cannot be accessed, the system initiates a network duplication process by restoring file data by transferring an existing duplicate of the network to the new node.

また、本実施形態によれば、保存されたデータは、デバイスによってブロックされ、暗号化されるなどの過程を経て、さらに分散型ストレージに配布され、これにより、安全性は非常に高いレベルにまで向上させて、ユーザのファイルデータはネットワーク内の他のいかなる人も覗くことができない。また、各ノードが実際に保存しているデータは、ファイルの一部分であり、その上で暗号化された方法で保存されているので、データはより安全に保護できる。ストレージノードを提供したユーザが、ファイルデータの一部分を見る機会があったとしても、意味のないデータだけであり、秘密キーを得るユーザのみが、正常にダウンロードを行うことができる。   Further, according to the present embodiment, the stored data is distributed to the distributed storage through processes such as being blocked by the device and being encrypted, whereby the security is increased to a very high level. Enhanced, the user's file data cannot be seen by anyone else in the network. Further, since the data actually stored by each node is a part of the file and is stored in an encrypted manner thereon, the data can be more securely protected. Even if the user who provided the storage node has a chance to see a part of the file data, only the meaningless data can be normally downloaded only by the user who obtains the secret key.

本実施形態によれば、ファイルデータをダウンロード中に、分割された破片データが再編成されるので、速度が集中型ストレージよりもはるかに速くなる。すなわち、1つのファイルが多くの破片に分散されて世界各地のストレージノードに保存されており、ユーザがファイルをダウンロードしようとすると、該当するアドレス(ハッシュ値)のみ検索するだけで、各ストレージノードから同時にデータを取得することができる。そのため、集中型ストレージよりスピードが速くなります。また、データ伝送速度に関しても、ユーザがデータを読み取る必要がある場合、全ての保存者が同時にユーザのために自分の保存したデータを送信し、アプリケーションが受信した後自動的に合成を行う。したがって、ユーザのダウンロード速度は、主にネットワークのダウンロード帯域幅により決まる。そのため、今後急激な成長を遂げる5G技術などにより更なるデータ伝送速度が達成される。   According to the present embodiment, the divided fragment data is reorganized while downloading the file data, so that the speed is much faster than that of the centralized storage. In other words, one file is distributed in many pieces and stored in storage nodes all over the world. When a user attempts to download a file, the user only needs to search for a corresponding address (hash value), and each storage node sends the file. Data can be acquired at the same time. Therefore, it is faster than centralized storage. Regarding the data transmission speed, when the user needs to read the data, all the custodians simultaneously transmit their stored data for the user, and automatically synthesize after receiving the data. Therefore, the download speed of the user is mainly determined by the download bandwidth of the network. Therefore, further data transmission speeds can be achieved by 5G technology and the like, which will rapidly grow in the future.

また、本実施形態によれば、基準化された基盤技術のプラットフォームの提供を通じて、サポート基準ツールを、分散式資源を必要としているユーザに提供できる。このプラットフォームにより自分のDAPP(decentralized application:分散型アプリケーション)を開発することができる。そして、サーバやPC、モバイルストレージなどの集中型ストレージと比較して、本実施例のP2P分散型ストレージは、ストレージとインターネットの効率を向上させ、分散型技術を通じてストレージの容量とネットワークリソースの浪費を解決した。すなわち、データの自動分配、柔軟な拡張の実現、運営コストの低減、資源浪費を避けることができた。例えば、それに対するコストは従来のクラウドストレージだと10TM(Translation Memory)あたり月間コストは100ドルですが、本実施形態のP2P分散型ストレージに以降することによって月間コストを1/5に抑えることができた。   In addition, according to the present embodiment, a support reference tool can be provided to a user who needs distributed resources by providing a standardized platform of a basic technology. With this platform, you can develop your own DAPP (decentralized application). Compared with centralized storage such as servers, PCs, and mobile storages, the P2P distributed storage of the present embodiment improves the efficiency of storage and the Internet and reduces storage capacity and network resource waste through distributed technology. Settled. In other words, automatic distribution of data, realization of flexible expansion, reduction of operating costs, and waste of resources were avoided. For example, the cost for the conventional cloud storage is $ 100 per 10TM (Translation Memory), but the monthly cost can be reduced to 1/5 by using the P2P distributed storage of this embodiment. Was.

さらに詳細には、例えば、DHT(Distributed Hash Table:分散型ハッシュテーブル)を用いることで、Hashキー値によってユニークと識別することできる情報を、ある条件/プロトコルに従って複数のノードに保存される。これにより中央集権型サーバなどの単一故障状態でネットワーク全体が麻痺することを効果的に避けることができる。中央ノードサーバと違って、DHTによるネットワーク内の各ノードはネットワーク全体の情報を維持する必要がなく、隣接する後続ノード情報を保存するだけなので、帯域幅の占有および資源消費を大幅に減少する。また、DHTによるネットワークはキーワードの最も近いノードに冗長データもバックアップし、単一ノードの障害を回避できる。   More specifically, for example, by using a DHT (Distributed Hash Table), information that can be uniquely identified by a Hash key value is stored in a plurality of nodes according to a certain condition / protocol. This can effectively prevent the entire network from being paralyzed by a single failure state of a centralized server or the like. Unlike the central node server, each node in the network with DHT does not need to maintain the information of the whole network, but only stores the information of the adjacent subsequent nodes, so that the bandwidth occupation and the resource consumption are greatly reduced. In addition, the network based on DHT also backs up redundant data at the node closest to the keyword, and can avoid failure of a single node.

[第4実施形態]
次に、本発明の第4実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第3実施形態と比べると、それぞれ独立したクライアント端末とクライアントアプリケーションを有するアプリケーションサーバとを有する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
[Fourth embodiment]
Next, an information processing system according to a fourth embodiment of the present invention will be described. The information processing system according to the present embodiment is different from the third embodiment in that it has an independent client terminal and an application server having a client application. Other configurations and operations are the same as those of the second embodiment, and thus the same configurations and operations are denoted by the same reference numerals and detailed description thereof will be omitted.

《情報処理システムの構成》
図26は、本実施形態に係る情報処理システム2600の構成を示すブロック図である。図26においては、情報処理システム2600がアプリケーションサーバ2633を備え、アプリケーションサーバ2633が、データ保存処理、リスト保存処理、リスト検索処理およびデータ取得処理を含む処理を実行する。
《Configuration of information processing system》
FIG. 26 is a block diagram illustrating a configuration of an information processing system 2600 according to the present embodiment. In FIG. 26, the information processing system 2600 includes an application server 2633, and the application server 2633 executes processing including data saving processing, list saving processing, list search processing, and data acquisition processing.

図26においては、クライアントアプリケーション232がアプリケーションサーバ2633に変更されている。   In FIG. 26, the client application 232 has been changed to an application server 2633.

なお、図2や図26においては、クライアントアプリケーション232やアプリケーションサーバ2633のそれぞれがファイルの保存や取得の全機能を果たすように図示しているが、これらの機能をクライアント端末203の処理能力に応じて振り分けるよう構成してもよい。   2 and 26, the client application 232 and the application server 2633 are shown to perform all functions of saving and acquiring files, but these functions are performed according to the processing capability of the client terminal 203. You may be comprised so that it may be distributed.

本実施形態によれば、処理能力の比較的低いクライアント端末であっても、あるいは、通信能力が比較的低いシステムであっても、ファイルの分散保存とその読み出し再生を行う情報処理システムが実現できる。   According to the present embodiment, an information processing system that performs distributed storage of files and read / playback of the files can be realized even for a client terminal having a relatively low processing capability or a system having a relatively low communication capability. .

[第5実施形態]
次に、本発明の第5実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第3実施形態および第4実施形態と比べると、クライアント端末、保存用ノードおよび検索用ノードが既存のIPアドレスを用いたHTTPに代わるHashアドレスを用いたプロトコルで通信する点で異なる。その他の構成および動作は、第3実施形態または第4実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
[Fifth Embodiment]
Next, an information processing system according to a fifth embodiment of the present invention will be described. The information processing system according to the present embodiment is different from the third and fourth embodiments in that the client terminal, the storage node, and the search node use a Hash address instead of an HTTP using an existing IP address. They differ in that they communicate using protocols. Other configurations and operations are the same as those of the third embodiment or the fourth embodiment. Therefore, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof will be omitted.

《情報処理システムの構成》
図27は、本実施形態に係る情報処理システム2700の構成を示すブロック図である。図27においては、Hashアドレスを用いたプロトコルをIPWBで示している。すなわち、プロトコルとしてIPWB://…を用いている。
《Configuration of information processing system》
FIG. 27 is a block diagram illustrating a configuration of an information processing system 2700 according to the present embodiment. In FIG. 27, the protocol using the Hash address is indicated by IPWB. That is, IPWB: // is used as the protocol.

図27の情報処理システム2700においては、保存用ネットワーク2701と、検索用ネットワーク2702と、クライアントアプリケーション2732との間において、IPWB://…で表現されるHashアドレスによるP2P通信が可能となっている。   In the information processing system 2700 of FIG. 27, P2P communication using a hash address represented by IPWB: // is enabled between the storage network 2701, the search network 2702, and the client application 2732. .

本実施形態によれば、非集権分散ネットワークによる分散型ストレージが実現される。すなわち、本実施形態は、多数のP2P接続を同時に転送することができる。このような動的な柔軟性と展延性により、システムのスケーラビリティが拡張上限なしに実現する。そして、将来的に、本実施形態のシステムは、P2P分散型クラウドストレージのみの提供だけではなく、そのストレージを利用したWebページを開設することも可能になる。すなわち、本実施形態が提供するプラットフォームにおいては、ユーザ自らがP2P分散ストレージのサービス事業者になることができる。サービス事業者は、本実施形態のブロックチェーンを利用し、独自サービスの決済で利用するトークンを発行することができる。そして、トークンの発行者は、ストレージの利用料金体系や、ストレージ容量提供者への報酬体系を自由に設定することにより、サービスにオリジナリティを出すこともできる。   According to the present embodiment, a distributed storage using a decentralized distributed network is realized. That is, the present embodiment can simultaneously transfer a large number of P2P connections. With such dynamic flexibility and extensibility, the scalability of the system is achieved without an extended upper limit. In the future, the system according to the present embodiment will not only provide only the P2P distributed cloud storage, but also will be able to open a web page using the storage. That is, in the platform provided by the present embodiment, the user himself can be a service provider of the P2P distributed storage. The service provider can use the block chain of the present embodiment to issue a token to be used in the settlement of the unique service. Then, the token issuer can give originality to the service by freely setting a storage usage fee system and a reward system for the storage capacity provider.

[他の実施形態]
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の技術的範囲で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の技術的範囲に含まれる。
[Other embodiments]
Although the present invention has been described with reference to the exemplary embodiments, the present invention is not limited to the above exemplary embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the technical scope of the present invention. Further, a system or an apparatus in which different features included in each embodiment are combined in any way is also included in the technical scope of the present invention.

また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に供給され、内蔵されたプロセッサによって実行される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、プログラムを実行するプロセッサも本発明の技術的範囲に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の技術的範囲に含まれる。   Further, the present invention may be applied to a system including a plurality of devices, or may be applied to a single device. Further, the present invention is also applicable to a case where an information processing program for realizing the functions of the embodiments is supplied to a system or an apparatus and executed by a built-in processor. Therefore, in order to implement the functions of the present invention on a computer, a program installed on the computer, a medium storing the program, a WWW (World Wide Web) server for downloading the program, and a processor for executing the program are both used. Included in the technical scope of the invention. In particular, at least a non-transitory computer readable medium storing a program for causing a computer to execute the processing steps included in the above-described embodiments is included in the technical scope of the present invention.

Claims (12)

ファイルを分散保存するための複数の保存用ノードを含む保存用ネットワークと、
前記複数の保存用ノードの識別情報を含むロケーションリストをブロックチェーン化しつつ保存する検索用ノードを複数含む検索用ネットワークと、
前記ファイルを複数の部分データに分割し、前記複数の部分データのそれぞれを前記複数の保存用ノードに含まれる少なくとも2つの保存用ノードに送信して保存させる保存処理部と、
を備え、
前記検索用ノードは、前記部分データを保存した前記保存用ノードの識別情報を用いて、前記ロケーションリストを更新する更新処理部を備えた情報処理システム。
A storage network including a plurality of storage nodes for storing files in a distributed manner;
A search network including a plurality of search nodes for saving while blockchaining a location list including identification information of the plurality of storage nodes,
A storage processing unit that divides the file into a plurality of partial data, and transmits and stores each of the plurality of partial data to at least two storage nodes included in the plurality of storage nodes,
With
The information processing system, wherein the search node includes an update processing unit that updates the location list by using identification information of the storage node that stores the partial data.
前記更新処理部は、さらに、分散保存したファイルを識別するファイル識別情報と、前記部分データを識別する部分データ識別情報とを用いて、前記ロケーションリストを更新する請求項1に記載の情報処理システム。 2. The information processing system according to claim 1, wherein the update processing unit further updates the location list using file identification information for identifying a file stored in a distributed manner and partial data identification information for identifying the partial data. 3. . 前記保存処理部は、前記複数の保存用ノードから、各々の保存用ノードの信頼性を考慮して前記少なくとも2つの保存用ノードを選択する請求項1または2に記載の情報処理システム。   The information processing system according to claim 1, wherein the storage processing unit selects the at least two storage nodes from the plurality of storage nodes in consideration of reliability of each of the storage nodes. 前記検索用ノードは、前記ロケーションリストに基づいて、前記複数の部分データのそれぞれが保存されている前記少なくとも2つの保存用ノードを検索する検索処理部をさらに備え、
前記少なくとも2つの保存用ノードから前記複数の部分データのそれぞれを取得し、前記複数の部分データを合成して前記ファイルを復元する復元処理部をさらに備えた請求項1乃至3のいずれか1項に記載の情報処理システム。
The search node further includes a search processing unit that searches the at least two storage nodes in which each of the plurality of partial data is stored, based on the location list,
4. The apparatus according to claim 1, further comprising a restoration processing unit configured to acquire each of the plurality of partial data from the at least two storage nodes, combine the plurality of partial data, and restore the file. 5. An information processing system according to claim 1.
前記保存処理部は、前記ファイルを暗号化して得られた暗号化ファイルを前記複数の部分データに分割し、前記複数の部分データのそれぞれを前記少なくとも2つの保存用ノードに保存させる請求項4に記載の情報処理システム。 5. The storage processing unit according to claim 4, wherein the encrypted file obtained by encrypting the file is divided into the plurality of partial data , and each of the plurality of partial data is stored in the at least two storage nodes. The information processing system as described. 前記複数の保存用ノードに対して報酬を提供する報酬提供部をさらに備え、
前記報酬提供部は、
前記部分データを保存した前記少なくとも2つの保存用ノードに対して第1報酬を提供する第1報酬提供部と、
前記復元処理部が前記ファイルを復元した場合に、前記ファイルの一部である前記部分データを保存していた前記少なくとも2つの保存用ノードに対して、第2報酬を提供する第2報酬提供部と
有する請求項4または5に記載の情報処理システム。
A reward providing unit that provides a reward to the plurality of storage nodes,
The reward providing unit,
A first reward providing unit that provides a first reward to the at least two storage nodes that have stored the partial data;
A second reward providing unit that provides a second reward to the at least two storage nodes that have stored the partial data that is a part of the file when the restoration processing unit restores the file. and,
The information processing system according to claim 4 or 5 having.
前記第2報酬は前記第1報酬より多い請求項6に記載の情報処理システム。   The information processing system according to claim 6, wherein the second reward is larger than the first reward. 前記保存処理部および前記復元処理部の少なくともいずれか1つを実現するクライアント端末をさらに備えた請求項4に記載の情報処理システム。   The information processing system according to claim 4, further comprising a client terminal that implements at least one of the storage processing unit and the restoration processing unit. ファイルの分割により生成された複数の部分データを保存するための複数の保存用ノードを含む保存用ネットワークと、
前記複数の保存用ノードの識別情報を含むロケーションリストをブロックチェーン化しつつ保存する検索用ノードを複数含む検索用ネットワークと、
前記複数の部分データを前記保存用ノードから取得し、前記複数の部分データを合成して前記ファイルを復元する復元処理部と、
を備え、
前記保存用ネットワークは、ファイルの分割により生成された前記複数の部分データを、前記複数の保存用ノードに保存すると共に、前記ファイルの分割により生成された前記複数の部分データのそれぞれを、少なくとも2つの保存用ノードに分けて保存し、
前記検索用ノードは、前記ロケーションリストに基づいて、前記複数の部分データが保存されている前記保存用ノードを検索する検索処理部を備えた情報処理システム。
A storage network including a plurality of storage nodes for storing a plurality of partial data generated by dividing the file,
A search network including a plurality of search nodes for saving while blockchaining a location list including identification information of the plurality of storage nodes,
A restoration processing unit that acquires the plurality of partial data from the storage node and combines the plurality of partial data to restore the file;
With
The storage network stores the plurality of partial data generated by dividing the file in the plurality of storage nodes, and stores each of the plurality of partial data generated by dividing the file by at least two. Divided into two storage nodes,
The information processing system, comprising: a search processing unit that searches the storage node storing the plurality of partial data based on the location list.
ファイルを分散保存するための複数の保存用ノードを含む保存用ネットワークと、
前記複数の保存用ノードの識別情報を含むロケーションリストをブロックチェーン化しつつ保存する検索用ノードを複数含む検索用ネットワークと、
を備える情報処理システムの情報処理方法であって、
前記ファイルを複数の部分データに分割し、前記複数の部分データのそれぞれを前記複数の保存用ノードに含まれる少なくとも2つの保存用ノードに送信して保存させる保存処理ステップと、
前記部分データを保存した前記保存用ノードの識別情報を用いて、前記ロケーションリストを更新する更新処理ステップと、
を含む情報処理方法。
A storage network including a plurality of storage nodes for storing files in a distributed manner;
A search network including a plurality of search nodes for saving while blockchaining a location list including identification information of the plurality of storage nodes,
An information processing method for an information processing system comprising:
A storage processing step of dividing the file into a plurality of partial data, transmitting each of the plurality of partial data to at least two storage nodes included in the plurality of storage nodes, and storing the transmitted partial data;
An update processing step of updating the location list using identification information of the storage node that has stored the partial data;
An information processing method including:
ファイルの分割により生成された複数の部分データを保存するための複数の保存用ノードを含む保存用ネットワークと、
前記複数の保存用ノードの識別情報を含むロケーションリストをブロックチェーン化しつつ保存する検索用ノードを複数含む検索用ネットワークと、
を備える情報処理システムの情報処理方法であって、
前記保存用ネットワークは、ファイルの分割により生成された前記複数の部分データを、前記複数の保存用ノードに保存すると共に、前記ファイルの分割により生成された前記複数の部分データのそれぞれを、少なくとも2つの保存用ノードに分けて保存し、
前記ロケーションリストに基づいて、前記複数の部分データが保存されている前記保存用ノードを検索する検索処理ステップと、
前記複数の部分データを前記保存用ノードから取得し、前記複数の部分データを合成して前記ファイルを復元する復元処理ステップと、
を含む情報処理方法。
A storage network including a plurality of storage nodes for storing a plurality of partial data generated by dividing the file,
A search network including a plurality of search nodes for saving while blockchaining a location list including identification information of the plurality of storage nodes,
An information processing method for an information processing system comprising:
The storage network stores the plurality of partial data generated by dividing the file in the plurality of storage nodes, and stores each of the plurality of partial data generated by dividing the file by at least two. Divided into two storage nodes,
Based on the location list, a search processing step for searching for the storage node in which the plurality of partial data is stored,
A restoration processing step of acquiring the plurality of partial data from the storage node and combining the plurality of partial data to restore the file;
An information processing method including:
ファイルの分割により生成された複数の部分データのそれぞれを保存する、少なくとも2つの保存用ノードから、前記複数の部分データを取得して合成するためのアプリケーションプログラムであって、
ファイルのハッシュ値であるファイルハッシュを取得するハッシュ取得ステップと、
前記ファイルハッシュを検索用ノードに送信し、対応するファイルリストを検索させるファイルハッシュ送信ステップと、
受信した前記ファイルハッシュに対応する前記ファイルリストを、前記検索用ノードから取得するファイルリスト取得ステップと、
前記ファイルリストが示す前記複数の部分データを、前記ファイルリストに指定される、前記保存用ノードから取得する部分データ取得ステップと、
前記保存用ノードから取得した前記複数の部分データを合成して、前記ファイルを復元する復元処理ステップと、
をコンピュータに実行させるアプリケーションプログラム。
An application program for acquiring and synthesizing the plurality of partial data from at least two storage nodes, wherein each of the plurality of partial data generated by dividing the file is stored,
A hash obtaining step of obtaining a file hash which is a hash value of the file;
A file hash transmission step of transmitting the file hash to a search node and causing a corresponding file list to be searched ;
File list acquisition step of acquiring the file list corresponding to the received file hash from the search node ,
A plurality of partial data indicated by the file list, specified in the file list, a partial data acquisition step of acquiring from the storage node,
A restoration processing step of combining the plurality of partial data acquired from the storage node and restoring the file;
An application program that causes a computer to execute
JP2019223803A 2019-12-11 2019-12-11 Distributed storage platform and application program realized by blockchain technology and distributed storage technology Active JP6671617B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019223803A JP6671617B1 (en) 2019-12-11 2019-12-11 Distributed storage platform and application program realized by blockchain technology and distributed storage technology
JP2020019041A JP7462922B2 (en) 2019-12-11 2020-02-06 Distributed storage platform and application program realized by blockchain technology and distributed storage technology

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019223803A JP6671617B1 (en) 2019-12-11 2019-12-11 Distributed storage platform and application program realized by blockchain technology and distributed storage technology

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020019041A Division JP7462922B2 (en) 2019-12-11 2020-02-06 Distributed storage platform and application program realized by blockchain technology and distributed storage technology

Publications (2)

Publication Number Publication Date
JP6671617B1 true JP6671617B1 (en) 2020-03-25
JP2021093016A JP2021093016A (en) 2021-06-17

Family

ID=70000844

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019223803A Active JP6671617B1 (en) 2019-12-11 2019-12-11 Distributed storage platform and application program realized by blockchain technology and distributed storage technology

Country Status (1)

Country Link
JP (1) JP6671617B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767250A (en) * 2020-06-10 2020-10-13 钛星投资(深圳)有限公司 Decentralized storage method, downloading method and storage system
JP2022048798A (en) * 2020-09-15 2022-03-28 株式会社デジタルアセットマーケッツ Flagship platform, token issuance, and platform for amortization
JP2023523611A (en) * 2020-06-28 2023-06-06 北京沃▲東▼天▲駿▼信息技▲術▼有限公司 Methods, systems and apparatus for storing blockchain-based data

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101781583B1 (en) * 2016-08-31 2017-09-27 서강대학교산학협력단 File management and search system based on block chain and file management and search method
JP2018190227A (en) * 2017-05-09 2018-11-29 野田 真一 Network distributed duplication exclusion file storage system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767250A (en) * 2020-06-10 2020-10-13 钛星投资(深圳)有限公司 Decentralized storage method, downloading method and storage system
JP2023523611A (en) * 2020-06-28 2023-06-06 北京沃▲東▼天▲駿▼信息技▲術▼有限公司 Methods, systems and apparatus for storing blockchain-based data
JP7420972B2 (en) 2020-06-28 2024-01-23 北京沃▲東▼天▲駿▼信息技▲術▼有限公司 Methods, systems and apparatus for storing blockchain-based data
JP2022048798A (en) * 2020-09-15 2022-03-28 株式会社デジタルアセットマーケッツ Flagship platform, token issuance, and platform for amortization
JP7440023B2 (en) 2020-09-15 2024-02-28 株式会社デジタルアセットマーケッツ Core platform and platform for token issuance and redemption

Also Published As

Publication number Publication date
JP2021093016A (en) 2021-06-17

Similar Documents

Publication Publication Date Title
EP3673620B1 (en) Shared blockchain data storage
JP6671617B1 (en) Distributed storage platform and application program realized by blockchain technology and distributed storage technology
US8051205B2 (en) Peer-to-peer distributed storage
CN113572618B (en) Fabric and IPFS combined decentralized storage system and data storage method thereof
CN109522330B (en) Cloud platform data processing method, device, equipment and medium based on block chain
KR20200074911A (en) Perform recovery process for network nodes in distributed systems
CN101964080B (en) Method and system for storing a file as slices on storage elements
CN111405019B (en) Data processing method, data processing device, computer equipment and storage medium
US20120011200A1 (en) Method and apparatus for data storage in a peer-to-peer network
US20080147821A1 (en) Managed peer-to-peer content backup service system and method using dynamic content dispersal to plural storage nodes
Ali et al. Blockstack: A new decentralized internet
CN110399338A (en) Distributed document directory system and method, cloud storage service device based on block chain
JP5298200B2 (en) Decomposition / reconstruction in data transfer storage
US11005663B2 (en) Secure audit scheme in a distributed data storage system
US10534667B2 (en) Segmented cloud storage
Kan et al. MTFS: Merkle-tree-based file system
CN102752399A (en) Peer-to-peer security file sharing method based on cloud storage
CN111198784B (en) Data storage method and device
Chowdhury et al. Secured blockchain based decentralised internet: a proposed new internet
JP7462922B2 (en) Distributed storage platform and application program realized by blockchain technology and distributed storage technology
Ali et al. Blockstack technical whitepaper
CN110992182B (en) Transaction method and system of blockchain wallet
US12058270B2 (en) Data protection on distributed data storage (DDS) protection networks
JP7119324B2 (en) Information processing device and information processing program
Durao et al. Usto. re: A private cloud storage software system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191211

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191211

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20191224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200206

R150 Certificate of patent or registration of utility model

Ref document number: 6671617

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250