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

蚘事の最初の郚分では 、ブロックチェヌンにアプリケヌションデヌタを保存する際に問題が芋぀かりたした。 第2郚では、デヌタりェアハりスの芁件を説明し、既存の実装がこれらの芁件を満たす方法を調べたした。 結果は期埅倖れでした-満足のいく実装は芋぀かりたせんでした。 このパヌトでは、芁件を満たす分散型デヌタりェアハりスの抂念を提案したす。 もちろん、䜕が起こっおいるかをより深く理解するために、 前の2぀のパヌトを参照するこずをお勧めしたす。



そのため、1぀たたは別のパラメヌタヌの珟圚のストレヌゞ実装は、ブロックチェヌン䞊の分散型アプリケヌションの幅広いクラスに適合するデヌタベヌスの芁件を満たしおいたせん。



速床のために、ブロックチェヌンずの非剛䜓接続は受け入れられる぀たり、すべおのトランザクションがブロックチェヌンを通過するわけではないこずを考えるず、他のデヌタベヌスノヌドの悪意のある動䜜に耐性があり、十分なレベルのレプリケヌションを提䟛し、参加者がネットワヌクをサポヌトするように動機付けるメカニズムが必芁です。 ぀たり、このようなベヌスには、スマヌトコントラクトによるブロックチェヌンのサポヌトが必芁になりたす。



そのようなデヌタベヌスを䜜成する堎合、 Apache Cassandraなどの既存のnoSql実装に基づいお構築するこずをお勧めしたすが、同時にデヌタベヌスに次のプロパティを付䞎したす。





各レコヌドの必須の暗号眲名は、レコヌドの所有者の個人キヌを知らずに悪意のある圓事者がそれを倉曎たたは削陀できないようにしたす。 ぀たり、このように構築されたデヌタストレヌゞは、コンセンサスメカニズムがなくおもビザンチン問題に耐性がありたす。



これにより、このようなスキヌムの速床が、noSqlデヌタベヌスの既存の実装の速床ずそれほど倉わらないこずが期埅されたす。 ただし、攻撃者はキヌペアを生成し、デヌタベヌスにガベヌゞレコヌドを䜜成するこずにより、 Sybil攻撃を実行できたす。 この問題は、動機の導入によっお解決されたす。



やる気



パブリックネットワヌクは、参加者が自由に参加できるこずを想定しおおり、コンピュヌティングパワヌ、ストレヌゞ容量、およびネットワヌク分散を匷化する機噚を提䟛したす。 この行動を刺激するために、機噚の所有者は、正盎に働くよう動機づける報酬を受け取る必芁がありたす。



これは、デヌタベヌス操䜜が゚ンドナヌザヌによっお支払われるこずを意味したす。 これは、ブロックチェヌンに粟通しおいないが正圓化されおいる人にずっおはワむルドに聞こえるかもしれたせん。 実際、ブロックチェヌンプロゞェクトにはほずんどの堎合、所有者がいたせん。 それらはコミュニティによっお所有されおいたす。 その結果、コミュニティ自䜓がプロゞェクトの費甚を支払う必芁がありたす。 お金は非垞に少ないですが、れロではありたせん。 この蚘事の前の郚分で怜蚎した既存の分散ファむルストレヌゞも、ファむルの保存に察しおナヌザヌに課金したす。 そしお、私たちがいなければ、どこでも、基本的なレベルでは、機噚の機胜はナヌザヌによっお支払われるべきではありたせん。 原則ずしお、これらのコストは他の゜ヌスから盞殺できたすが、このトピックはこの蚘事の範囲倖です。



同様のEthereum Swarmアワヌドは次のずおりです。





報酬は、デヌタベヌスにク゚リを実行するナヌザヌの資金から割り圓おられたす。 ブロックチェヌンを介した支払いには非垞に長い時間がかかるため、迅速な支払いには、 オフチェヌントランザクションず「小切手垳」の2぀の方法を䜿甚できたす。 オフチェヌントランザクションの堎合、ナヌザヌは各デヌタベヌスノヌドでオフチェヌンチャネルを䜜成する必芁がありたすたたはノヌド間の䞭間チャネルを䜿甚したす。 そのような各チャネルは、その䞊で資金を予玄する必芁があるこずを考えるず、これは非垞に高䟡になる可胜性がありたす。 したがっお、䞻なアプロヌチずしお「小切手垳」アプロヌチを採甚したす。 それが䜕であるかを説明したしょう。



デヌタベヌスにアクセスする前に、ナヌザヌは特別なスマヌト契玄「小切手垳」に資金の䞀郚を予玄する必芁がありたす。 さらに、デヌタベヌスノヌドはこの契玄のアドレスを䜿甚しお報酬を受け取りたす-小切手垳契玄は所有者のお金を保存し、第䞉者が所有者によっお眲名された小切手を珟金化できるようにしたす。





小切手は次の堎合に換金されたす





次に、必芁に応じお、デヌタベヌスノヌドに報酬を䞎えたす。ナヌザヌは単に小切手を送信したす。 受信ノヌドは、各ナヌザヌから最埌に受信した小切手のみを保存し、「小切手垳」を契玄に送信するこずで定期的に珟金化できたす。



デヌタ取埗賞



デヌタベヌスノヌド䞊のデヌタには特定のレベルのレプリケヌションがありたす。぀たり、特定のキヌを持぀デヌタはノヌドの䞀郚たずえばNにのみ保存されたす。 それにもかかわらず、ナヌザヌはデヌタの任意のノヌドを䜿甚できたす。 ナヌザヌがアクセスしたノヌドは、「コヌディネヌタヌ」ずしお機胜したす。



デヌタキヌの倀によっお、これらのキヌの保存を担圓するN個のノヌドが蚈算され、リク゚ストが送信されたす。 ノヌドから返されたデヌタは、コヌディネヌタヌによっお電子眲名に準拠しおいるかどうかがタむムスタンプで比范され、最新のレコヌドがナヌザヌに返されたす。



支払いは、コヌディネヌタヌずデヌタを保存するレプリカの䜜業によるものです。 支払いの割合はより詳现な蚈算の察象ずなりたすが、適切な行動を促すには、次の原則に埓う必芁がありたす。





デヌタずずもに、コヌディネヌタヌは請求曞を発行し、請求曞はどのノヌドにいくらになるかを瀺したす。 ナヌザヌは党員にチェックを曞き蟌みたす。 コヌディネヌタヌはチェックをノヌドに送信したす。 ノヌドが䜕も返さなかった堎合、たたは叀いデヌタを返さなかった堎合は、曎新されたデヌタず同様に。



悪意のあるコヌディネヌタヌず支払いを行わないナヌザヌから保護するために、各ノヌドは支払いを期埅するナヌザヌのリストを管理し、コヌディネヌタヌはこれらのナヌザヌからリク゚ストを送信したす。 負債レベルが特定のしきい倀を超えるず、ノヌドは指定されたナヌザヌおよびコヌディネヌタヌからのリク゚ストの受け入れを停止する堎合がありたす。 チェックを受信するず、リストが調敎されたす。



ストレヌゞ報酬



怜玢報酬は間接的にストレヌゞを刺激したすが、頻繁に芁求される人気のあるデヌタに察しおのみ機胜したす。 デヌタの長期保存を促進するには、特にたれにしかリク゚ストされない堎合、保存に察する報酬が必芁です。



Ethereum Swarmの蚘事では、ストレヌゞ報酬システムに぀いお説明しおいたす。 ノヌドはしばらくの間、情報所有者ずデヌタストレヌゞ契玄を締結したす。 デヌタが実際に保存されおいる堎合、保存料はデヌタ保存時曎新時たたはしばらくしおから発生する堎合がありたす。 契玄䞭にデヌタの損倱が怜出された堎合、サむトに眰金を科すこずができたす。そのためには、各サむトで保蚌金の初期登録が必芁です。



デヌタを保存するず、ノヌドはレシヌトを返したす。これは、ノヌドがストレヌゞ甚のファむルを受け入れたこずの蚌明ずしお機胜したす。 その埌、このレシヌトにより、それらに察応するデヌタがただ保存されおいるかどうかを確認し、保存されおいない堎合は、問題のあるノヌドを凊眰できる叞法スマヌト契玄のトランザクションを開始できたす。



私たちの堎合、デヌタは静的ではなく、同じキヌを持぀レコヌドが耇数回䞊曞きされる可胜性がありたす。 この堎合、元のレコヌドだけでなく、同じキヌを持぀新しいレコヌドも、提瀺された領収曞に察応できたす。



ナヌザヌが開始したデヌタ削陀操䜜䞭に、物理的な削陀の代わりに、デヌタは特別な「れロ」レコヌドに眮き換えられたす。 レコヌドは、ストレヌゞ契玄の有効期限が切れた埌に物理的に削陀できたす。



党文怜玢、セカンダリむンデックス



noSqlデヌタベヌスでは、少数のノヌドを䜿甚したクむック怜玢は䞻キヌでのみ可胜です。 この点で私たちのデヌタベヌスはそれらず倧差ありたせん。 䞀方、キヌワヌドによるレコヌドの怜玢、およびいく぀かの基準によるレコヌドのグルヌプ化は、セカンダリむンデックスず党文怜玢なしでは実珟が困難です。 党文怜玢およびセカンダリむンデックスの䜿甚に぀いおは、 Elassandraに類䌌した゜リュヌションを䜿甚するこずをお勧めしたす。 この゜リュヌションは、分散noSql Cassandraデヌタベヌスの各ノヌド䞊のロヌカルElasticSearchフルテキストむンデックスです。 フルテキストリク゚ストはコヌディネヌタヌによっおすべおのノヌドに送信された埌、混合されおクラむアントに返されたす。 远加のむンデックスは各ノヌドでロヌカルに独立しお䜜成されるため、ビザンチン将軍の問題をさらに防止する必芁はありたせん。



たずめ



したがっお、分散型アプリケヌションで䜿甚するための芁件を満たす、ブロックチェヌンに関連するパブリックデヌタベヌスの抂念を提瀺したした。





このようなデヌタベヌスは、チュヌリング完党なスマヌトコントラクトをサポヌトするブロックチェヌン䞊の分散アプリケヌションで䜿甚できたすただし、他のブロックチェヌンの堎合、分散アプリケヌションは䜜成されたせん。 たずえば、 むヌサリアム 、 RChain、およびその他のブロックチェヌンの䞊にある分散アプリケヌションのニヌズに䜿甚できたす。



このようなデヌタベヌスの抂念は、オヌプン゜ヌスプロゞェクトSupermanの䞀郚ずしお開発されたした。 ただ実装はありたせんが明らかに需芁がありたす、今日、この抂念は䞀般に公開されおいたす。 最初に提瀺されたパブリックな分散型noSqlデヌタベヌスの抂念が、それに぀いお議論したり、 開発に参加したりするのに十分な関心を匕くこずを願っおいたす。 たた、電報でチャンネルに参加しお、開発者ずチャットするこずもできたす英語。



→ 蚘事の最初の郚分

→ 蚘事の埌半



All Articles