パヌト2.ブロックチェヌン䞊の分散アプリケヌションのデヌタをどこに保存したすか

蚘事の最初の郚分では、アプリケヌションデヌタをブロックチェヌンに保存する問題の抂芁を説明したした。 䜕が起こっおいるかの本質を理解するために、 それを読むこずをお勧めしたす。 蚘事のこのパヌトでは、理想的なデヌタりェアハりスの特性に察する芁望を抂説し、この問題を解決するための既存のアプロヌチも怜蚎したす。



では、分散アプリケヌションがある堎合、デヌタりェアハりスのどのような芁件を提瀺する必芁がありたすか 次の芁件を提䟛したす





既存のテクノロゞヌがこれらの芁件を満たす方法を芋おみたしょう。



IPFS



IPFS InterPlanetary File System-DHTDistributed Hash TableおよびBitTorrentプロトコルに基づく分散ファむルシステムテクノロゞヌ。 コンテンツアドレッシングを䜿甚しお、さたざたなデバむス䞊のファむルシステムを1぀に結合できたす。



利点 





欠点 





IPFSを䜿甚しお、AKASHA゜ヌシャルネットワヌクEthereum + IPFSずOpenBazaarマヌケットプレむスが構築されおいたす。 IPFSの䞊蚘の䞍利な点を完党に継承しおいたす。その䞻な理由は、ネットワヌクに情報を投皿しお、ピアに広がるたでオフラむンにできないこずです。



分散ファむルストレヌゞ



このようなストレヌゞを䜿甚するず、個々のデバむスを共通のクラりドストレヌゞに結合できたす。 その結果、ナヌザヌはDropboxなどの埓来の集䞭型ストレヌゞに保存できるのず同じ方法でファむルを保存できたすが、安䟡です。 他の人のファむルを保存する堎所を提䟛するデバむスの所有者「ファヌマヌ」は、その貢献に応じおナヌザヌからこのためのお金を受け取りたす。 貢献床を枬定し、ストレヌゞの信頌性を確保し、悪甚を阻止するために、さたざたなチェックが䜿甚されたす。たずえば、暗号化に基づいたストレヌゞの蚌明ファむルの受け入れの蚌明、怜玢可胜性の蚌明ファむルが利甚可胜で抜出できるこずの蚌明です。 ナヌザヌは怜蚌の成功に察しお支払いを行い、蟲家は暗号通貚の䞀定額を受け取りたす。



このようなプロゞェクトは、䞻にDHTテクノロゞヌずコンテンツアドレス指定を䜿甚しお構築されたすファむルからのハッシュがその識別子である堎合。 さらに、スマヌトコントラクトを䜿甚するものもありたす。



Sia 、 Storj 、 Ethereum Swarm 、 MadeSAFEなど、そのようなプロゞェクトは珟圚垂堎に非垞に倚くありたす。 それらはすべお同様の原則に基づいおいたす。 さらに、dAppに䟿利なファむルストレヌゞを提䟛するなど、Ethereum Swarmが考案されたした。



利点 





欠点 





ファむルストレヌゞに぀いおは、分散ファむルストレヌゞが魅力的に芋えたす。 ただし、゜ヌシャルネットワヌクのナヌザヌデヌタなどの構造化された動的情報を保存する堎合、静的ファむルにデヌタを保存するこずは重倧な問題です。 実際、ファむルストレヌゞはファむルの内容に぀いお䜕も知らないため、アプリケヌションはファむルの識別子たたは名前だけでなく、その内容によっおも情報を怜玢する必芁がある堎合がありたす。 たずえば、blockchainキヌワヌドを持぀すべおのナヌザヌを怜玢したす。 たたは特定の郜垂に䜍眮しおいたす。 たたは、出版物を完党に怜玢するこずもできたす。 したがっお、私たちはより良い実装を探し続けおいたす。



分散デヌタベヌス



残念ながら、 CAP定理により、䞀貫性、アクセス可胜性、分離抵抗を同時に保蚌する完党に分散したデヌタベヌスを取埗するこずは䞍可胜です埌者は、䞀郚のノヌドがネットワヌクから切断されたり、メッセヌゞが届かない堎合でもデヌタベヌスが機胜し続けるこずを意味したす。



私たちのニヌズには、もちろん、パヌティション分割に耐性があり、アクセス可胜な分散デヌタベヌスが必芁です。最新ではないかもしれたせんが、すぐに回答を埗る必芁がありたす。 ACID SQL DBMSは䞻に䞀貫性を提䟛するため、これによりNoSQLデヌタベヌスぞの遞択が制限されたす。



分散NoSQLデヌタベヌスには倚くの実装がありたす。 たずえば、 MongoDB 、 Cassandra 、 RethinkDB 。 それらはすべお、䞀緒にクラスタヌ化された倚数のレプリカず連携できたす。 クラむアントはレプリカの1぀ず連携し、デヌタは自動的に残りのレプリカず同期されたす。 デヌタの䞀郚がレプリカの䞀郚にのみ保存される堎合、シャヌディングを䜿甚しお負荷を分散できたす。 新しいレプリカをクラスタヌに远加するず、クラスタヌがほが盎線的にスケヌリングされ、䞀郚の実装Cassandraなどにより、レプリカがクラスタヌの䜜業の䞀郚を自動的に匕き継ぐこずができたす。



NoSQLデヌタベヌスは「結果敎合性」を提䟛したす。぀たり、個々のレプリカが同期されるず、しばらくしおデヌタが敎合したす。 この点で、それらはブロックチェヌンに䌌おいたす-時間が経過するほどトランザクションの確認が行われる可胜性が高くなりたす。



NoSQLデヌタベヌスは、単玔なKey-Valueを保存し、倀の内郚構造ず远加のむンデックスの䞡方を保持できたす。 最も高床なものには、基本的なトランザクションサポヌトずSQLのようなク゚リ蚀語Cassandraなどもありたす。



䞊蚘のすべおにおいお、このデヌタベヌスクラスはブロックチェヌンでの䜿甚に理想的ず思われるかもしれたせん。 しかし、問題がありたす。 誰かがそのようなデヌタベヌスの適切に調敎されたクラスタヌに悪意のあるレプリカを远加し、クラスタヌ内の他のレプリカにすべおのデヌタを削陀する必芁があるこずを䌝え始めるず想像しおください 他のすべおのレプリカは玠盎にすべおのデヌタを削陀し、デヌタベヌスは絶望的に砎損したす。 ぀たり、レプリカのこのような調敎された䜜業は、信頌できる環境でのみ可胜になりたしたそのようなデヌタベヌスのクラスタヌは、ビザンチン将軍の問題に察しお䞍安定です。 悪意を持っお動䜜するレプリカがクラスタヌに配眮されるず、クラスタヌ党䜓のデヌタが砎壊される可胜性がありたす。



利点 





欠点 





Bigchaindb



BigChainDBたたはIPDBInterPlanetary DataBaseずも呌ばれるブロックチェヌン実装があり、これはデヌタりェアハりスのすべおの問題の解決策ず呌ばれるこずがよくありたす。 著者は、非垞に高いトランザクション速床100侇/秒、巚倧なストレヌゞ容量郚分レプリケヌションを備えた分散ストレヌゞのためを䞻匵しおいたす。 BigChainDBは、ブロックを構築する際の簡玠化されたコンセンサス、およびすべおのブロックずトランザクションを既存のnoSqlデヌタベヌス実装RethinkDBたたはMongoDBに保存するこずにより、これらの利点を獲埗したす。



残念ながら、このようなアヌキテクチャには重倧な欠点がありたす。各ノヌドには共通のデヌタりェアハりスぞの完党な曞き蟌み暩限があるため、システム党䜓がビザンチン将軍の問題に察しお䞍安定です。 このプロゞェクトの䜜者はこのこずを認識しおおり 、埌でそれに぀いお考えるこずを玄束しおいたす。 ただし、補品のリリヌス埌に基本アヌキテクチャの基本的な問題を修正するのは非垞に時間がかかり、ほずんどの堎合䞍可胜です。これは、アヌキテクチャが異なる倧幅に異なる補品に぀ながる可胜性があるためです。 BFTビザンチンフォヌルトトレランスがない堎合のBigChainDBの高速性ずボリュヌム特性は、noSqlデヌタベヌスRethinkDBおよびMongoDBで最初に瀺される特性ずそれほど倉わらないため、このような基本的な問題に察する簡単なアプロヌチは、コミュニティからのプロゞェクトに察する批刀を匕き起こしたすデヌタを保存したす。 しかし、ノヌド間の完党な信頌が䟝然ずしお必芁なので、指定されたデヌタベヌスを盎接䜿甚しないのはなぜですか



したがっお、BigChainDBの実際の䜿甚はプラむベヌトネットワヌクに限定されたす。 人々を誀解させないために、BigChainDBはBigPrivateBlockChainず呌ばれるべきです。そうすれば、疑問は生じたせん。 パブリックネットワヌクの堎合、これはたったく䞍適切です。



利点 





欠点 





したがっお、BigChainDBは、パブリックネットワヌク䞊の分散アプリケヌションからのデヌタを保存するのにはたったく適しおいたせん。



結論



分散アプリケヌションで䜿甚できるパブリックネットワヌクのデヌタストレヌゞを敎理するためのいく぀かのアプロヌチを怜蚎したした。 それらはほずんどありたせんでしたが、珟時点ではもうありたせん。 残念ながら、いずれのアプロヌチも、蚘事の冒頭で策定したすべおの芁件を満たしおいたせん。



珟圚の状況は、プログラムがファむルにのみデヌタを保存できるコンピュヌタヌの圢成段階に䌌おおり、これは䞍䟿でした。 したがっお、圌らはコンピュヌタヌ甚のDBMSを実装し、 䞀郚のコンピュヌタヌはその䞊に状態を䜜りたした。



その結果、既存の分散アプリケヌションは、ブロックチェヌン䞊たたは石噚時代のような分散ファむルシステムにデヌタを盎接保存するこずにより䞭断されたす。 ファむルにむンデックスを個別に実装するこずを䜙儀なくされ、独自のデヌタ圢匏を考案し、䞀般的に分散型ではあるが自転車の発明に倚くの時間を費やしたす。



しかし、分散アプリケヌションの䞖界は、䟿利なデヌタりェアハりスなしでは存続できたせん。 したがっお、蚘事の次の郚分では、䞊蚘のすべおの芁件を満たしおいるず䞻匵するリポゞトリの抂念を裁刀所に提瀺したす。



→ 蚘事の第䞉郚

→ 蚘事の最初の郚分



All Articles