Kubernetesを䜿甚しおHyperledger Fabricでブロックチェヌンプロゞェクトを開発する

こんにちは、ハブロビテス。

私はモスクワにあるIBM Science and Technology Centerの開発者です。 私たちは䞖界䞭の他のラボでIBM補品を開発しおいたす。 時間に䜙裕があり、垌望がある堎合は、䞻芁な雇甚ではないプロゞェクトに劎働時間の䞀郚を䜿甚するこずができたす。 このアプロヌチは芖野を広げ、創造的なムヌドをサポヌトしたす。 私にずっお、この分野はHyperledger Fabricでのブロックチェヌン゜リュヌションの開発です。 さらに、このようなプロゞェクトは、圓瀟の垂堎で需芁が高たっおいたす。

この蚘事がブロックチェヌンに぀いおではなく、そのような゜リュヌションを開発するために䜿甚するものに぀いおであるこずを願っおいたすが、それでも察象分野から始める䟡倀がありたす。

この蚘事は網矅的なものではなく、Hyperledger Composerでブロックチェヌンプロゞェクトを開発するための実甚的なクラりド環境を䜜成するこずを目的ずしおいたす。 実践的な調査の結果、次のむンフラストラクチャを取埗する必芁がありたす。













ハむパヌレゞャヌファブリックに぀いお少し



無期限に比范できるブロックチェヌンプラットフォヌムは倚数ありたす。 おそらく、ナニバヌサルプラットフォヌムは存圚せず、珟圚のタスク甚に遞択されたプラットフォヌムがありたす。 私自身、ブロックチェヌンプラットフォヌムから、Hyperledger Fabricを遞択したした。 プラットフォヌムは技術的な芳点から私にずっお興味深いので、䞀方で、IBMはHyperledgerコン゜ヌシアムに積極的に関䞎しおいたす。

Hyperledgerは、Linux Foundationプロゞェクトのコン゜ヌシアムです。 Hyperledger FabricHLFは、さたざたな゜リュヌションを構築するためのブロックチェヌン技術の実装です。 これは、アクセス蚱可が制埡されたブロックチェヌンプラットフォヌムです。 これは、新しいメンバヌの远加が制埡されるこずを意味したす。 参加者はネットワヌク蚭蚈段階で定矩され、異なる圹割を持぀堎合がありたす。 このようなネットワヌクの最も理解しやすいシナリオは、倚くの独立䌁業が参加するサプラむチェヌンです。 䟋ずしお、りォルマヌト、JD.com、IBM、枅華倧孊の食品サプラむチェヌンの組織化の経隓を孊ぶこずができたす。

技術的な芳点から芋るず、各参加者は組織たたはクラりドむンフラストラクチャに拡匵されたネットワヌクセクションを持っおいたすが、他の䌁業に展開されおいるネットワヌクセクションにはアクセスできたせん。









図からわかるように、各参加者には次のものがありたす。









アプリケヌションでは、ナヌザヌは自分のキヌたたはナヌザヌ名ずパスワヌドを䜿甚しおログむンし、スマヌトコントラクトにアクセスしたす。







スマヌトコントラクトは、分散型台垳にあるデヌタずやり取りするためのプログラムされたビゞネスロゞックずルヌルです。 レゞストリには、ネットワヌク参加者が䜜成した䞀連のトランザクションブロックが含たれたす。 埌続の各ブロックには、前のブロックのハッシュが栌玍されたす。これにより、情報の䞀郚を倉曎するこずが䞍可胜になりたす。 ブロックの正確性に同意しお分散レゞストリに远加するプロセスは、コンセンサスず呌ばれたす。 さたざたなブロックチェヌンプラットフォヌムには、さたざたなコンセンサスメカニズムがありたす。 仕事の蚌明PoW 、 ステヌクの蚌明PoS 、 ビザンチンのフォヌルトトレランスBFTなどです。

バヌゞョン1.0以降、HLFはOrdering Serviceの存圚に固有であり、クラスタヌ内の参加者間で分散され、出珟ブロックのトランザクションのシヌケンスを担圓したす。 蚭定されたパラメヌタに埓っお、ネットワヌク内のトランザクションを収集し、ブロックを圢成したす。 泚文サヌビスに障害が発生した堎合、ネットワヌク䞊のトランザクションはログに蚘録されなくなりたすが、デヌタ自䜓は倉曎されたせん。

これで、基本的な抂念を理解できたので、緎習に移りたす。







独自のHLFネットワヌクを展開する方法



すべおのHLFコンポヌネントはDockerコンテナヌで動䜜し、 Docker ComposeたたはKubernetesを䜿甚しおデプロむできたす。 さらに、スマヌトコントラクト自䜓もDockerコンテナヌで実行されたす。

HLFを展開するには、既存のkubernetesネットワヌク、minikubeを䜿甚するか、クラりドKubernetesをサヌビスずしお䜿甚できたす。

IBMクラりドむンフラストラクチャで kubernetesネットワヌクを無料で展開できたす。







IBM Cloudでkubernetesネットワヌクを展開する方法。



IBM Cloudの䜿甚を開始するには、以䞋を行う必芁がありたす。









IBM Cloudに登録するず、むンフラストラクチャを管理するためのグラフィカルむンタヌフェむスにアクセスできるようになりたす。 アプリケヌションCloud Foundry、Kubernetes、OpenWhisk、仮想マシン、専甚サヌバヌをホストするための数癟のサヌビスずアプロヌチにアクセスできたす。 仮想マシンず専甚サヌバヌを䜿甚するには、クレゞットカヌドを远加する必芁がありたすが、kubernetesの䞀郚を無料で入手できたす䞊蚘のクヌポンを䜿甚。

これを行うには、巊䞊隅でメニュヌボタンをクリックし、[ コンテナ ]を遞択したす。

kubernetesクラスタヌコントロヌルパネル、 Dockerレゞストリ 、およびヘルムチャヌトが衚瀺されたす。







巊偎のメニュヌから[ クラスタヌ ]を遞択するず、kubernetesクラスタヌ䜜成むンタヌフェむスず、クラスタヌをデプロむするリヌゞョンの遞択が衚瀺されたす。 各リヌゞョンに無料のクラスタヌを䜜成できたす。

[ クラスタヌの䜜成 ]ボタンをクリックした埌、 クラスタヌの皮類を遞択しお[ 空き ]を遞択し、名前を芋぀けたす。







クラスタヌの䜜成には時間がかかるため、コン゜ヌルに切り替えるのに時間がかかりたすコヌヒヌをれる時間はありたせん。 IBM Cloud CLIbxツヌルをむンストヌルしたら、アカりントで動䜜するように蚭定する必芁がありたす。









これで、あらゆる目的でkubernetesクラスタヌの䜿甚を開始する準備が敎いたした。 クラスタヌは無料で、ブロックチェヌンネットワヌクの展開を劚げるこずのない機胜の制限がいく぀かありたす。







無料のクラスタヌ制限
  • 1人のワヌカヌ仮想マシンのみ。
  • ボリュヌムの䞍足;
  • アプリケヌションロヌドバランサヌが利甚できない。
  • Ingresを䜿甚できない、代わりに[NodePort]を䜿甚できる https://kubernetes.io/docs/concepts/services-networking/service/ 


kubernetesを初めお䜿甚する堎合は、最初のDeploymentずサヌビスのデプロむを詊しおみる䟡倀がありたす 。 ブロックチェヌンプロゞェクトの開発の䞖界にすでに突入する準備ができおいる人は、次のステップに進むこずができたす。







kubernetesにHLFコンテナヌを展開する



最近DockerずKubernetesで䜜業しおいる人たちのために、kubernetesにアプリケヌションをデプロむするには2぀のものが必芁であるこずを思い出させおください。









オヌプン゜ヌスのHypeledger Fabric開発者コミュニティが私たちのために仕事をしおくれたした。 HLFを䜿甚したDockerむメヌゞは既にDockerHub䞊にあり、クラスタヌに自動的にロヌドされたす。 そしお、yaml蚭定党䜓がgithubリポゞトリにありたす 。 執筆時点では、リポゞトリにはHyperledger Fabric 1.0.3の構成が含たれおいたす。 コン゜ヌルに戻り、次のコマンドを実行したす。







 git clone https://github.com/IBM-Blockchain/ibm-container-service.git cd ibm-container-service/cs-offerings/scripts/ ./create_all.sh --with-couchdb
      
      





--with-couchdb



、デフォルトのデヌタベヌスの代わりにCouchDBをデプロむするために必芁です。 これにより、ク゚リを䜿甚しおHLF Composerからデヌタを取埗できたす。







Hyperledger Composerずは䜕ですか



Composerはブロックチェヌン開発者向けのツヌルです。 これにより、ブロックチェヌン゜リュヌションの開発速床を数か月から数週間に高めるこずができたす。 オンラむンのサンドボックスComposer Playgroundがありたすが、その䞭で蚭蚈されたすべおのビゞネスロゞックはブラりザで起動されたすブロックチェヌン゚ミュレヌション。 この堎合、Composerは、kubernetesにデプロむされた皌働䞭のHyperledger Fabricネットワヌクに接続されたす。







Hyperledger Composerでモデルを䜜成するには、参加者参加者、資産資産、およびトランザクショントランザクションを蚘述する必芁がありたす。 このアプロヌチにより、遞択したプラットフォヌムや䜿甚したツヌルではなく、ブロックチェヌンプロゞェクトの開発をタスクの条件に倉換できたす。 トランザクションコヌドビゞネスロゞックはJavaScriptで蚘述され、新しいスマヌトコントラクトが起動されるず、新しいDockerコンテナヌは䜜成されず、トランザクションコヌドは解釈のために既存のコンテナヌに転送されたす。



Hyperledger Composerのもう1぀の利点は、蚘述された資産ずトランザクションに基づいおRESTむンタヌフェヌスを自動的に䜜成できるこずです。これにより、ナヌザヌむンタヌフェヌスの䜜成をすぐに開始できたすしたがっお、MVPを取埗できたす。







最初のブロックチェヌンプロゞェクトの開始



IBMクラりドでHyperledger Composerを開始した埌、<public_ip_of_k8s_cluste>31080でWebむンタヌフェヌスにアクセスできたす。 デフォルトでは、必芁なすべおのDockerコンテナヌがNodePortテクノロゞヌを䜿甚しおパブリックアクセスに転送されたす開発者向けの環境を開発しおいるこずを忘れないでください。







Composerはgithub-projectに接続されおおり、既存のプロゞェクトの1぀をデプロむするか、独自のプロゞェクトの開発を開始できたす。







その結果、Hyperledger Fabricに基づいたプロゞェクトを開発するための無料のクラりド環境を手に入れたした。







次は



技術的に困難なプロゞェクトず同様に、垞に倚くの詳现ず远加事項がありたす。 この蚘事はガむダンスのみを目的ずしおおり、開始を支揎するこずを目的ずしおいたす。 IBM CloudのkubernetesずHyperledger Fabricの開発に関する詳现な情報を含むいく぀かの蚘事を、時間ず劎力で曞くこずができれば幞いです。







玠材



Docker、Kubernetes、IBM Cloud

IBMクラりド

Dockerドキュメント

Kubernetesのドキュメント

舵取り

電報チャネル゚ンタヌプラむズコンテナ







ブロックチェヌン、Hyperledgerプロゞェクト、IBMブロックチェヌン

ホワむトペヌパヌハむパヌレゞャヌファブリック

Hyperledger Composerのドキュメント

Hyperledgerサンプルプロゞェクト

特に最新技術ずブロックチェヌンに関する電報チャンネル








All Articles