虹の橋のプリズムタワー:Web3 とミドルウェア — Kafka
出典:Confluent Kai Wahner
翻訳:Masterdai
1:背景と展望
2016年のInfoQ国際会議で、Kai Wahnerは「ブロックチェーン------ミドルウェアの次の大きなこと」というタイトルの講演を行いました。彼は当時、ブロックチェーンデータとミドルウェアに基づく新しい参照アーキテクチャを提案し、このアーキテクチャは現在、多くの技術統合業者やサプライヤーによって採用されています。

しかし、彼はどの暗号スタートアップにも参加しませんでした。2017年にConfluentに参加したのは、「トランザクションと分析型ワークロードを通じて、あらゆる規模の動的データを処理することがより重要なパラダイムシフトである」と考えたからです。Confluentに参加するという決断について、Kaiは自分が正しかったと考えています。彼がブログで書いたように、「現在、多くの企業がKafkaをMQ、ETL、ESBツールの代替ミドルウェアとして利用しているか、サーバーレスKafkaを使用してクラウドネイティブiPaaSを実現しています。」
物語はここで終わりません。ブロックチェーン、暗号技術、NFTの出現と大規模な採用は、ミドルウェアなどのオープンソース基盤ソフトウェアに対する需要を急増させました。十分な理由から(スケーラビリティ、信頼性、リアルタイム性)、多くの暗号市場サイト、ブロックチェーン監視インフラストラクチャ、ホスティングバンクがKafkaの上に構築されています。 これらの顧客の成功の鍵は、ブロックチェーン、暗号通貨と企業サービスソフトウェア、データベース、データレイクを統合することにあります。
もし私たちがChainlink のようなオラクルを、オンチェーンネットワークとオフチェーン世界をつなぐ虹の橋に例えるなら、Kafka や Flink のようなミドルウェアはその虹の光を屈折させるプリズムタワーです。
2:ミドルウェアとは何か
ミドルウェアは、オペレーティングシステムとその上で動作するアプリケーションの間に位置するソフトウェアで、分散アプリケーション間の通信とデータ管理をサポートします。時にはパイプラインとも呼ばれ、2つのアプリケーションを接続するため、データとデータベースが「パイプライン」間で簡単に伝達できます。一般的なミドルウェアには、データベースミドルウェア、アプリケーションサーバーミドルウェア、メッセージ指向ミドルウェアなどがあります。言い換えれば、これはアプリケーションとアプリケーションの間の対話と通信を実現し、国際的なパーティーでの仲介者兼通訳のような役割を果たします。そしてKafkaはメッセージミドルウェアの一種です。
Apache Kafka
Kafkaはオープンソースの分散イベントストリーム処理プラットフォームで、最初は2011年にLinkedInで作成され、オープンソース化されました。
Kafkaは3つの重要な機能を通じて、ユーザーがエンドツーエンドのソリューションを実現するイベントストリームを構築できるようにします。
イベントストリームの発行(書き込み)と購読(読み取り)、他のシステムからデータを継続的にインポートまたはエクスポートすることを含みます。
イベントストリームの永続的かつ信頼性のあるストレージ。
瞬時に発生したり、過去に発生したイベントストリームの処理。
イベントストリーム:データをさまざまなデータソース(データベース、センサー、モバイルデバイス、クラウドサービス、アプリケーション)からストリーミングイベントの形式で取得し、後の検索のために永続的に保存し、リアルタイムかつ追跡可能な方法でイベントストリームを操作、処理、応答し、必要に応じてイベントを異なるターゲットに送信する技術です。イベントストリームはデータの連続的な流れと表現を保証し、正しい情報が正しい時間に正しい場所に現れることを可能にします。

Apache Kafkaのユースケース
メッセージング:Kafkaは従来のメッセージブローカーの代替として使用できます。メッセージブローカーは、データストレージと処理のデカップリング、未処理の応答メッセージのバッファリングなどに適用されます。
ウェブサイトのアクティビティトラッキング:ユーザーアクティビティを追跡するパイプラインをリアルタイムの発行---購読ソースのセットに再構築します。ユーザーのサイトでのアクティビティ(ページビュー、検索、クリックなどの他の操作)を中心テーマに発行し、各アクティビティタイプには1つのテーマがあります。これらの購読ソースは、リアルタイム処理、監視、Hadoopまたはオフラインデータウェアハウスシステムへのロードなど、さまざまなユースケースに使用できます。
ログ集約:Kafkaをログ集約ソリューションの代替品として使用します。ログ集約は通常、サーバーからログファイルを収集し、それらを中心の場所(ファイルサーバーまたはHDFS)に配置して処理します。Kafkaはファイルの詳細を抽象化し、ログまたはイベントデータをより明確なデータストリームとして抽出します。これにより、複数のデータソースや分散データベースの状況で、より低遅延のデータ処理が可能になります。
3:KafkaとWeb3の関係
下の図は非常にクラシックなDapp技術実装の原理ですが、多くの人に錯覚を与えます。まるでフロントエンドがEthereumネットワークにデータをリクエストするだけで、オンチェーンとオフチェーンの行動の相互作用が実現できるかのようです。実際の開発プロセスでは、しばしばより複雑で、ブロックチェーンのバックエンドとフロントエンドの間に構造の層が追加されます。

このような構造の中で、私たちは次のことを実現できます:
Kafkaはサイドチェーンまたはオフチェーンの方法で大規模なリアルタイムデータ計算を行います。ブロックチェーン技術と企業の他のソフトウェア部分の統合、CRM、大データ分析、その他のカスタムビジネスアプリケーションを含みます。つまり、Kafkaはブロックチェーン統合のミドルウェアとして機能します。

暗号企業アーキテクチャにおけるより一般的なユースケースは、Kafkaをブロックチェーンと企業アプリケーション間のスケーラブルなリアルタイムデータセンターとして利用することです。以下はいくつかの例であり、Kafkaがどのように役立つかを探ります。
3.1.Kafkaをメタバースのデータハブとして
小売業者とユーザー間の交流はリアルタイムである必要があります。実体のある衣服や携帯電話を販売したり、NFT取引市場で仮想の商人と値段交渉をしたりする場合でもです。以下のアーキテクチャは、さまざまな暗号および非暗号アプリケーション間の情報フローを編成することで、あらゆる規模の仮想世界アーキテクチャをリアルタイムでサポートします。

3.2.Kafkaが暗号取引市場でデータハブとしての役割を果たす
ユーザーはモバイルウォレットでビットコイン取引を実行します。リアルタイムアプリケーションはオフチェーンデータを監視し、関連データをダッシュボードに表示し、プッシュ通知を送信します。別の完全に独立した部門がバッチ処理の過程でKafkaログからの過去のイベントを再生し、専用の分析ツールを使用してコンプライアンスチェックを行います。

Kafkaエコシステムは、ブロックチェーンと暗号世界からのデータを従来のITデータと一緒に使用するための多くの機能を提供しています。
4:Kafkaが提供できる技術的ユースケース
ブロックチェーンインフラストラクチャ、暗号通貨、Dappの健康状態を監視し、ダウンタイムを回避し、インフラストラクチャを保護し、ブロックチェーンデータをアクセス可能にします。------インフラストラクチャメンテナンス
Kafka StreamまたはksqlDBを使用したストリーム処理により、Defi、NFTなどの関連取引市場でリアルタイムデータ処理を行います。------オンチェーンデータ分析
Kafkaをオラクルの統合チャネルとして使用します:ChainlinkからKafka、さらにITインフラストラクチャへ。
Kafkaブローカー上のスロットリングと乱数管理を通じてバックプレッシャーを処理し(データフローが上流のプロデューサーから下流のコンシューマーに伝送される過程で、上流の生産速度が下流の消費速度を上回り、下流のバッファがオーバーフローする)、トランザクションをオンチェーンにストリーミングします。------GamefiとSocialfi
複数のチェーンを同時に処理します:Ethereum、Solana、Bscブロックチェーン上の取引を並行して監視し、関連付けます。------クロスチェーン関連
私たちは、将来的に新世代のgamefi、defi、socialfi、モバイルDappの成長とともに、過去に単にオンチェーンデータをデータベースやデータレイクに取り込む方法が、現在の新しいアプリケーションのニーズを満たすことができなくなることを見ています。アーキテクチャ設計において、メッセージミドルウェアの特性を十分に活用することで、ほとんどのユーザーのリアルタイム性と信頼性のニーズを満たすことができます。
5:暗号とDefiの世界におけるKafkaの実際のケーススタディ
TokenAnalyst : 暗号市場の可視化
EthVM:ブロックチェーンブラウザと分析エンジン
Kaleido:ブロックチェーンとスマートコントラクトのためのREST APIゲートウェイ
Chainlink:スマートコントラクトをブロックチェーンから現実世界に接続するオラクルネットワーク
5.1.TokenAnalyst -- 暗号市場の可視化
TokenAnalystは、オンチェーンデータ分析ツールであり、企業向けAPIサービスを提供します。このプロジェクトは2020年5月に運営を停止することを発表し、そのチームのほとんどのメンバーがCoinbaseに参加しました。しかし、そのケースは依然として参考にする価値があります------それはKafkaスタック(Connect、Streams、ksqlDB、Schema Registry)を利用して、ビットコインとEthereumからのブロックチェーンデータをその分析ツールと統合しました。
「オンチェーンデータにアクセスするにはノードが必要ですが、それは人々が想像するほど簡単ではありません(各バージョンや地域間のデータの違い)。さらに、もう一つの課題は、彼らをネットワークと同期させることです。ゼロダウンタイムを実現し、最高のデータ品質と信頼性を確保するために、私たちはKafkaとConfluentプラットフォームを使用することに決めました。」
TokenAnalystは、Ethsyncという内部ソリューションを開発しました。各ノードにEthsyncを追加し、データを対応するKafkaトピックにプッシュします。下の図のように、冗長性を実現するために複数のノードを運用する必要があります。トピックにプッシュされたブロックは更新され、クライアントは新しい有効ブロックとして受け入れます。しかし、ブロックチェーンの性質上、ブロックチェーンのフォーク(代替チェーンが長くなり、別のチェーンが無効になること)が発生する可能性があります。したがって、以前有効だったブロックが無効になる可能性があります。(筆者注:この問題は現在の多くのプロジェクトでも発生しています。)

Kafka Streamsに基づくブロック確認器:TokenAnalystは、下流の集約計算で無効なブロックを使用しないようにするために、ScalaのKafka Streamsに基づくブロック確認器コンポーネントを開発しました。これは、一時的にブロックを保持することで再編成シナリオを解決し、一定数の確認ブロック(そのブロックを掘ったサブブロック)に達したときのみそれらを伝播します。
確認器は、規範チェーンの検証の問題を解決するだけでなく、確認を通じて破棄されたブロックやすでに登録されたブロックを出力し、有効な一度だけのセマンティクス(Exactly-once semantics)を持つ確認ブロックを生成します。このコンポーネントにより、フォールトトレラントな回復メカニズムを最大限に活用し、ゼロダウンタイム環境でのローリングデプロイメントに適しています。
5.2.EthVM -- ブロックチェーンブラウザと分析エンジン
ビットコインやEthereumなどの公共の分散型ブロックチェーンの素晴らしさは、その透明性にあります。改ざん防止ログにより、ブロックチェーンブラウザはすべての取引を監視し、分析することができます。
EthVMは、Apache KafkaによってサポートされるオープンソースのEthereumブロックチェーンデータ処理および分析エンジンです。このツールは、ブロックチェーン監査と意思決定をサポートします。EthVMは取引とスマートコントラクトの実行を検証し、残高を確認し、ガス価格を監視します。このインフラストラクチャは、Kafka Connect、Kafka Streams、Schema Registryを使用して構築されています。また、クライアントが可視化するブロックリソースマネージャーも含まれています。

EthVMがKafkaを使用するきっかけは、Boerge SvingenがConfluentブログに投稿した「ニューヨークタイムズでApache Kafkaを使用する」という記事に由来します。この中で、象徴的なニューヨークタイムズが混在したAPI、サービス、プロデューサー、コンシューマーから、Kafka駆動のログベースのアーキテクチャに移行したことが説明されています。
ブロックチェーンは本質的に、ブロックにまとめられ、暗号技術でリンクされた、成長し続ける記録のリストです------プログラマーの言葉で言えば、リンクリストです。Kafkaの用語では、Ethereumクライアントはプロデューサーであり------ログの新しいエントリを作成する責任があります。
5.3.Kaleido -- 暗号とスマートコントラクトのためのKafkaネイティブゲートウェイ
Kaleidoは、スマートコントラクトをデプロイおよび管理し、Ethereum取引を送信し、ブロックチェーンデータを照会するための企業向けブロックチェーンAPIを提供します。これにより、Ethereum取引の提出、Web3クライアントライブラリ、nonce管理、RLPエンコーディング、取引署名、スマートコントラクト管理のブロックチェーンの複雑さが隠されます。

Kaleidoは、オンチェーンロジックとデータにREST APIを提供します。これは、完全に管理された高スループットのApache Kafkaインフラストラクチャによってサポートされています。
ブロックチェーンベースの分散トランザクションシステムでは、イベントの検出と反応は避けられない要求です。どの参加者やアプリケーションも状態変化を制御することはできません。オンチェーンのスマートコントラクトロジックは、オフチェーンシステムと直接通信することはできません------そうでなければ、ロジックの決定性が損なわれます。
イベント(トランザクション「ログ」を通じて伝達される)は、プログラミングモデルの核心部分であり、豊富な型システムを使用して簡単に発信できます。
これらのイベントは、ロジックをトリガーするだけでなく、データフローとしてチェーンから流出することもできます。
ウェブおよびモバイルでの効率的なデータ取得
リアルタイム分析エンジンとデータレイク
アプリケーションやビジネスプロセスをトリガーするためのサーバーレスまたは従来のコンピューティング
Kaleidoは、これらのイベントを処理するための2つの組み込み機能を提供し、複雑な生のJSON/RPCインターフェースを直接使用したり、チェックポイントの再起動/回復やRLPデコード、型マッピングを処理したりする必要がありません。(それぞれChainlinkとEvent streaming)

イベントストリーム:REST APIゲートウェイと統合されたREST APIを使用して購読し、シンプルなWebhookを介してイベントを任意のHTTPインターフェースに伝達するか、Apache Kafkaがサポートする暗号App 2 App Messagingレイヤーを介して伝達します。
5.4.Chainlink -- スマートコントラクトをブロックチェーンから現実世界に接続するオラクルネットワーク
Chainlinkは、スマートコントラクトを現実世界に接続するための業界標準のオラクルネットワークです。「Chainlinkを利用することで、開発者はオンチェーンコードと、分散型オラクルネットワークによってサポートされる多数の安全なオフチェーンサービスを組み合わせたハイブリッドスマートコントラクトを構築できます。数十万人からなるグローバルな分散型コミュニティが管理しており、Chainlinkはより公平な契約モデルを導入しています。そのネットワークは現在、分散型金融(DeFi)、保険、ゲームエコシステムなどの分野のスマートコントラクトに数十億ドルの価値を提供しています。Chainlinkネットワークの完全なビジョンは、Chainlink 2.0ホワイトペーパーに記載されています。」

Chainlinkは、公開されたブログ記事や会議でその設計アーキテクチャについて議論していません。私たちは、彼らの採用担当者の職務要件からその設計を垣間見ることができます------Chainlink は、従来の時系列ベースの監視からイベント駆動型アーキテクチャへと移行しています。
6:まとめ
これらのノード施設サービスプロバイダーが登場する前は、一般の人々がオンチェーンのデータ情報を取得することは非常に困難でした。しかし今では、インターネットに接続できる人は誰でも、ブロックチェーンブラウザやオンチェーンデータ分析ツールを通じて、比較的リアルタイムのブロックデータを見ることができます。
しかし、データを見ることと、大規模にデータを使用することは全く異なる概念です。
「神々は世界樹を登ることはありません。彼らは虹の橋を通っていくつかの世界を行き来します。虹の橋を使えるのは神だけです。もし氷の巨人や他の巨人が虹の橋を通ってアスガルドに登ろうとすれば、彼らの足は焼かれてしまいます。」
私たちは現在、ノードホスティング、Web3APIなどのサービスの助けを借りて、オンチェーンとオフチェーンの間で効率的なリアルタイムコミュニケーションを行うコストが依然として高いです。北欧神話の虹の橋のように、それは依然として特定の神々の専用通路です。その理由は、オンチェーンデータとオフチェーンビジネスの間に多くの空白の部分が存在するからです。Kafkaは単なるメッセージ伝達の一環であり、その間にはデータのリアルタイム取得、クレンジング、ストレージがあります。そして、従来のITビジネスにサービスを提供していたミドルウェアやデータベースが、必ずしも現在のWeb3 ITアーキテクチャに完全に適用されるわけではありません。ますます多くの企業やビジネスが暗号の分野に進出するにつれて、将来的にはブロックチェーンネットワークに基づく新しいオープンソースのミドルウェアとデータ分析アーキテクチャが登場する可能性があります。
私はいつの日か、誰もが虹の橋を開く能力を持つことを願っています。私たちは、世界樹が創造した九つの界を自由に行き来し、すべての生き物と交流することができるでしょう。













