banner
0xjokereven

0xjokereven

All is for consistent
twitter
github
pixiv
jike
medium

Fluenceの世界へようこそ、Fluenceの実行方法

運作原理
プロトコル
Fluence プロトコルは、計算リソースのネットワークを構築し、クラウドスタックを必要とせずに計算タスクを実行するためのものです。

Fluence ネットワークの概要

クラウドに依存しない関数、Aqua
Fluence ネットワークは完全に Aqua プロトコルに基づいて動作し、分散型の安全な非中央集権的な実行を提供します。Aqua は、分散アルゴリズムをデッドロックなしで表現するために、π 計算操作にコンパイルされるドメイン固有のスクリプト言語です。Aqua プロトコルはデプロイメントを必要としません:Aqua スクリプトはパッケージ化され、スクリプトによって書かれたプログラムがネットワーク上で実行される際に実行されます。さらに、Aqua はスクリプトの実行を暗号化して安全にします:すべてのリクエストとそのステップ実行は、参加ノードによって署名され、実行されたスクリプトは監査および検証可能となります。

Aqua で書かれたコードは、クラウドをまたいで、サーバーをまたいで、地域をまたいで実行されるため、クラウドに依存しない関数と呼ばれます。クラウドに依存しない関数は、クライアントアプリケーションと Fluence プロトコル自体を駆動します。サービスの発見、ルーティング、負荷分散、サブネットの起動と操作、拡張と耐障害性のアルゴリズムはすべて Aqua 上で実行され、クラウドに依存しない関数として表現されます。

計算関数、Marine
Aqua は、Aqua がサーバーとクラウドの間で実行トポロジとフローを管理する一方、Fluence は Marine を使用してノード上で計算タスクを実行します。Marine は WebAssembly ランタイムであり、インターフェース型と WASI を組み合わせて効果的なアクセスを可能にします。

Marine は計算関数を駆動し、これらの関数はサーバーレスクラウド関数と似たようなもので、単一のマシン内で実行されます。Marine は Rust と C++ をソース言語としてサポートし、WebAssembly の標準の進化に伴い、さらに多くの言語をサポートする予定です。

サブネット
ネットワーク内のすべての計算関数は、冗長なデプロイメントによって耐障害性を確保するために複製されます:ハードウェアの障害やネットワークの中断により、ノードが利用できなくなる場合に備えています。複製されたデプロイメントはサブネットと呼ばれます。サブネットの動作は完全に開発者によってカスタマイズされたクラウドに依存しない関数によって制御されるため、開発者はフェイルオーバー、負荷分散、コンセンサス、またはその他のカスタムアルゴリズムを有効にすることができます。

サブネットは Fluence 上で高可用性のデータストレージを作成します。ホットキャッシュやデータインデックスに使用することができ、大量のデータのストレージは中央集権型(S3 など)または分散型(Filecoin/Arweave など)の外部ストレージネットワークに委託されます。

計算証明
Fluence プロトコルは、ネットワーク内のすべての実行が暗号証明を生成するよう強制します。プロバイダは計算に対して証明を生成し、クライアントは検証済みかつ正しい作業に対して証明付きで支払うだけです。

Aqua のセキュリティ
Fluence 内のノードは、受信したクラウドに依存しない関数の呼び出しに対してサービスを提供し続けます。これらの呼び出しは、さらなる関数の転送または計算関数の実行が必要な場合に、ノード上で実行されます。受信したクラウドに依存しない関数ごとに、ノードはノードの実行パスを検証して、このプロセスが正しく実行されることを確認します。誤ったノードで実行されるクラウドに依存しない関数や乱れたトポロジは破棄されます。

クラウドに依存しない関数がノードに計算関数の実行を要求する場合、ノードは作業を完了し、実行パスを拡張し、リクエストをさらに転送します。この方法により、プロトコルは正しい操作を保証し、すべての実行に対して監査記録を生成します。

処理証明
プロトコルは、Aqua の実行に対してチェーン上で確率的な検証を強制します。すべての計算が Aqua にカプセル化されているため、プラットフォーム上で実行されるすべての操作はチェーン上で確率的に検証されます。プロバイダは必要な実行を提出して報酬を得る必要があります。そうでない場合は削減されます。

実行証明
Fluence 上で特定のコードの実行に対する暗号証明です。各関数の実行は、Fluence の Marine WebAssembly ランタイムによって生成されるこの証明とともに行われます。これらの証明は、後続の実行に参加するノードによって検証され、処理証明に含まれます。

マーケット
チェーン上のマーケットは、計算プロバイダと計算リソースを使用するクライアントをマッチングします。マーケットは完全に許可されているため、どのプロバイダでも参加し、利用可能な容量を公開することができます。

マーケットは Fluence 自体のチェーン上にホストされ、IPC によって駆動され、Fluence の計算プロバイダによって検証され、Filecoin L1 にアンカーされます。独自のチェーンにより、小規模から大規模までのあらゆるスケールで計算リソースをリースするための安価で高速なトランザクションが可能です。

Fluence 市場の計算プロバイダ
Fluence 市場の計算プロバイダ

計算プロバイダのリソース
計算プロバイダのリソース

容量証明
Fluence は、提供者が宣伝するリソースが存在し利用可能であることを保証するために、容量証明と呼ばれる暗号証明を強制します。提供者は、ハードウェアリソースを継続的に容量証明に適用し、これらのリソースがクライアントにサービスを提供する準備ができていることを確認します。プロトコルは、これらのリソースに対して Fluence トークンを割り当てることによって報酬を与えます。

クライアントが特定の提供者の計算能力を必要とする場合、これらのリソースは証明の生成からアプリケーションのサービスへの切り替えが行われます。

容量証明を提出する計算ユニット
容量証明を提出する計算ユニット

リソースの価格設定
クライアントは、広告の価格やその他のパラメータに基づいてプロバイダを選択するか、仕事を公開し、必要な最高価格を指定して任意のプロバイダがピックアップすることができます。

裏側では、各アプリケーションデプロイメントごとに、クライアントとプロバイダの間のトランザクションがチェーン上に作成されます。トランザクションは、財務の詳細(価格、前払い、プロバイダの必要な担保)、サービスに関連する技術要件(特定のデータ、バイナリファイル、Web API へのアクセス)、およびコードのインストールリンクを含みます。

プロバイダのマッチング基準の選択
プロバイダのマッチング基準の選択

課金モデル
最初は、課金モデルは前払い制であり、リソースのリース時間に基づいてエポック単位で計算されます。最小リソースリースは 1 つの計算ユニットであり、2 つのエポックにわたります。1 つのエポックは 1 日を定義し、1 つの計算ユニットは 1 つのコア、4GB のメモリ、5GB の仮想ディスクスペースです。クライアントは最小期間の前払いを行う必要があり、提供者が報酬を受け取ることを保証します。

リクエストベースの課金モデルと弾力性のある計算ユニットは、プロジェクトの次の段階で導入されます。

ネットワーク
Fluence ネットワークは、グローバルに接続されたノードの集合と見なすことができます。各ノードは AquaVM と Marine を実行し、コマンドを受け取ってコードをローカルにデプロイし、受信したクラウドに依存しない関数と他のノードと協力します。これらのノードはほとんどが絶えず経済活動に参加しており、トランザクションを監視し、参加し、新しいサブネットを形成したり、サブネットの参加を調整したり、トランザクション要件に応じてアプリケーションをインストールしたり、実行を調整したり、受信リクエストを処理したりします。彼らはまた、実行証明を生成し、これらの証明を提出して報酬を得るための証明アルゴリズムに従います。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。