WO2020241447A1 - Update device, update method, update program, and data structure - Google Patents

Update device, update method, update program, and data structure Download PDF

Info

Publication number
WO2020241447A1
WO2020241447A1 PCT/JP2020/020133 JP2020020133W WO2020241447A1 WO 2020241447 A1 WO2020241447 A1 WO 2020241447A1 JP 2020020133 W JP2020020133 W JP 2020020133W WO 2020241447 A1 WO2020241447 A1 WO 2020241447A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
update
distributed
management system
terminal
Prior art date
Application number
PCT/JP2020/020133
Other languages
French (fr)
Japanese (ja)
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 US17/608,352 priority Critical patent/US20220253230A1/en
Publication of WO2020241447A1 publication Critical patent/WO2020241447A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files

Definitions

  • the present invention relates to a technique for updating a file managed by a distributed file management system.
  • IPFS InterPlanetary File System
  • Non-Patent Document 1 IPFS (InterPlanetary File System)
  • files are divided into chunks of a certain size and managed by terminals belonging to IPFS. Each chunk is given an ID generated from the hash value. Chunks that make up the same file are organized in a tree. The root chunk contains links to each chunk that makes up the file. The ID of the chunk that is the root becomes the ID that indicates the file. The number of divisions is determined by the chunk setting size and file size. If the chunk size is larger than the file size, the file will not be split. Here, it is expressed as a chunk even if it is not divided.
  • the blockchain has extremely strong resistance to tampering. Focusing on this point, it is conceivable that the blockchain and the distributed file management system will be linked. When linking the blockchain and the distributed file management system, the distributed file management system needs to keep not only the updated file but also the unupdated file as a record.
  • the present invention has been made in view of the above, and an object of the present invention is to reduce the average file size per file managed by the entire file system.
  • the update device of one aspect of the present invention is an update device that registers an update file that updates the original file registered in the distributed file management system in the distributed file management system, and is a difference between the original file and the update file.
  • a difference generation unit that generates data, a route object generation unit that generates a route object including a link to the original file and a link to the difference data, and the difference data and the root object are registered in the distributed file management system. It is characterized in that it is provided with a file management control unit.
  • the update method of one aspect of the present invention is an update method by an update device that registers an update file that updates the original file registered in the distributed file management system in the distributed file management system, and the original file and the update file.
  • a step of generating the difference data with the file a step of generating a root object including a link to the original file and a link to the difference data, and a step of registering the difference data and the root object in the distributed file management system. And, characterized by having.
  • the data structure of one aspect of the present invention is a data structure of an update file obtained by updating the original file, and includes a link to the original file and a link to the difference data between the original file and the update file.
  • the link to the source file is a link to the data structure of the other update file, and the computer will take the source file from the link to the source file. It is used in the process of acquiring, acquiring the difference data from the link to the difference data, applying the difference data to the original file, and acquiring the update file, and the link to the original file is the other update. If it is a link to a data structure to a file, the computer is characterized by recursively processing the data structure of the other update file.
  • the average file size per file managed by the entire file system can be reduced.
  • FIG. 1 is a diagram showing an overall configuration of the distributed file management system of the first embodiment.
  • FIG. 2 is a diagram for explaining the configuration of files managed by the distributed file management system of the first embodiment.
  • FIG. 3 is a diagram showing an example of the data structure of the root object.
  • FIG. 4 is a diagram showing an example of a data structure managed by the distributed file management system of the first embodiment.
  • FIG. 5 is a diagram showing a configuration of a creator terminal and an updater terminal of the distributed file management system of the first embodiment.
  • FIG. 6 is a sequence diagram showing a flow of processing for registering the file generated in the first embodiment.
  • FIG. 7 is a sequence diagram showing a flow of processing for registering the updated file in the first embodiment.
  • FIG. 1 is a diagram showing an overall configuration of the distributed file management system of the first embodiment.
  • FIG. 2 is a diagram for explaining the configuration of files managed by the distributed file management system of the first embodiment.
  • FIG. 3 is a diagram showing an example of the data structure
  • FIG. 8 is a diagram showing the overall configuration of the distributed file management system and the blockchain system of the second embodiment.
  • FIG. 9 is a diagram showing an example of a data structure managed by the distributed file management system of the second embodiment.
  • FIG. 10 is a diagram showing an example of the data structure of the root object.
  • FIG. 11 is a diagram showing an example of a data structure managed by the distributed file management system of the second embodiment.
  • FIG. 12 is a diagram showing a configuration of a creator terminal and an updater terminal of the distributed file management system of the second embodiment.
  • FIG. 13 is a sequence diagram showing a flow of processing for registering the file generated in the second embodiment.
  • FIG. 14 is a sequence diagram showing a flow of processing for registering the updated file in the second embodiment.
  • the distributed file management system 100 of the first embodiment shown in FIG. 1 is a decentralized distributed file management system in which terminals belonging to the distributed file management system 100 manage files in a distributed manner.
  • the distributed file management system 100 divides a file into a certain size and manages the file as a directed acyclic graph (DAG) of chunks after the division.
  • DAG directed acyclic graph
  • the hash value of the DAG root becomes the file ID.
  • the distributed file management system 100 may also manage files in a distributed manner in the same manner as in Non-Patent Document 1.
  • the root object R2 is an object for acquiring the file F2, and holds a link to the original file F1 and a link to the difference file D2.
  • the root object has, for each of the original file and the difference file, the type of the linked file and the ID of the file on the distributed file management system 100 (for example, the hash of the file). Use the value), and include the size of the file.
  • the root object contains information about the difference algorithm used to generate the difference file for the difference file. In the distributed file management system 100, the substance of the file can be acquired by using the ID of the file. The root object holds the ID of the file as a link to the file.
  • the ID of the root object R2 registered in the distributed file management system 100 is treated as the ID of the updated file F2. If the ID of the root object R2 is known, the file F2 can be acquired.
  • a terminal belonging to the distributed file management system 100 (either the creator terminal 1, the updater terminal 2, or the file management control terminal 3) acquires the file F2
  • the distributed file management system uses the ID of the root object R2. Acquire the root object R2 from 100.
  • the terminal acquires the original file F1 and the difference file D2 from the distributed file management system 100 by using the ID of the original file and the ID of the difference file held by the root object R2.
  • the terminal obtains the file F2 by applying the difference file D2 to the original file F1.
  • the distributed file management client 11 includes a distributed file storage unit 111 and a distributed file management control unit 112.
  • the distributed file storage unit 111 stores files that are distributed and managed by the distributed file management system 100 and information necessary for distributed management.
  • the distributed file storage unit 111 stores chunks in which a file is divided into predetermined sizes, and routing information in which the ID of the file is associated with the identifier of the terminal having the file.
  • the routing information is distributed and stored in each terminal belonging to the distributed file management system 100.
  • the distributed file management control unit 112 registers files in the distributed file management system 100, acquires files from the distributed file management system 100, and manages information stored in the distributed file storage unit 111. For example, when registering the file created by the file creation unit 121 in the distributed file management system 100, the distributed file management control unit 112 divides the file into chunks of a predetermined size, collects them in a DAG, and acquires a file ID. .. The distributed file management control unit 112 stores chunks in the distributed file storage unit 111, and notifies the distributed file management system 100 of the file ID and the identifier of the terminal itself. As a result, the distributed file management system 100 knows the terminal that holds the substance of the file specified by the file ID. The distributed file management control unit 112 may notify the distributed file management system 100 of not only the IDs of the root chunks that are the IDs of the files but also the IDs of all the chunks that make up the file.
  • the root object creation unit 223 generates a root object that links the original file and the difference file registered in the distributed file management system 100. Specifically, the root object creation unit 223 generates a root object including the ID of the original file and the ID of the difference file. Regarding the difference file, the root object creation unit 223 records the information of the difference algorithm used in the root object. When the difference file is the update file itself, the root object creation unit 223 records in the root object that the file associated with the root object is the update file. For example, if there is no description of the difference algorithm, it may be determined that the associated file is not a difference file but an update file. The root object is registered in the distributed file management system 100 by the distributed file management client 21.
  • step S102 the creator terminal 1 registers the file in the distributed file management system 100. Specifically, the creator terminal 1 divides the file into chunks to form a DAG, and acquires the ID of the root chunk as the file ID. The distributed file storage unit 111 records the divided chunks and the IDs of those chunks. The creator terminal 1 notifies the terminal belonging to the distributed file management system 100 of the file ID and the identifier of the creator terminal 1.
  • step S103 the updater terminal 2 receives the notification of step S102.
  • Other terminals belonging to the distributed file management system 100 may also receive the notification in step S102.
  • the file created by the creator terminal 1 is registered in the distributed file management system 100.
  • a terminal belonging to the distributed file management system 100 can acquire a file from the distributed file management system 100 by using the file ID.
  • step S201 the updater terminal 2 updates the original file.
  • step S202 the updater terminal 2 generates a difference file between the original file and the updated file.
  • step S203 the updater terminal 2 creates a root object that links the original file and the difference file.
  • the updater terminal 2 creates a root object that holds the ID of the original file and the ID of the difference file. If the difference file has almost the same size as the update file when the difference file is acquired, the update file is linked to the root object together with the original file instead of the difference file.
  • step S204 the updater terminal 2 registers the difference file and the root object in the distributed file management system 100. Specifically, the updater terminal 2 obtains the hash value of the difference file and uses it as the ID of the difference file, and obtains the hash value of the root object and uses it as the ID of the root object. The updater terminal 2 divides into chunks if necessary, and stores the difference file and the root object in the distributed file storage unit 211. The updater terminal 2 notifies the terminal belonging to the distributed file management system 100 of the ID of the difference file, the ID of the root object, and the identifier of the updater terminal 2.
  • step S205 the creator terminal 1 receives the notification of step S204.
  • Other terminals belonging to the distributed file management system 100 may also receive the notification in step S204.
  • step S206 the creator terminal 1 stores the routing information in the distributed file storage unit 111 if there is routing information to be held by the creator terminal 1 based on the notified content.
  • the updated file of the updater terminal 2 is registered in the distributed file management system 100.
  • the terminal belonging to the distributed file management system 100 can acquire the updated file from the distributed file management system 100 by using the ID of the root object.
  • the difference creation unit 222 sets the original file and the updated file.
  • the difference file is generated
  • the root object creation unit 223 generates a root object including the ID of the original file and the ID of the difference file
  • the distributed file management client 11 registers the difference file and the root object in the distributed file management system 100.
  • the difference file is registered in the distributed file management system 100 instead of the entire updated file, so that the average file size per file managed by the entire distributed file management system 100 can be reduced.
  • the creator terminal 1 and the updater terminal 2 of the second embodiment shown in FIG. 8 belong to the distributed file management system 100 and the blockchain system 200.
  • the distributed file management system 100 is the same as that of the first embodiment.
  • the blockchain system 200 of FIG. 8 includes a creator terminal 1, an updater terminal 2, and a blockchain control terminal 4.
  • the blockchain system 200 may include a plurality of blockchain control terminals 4.
  • the terminals belonging to the blockchain system 200 (creator terminal 1, updater terminal 2, and blockchain control terminal 4) are connected by P2P via the blockchain network and share blockchain data (distributed ledger) between the terminals. ..
  • the blockchain data is data in which blocks including transactions issued by a terminal belonging to the blockchain system 200 are connected.
  • a contract that manages the ID of the root object for obtaining the file registered in the distributed file management system 100 and the ID of the creator or updater of the file is registered in the blockchain system 200.
  • a contract is a mechanism for executing a program on the blockchain via a transaction. When a transaction for executing a contract is issued, the program is executed when the transaction is grouped into blocks in the blockchain system 200.
  • the authenticity of the creator and the updater is ensured by registering the ID of the root object and the information of the creator or the updater of the file that can be acquired from the root object in the blockchain system 200.
  • File management in the distributed file management system 100 of the second embodiment will be described with reference to FIGS. 9 and 10.
  • the root objects R1 to R5 include links to information files I1 to I5 and identifiers of contracts registered in the blockchain system 200.
  • the information file I1 is a file that holds information about the file.
  • Information about the file includes information about the creation, update, and rights of the file, such as, for example, the creator and updater of the file.
  • the terminal belonging to the blockchain system 200 can access the information registered in the contract by using the identifier of the contract.
  • the creator terminal 1 When the creator terminal 1 registers the file F1 in the distributed file management system 100, the creator terminal 1 has a link to the file F1 and a link to the information file I1 that holds information about the file F1 (for example, the ID of the creator of the file F1). , The root object R1 including the contract identifier is registered in the distributed file management system 100. The ID of the root object R1 is treated as the ID of the file F1.
  • the root object determines the type of the linked file, the ID of the file on the distributed file management system 100, and the size of the file for each of the original file, the difference file, and the information file. Including.
  • the root object contains the contract identifier as data.
  • the contents of the information files I1 to I5 may be included in the root object data.
  • the creator terminal 1 shown in FIG. 12 includes a distributed file management client 11, a file creation unit 121, a root object creation unit 123, and a blockchain client 13.
  • the distributed file management client 11 and the file creation unit 121 are the same as those in the first embodiment.
  • the file created by the file creation unit 121 is registered in the distributed file management system 100 by the distributed file management client 11.
  • the root object creation unit 123 generates a root object that holds a link to a file registered in the distributed file management system 100, information about the file, and a contract identifier.
  • the root object is registered in the distributed file management system 100 by the distributed file management client 11.
  • the root object creation unit 123 may create an information file that holds information about the file, the root object holds a link to the information file, and the distributed file management client 11 may register the information file in the distributed file management system 100. ..
  • the blockchain client 13 includes a blockchain storage unit 131 and a blockchain control unit 132.
  • the blockchain storage unit 131 stores blockchain data loosely synchronized with all terminals belonging to the blockchain system 200.
  • the blockchain control unit 132 autonomously and decentrally cooperates with the terminals belonging to the blockchain system 200 to maintain the blockchain system.
  • the blockchain client 13 registers the ID of the root object and the ID of the creator in the blockchain system 200.
  • the updater terminal 2 shown in FIG. 12 includes a distributed file management client 21, a file update unit 221, a difference creation unit 222, a root object creation unit 223, and a blockchain client 23.
  • the distributed file management client 21, the file update unit 221 and the difference creation unit 222 are the same as those in the first embodiment.
  • the file updated by the file update unit 221 and the difference file generated by the difference creation unit 222 are registered in the distributed file management system 100 by the distributed file management client 21.
  • the root object creation unit 223 generates a root object that holds a link to the original file, a link to the difference file, information about the updated file, and a contract identifier.
  • the root object is registered in the distributed file management system 100 by the distributed file management client 21.
  • the root object creation unit 223 creates an information file that holds information about the updated file, the root object holds a link to the information file, and the distributed file management client 21 registers the information file in the distributed file management system 100. You may.
  • the blockchain client 23 includes a blockchain storage unit 231 and a blockchain control unit 232.
  • the blockchain storage unit 231 and the blockchain control unit 232 are the same as the blockchain storage unit 131 and the blockchain control unit of the creator terminal 1.
  • the blockchain client 23 registers the ID of the root object and the ID of the updater in the blockchain system 200.
  • the blockchain client 23 checks whether the ID of the root object of the file acquired from the distributed file management system 100 and the ID of the creator or updater of the file are registered in the blockchain system 200, and the creator of the file. Alternatively, the authenticity of the updater may be confirmed.
  • the blockchain control terminal 4 has the same functions as the blockchain clients 13 and 23.
  • Each part included in the creator terminal 1 and the updater terminal 2 may be configured by a computer equipped with an arithmetic processing unit, a storage device, and the like, and the processing of each part may be executed by a program.
  • This program is stored in a storage device included in the creator terminal 1 and the updater terminal 2, and can be recorded on a recording medium such as a magnetic disk, an optical disk, or a semiconductor memory, or can be provided through a network.
  • step S301 the creator terminal 1 creates a file.
  • step S304 the creator terminal 1 registers the file and the root object in the distributed file management system 100. Specifically, the creator terminal 1 is divided into chunks if necessary, and the file and the root object are stored in the distributed file storage unit 111, and the file ID, the root object ID, and the creator terminal 1 are stored. Notify the terminal belonging to the distributed file management system 100 of the identifier.
  • step S305 the updater terminal 2 receives the notification of step S304.
  • step S306 the updater terminal 2 stores the routing information in the distributed file storage unit 211 if there is routing information to be held by the updater terminal 2 based on the notified content.
  • the file created by the creator terminal 1 is registered in the distributed file management system 100.
  • a terminal belonging to the distributed file management system 100 can acquire a file from the distributed file management system 100 by using the ID of the root object of the file.
  • the authenticity of the creator can be confirmed by checking that the ID of the root object and the ID of the creator are registered in the blockchain system 200.
  • step S401 the updater terminal 2 updates the original file.
  • step S404 the updater terminal 2 assigns the ID of the root object of the updated file and the ID of the updater to the contract and registers it.
  • the processing after step S405 may be stopped. For example, if the updater terminal 2 does not have the right to update the original file, the registration of the root object ID and the updater ID is rejected in the contract process.
  • step S405 the updater terminal 2 registers the difference file and the root object in the distributed file management system 100. Specifically, the updater terminal 2 is divided into chunks if necessary, and the difference file and the root object are stored in the distributed file storage unit 111, and the difference file ID, the root object ID, and the updater terminal are stored. Notify the terminal belonging to the distributed file management system 100 of the identifier of 2.
  • step S406 the creator terminal 1 receives the notification of step S405.
  • step S407 the creator terminal 1 stores the routing information in the distributed file storage unit 111 if there is routing information to be held by the creator terminal 1 based on the notified content.
  • the updated file of the updater terminal 2 is registered in the distributed file management system 100.
  • the terminal belonging to the distributed file management system 100 can acquire the updated file from the distributed file management system 100 by using the ID of the root object of the updated file.
  • a terminal belonging to both the distributed file management system 100 and the blockchain system 200 obtains the updater ID and the contract identifier from the root object acquired from the distributed file management system 100, and obtains the updater ID and the root object in the contract.
  • the authenticity of the updater can be confirmed by checking whether or not the ID is registered.
  • the root object creation unit 223 generates a root object that holds the updater ID and the contract identifier, and the blockchain client 23 sets the contract with the root object ID.
  • the updater's ID By registering the updater's ID, it is possible to confirm the authenticity of the updater by checking that the root object ID and the updater's ID are registered in the blockchain system 200.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

According to the present invention, when a file after update, which is obtained after an original file is updated, is registered to a distributed file management system 100, a difference creation unit 222 creates a difference file between the original file and the file after update, a route object creation unit 223 creates a route object including an ID of the original file and an ID of the difference file, and a distributed file management client 11 registers the difference file and the route object to the distributed file management system 100.

Description

更新装置、更新方法、更新プログラム、及びデータ構造Update device, update method, update program, and data structure
 本発明は、分散ファイル管理システムで管理されるファイルを更新する技術に関する。 The present invention relates to a technique for updating a file managed by a distributed file management system.
 非中央集権型の分散ファイル管理システムとして、IPFS(InterPlanetary File System)が知られている(非特許文献1)。IPFSでは、ファイルは一定の大きさのチャンクに分割されて、IPFSに属する端末で管理される。各チャンクには、ハッシュ値から生成されるIDがつけられる。同じファイルを構成するチャンクはツリー状にまとめられる。ルートとなるチャンクには、ファイルを構成する各チャンクへのリンクが記載される。ルートとなるチャンクのIDがファイルを示すIDとなる。チャンクの設定サイズとファイルサイズにより分割数が決まる。チャンクサイズがファイルサイズに比べて大きい場合には、ファイルは分割されない。ここでは、分割されない場合も含めてチャンクと表現する。 IPFS (InterPlanetary File System) is known as a decentralized distributed file management system (Non-Patent Document 1). In IPFS, files are divided into chunks of a certain size and managed by terminals belonging to IPFS. Each chunk is given an ID generated from the hash value. Chunks that make up the same file are organized in a tree. The root chunk contains links to each chunk that makes up the file. The ID of the chunk that is the root becomes the ID that indicates the file. The number of divisions is determined by the chunk setting size and file size. If the chunk size is larger than the file size, the file will not be split. Here, it is expressed as a chunk even if it is not divided.
 ブロックチェーンは改ざんに対する極めて強固な耐性がある。この点に着目し、ブロックチェーンと分散ファイル管理システムとを連携されることが考えられる。ブロックチェーンと分散ファイル管理システムとを連携させる場合、分散ファイル管理システムは、更新後のファイルだけでなく、更新前のファイルも記録として保持し続ける必要がある。 The blockchain has extremely strong resistance to tampering. Focusing on this point, it is conceivable that the blockchain and the distributed file management system will be linked. When linking the blockchain and the distributed file management system, the distributed file management system needs to keep not only the updated file but also the unupdated file as a record.
 しかしながら、更新後のファイルを分散ファイル管理システムに新規に登録する方法では、系全体で管理するファイル容量が大きくなるという問題があった。 However, the method of newly registering the updated file in the distributed file management system has a problem that the file capacity managed by the entire system becomes large.
 本発明は、上記に鑑みてなされたものであり、ファイルシステム全体で管理する1ファイルあたりの平均ファイル容量を削減することを目的とする。 The present invention has been made in view of the above, and an object of the present invention is to reduce the average file size per file managed by the entire file system.
 本発明の一態様の更新装置は、分散ファイル管理システムに登録された元ファイルを更新した更新ファイルを前記分散ファイル管理システムに登録する更新装置であって、前記元ファイルと前記更新ファイルとの差分データを生成する差分生成部と、前記元ファイルへのリンクと前記差分データへのリンクを含むルートオブジェクトを生成するルートオブジェクト生成部と、前記差分データと前記ルートオブジェクトを前記分散ファイル管理システムに登録するファイル管理制御部と、を備えることを特徴とする。 The update device of one aspect of the present invention is an update device that registers an update file that updates the original file registered in the distributed file management system in the distributed file management system, and is a difference between the original file and the update file. A difference generation unit that generates data, a route object generation unit that generates a route object including a link to the original file and a link to the difference data, and the difference data and the root object are registered in the distributed file management system. It is characterized in that it is provided with a file management control unit.
 本発明の一態様の更新方法は、分散ファイル管理システムに登録された元ファイルを更新した更新ファイルを前記分散ファイル管理システムに登録する更新装置による更新方法であって、前記元ファイルと前記更新ファイルとの差分データを生成するステップと、前記元ファイルへのリンクと前記差分データへのリンクを含むルートオブジェクトを生成するステップと、前記差分データと前記ルートオブジェクトを前記分散ファイル管理システムに登録するステップと、を有することを特徴とする。 The update method of one aspect of the present invention is an update method by an update device that registers an update file that updates the original file registered in the distributed file management system in the distributed file management system, and the original file and the update file. A step of generating the difference data with the file, a step of generating a root object including a link to the original file and a link to the difference data, and a step of registering the difference data and the root object in the distributed file management system. And, characterized by having.
 本発明の一態様のデータ構造は、元ファイルを更新した更新ファイルのデータ構造であって、前記元ファイルへのリンクと、前記元ファイルと前記更新ファイルとの差分データへのリンクと、を含み、前記元ファイルが別の更新ファイルであった場合は、前記元ファイルへのリンクは当該別の更新ファイルのデータ構造へのリンクであり、コンピュータが、前記元ファイルへのリンクから前記元ファイルを取得し、前記差分データへのリンクから前記差分データを取得し、前記元ファイルに前記差分データを適用して前記更新ファイルを取得する処理に用いられ、前記元ファイルへのリンクが前記別の更新ファイルへのデータ構造へのリンクであった場合、前記コンピュータは、当該別の更新ファイルのデータ構造を再帰的に処理することを特徴とする。 The data structure of one aspect of the present invention is a data structure of an update file obtained by updating the original file, and includes a link to the original file and a link to the difference data between the original file and the update file. If the source file is another update file, the link to the source file is a link to the data structure of the other update file, and the computer will take the source file from the link to the source file. It is used in the process of acquiring, acquiring the difference data from the link to the difference data, applying the difference data to the original file, and acquiring the update file, and the link to the original file is the other update. If it is a link to a data structure to a file, the computer is characterized by recursively processing the data structure of the other update file.
 本発明によれば、ファイルシステム全体で管理する1ファイルあたりの平均ファイル容量を削減することができる。 According to the present invention, the average file size per file managed by the entire file system can be reduced.
図1は、第1の実施形態の分散ファイル管理システムの全体構成を示す図である。FIG. 1 is a diagram showing an overall configuration of the distributed file management system of the first embodiment. 図2は、第1の実施形態の分散ファイル管理システムで管理されるファイルの構成を説明するための図である。FIG. 2 is a diagram for explaining the configuration of files managed by the distributed file management system of the first embodiment. 図3は、ルートオブジェクトのデータ構造の一例を示す図である。FIG. 3 is a diagram showing an example of the data structure of the root object. 図4は、第1の実施形態の分散ファイル管理システムで管理されるデータ構造の一例を示す図である。FIG. 4 is a diagram showing an example of a data structure managed by the distributed file management system of the first embodiment. 図5は、第1の実施形態の分散ファイル管理システムの作成者端末および更新者端末の構成を示す図である。FIG. 5 is a diagram showing a configuration of a creator terminal and an updater terminal of the distributed file management system of the first embodiment. 図6は、第1の実施形態において生成したファイルを登録する処理の流れを示すシーケンス図である。FIG. 6 is a sequence diagram showing a flow of processing for registering the file generated in the first embodiment. 図7は、第1の実施形態において更新したファイルを登録する処理の流れを示すシーケンス図である。FIG. 7 is a sequence diagram showing a flow of processing for registering the updated file in the first embodiment. 図8は、第2の実施形態の分散ファイル管理システムおよびブロックチェーンシステムの全体構成を示す図である。FIG. 8 is a diagram showing the overall configuration of the distributed file management system and the blockchain system of the second embodiment. 図9は、第2の実施形態の分散ファイル管理システムで管理されるデータ構造の一例を示す図である。FIG. 9 is a diagram showing an example of a data structure managed by the distributed file management system of the second embodiment. 図10は、ルートオブジェクトのデータ構造の一例を示す図である。FIG. 10 is a diagram showing an example of the data structure of the root object. 図11は、第2の実施形態の分散ファイル管理システムで管理されるデータ構造の一例を示す図である。FIG. 11 is a diagram showing an example of a data structure managed by the distributed file management system of the second embodiment. 図12は、第2の実施形態の分散ファイル管理システムの作成者端末および更新者端末の構成を示す図である。FIG. 12 is a diagram showing a configuration of a creator terminal and an updater terminal of the distributed file management system of the second embodiment. 図13は、第2の実施形態において生成したファイルを登録する処理の流れを示すシーケンス図である。FIG. 13 is a sequence diagram showing a flow of processing for registering the file generated in the second embodiment. 図14は、第2の実施形態において更新したファイルを登録する処理の流れを示すシーケンス図である。FIG. 14 is a sequence diagram showing a flow of processing for registering the updated file in the second embodiment.
 以下、本発明の実施の形態について図面を用いて説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
 [第1の実施形態]
 図1に示す第1の実施形態の分散ファイル管理システム100は、分散ファイル管理システム100に属する各端末が分散してファイルを管理する非中央集権型の分散ファイル管理システムである。分散ファイル管理システム100は、ファイルを一定の大きさで分割し、分割後の塊(チャンク)の有向非巡回グラフ(DAG)としてファイルを管理する。DAGのルートのハッシュ値がファイルのIDとなる。ファイルのIDを用いてファイルを要求することで、ファイルのロケーションを意識せずにファイルを取得できる。分散ファイル管理システム100も非特許文献1と同様の方法でファイルを分散管理してよい。
[First Embodiment]
The distributed file management system 100 of the first embodiment shown in FIG. 1 is a decentralized distributed file management system in which terminals belonging to the distributed file management system 100 manage files in a distributed manner. The distributed file management system 100 divides a file into a certain size and manages the file as a directed acyclic graph (DAG) of chunks after the division. The hash value of the DAG root becomes the file ID. By requesting a file using the file ID, the file can be acquired without being aware of the location of the file. The distributed file management system 100 may also manage files in a distributed manner in the same manner as in Non-Patent Document 1.
 図1の分散ファイル管理システム100は、作成者端末1、更新者端末2、およびファイル管理制御端末3を備える。分散ファイル管理システム100は、複数のファイル管理制御端末3を備えてもよい。分散ファイル管理システム100に属する端末(作成者端末1、更新者端末2、およびファイル管理制御端末3)は、分散ファイル管理ネットワークを介してP2P(Peer to Peer)接続し、各端末で分散してファイルを管理する。ここでは、ファイルを作成する作成者の使用する端末を作成者端末1とし、ファイルを更新する更新者の使用する端末を更新者端末2とした。作成者端末1がファイルを更新してもよいし、更新者端末2がファイルを作成してもよい。他の端末が作成者端末1または更新者端末2として動作してもよい。 The distributed file management system 100 of FIG. 1 includes a creator terminal 1, an updater terminal 2, and a file management control terminal 3. The distributed file management system 100 may include a plurality of file management control terminals 3. The terminals belonging to the distributed file management system 100 (creator terminal 1, updater terminal 2, and file management control terminal 3) are connected by P2P (Peer to Peer) via the distributed file management network, and are distributed among the terminals. Manage files. Here, the terminal used by the creator who creates the file is the creator terminal 1, and the terminal used by the updater who updates the file is the updater terminal 2. The creator terminal 1 may update the file, or the updater terminal 2 may create the file. Another terminal may operate as the creator terminal 1 or the updater terminal 2.
 (ファイル管理データ)
 図2および図3を参照し、第1の実施形態の分散ファイル管理システム100におけるファイル管理について説明する。
(File management data)
The file management in the distributed file management system 100 of the first embodiment will be described with reference to FIGS. 2 and 3.
 図2の例では、分散ファイル管理システム100に登録されたファイルF1を更新したファイルF2を分散ファイル管理システム100に登録した。 In the example of FIG. 2, the file F2 which is an update of the file F1 registered in the distributed file management system 100 is registered in the distributed file management system 100.
 更新者端末2は、ファイルF2を分散ファイル管理システム100に登録する際、ファイルF1とファイルF2の差分を取って差分ファイルD2を生成し、変更前の元ファイルF1と差分ファイルD2とを紐付けて管理するルートオブジェクトR2を生成する。更新者端末2は、差分ファイルD2およびルートオブジェクトR2を分散ファイル管理システム100に登録する。 When the updater terminal 2 registers the file F2 in the distributed file management system 100, the updater terminal 2 takes the difference between the file F1 and the file F2 to generate the difference file D2, and associates the original file F1 before the change with the difference file D2. Generate the root object R2 to be managed. The updater terminal 2 registers the difference file D2 and the root object R2 in the distributed file management system 100.
 ルートオブジェクトR2は、ファイルF2を取得するためのオブジェクトであり、元ファイルF1へのリンクと差分ファイルD2へのリンクを保持する。具体的には、例えば、図3に示すように、ルートオブジェクトは、元ファイルと差分ファイルのそれぞれについて、リンク先のファイルの種別、分散ファイル管理システム100上でのファイルのID(例えばファイルのハッシュ値を用いる)、およびファイルのサイズを含む。ルートオブジェクトは、差分ファイルに関して、差分ファイルの生成に用いた差分アルゴリズムの情報を含む。分散ファイル管理システム100では、ファイルのIDを用いてファイルの実体を取得できる。ルートオブジェクトは、ファイルのIDをファイルへのリンクとして保持する。 The root object R2 is an object for acquiring the file F2, and holds a link to the original file F1 and a link to the difference file D2. Specifically, for example, as shown in FIG. 3, the root object has, for each of the original file and the difference file, the type of the linked file and the ID of the file on the distributed file management system 100 (for example, the hash of the file). Use the value), and include the size of the file. The root object contains information about the difference algorithm used to generate the difference file for the difference file. In the distributed file management system 100, the substance of the file can be acquired by using the ID of the file. The root object holds the ID of the file as a link to the file.
 本実施形態では、分散ファイル管理システム100に登録されたルートオブジェクトR2のIDを更新後のファイルF2のIDとして扱う。ルートオブジェクトR2のIDが分かればファイルF2を取得できる。分散ファイル管理システム100に属する端末(作成者端末1、更新者端末2、あるいはファイル管理制御端末3のいずれでもよい)がファイルF2を取得する場合、ルートオブジェクトR2のIDを用いて分散ファイル管理システム100からルートオブジェクトR2を取得する。端末は、ルートオブジェクトR2が保持する元ファイルのIDおよび差分ファイルのIDを用いて分散ファイル管理システム100から元ファイルF1および差分ファイルD2を取得する。端末は、元ファイルF1に差分ファイルD2を適用することで、ファイルF2を得る。 In the present embodiment, the ID of the root object R2 registered in the distributed file management system 100 is treated as the ID of the updated file F2. If the ID of the root object R2 is known, the file F2 can be acquired. When a terminal belonging to the distributed file management system 100 (either the creator terminal 1, the updater terminal 2, or the file management control terminal 3) acquires the file F2, the distributed file management system uses the ID of the root object R2. Acquire the root object R2 from 100. The terminal acquires the original file F1 and the difference file D2 from the distributed file management system 100 by using the ID of the original file and the ID of the difference file held by the root object R2. The terminal obtains the file F2 by applying the difference file D2 to the original file F1.
 なお、元ファイルF1についても、元ファイルF1へのリンクを保持するルートオブジェクトR1を分散ファイル管理システム100に登録し、ルートオブジェクトR1のIDを元ファイルF1のIDとして扱ってもよい。 Regarding the original file F1, the root object R1 that holds the link to the original file F1 may be registered in the distributed file management system 100, and the ID of the root object R1 may be treated as the ID of the original file F1.
 図4に、更新を繰り返した場合に、分散ファイル管理システム100に登録された各種ファイルの例を示す。図4の例では、分散ファイル管理システム100には、元ファイルF1、元ファイルF1を更新したファイルF2のルートオブジェクトR2と差分ファイルD2、ファイルF2を更新したファイルF3のルートオブジェクトR3と差分ファイルD3、ファイルF3を更新したファイルF4のルートオブジェクトR4と差分ファイルD4、およびファイルF2を更新したファイルF5のルートオブジェクトR5と差分ファイルD5が登録されている。 FIG. 4 shows an example of various files registered in the distributed file management system 100 when the update is repeated. In the example of FIG. 4, the distributed file management system 100 includes the root object R2 and the difference file D2 of the original file F1 and the file F2 in which the original file F1 is updated, and the root object R3 and the difference file D3 of the file F3 in which the file F2 is updated. , The root object R4 and the difference file D4 of the file F4 which updated the file F3, and the root object R5 and the difference file D5 of the file F5 which updated the file F2 are registered.
 ファイルF2を更新したファイルF3を分散ファイル管理システム100に登録する場合、更新者端末2は、ファイルF2とファイルF3の差分ファイルD3およびファイルF2と差分ファイルD3とを紐付けるルートオブジェクトR3を分散ファイル管理システム100に登録する。ルートオブジェクトR3の元ファイルのリンク先はファイルF2のルートオブジェクトR2である。 When registering the file F3 obtained by updating the file F2 in the distributed file management system 100, the updater terminal 2 creates a distributed file of the difference file D3 between the file F2 and the file F3 and the root object R3 that links the file F2 and the difference file D3. Register with the management system 100. The link destination of the original file of the root object R3 is the root object R2 of the file F2.
 ファイルF3を取得したい場合、端末は、ファイルF3のルートオブジェクトR3のIDを用いて分散ファイル管理システム100からルートオブジェクトR3を取得する。ルートオブジェクトR3には元ファイルとしてルートオブジェクトR2がリンクされており、差分ファイルとして差分ファイルD3がリンクされている。端末は、ルートオブジェクトR3が保持する情報を用いて、分散ファイル管理システム100からルートオブジェクトR2と差分ファイルD3を取得する。端末は、ファイルF2を取得するために、ルートオブジェクトR2を再帰的に処理し、ルートオブジェクトR2が保持する情報を用いて、分散ファイル管理システム100からファイルF1と差分ファイルD2を取得する。端末は、ファイルF1に差分ファイルD2を適用してファイルF2を得る。そして、端末は、ファイルF2に差分ファイルD3を適用してファイルF3を得る。 When it is desired to acquire the file F3, the terminal acquires the root object R3 from the distributed file management system 100 by using the ID of the root object R3 of the file F3. The root object R2 is linked to the root object R3 as the original file, and the difference file D3 is linked as the difference file. The terminal acquires the root object R2 and the difference file D3 from the distributed file management system 100 by using the information held by the root object R3. The terminal recursively processes the root object R2 in order to acquire the file F2, and acquires the file F1 and the difference file D2 from the distributed file management system 100 by using the information held by the root object R2. The terminal applies the difference file D2 to the file F1 to obtain the file F2. Then, the terminal applies the difference file D3 to the file F2 to obtain the file F3.
 分散ファイル管理システム100は、あるファイルを更新した更新後のファイルの有無を確認する機能を提供してもよい。この機能は分散ファイル管理システムでファイルの所在を管理するために使われる分散ハッシュテーブルを利用することで容易に実現できる。更新者は、更新前のルートオブジェクトをキーに更新後のルートオブジェクトの値を分散ハッシュテーブルに登録する。更新の有無を確認したい人は、自身が持っているルートオブジェクトのIDをキーに分散ハッシュテーブルに問い合わせを行い、更新後のルートオブジェクトのIDを取得することができる。ルートオブジェクトを取得し、そのリンクを確認することで、そのオブジェクトが問い合わせキーで使用したルートオブジェクトからの更新オブジェクトであることを確認する事ができる。 The distributed file management system 100 may provide a function of updating a certain file and confirming the existence of the updated file. This function can be easily realized by using the distributed hash table used to manage the location of files in the distributed file management system. The updater registers the value of the updated root object in the distributed hash table using the root object before the update as a key. A person who wants to confirm the presence or absence of an update can inquire the distributed hash table using the ID of the root object that he / she owns as a key, and can acquire the ID of the root object after the update. By getting the root object and checking its link, you can check that the object is an update object from the root object used in the query key.
 (端末の構成)
 図5を参照し、第1の実施形態の作成者端末1および更新者端末2の構成について説明する。
(Terminal configuration)
The configuration of the creator terminal 1 and the updater terminal 2 of the first embodiment will be described with reference to FIG.
 まず、作成者端末1について説明する。図5に示す作成者端末1は、分散ファイル管理クライアント11およびファイル作成部121を備える。 First, the creator terminal 1 will be described. The creator terminal 1 shown in FIG. 5 includes a distributed file management client 11 and a file creation unit 121.
 分散ファイル管理クライアント11は、分散ファイル記憶部111と分散ファイル管理制御部112を備える。 The distributed file management client 11 includes a distributed file storage unit 111 and a distributed file management control unit 112.
 分散ファイル記憶部111には、分散ファイル管理システム100で分散管理されるファイルおよび分散管理のために必要な情報が記憶される。例えば、分散ファイル記憶部111には、ファイルを所定サイズに分割したチャンク、ファイルのIDとそのファイルを有する端末の識別子を対応づけたルーティング情報が記憶される。ルーティング情報は分散ファイル管理システム100に属する各端末に分散して保持される。端末は、ファイルのIDを用いて分散ファイル管理システム100にファイルを要求することで、そのIDに対応するファイルを保持する端末を特定し、その端末からファイルを取得できる。 The distributed file storage unit 111 stores files that are distributed and managed by the distributed file management system 100 and information necessary for distributed management. For example, the distributed file storage unit 111 stores chunks in which a file is divided into predetermined sizes, and routing information in which the ID of the file is associated with the identifier of the terminal having the file. The routing information is distributed and stored in each terminal belonging to the distributed file management system 100. By requesting a file from the distributed file management system 100 using the file ID, the terminal can identify the terminal holding the file corresponding to the ID and acquire the file from the terminal.
 分散ファイル管理制御部112は、分散ファイル管理システム100にファイルを登録したり、分散ファイル管理システム100からファイルを取得したり、分散ファイル記憶部111に記憶された情報を管理したりする。例えば、ファイル作成部121の作成したファイルを分散ファイル管理システム100に登録する際、分散ファイル管理制御部112は、ファイルを所定のサイズのチャンクに分割してDAGにまとめ、ファイルのIDを取得する。分散ファイル管理制御部112は、チャンクを分散ファイル記憶部111に記憶させるとともに、ファイルのIDと端末自身の識別子を分散ファイル管理システム100に通知する。これにより、分散ファイル管理システム100は、ファイルのIDで特定されるファイルの実体を保持する端末がわかる。分散ファイル管理制御部112は、ファイルのIDとなるルートのチャンクのIDだけでなく、ファイルを構成するすべてのチャンクのIDを分散ファイル管理システム100に通知してもよい。 The distributed file management control unit 112 registers files in the distributed file management system 100, acquires files from the distributed file management system 100, and manages information stored in the distributed file storage unit 111. For example, when registering the file created by the file creation unit 121 in the distributed file management system 100, the distributed file management control unit 112 divides the file into chunks of a predetermined size, collects them in a DAG, and acquires a file ID. .. The distributed file management control unit 112 stores chunks in the distributed file storage unit 111, and notifies the distributed file management system 100 of the file ID and the identifier of the terminal itself. As a result, the distributed file management system 100 knows the terminal that holds the substance of the file specified by the file ID. The distributed file management control unit 112 may notify the distributed file management system 100 of not only the IDs of the root chunks that are the IDs of the files but also the IDs of all the chunks that make up the file.
 ファイル作成部121は、ファイルを作成する。ファイル作成部121は、ファイルを作成する市販のアプリケーションで構成できる。作成されるファイルは、例えば文書ファイル、画像ファイル、音楽ファイル、あるいは映像ファイルなど種類を問わない。 The file creation unit 121 creates a file. The file creation unit 121 can be configured by a commercially available application that creates a file. The created file may be of any type, for example, a document file, an image file, a music file, or a video file.
 続いて、更新者端末2について説明する。図5に示す更新者端末2は、分散ファイル管理クライアント21、ファイル更新部221、差分作成部222、およびルートオブジェクト作成部223を備える。 Next, the updater terminal 2 will be described. The updater terminal 2 shown in FIG. 5 includes a distributed file management client 21, a file update unit 221, a difference creation unit 222, and a root object creation unit 223.
 分散ファイル管理クライアント21は、分散ファイル記憶部211と分散ファイル管理制御部212を備える。分散ファイル記憶部211と分散ファイル管理制御部212は、作成者端末1の分散ファイル記憶部111と分散ファイル管理制御部112と同様である。 The distributed file management client 21 includes a distributed file storage unit 211 and a distributed file management control unit 212. The distributed file storage unit 211 and the distributed file management control unit 212 are the same as the distributed file storage unit 111 and the distributed file management control unit 112 of the creator terminal 1.
 ファイル更新部221は、分散ファイル管理システム100から取得したファイルを更新する。ファイル更新部221は、作成者端末1のファイル作成部121と同じアプリケーションで構成できる。 The file update unit 221 updates the file acquired from the distributed file management system 100. The file update unit 221 can be configured with the same application as the file creation unit 121 of the creator terminal 1.
 差分作成部222は、更新前の元ファイルとファイル更新部221が更新した更新後のファイルと差分ファイルを生成する。元ファイルに差分ファイルを適用することで更新後のファイルを再構成できるならば、差分ファイルはどのような形式であってもよい。差分作成部222は、更新ファイル、元ファイルの形式に応じて複数あるアルゴリズムから最適なものを選択する。事前に拡張子と紐づけしたアルゴリズムを設定しておき、その設定に従い選択してもよいし、複数あるアルゴリズムで実際に差分ファイルを作成し、もっとも差分ファイルが小さくなるアルゴリズムを採用してもよい。差分ファイルと更新ファイルの差が小さい場合には、分散ファイル管理クライアント21は更新ファイルそのものを登録してもよい。差分ファイルは、分散ファイル管理クライアント21によって、分散ファイル管理システム100に登録される。 The difference creation unit 222 generates the original file before the update and the updated file and the difference file updated by the file update unit 221. The difference file may be in any format as long as the updated file can be reconstructed by applying the difference file to the original file. The difference creation unit 222 selects the optimum algorithm from a plurality of algorithms according to the format of the update file and the original file. An algorithm associated with the extension may be set in advance and selected according to the setting, or a difference file may be actually created by a plurality of algorithms and the algorithm with the smallest difference file may be adopted. .. When the difference between the difference file and the update file is small, the distributed file management client 21 may register the update file itself. The difference file is registered in the distributed file management system 100 by the distributed file management client 21.
 ルートオブジェクト作成部223は、分散ファイル管理システム100に登録された元ファイルと差分ファイルを紐付けるルートオブジェクトを生成する。具体的には、ルートオブジェクト作成部223は、元ファイルのIDと差分ファイルのIDを含むルートオブジェクトを生成する。差分ファイルに関して、ルートオブジェクト作成部223は、使用した差分アルゴリズムの情報をルートオブジェクトに記録する。差分ファイルが更新ファイルそのものである場合、ルートオブジェクト作成部223は、ルートオブジェクトに紐づくファイルが更新ファイルであることをルートオブジェクトに記録する。例えば、差分アルゴリズムの記載がない場合、紐づくファイルは差分ファイルではなく、更新ファイルであると判断してもよい。ルートオブジェクトは、分散ファイル管理クライアント21によって、分散ファイル管理システム100に登録される。 The root object creation unit 223 generates a root object that links the original file and the difference file registered in the distributed file management system 100. Specifically, the root object creation unit 223 generates a root object including the ID of the original file and the ID of the difference file. Regarding the difference file, the root object creation unit 223 records the information of the difference algorithm used in the root object. When the difference file is the update file itself, the root object creation unit 223 records in the root object that the file associated with the root object is the update file. For example, if there is no description of the difference algorithm, it may be determined that the associated file is not a difference file but an update file. The root object is registered in the distributed file management system 100 by the distributed file management client 21.
 ファイル管理制御端末3は、分散ファイル管理クライアント11,21と同様の機能を有する。 The file management control terminal 3 has the same functions as the distributed file management clients 11 and 21.
 作成者端末1および更新者端末2が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは作成者端末1および更新者端末2が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。 Each part included in the creator terminal 1 and the updater terminal 2 may be configured by a computer equipped with an arithmetic processing unit, a storage device, and the like, and the processing of each part may be executed by a program. This program is stored in a storage device included in the creator terminal 1 and the updater terminal 2, and can be recorded on a recording medium such as a magnetic disk, an optical disk, or a semiconductor memory, or can be provided through a network.
 (ファイルの生成)
 図6を参照し、作成者端末1がファイルを生成し、分散ファイル管理システム100に登録する処理について説明する。
(File generation)
A process in which the creator terminal 1 generates a file and registers it in the distributed file management system 100 will be described with reference to FIG.
 ステップS101において、作成者端末1は、ファイルを作成する。 In step S101, the creator terminal 1 creates a file.
 ステップS102において、作成者端末1は、ファイルを分散ファイル管理システム100に登録する。具体的には、作成者端末1は、ファイルをチャンクに分割してDAGを構成し、ルートのチャンクのIDをファイルのIDとして取得する。分散ファイル記憶部111は、分割されたチャンクとそれらチャンクのIDを記録する。作成者端末1は、ファイルのIDと作成者端末1の識別子を分散ファイル管理システム100に属する端末に通知する。 In step S102, the creator terminal 1 registers the file in the distributed file management system 100. Specifically, the creator terminal 1 divides the file into chunks to form a DAG, and acquires the ID of the root chunk as the file ID. The distributed file storage unit 111 records the divided chunks and the IDs of those chunks. The creator terminal 1 notifies the terminal belonging to the distributed file management system 100 of the file ID and the identifier of the creator terminal 1.
 ステップS103において、更新者端末2はステップS102の通知を受ける。分散ファイル管理システム100に属する他の端末もステップS102の通知を受けてもよい。 In step S103, the updater terminal 2 receives the notification of step S102. Other terminals belonging to the distributed file management system 100 may also receive the notification in step S102.
 ステップS104において、更新者端末2は、通知された内容に基づき、更新者端末2が保持すべきルーティング情報があれば、分散ファイル記憶部211にルーティング情報を記憶させる。 In step S104, the updater terminal 2 stores the routing information in the distributed file storage unit 211 if there is routing information to be held by the updater terminal 2 based on the notified content.
 以上の処理により、作成者端末1の作成したファイルが分散ファイル管理システム100に登録される。分散ファイル管理システム100に属する端末は、ファイルのIDを用いて、分散ファイル管理システム100からファイルを取得できる。 By the above processing, the file created by the creator terminal 1 is registered in the distributed file management system 100. A terminal belonging to the distributed file management system 100 can acquire a file from the distributed file management system 100 by using the file ID.
 (ファイルの更新)
 図7を参照し、更新者端末2がファイルを更新し、分散ファイル管理システム100に登録する処理について説明する。更新者端末2は、分散ファイル管理システム100から更新対象の元ファイルを取得しているものとする。
(Update file)
A process in which the updater terminal 2 updates the file and registers it in the distributed file management system 100 will be described with reference to FIG. 7. It is assumed that the updater terminal 2 has acquired the original file to be updated from the distributed file management system 100.
 ステップS201において、更新者端末2は、元ファイルを更新する。 In step S201, the updater terminal 2 updates the original file.
 ステップS202において、更新者端末2は、元ファイルと更新後のファイルの差分ファイルを生成する。 In step S202, the updater terminal 2 generates a difference file between the original file and the updated file.
 ステップS203において、更新者端末2は、元ファイルと差分ファイルとを紐付けるルートオブジェクトを作成する。例えば、更新者端末2は、元ファイルのIDおよび差分ファイルのIDを保持するルートオブジェクトを作成する。なお、差分ファイルを取得した際、差分ファイルが更新ファイルとほぼ同じサイズになるようなときは、差分ファイルではなく、更新ファイルを元ファイルと一緒にルートオブジェクトに紐付ける。 In step S203, the updater terminal 2 creates a root object that links the original file and the difference file. For example, the updater terminal 2 creates a root object that holds the ID of the original file and the ID of the difference file. If the difference file has almost the same size as the update file when the difference file is acquired, the update file is linked to the root object together with the original file instead of the difference file.
 ステップS204において、更新者端末2は、差分ファイルとルートオブジェクトを分散ファイル管理システム100に登録する。具体的には、更新者端末2は、差分ファイルのハッシュ値を求めて差分ファイルのIDとし、ルートオブジェクトのハッシュ値を求めてルートオブジェクトのIDとする。更新者端末2は、必要であればチャンクに分割し、差分ファイルとルートオブジェクトを分散ファイル記憶部211に記憶させる。更新者端末2は、差分ファイルのID、ルートオブジェクトのID、および更新者端末2の識別子を分散ファイル管理システム100に属する端末に通知する。 In step S204, the updater terminal 2 registers the difference file and the root object in the distributed file management system 100. Specifically, the updater terminal 2 obtains the hash value of the difference file and uses it as the ID of the difference file, and obtains the hash value of the root object and uses it as the ID of the root object. The updater terminal 2 divides into chunks if necessary, and stores the difference file and the root object in the distributed file storage unit 211. The updater terminal 2 notifies the terminal belonging to the distributed file management system 100 of the ID of the difference file, the ID of the root object, and the identifier of the updater terminal 2.
 ステップS205において、作成者端末1はステップS204の通知を受ける。分散ファイル管理システム100に属する他の端末もステップS204の通知を受けてもよい。 In step S205, the creator terminal 1 receives the notification of step S204. Other terminals belonging to the distributed file management system 100 may also receive the notification in step S204.
 ステップS206において、作成者端末1は、通知された内容に基づき、作成者端末1が保持すべきルーティング情報があれば、分散ファイル記憶部111にルーティング情報を記憶させる。 In step S206, the creator terminal 1 stores the routing information in the distributed file storage unit 111 if there is routing information to be held by the creator terminal 1 based on the notified content.
 以上の処理により、更新者端末2の更新したファイルが分散ファイル管理システム100に登録される。分散ファイル管理システム100に属する端末は、ルートオブジェクトのIDを用いて、分散ファイル管理システム100から更新後のファイルを取得できる。 By the above processing, the updated file of the updater terminal 2 is registered in the distributed file management system 100. The terminal belonging to the distributed file management system 100 can acquire the updated file from the distributed file management system 100 by using the ID of the root object.
 以上説明したように、本実施形態の分散ファイル管理システム100は、元ファイルを更新した更新後のファイルを分散ファイル管理システム100に登録する際、差分作成部222が元ファイルと更新後のファイルの差分ファイルを生成し、ルートオブジェクト作成部223が元ファイルのIDと差分ファイルのIDを含むルートオブジェクトを生成し、分散ファイル管理クライアント11が差分ファイルとルートオブジェクトを分散ファイル管理システム100に登録する。これにより、更新後のファイル全体ではなく差分ファイルが分散ファイル管理システム100に登録されるので、分散ファイル管理システム100全体で管理する1ファイルあたりの平均ファイル容量を削減できる。 As described above, in the distributed file management system 100 of the present embodiment, when the updated file in which the original file is updated is registered in the distributed file management system 100, the difference creation unit 222 sets the original file and the updated file. The difference file is generated, the root object creation unit 223 generates a root object including the ID of the original file and the ID of the difference file, and the distributed file management client 11 registers the difference file and the root object in the distributed file management system 100. As a result, the difference file is registered in the distributed file management system 100 instead of the entire updated file, so that the average file size per file managed by the entire distributed file management system 100 can be reduced.
 [第2の実施形態]
 図8に示す第2の実施形態の作成者端末1および更新者端末2は、分散ファイル管理システム100およびブロックチェーンシステム200に属する。分散ファイル管理システム100は、第1の実施形態と同様である。
[Second Embodiment]
The creator terminal 1 and the updater terminal 2 of the second embodiment shown in FIG. 8 belong to the distributed file management system 100 and the blockchain system 200. The distributed file management system 100 is the same as that of the first embodiment.
 図8のブロックチェーンシステム200は、作成者端末1、更新者端末2、およびブロックチェーン制御端末4を備える。ブロックチェーンシステム200は、複数のブロックチェーン制御端末4を備えてもよい。ブロックチェーンシステム200に属する端末(作成者端末1、更新者端末2、およびブロックチェーン制御端末4)は、ブロックチェーンネットワークを介してP2P接続し、端末間でブロックチェーンデータ(分散台帳)を共有する。ブロックチェーンデータは、ブロックチェーンシステム200に属する端末が発行したトランザクションを含むブロックがつながったデータである。 The blockchain system 200 of FIG. 8 includes a creator terminal 1, an updater terminal 2, and a blockchain control terminal 4. The blockchain system 200 may include a plurality of blockchain control terminals 4. The terminals belonging to the blockchain system 200 (creator terminal 1, updater terminal 2, and blockchain control terminal 4) are connected by P2P via the blockchain network and share blockchain data (distributed ledger) between the terminals. .. The blockchain data is data in which blocks including transactions issued by a terminal belonging to the blockchain system 200 are connected.
 本実施形態では、分散ファイル管理システム100に登録されたファイルを得るためのルートオブジェクトのIDとファイルの作成者または更新者のIDとを管理するコントラクトをブロックチェーンシステム200に登録する。コントラクトは、ブロックチェーン上でトランザクションを介してプログラムを実行する機構である。コントラクトを実行させるトランザクションが発行されると、ブロックチェーンシステム200においてトランザクションがブロックにまとめられる際にプログラムが実行される。本実施形態では、ルートオブジェクトのIDと当該ルートオブジェクトから取得できるファイルの作成者または更新者の情報とをブロックチェーンシステム200に登録することで、作成者および更新者の真正性を担保する。 In the present embodiment, a contract that manages the ID of the root object for obtaining the file registered in the distributed file management system 100 and the ID of the creator or updater of the file is registered in the blockchain system 200. A contract is a mechanism for executing a program on the blockchain via a transaction. When a transaction for executing a contract is issued, the program is executed when the transaction is grouped into blocks in the blockchain system 200. In the present embodiment, the authenticity of the creator and the updater is ensured by registering the ID of the root object and the information of the creator or the updater of the file that can be acquired from the root object in the blockchain system 200.
 (ファイル管理データ)
 図9および図10を参照し、第2の実施形態の分散ファイル管理システム100におけるファイル管理について説明する。
(File management data)
File management in the distributed file management system 100 of the second embodiment will be described with reference to FIGS. 9 and 10.
 第2の実施形態では、ルートオブジェクトR1~R5は、情報ファイルI1~I5へのリンクと、ブロックチェーンシステム200に登録されたコントラクトの識別子を含む。情報ファイルI1は、ファイルに関する情報を保持するファイルである。ファイルに関する情報としては、例えば、ファイルの作成者および更新者など、ファイルの作成、更新、および権利に関する情報である。ブロックチェーンシステム200に属する端末は、コントラクトの識別子を用いて、コントラクトに登録された情報にアクセスできる。 In the second embodiment, the root objects R1 to R5 include links to information files I1 to I5 and identifiers of contracts registered in the blockchain system 200. The information file I1 is a file that holds information about the file. Information about the file includes information about the creation, update, and rights of the file, such as, for example, the creator and updater of the file. The terminal belonging to the blockchain system 200 can access the information registered in the contract by using the identifier of the contract.
 作成者端末1は、ファイルF1を分散ファイル管理システム100に登録する際、ファイルF1へのリンクと、ファイルF1に関する情報(例えばファイルF1の作成者のID)を保持する情報ファイルI1へのリンクと、コントラクトの識別子とを含むルートオブジェクトR1を分散ファイル管理システム100に登録する。ルートオブジェクトR1のIDはファイルF1のIDとして扱われる。 When the creator terminal 1 registers the file F1 in the distributed file management system 100, the creator terminal 1 has a link to the file F1 and a link to the information file I1 that holds information about the file F1 (for example, the ID of the creator of the file F1). , The root object R1 including the contract identifier is registered in the distributed file management system 100. The ID of the root object R1 is treated as the ID of the file F1.
 図10の例に示すように、ルートオブジェクトは、元ファイル、差分ファイル、および情報ファイルのそれぞれについて、リンク先のファイルの種別、分散ファイル管理システム100上でのファイルのID、およびファイルのサイズを含む。さらに、ルートオブジェクトは、データとしてコントラクトの識別子を含む。 As shown in the example of FIG. 10, the root object determines the type of the linked file, the ID of the file on the distributed file management system 100, and the size of the file for each of the original file, the difference file, and the information file. Including. In addition, the root object contains the contract identifier as data.
 なお、図11に示すように、情報ファイルI1~I5の内容をルートオブジェクトのデータに含めても良い。 Note that, as shown in FIG. 11, the contents of the information files I1 to I5 may be included in the root object data.
 (端末の構成)
 図12を参照し、第2の実施形態の作成者端末1および更新者端末2の構成について説明する。
(Terminal configuration)
The configuration of the creator terminal 1 and the updater terminal 2 of the second embodiment will be described with reference to FIG.
 まず、作成者端末1について説明する。図12に示す作成者端末1は、分散ファイル管理クライアント11、ファイル作成部121、ルートオブジェクト作成部123、およびブロックチェーンクライアント13を備える。 First, the creator terminal 1 will be described. The creator terminal 1 shown in FIG. 12 includes a distributed file management client 11, a file creation unit 121, a root object creation unit 123, and a blockchain client 13.
 分散ファイル管理クライアント11とファイル作成部121は、第1の実施形態と同じである。ファイル作成部121によって作成されたファイルは、分散ファイル管理クライアント11によって分散ファイル管理システム100に登録される。 The distributed file management client 11 and the file creation unit 121 are the same as those in the first embodiment. The file created by the file creation unit 121 is registered in the distributed file management system 100 by the distributed file management client 11.
 ルートオブジェクト作成部123は、分散ファイル管理システム100に登録されたファイルへのリンクと、ファイルに関する情報と、コントラクトの識別子とを保持するルートオブジェクトを生成する。ルートオブジェクトは、分散ファイル管理クライアント11によって、分散ファイル管理システム100に登録される。 The root object creation unit 123 generates a root object that holds a link to a file registered in the distributed file management system 100, information about the file, and a contract identifier. The root object is registered in the distributed file management system 100 by the distributed file management client 11.
 ルートオブジェクト作成部123がファイルに関する情報を保持する情報ファイルを作成し、ルートオブジェクトが情報ファイルへのリンクを保持し、分散ファイル管理クライアント11が情報ファイルを分散ファイル管理システム100に登録してもよい。 The root object creation unit 123 may create an information file that holds information about the file, the root object holds a link to the information file, and the distributed file management client 11 may register the information file in the distributed file management system 100. ..
 ブロックチェーンクライアント13は、ブロックチェーン記憶部131およびブロックチェーン制御部132を備える。ブロックチェーン記憶部131には、ブロックチェーンシステム200に属する全ての端末と緩やかに同期したブロックチェーンデータが記憶される。ブロックチェーン制御部132は、ブロックチェーンシステム200に属する端末と自律分散的に協調し、ブロックチェーンの系を維持する。本実施形態では、ブロックチェーンクライアント13は、ブロックチェーンシステム200にルートオブジェクトのIDと作成者のIDを登録する。 The blockchain client 13 includes a blockchain storage unit 131 and a blockchain control unit 132. The blockchain storage unit 131 stores blockchain data loosely synchronized with all terminals belonging to the blockchain system 200. The blockchain control unit 132 autonomously and decentrally cooperates with the terminals belonging to the blockchain system 200 to maintain the blockchain system. In the present embodiment, the blockchain client 13 registers the ID of the root object and the ID of the creator in the blockchain system 200.
 続いて、更新者端末2について説明する。図12に示す更新者端末2は、分散ファイル管理クライアント21、ファイル更新部221、差分作成部222、ルートオブジェクト作成部223、およびブロックチェーンクライアント23を備える。 Next, the updater terminal 2 will be described. The updater terminal 2 shown in FIG. 12 includes a distributed file management client 21, a file update unit 221, a difference creation unit 222, a root object creation unit 223, and a blockchain client 23.
 分散ファイル管理クライアント21、ファイル更新部221、および差分作成部222は、第1の実施形態と同じである。ファイル更新部221によって更新されたファイルおよび差分作成部222によって生成された差分ファイルは、分散ファイル管理クライアント21によって分散ファイル管理システム100に登録される。 The distributed file management client 21, the file update unit 221 and the difference creation unit 222 are the same as those in the first embodiment. The file updated by the file update unit 221 and the difference file generated by the difference creation unit 222 are registered in the distributed file management system 100 by the distributed file management client 21.
 ルートオブジェクト作成部223は、元ファイルへのリンクと、差分ファイルへのリンクと、更新後のファイルに関する情報と、コントラクトの識別子とを保持するルートオブジェクトを生成する。ルートオブジェクトは、分散ファイル管理クライアント21によって、分散ファイル管理システム100に登録される。 The root object creation unit 223 generates a root object that holds a link to the original file, a link to the difference file, information about the updated file, and a contract identifier. The root object is registered in the distributed file management system 100 by the distributed file management client 21.
 ルートオブジェクト作成部223が更新後のファイルに関する情報を保持する情報ファイルを作成し、ルートオブジェクトが情報ファイルへのリンクを保持し、分散ファイル管理クライアント21が情報ファイルを分散ファイル管理システム100に登録してもよい。 The root object creation unit 223 creates an information file that holds information about the updated file, the root object holds a link to the information file, and the distributed file management client 21 registers the information file in the distributed file management system 100. You may.
 ブロックチェーンクライアント23は、ブロックチェーン記憶部231とブロックチェーン制御部232を備える。ブロックチェーン記憶部231とブロックチェーン制御部232は、作成者端末1のブロックチェーン記憶部131とブロックチェーン制御部と同様である。本実施形態では、ブロックチェーンクライアント23は、ブロックチェーンシステム200にルートオブジェクトのIDと更新者のIDを登録する。ブロックチェーンクライアント23は、分散ファイル管理システム100から取得したファイルのルートオブジェクトのIDとファイルの作成者または更新者のIDがブロックチェーンシステム200に登録されているか否かを調べて、ファイルの作成者または更新者の真正性を確認してもよい。 The blockchain client 23 includes a blockchain storage unit 231 and a blockchain control unit 232. The blockchain storage unit 231 and the blockchain control unit 232 are the same as the blockchain storage unit 131 and the blockchain control unit of the creator terminal 1. In the present embodiment, the blockchain client 23 registers the ID of the root object and the ID of the updater in the blockchain system 200. The blockchain client 23 checks whether the ID of the root object of the file acquired from the distributed file management system 100 and the ID of the creator or updater of the file are registered in the blockchain system 200, and the creator of the file. Alternatively, the authenticity of the updater may be confirmed.
 ブロックチェーン制御端末4は、ブロックチェーンクライアント13,23と同様の機能を有する。 The blockchain control terminal 4 has the same functions as the blockchain clients 13 and 23.
 作成者端末1および更新者端末2が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは作成者端末1および更新者端末2が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。 Each part included in the creator terminal 1 and the updater terminal 2 may be configured by a computer equipped with an arithmetic processing unit, a storage device, and the like, and the processing of each part may be executed by a program. This program is stored in a storage device included in the creator terminal 1 and the updater terminal 2, and can be recorded on a recording medium such as a magnetic disk, an optical disk, or a semiconductor memory, or can be provided through a network.
 (ファイルの生成)
 図13を参照し、作成者端末1がファイルを生成し、分散ファイル管理システム100に登録する処理について説明する。
(File generation)
A process in which the creator terminal 1 generates a file and registers it in the distributed file management system 100 will be described with reference to FIG.
 ステップS301において、作成者端末1は、ファイルを作成する。 In step S301, the creator terminal 1 creates a file.
 ステップS302において、作成者端末1は、ファイルのID、ファイルに関する情報、およびコントラクトの識別子を含むルートオブジェクトを作成する。コントラクトはブロックチェーンシステム200に登録済であり、コントラクトの識別子は既知であるとする。ファイルに関する情報は、作成者のIDを含む。作成者端末1は、ファイルに関する情報を含む情報ファイルを作成し、ルートオブジェクトに情報ファイルのIDを含めてもよい。 In step S302, the creator terminal 1 creates a root object including a file ID, information about the file, and a contract identifier. It is assumed that the contract is registered in the blockchain system 200 and the identifier of the contract is known. The information about the file includes the creator's ID. The creator terminal 1 may create an information file containing information about the file, and may include the ID of the information file in the root object.
 ステップS303において、作成者端末1は、コントラクトへ作成したファイルのルートオブジェクトのIDと作成者のIDを付与して登録する。作成者端末1は、さらに、コントラクトへファイルの更新を許可する更新者のIDを付与して登録してもよい。 In step S303, the creator terminal 1 assigns and registers the ID of the root object of the file created in the contract and the ID of the creator. The creator terminal 1 may further assign the ID of the updater who permits the update of the file to the contract and register it.
 ステップS304において、作成者端末1は、ファイルとルートオブジェクトを分散ファイル管理システム100に登録する。具体的には、作成者端末1は、必要であればチャンクに分割し、ファイルとルートオブジェクトを分散ファイル記憶部111に記憶させて、ファイルのID、ルートオブジェクトのID、および作成者端末1の識別子を分散ファイル管理システム100に属する端末に通知する。 In step S304, the creator terminal 1 registers the file and the root object in the distributed file management system 100. Specifically, the creator terminal 1 is divided into chunks if necessary, and the file and the root object are stored in the distributed file storage unit 111, and the file ID, the root object ID, and the creator terminal 1 are stored. Notify the terminal belonging to the distributed file management system 100 of the identifier.
 ステップS305において、更新者端末2はステップS304の通知を受ける。 In step S305, the updater terminal 2 receives the notification of step S304.
 ステップS306において、更新者端末2は、通知された内容に基づき、更新者端末2が保持すべきルーティング情報があれば、分散ファイル記憶部211にルーティング情報を記憶させる。 In step S306, the updater terminal 2 stores the routing information in the distributed file storage unit 211 if there is routing information to be held by the updater terminal 2 based on the notified content.
 以上の処理により、作成者端末1の作成したファイルが分散ファイル管理システム100に登録される。分散ファイル管理システム100に属する端末は、ファイルのルートオブジェクトのIDを用いて、分散ファイル管理システム100からファイルを取得できる。ブロックチェーンシステム200にルートオブジェクトのIDと作成者のIDが登録されていることを調べることで、作成者の真正性を確認できる。 By the above processing, the file created by the creator terminal 1 is registered in the distributed file management system 100. A terminal belonging to the distributed file management system 100 can acquire a file from the distributed file management system 100 by using the ID of the root object of the file. The authenticity of the creator can be confirmed by checking that the ID of the root object and the ID of the creator are registered in the blockchain system 200.
 (ファイルの更新)
 図14を参照し、更新者端末2がファイルを更新し、分散ファイル管理システム100に登録する処理について説明する。更新者端末2は、分散ファイル管理システム100から更新対象の元ファイルを取得しているものとする。
(Update file)
A process in which the updater terminal 2 updates the file and registers it in the distributed file management system 100 will be described with reference to FIG. It is assumed that the updater terminal 2 has acquired the original file to be updated from the distributed file management system 100.
 ステップS401において、更新者端末2は、元ファイルを更新する。 In step S401, the updater terminal 2 updates the original file.
 ステップS402において、更新者端末2は、元ファイルと更新後のファイルの差分ファイルを生成する。 In step S402, the updater terminal 2 generates a difference file between the original file and the updated file.
 ステップS403において、更新者端末2は、元ファイルのID、差分ファイルのID、更新後のファイルに関する情報、およびコントラクトの識別子を含むルートオブジェクトを作成する。コントラクトの識別子は、元ファイルのルートオブジェクトから知ることができる。ファイルに関する情報は、更新者のIDを含む。更新者端末2は、更新後のファイルに関する情報を含む情報ファイルを作成し、ルートオブジェクトに情報ファイルのIDを含めてもよい。 In step S403, the updater terminal 2 creates a root object including the ID of the original file, the ID of the difference file, the information about the updated file, and the identifier of the contract. The contract identifier can be found from the root object of the original file. The information about the file includes the updater's ID. The updater terminal 2 may create an information file containing information about the updated file and include the ID of the information file in the root object.
 ステップS404において、更新者端末2は、コントラクトへ更新後のファイルのルートオブジェクトのIDと更新者のIDを付与して登録する。ここで、コントラクトの処理により、ルートオブジェクトのIDと更新者のIDが登録できなかった場合、ステップS405以降の処理を中止してもよい。例えば、更新者端末2が元ファイルを更新する権利を持たない場合に、コントラクトの処理でルートオブジェクトのIDと更新者のIDの登録が拒否される。 In step S404, the updater terminal 2 assigns the ID of the root object of the updated file and the ID of the updater to the contract and registers it. Here, if the root object ID and the updater ID cannot be registered due to the contract processing, the processing after step S405 may be stopped. For example, if the updater terminal 2 does not have the right to update the original file, the registration of the root object ID and the updater ID is rejected in the contract process.
 ステップS405において、更新者端末2は、差分ファイルとルートオブジェクトを分散ファイル管理システム100に登録する。具体的には、更新者端末2は、必要であればチャンクに分割し、差分ファイルとルートオブジェクトを分散ファイル記憶部111に記憶させて、差分ファイルのID、ルートオブジェクトのID、および更新者端末2の識別子を分散ファイル管理システム100に属する端末に通知する。 In step S405, the updater terminal 2 registers the difference file and the root object in the distributed file management system 100. Specifically, the updater terminal 2 is divided into chunks if necessary, and the difference file and the root object are stored in the distributed file storage unit 111, and the difference file ID, the root object ID, and the updater terminal are stored. Notify the terminal belonging to the distributed file management system 100 of the identifier of 2.
 ステップS406において、作成者端末1はステップS405の通知を受ける。 In step S406, the creator terminal 1 receives the notification of step S405.
 ステップS407において、作成者端末1は、通知された内容に基づき、作成者端末1が保持すべきルーティング情報があれば、分散ファイル記憶部111にルーティング情報を記憶させる。 In step S407, the creator terminal 1 stores the routing information in the distributed file storage unit 111 if there is routing information to be held by the creator terminal 1 based on the notified content.
 以上の処理により、更新者端末2の更新したファイルが分散ファイル管理システム100に登録される。分散ファイル管理システム100に属する端末は、更新後のファイルのルートオブジェクトのIDを用いて、分散ファイル管理システム100から更新後のファイルを取得できる。 By the above processing, the updated file of the updater terminal 2 is registered in the distributed file management system 100. The terminal belonging to the distributed file management system 100 can acquire the updated file from the distributed file management system 100 by using the ID of the root object of the updated file.
 分散ファイル管理システム100とブロックチェーンシステム200の両方に属する端末は、分散ファイル管理システム100から取得したルートオブジェクトから更新者のIDとコントラクトの識別子を得て、コントラクトに更新者のIDとルートオブジェクトのIDが登録されているか否かを調べることで、更新者の真正性を確認できる。 A terminal belonging to both the distributed file management system 100 and the blockchain system 200 obtains the updater ID and the contract identifier from the root object acquired from the distributed file management system 100, and obtains the updater ID and the root object in the contract. The authenticity of the updater can be confirmed by checking whether or not the ID is registered.
 以上説明したように、本実施の形態によれば、ルートオブジェクト作成部223が更新者のIDとコントラクトの識別子とを保持するルートオブジェクトを生成し、ブロックチェーンクライアント23がコントラクトにルートオブジェクトのIDと更新者のIDとを登録することにより、ブロックチェーンシステム200にルートオブジェクトのIDと更新者のIDが登録されていることを調べることで、更新者の真正性を確認できる。 As described above, according to the present embodiment, the root object creation unit 223 generates a root object that holds the updater ID and the contract identifier, and the blockchain client 23 sets the contract with the root object ID. By registering the updater's ID, it is possible to confirm the authenticity of the updater by checking that the root object ID and the updater's ID are registered in the blockchain system 200.
 1…作成者端末
 11…分散ファイル管理クライアント
 111…分散ファイル記憶部
 112…分散ファイル管理制御部
 121…ファイル作成部
 123…ルートオブジェクト作成部
 13…ブロックチェーンクライアント
 131…ブロックチェーン記憶部
 132…ブロックチェーン制御部
 2…更新者端末
 21…分散ファイル管理クライアント
 211…分散ファイル記憶部
 212…分散ファイル管理制御部
 221…ファイル更新部
 222…差分作成部
 223…ルートオブジェクト作成部
 23…ブロックチェーンクライアント
 231…ブロックチェーン記憶部
 232…ブロックチェーン制御部
 3…ファイル管理制御端末
 4…ブロックチェーン制御端末
 100…分散ファイル管理システム
 200…ブロックチェーンシステム
1 ... Creator terminal 11 ... Distributed file management client 111 ... Distributed file storage unit 112 ... Distributed file management control unit 121 ... File creation unit 123 ... Root object creation unit 13 ... Blockchain client 131 ... Blockchain storage unit 132 ... Blockchain Control unit 2 ... Updater terminal 21 ... Distributed file management client 211 ... Distributed file storage unit 212 ... Distributed file management control unit 221 ... File update unit 222 ... Difference creation unit 223 ... Root object creation unit 23 ... Blockchain client 231 ... Block Chain storage unit 232 ... Blockchain control unit 3 ... File management control terminal 4 ... Blockchain control terminal 100 ... Distributed file management system 200 ... Blockchain system

Claims (8)

  1.  分散ファイル管理システムに登録された元ファイルを更新した更新ファイルを前記分散ファイル管理システムに登録する更新装置であって、
     前記元ファイルと前記更新ファイルとの差分データを生成する差分生成部と、
     前記元ファイルへのリンクと前記差分データへのリンクを含むルートオブジェクトを生成するルートオブジェクト生成部と、
     前記差分データと前記ルートオブジェクトを前記分散ファイル管理システムに登録するファイル管理制御部と、を備える
     ことを特徴とする更新装置。
    An update device that registers an update file that updates the original file registered in the distributed file management system in the distributed file management system.
    A difference generator that generates difference data between the original file and the update file,
    A route object generation unit that generates a route object including a link to the original file and a link to the difference data, and
    An update device including a file management control unit that registers the difference data and the root object in the distributed file management system.
  2.  請求項1に記載の更新装置であって、
     前記元ファイルへのリンクは、別の更新ファイルのルートオブジェクトへのリンクである
     ことを特徴とする更新装置。
    The renewal device according to claim 1.
    The update device, characterized in that the link to the original file is a link to the root object of another update file.
  3.  請求項1または2に記載の更新装置であって、
     前記ルートオブジェクトは前記差分データの生成に使用したアルゴリズムの情報を含む
     ことを特徴とする更新装置。
    The renewal device according to claim 1 or 2.
    The update device, characterized in that the root object contains information on the algorithm used to generate the difference data.
  4.  請求項1ないし3のいずれかに記載の更新装置であって、
     前記更新装置は分散台帳システムに属し、
     前記ルートオブジェクトは、前記更新ファイルに関する情報と前記分散台帳システムにおいて実行されるコントラクトの識別子とを含み、
     前記コントラクトに前記更新ファイルに関する情報と前記ルートオブジェクトへのリンクを登録する登録部と、を備える
     ことを特徴とする更新装置。
    The renewal device according to any one of claims 1 to 3.
    The update device belongs to the distributed ledger system,
    The root object contains information about the update file and an identifier of a contract executed in the distributed ledger system.
    An update device including a registration unit for registering information about the update file and a link to the root object in the contract.
  5.  分散ファイル管理システムに登録された元ファイルを更新した更新ファイルを前記分散ファイル管理システムに登録する更新装置による更新方法であって、
     前記元ファイルと前記更新ファイルとの差分データを生成するステップと、
     前記元ファイルへのリンクと前記差分データへのリンクを含むルートオブジェクトを生成するステップと、
     前記差分データと前記ルートオブジェクトを前記分散ファイル管理システムに登録するステップと、を有する
     ことを特徴とする更新方法。
    This is an update method using an update device that registers an update file that updates the original file registered in the distributed file management system in the distributed file management system.
    Steps to generate difference data between the original file and the update file,
    A step of generating a root object containing a link to the original file and a link to the difference data,
    An update method comprising the step of registering the difference data and the root object in the distributed file management system.
  6.  請求項1ないし4のいずれかに記載の更新装置の各部としてコンピュータを動作させる更新プログラム。 An update program that operates a computer as each part of the update device according to any one of claims 1 to 4.
  7.  元ファイルを更新した更新ファイルのデータ構造であって、
     前記元ファイルへのリンクと、
     前記元ファイルと前記更新ファイルとの差分データへのリンクと、を含み、
     前記元ファイルが別の更新ファイルであった場合は、前記元ファイルへのリンクは当該別の更新ファイルのデータ構造へのリンクであり、
     コンピュータが、前記元ファイルへのリンクから前記元ファイルを取得し、前記差分データへのリンクから前記差分データを取得し、前記元ファイルに前記差分データを適用して前記更新ファイルを取得する処理に用いられ、前記元ファイルへのリンクが前記別の更新ファイルへのデータ構造へのリンクであった場合、前記コンピュータは、当該別の更新ファイルのデータ構造を再帰的に処理する
     ことを特徴とするデータ構造。
    The data structure of the update file that updated the original file
    The link to the original file and
    Includes a link to the difference data between the original file and the update file.
    If the original file is another update file, the link to the original file is a link to the data structure of the other update file.
    In a process in which a computer acquires the original file from a link to the original file, acquires the difference data from the link to the difference data, applies the difference data to the original file, and acquires the update file. When used and the link to the original file is a link to a data structure to the other update file, the computer is characterized in that it recursively processes the data structure of the other update file. data structure.
  8.  請求項7に記載のデータ構造であって、
     前記更新ファイルに関する情報と、
     分散台帳システムにおいて実行されるコントラクトの識別子と、を含み、
     前記分散台帳システムに属する前記コンピュータが、前記コントラクトに前記更新ファイルに関する情報と当該データ構造へのリンクが登録されているか否かを調べる処理に用いられる
     ことを特徴とするデータ構造。
    The data structure according to claim 7.
    Information about the update file and
    Including the identifier of the contract executed in the distributed ledger system,
    A data structure characterized in that the computer belonging to the distributed ledger system is used in a process of checking whether or not information about the update file and a link to the data structure are registered in the contract.
PCT/JP2020/020133 2019-05-29 2020-05-21 Update device, update method, update program, and data structure WO2020241447A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/608,352 US20220253230A1 (en) 2019-05-29 2020-05-21 Data update device, data update method, data update program, and data structure

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019099979A JP7333554B2 (en) 2019-05-29 2019-05-29 Update device, update method, update program, and data structure
JP2019-099979 2019-05-29

Publications (1)

Publication Number Publication Date
WO2020241447A1 true WO2020241447A1 (en) 2020-12-03

Family

ID=73547645

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/020133 WO2020241447A1 (en) 2019-05-29 2020-05-21 Update device, update method, update program, and data structure

Country Status (3)

Country Link
US (1) US20220253230A1 (en)
JP (1) JP7333554B2 (en)
WO (1) WO2020241447A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419401B2 (en) * 2016-01-08 2019-09-17 Capital One Services, Llc Methods and systems for securing data in the public cloud

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0326228B2 (en) * 1982-11-16 1991-04-10 Sapporo Breweries
JP2010272057A (en) * 2009-05-25 2010-12-02 Nec Saitama Ltd Terminal device, data backup method, and program
JP2019079577A (en) * 2019-02-12 2019-05-23 富士通株式会社 Communication method, apparatus, and program
JP2019121946A (en) * 2018-01-09 2019-07-22 Kddi株式会社 Document management system, document management method, and document management program

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004310244A (en) 2003-04-03 2004-11-04 Asgent Inc Document update history management system
JP2009230316A (en) 2008-03-21 2009-10-08 Fuji Xerox Co Ltd File management device, image forming system, and file management method
US8868508B2 (en) 2010-02-09 2014-10-21 Google Inc. Storage of data in a distributed storage system
US10354419B2 (en) * 2015-05-25 2019-07-16 Colin Frederick Ritchie Methods and systems for dynamic graph generating
US10642723B1 (en) * 2019-02-05 2020-05-05 Bank Of America Corporation System for metamorphic relationship based code testing using mutant generators

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0326228B2 (en) * 1982-11-16 1991-04-10 Sapporo Breweries
JP2010272057A (en) * 2009-05-25 2010-12-02 Nec Saitama Ltd Terminal device, data backup method, and program
JP2019121946A (en) * 2018-01-09 2019-07-22 Kddi株式会社 Document management system, document management method, and document management program
JP2019079577A (en) * 2019-02-12 2019-05-23 富士通株式会社 Communication method, apparatus, and program

Also Published As

Publication number Publication date
US20220253230A1 (en) 2022-08-11
JP7333554B2 (en) 2023-08-25
JP2020194385A (en) 2020-12-03

Similar Documents

Publication Publication Date Title
Ehmke et al. Proof-of-property: a lightweight and scalable blockchain protocol
JP4696721B2 (en) Document management server, document management system
RU2531569C2 (en) Secure and private backup storage and processing for trusted computing and data services
Khatal et al. Fileshare: A blockchain and ipfs framework for secure file sharing and data provenance
US7664829B2 (en) Document managing system, document managing apparatus and document managing method
US20220035937A1 (en) Blockchain system with severable data and cryptographic proof
EP3709568A1 (en) Deleting user data from a blockchain
JP2019091477A (en) Distributed data system with document management and access control
KR20190122843A (en) Blockchain ledger
CN105791384B (en) Peer-to-peer sharing method and system in content-centric network
CN111033489B (en) Method and apparatus for data traversal
JP2008250903A (en) File updating device, program and method
US11818246B2 (en) Blockchain data structures and systems and methods therefor for multipath transaction management
JP2008519361A (en) How to enforce application specific management policies on content addressed storage devices
Kilic et al. Providing interoperability of ehealth communities through peer-to-peer networks
WO2020241447A1 (en) Update device, update method, update program, and data structure
CN117453810A (en) Heterogeneous data processing method, heterogeneous data processing device, computer equipment and storage medium
Farmer et al. Decentralized identifiers for peer-to-peer service discovery
JP2020197873A (en) Information processing system and method for controlling information processing system
JP6685968B2 (en) Data management system, data management method, and data management program
US20220300488A1 (en) Migration of a data blockchain
JP2014093666A (en) Communication control device, communication device, and program
KR102545417B1 (en) System and method issuing NFT using NFT container
US10673624B2 (en) Communication control device, communication control method, and computer program product
Argyropoulos et al. Semi-Decentralized File Sharing as a Service

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20813816

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20813816

Country of ref document: EP

Kind code of ref document: A1