これは、Arweave エコロジー開発者向けのコミュニケーション プラットフォームである Permaweb アプリケーション (以下、Now と呼びます) です。 Now の主な機能は、ユーザーがブログを開始し、ユーザーがそのコンテンツに「いいね!」を付けることができることです。
Now のすべてのデータは Arweave に保存され、不変のストレージ層により Now の分散化が保証されます。ユーザーが Now を開くと、ブラウザはまず Arweave のゲートウェイ サービスからフロントエンド フレームワークを読み込みます。以下の図に示すように、ページ フレームワークには主に Now のヘッダー コンポーネントが含まれており、Now アプリケーションの表示データは含まれていません。 。
次世代インターネットパーマウェブのプロトタイプを明らかに:SCP理論に基づく分散型マイクロサービスアーキテクチャ
著者: Outprog @ PermaDAO の寄稿者
レビュアー: Xiaosong HU @ PermaDAO 寄稿者
Permaweb は、Arweave Ecology が提案する次世代のインターネット アーキテクチャです。Permaweb が重視しているのは、アプリケーションや Web サイトに永続的にアクセスできることです。これにより、インターネットに記憶が残り、決して忘れられなくなります。同時に、Permaweb はサーバーレスの特徴を備えており、開発者は構築プロセス中にフロントエンドとバックエンドをデプロイする必要がなく、開発されたすべてのサービスは Permaweb の基本サービス層によって提供されます。
パーマウェブの概念とビジョンについて詳しくは、Liu Yi 先生が書いた「Arweave の可能性は、アレクサンドリア図書館を復活させることです。ファイルコインの代替品ではありません」を読んでください。
この記事では、パーマウェブを SCP 理論と組み合わせた技術的な観点から解釈します。
基本フレームワーク
Permaweb は 3 層アーキテクチャを使用しており、最上位層はユーザー指向のインターフェイスであるアプリケーション層です。中間層はサービス層で、アプリケーションにバックエンド サービスを提供します。最下層はストレージ層で、Arweave を使用してアプリケーションにデータ ストレージ サービスを提供します。
Permaweb のアーキテクチャは Web2 アーキテクチャと大きく異なり、アプリケーション層は従来の Web2 フロントエンドに相当し、サービス層はバックエンドに相当し、ストレージ層は物理サーバーまたはデータベースに相当します。
分散ストレージの使用は、Permaweb と Web2 の最大の違いです。 Permaweb アプリケーションが永続ストレージ Arweave を統合すると、アプリケーションのコンテンツの改ざんや消去が非常に困難になり、アプリケーションは分散化の特性を獲得します。 Permaweb のアーキテクチャは Web2 と表面的に類似していますが、その基礎となるテクノロジーと設計哲学は根本的な違いを生み出します。
Permaweb のアプリケーション アーキテクチャを下の図に示します
写真は パーマウェブ クックブックより
以下では、Permaweb の 3 層アーキテクチャを詳しく紹介します
ストレージ層
ストレージ層は Permaweb の中核であり、ストレージ層がブロックチェーン技術を使用しない場合、Permaweb と Web2 の間に違いはありません。 Permaweb のストレージ層は必ずしも Arweave に限定されるわけではありません。理論的には、ビットコインやイーサリアムをストレージ層として使用して完全なパーマウェブを構築することも可能ですが、開発者とユーザーが過剰なストレージコストを負担するのは困難です。 Arweave は現在、永続ストレージ用として最もプロフェッショナルなブロックチェーンであり、コストは 1 GB あたりわずか 5 ドルであり、パーマウェブにとって最適な選択肢です。
では、ストレージ層は IPFS を使用できますか? IPFS を使用すると、Permaweb はデータのトレーサビリティ機能を失いますが、IPFS のデータ CID は改ざんできないことを保証しますが、IPFS はブロックチェーン技術を使用しません。 IPFS データにはブロック タイムスタンプがないため、データがいつ生成されたかを知ることはできません。同時に、データは IPFS サービス ノードが閉じられると失われ、データが永続的に保存されるという保証はありません。追跡可能。
サービス層
サービス層は、統合ミドルウェアとして、Web2 マイクロサービス クラスターと同様に、ステートレスで水平方向に拡張できるアプリケーション用の API を提供します。通常、Permaweb のサービス層は標準化されたインターフェイスとプロトコル (Web2 の gRPC や Thrift の完全にオープン ソースおよびオープン プロトコルと同様) を提供します。これらのインターフェイスとプロトコルは完全にオープンでオープン ソースであり、サービスを展開するサービス プロバイダーはすべて同じものを提供できます。プロトコル標準に準拠した API。標準プロトコルを使用して開発されている限り、あらゆるアプリケーションをさまざまなサービス上で動作および使用できます。
現在、Arweave のサービス レイヤーには 4 つのコア コンポーネントが含まれています。
現在の標準プロトコルには上記の 4 つのモジュールのみが含まれており、Permaweb のサービス層は将来的に新しい標準をさらに拡張する可能性があります。
アプリケーション層
Permaweb アプリケーションにはサーバーレス機能があり、開発者はサーバーを展開する必要がありません。サービス層はアプリケーション層に対して標準的なインターフェースを提供するため、仕様に従って開発されたアプリケーションはどのサービス層でも開いて使用することができます。
**対話: **ユーザーはサービス層と対話するだけでよく、基礎となるブロックチェーンと対話する必要はありません。
要約すると、Permaweb は、インタラクションの点で Web2 と同じエクスペリエンスを実現できます。
耐検閲性: 標準プロトコルとインターフェイスにより、アプリケーションに耐検閲性が提供されます。以下にリストされている URL は、cookbook という名前の Permaweb アプリケーションです。
クックブック アプリケーションには任意の URL を開いてアクセスでき、Web サイトは世界中のさまざまなゲートウェイとサーバーによって提供されていることがわかります。 arweave.asia にアクセスできなくなった場合でも、ユーザーは他のいくつかの URL を使用してアプリを引き続き使用できます。すべてのゲートウェイが閉じられた場合でも、クックブック データは Arweave に保存されており、サービス プロバイダがいつでもクックブック アプリケーションを復元できるようにデータが失われることはありません。
Arweave 永続ストレージをストレージ層として使用すると、各 Permaweb アプリケーションのデータの分散化が保証され、標準化されたオープンソース プロトコルをサービス層として使用すると、不可抗力で個々のサーバーがシャットダウンされることによって引き起こされるレビューのリスクを回避できます。 Permaweb アプリケーションは分散型であり、検閲に対抗します。
SCP のマイクロサービス バージョン
Permaweb のアーキテクチャは従来の Web2 のアーキテクチャに似ており、本質的に、Permaweb は分散ストレージに基づく一連のマイクロサービス アプリケーション アーキテクチャです。
マイクロサービスは、Web2 開発で使用されるソフトウェア アーキテクチャ パターンであり、大規模で複雑なアプリケーションを、より小さく独立した一連のサービス ユニットに分割します。各マイクロサービスは、独立して開発、デプロイ、実行できる独立した機能モジュールです。これらのマイクロサービスは、HTTP やメッセージ キューなどの軽量の通信プロトコルを使用して実装できる、明確に定義された API を通じて相互に通信します。
Permaweb の全体的なアーキテクチャはマイクロサービスに非常に似ており、各 Permaweb アプリケーションは標準化された独立したサービス ユニットで構成されています。同じ設計コンセプトにより、Permaweb は大規模で複雑なアプリケーションを構築できます。
従来のマイクロサービスとの違いは、Permaweb が SCP に準拠しており、ストレージ コンセンサスに基づいたアプリケーションであることです。 Permaweb は、SCP のマイクロサービス アーキテクチャ バージョンです。
SCP を使用してアプリケーションを開発する場合、従来のアプリケーション アーキテクチャは多くの調整を必要とせず、DB (ストレージ層) を改ざん不可能で追跡可能なブロックチェーン ストレージに置き換えるだけで済みます。
### アドバンテージ
この分散型マイクロサービス アーキテクチャを使用して開発されたアプリケーションは、分散化、改ざん防止、トレーサビリティ、検閲防止などのブロックチェーンと同じ特性を得ることができます。
従来のマイクロサービス アーキテクチャと同様、このアーキテクチャには次のような開発上の利点があります。
**1. モジュール性と保守性: **独立したサービス。それぞれが特定の機能を担当します。この標準化されたモジュール設計により、各サービスを独立して開発、テスト、展開、保守できるため、アプリケーションの保守性と柔軟性が向上します。
**2. 独立性: **各サービスは、異なるチームによって開発および保守できます。これは DAO の特性により一致しており、さまざまな組織や個人が Permaweb に最高のパフォーマンスと開発速度を提供できるようにし、開発者が最適なテクノロジー スタックとツールを選択できるようにします。 Arweave エコシステムでは、さまざまなチームがさまざまなサービスを提供していることがわかります。たとえば、ar.io はゲートウェイを提供し、bundlr とオープンソース arseeding はデータ バインディング サービスを提供し、everPay と Permaswap は特殊な金融サービスを提供します。
**3. スケーラビリティ: **独立したサービスは、必要に応じて特定のサービスを水平方向に拡張できます。各サービスは ETH 2.0 で言及されているシャードであるとさえ比較できますが、Permaweb にはシャードの数に制限がなく、無限に水平に拡張できます。さらに、同じプロトコル標準で、特定のアプリケーションのアクセス速度を最適化するために、特定のアプリケーションのデータのみをキャッシュして処理できる一部のゲートウェイなど、異なるデータ セット サービスも提供できます。
**4. 高可用性: ** 複数の利用可能なゲートウェイ (マイクロサービス) を使用すると、アプリケーションに単一障害点がなくなり、可用性が向上します。
このアーキテクチャは、マイクロサービス アーキテクチャのすべての利点を継承し、ブロックチェーン アプリケーションの不可能な三角形の問題を解決します。従来のブロックチェーン アプリケーションは、他の 2 つの機能の整合性を確保するために、パフォーマンス、セキュリティ、分散化のうちの特定の機能を放棄する必要があります。 SCP 理論では、階層化されたアーキテクチャ設計の使用により、コンセンサスはストレージ層と一般的なプロトコルによって保証されます。現時点では、分散化はノード数と強く関連する必要はありませんが、プロトコルのオープン性 (オープンソース) の度合い。イーサリアムの分散化について話すとき、ノードの数を考慮することに加えて、イーサリアム ソフトウェア自体が標準プロトコルであることも認識する必要があります。ユーザーとマイナーは同じプロトコルのセットを使用して合意に達し、合意を形成することができます。高度な合意、集中化。 Ethereum の場合、現在、大多数のユーザーと開発者が infura.io が提供するサービスを使用しています。infura.io は集中型サービスですが、ユーザーはいつでも Ethereum プロトコルを展開し、ネットワークへの自律アクセスを使用できます。同様に、分散型マイクロサービスも上記の特性を満たすことができますが、分散型マイクロサービスは特定の VM アーキテクチャ (EVM など) ではなく、より柔軟で従来のアーキテクチャの理論モデルに近いマイクロサービスと SCP 理論を組み合わせたものです。次世代の分散型インターネット アーキテクチャの誕生。
**実践: Arweave から Arweave を超えて **
現在、Permaweb には ゲートウェイ、データ バインディング、シリアル化、インデックス作成の 4 つのサービスのみがあり、これらのサービスは一定の標準を形成しています。それでは、Permaweb インスタンスとは正確にはどのようなものなのでしょうか?具体的には、4 つの標準サービスを使用して Permaweb を構築するにはどうすればよいでしょうか?
今すぐお申し込み
これは、Arweave エコロジー開発者向けのコミュニケーション プラットフォームである Permaweb アプリケーション (以下、Now と呼びます) です。 Now の主な機能は、ユーザーがブログを開始し、ユーザーがそのコンテンツに「いいね!」を付けることができることです。
Now のすべてのデータは Arweave に保存され、不変のストレージ層により Now の分散化が保証されます。ユーザーが Now を開くと、ブラウザはまず Arweave のゲートウェイ サービスからフロントエンド フレームワークを読み込みます。以下の図に示すように、ページ フレームワークには主に Now のヘッダー コンポーネントが含まれており、Now アプリケーションの表示データは含まれていません。 。
ブラウザがアプリケーション フレームワークをロードすると、Now のコンテンツ表示部分に Loading Stamp が表示されることがわかります。このとき、Now アプリケーションはアプリケーションのデータを取得するための GraphQL リクエストを開始しています。取得が完了するまで数秒待つと、次の図に示すように、Now アプリに最新のユーザーのコメントといいね (スタンプ) が表示されます。
このページでは、初期化フレームワークとすべてのユーザー データ、およびページに表示されるすべての画像がゲートウェイを通じて取得されます。これらの要素はブラウザ内で計算され、組み立てられて、Now の完全なページを形成します。ゲートウェイは静的なリソースのロード機能を提供し、インデックス サービスは動的なデータのロード機能を提供します。
ユーザーがブログを追加したい場合、ユーザーはウォレットを使用してコンテンツを Arweave にアップロードできます。これらのコンテンツは、インデックス サービスがこれらのコンテンツに対して GraphQL クエリ機能を提供できるように、特定のタグでマークされます。ブログが正常にアップロードされたら、Now アプリを再度更新すると、アプリのコンテンツ表示に新しいコンテンツが表示されます。
上の図は、Permaweb の書き込みと読み取りの基本プロセスを示しています。実際のアプリケーションでは、Permaweb の書き込みと読み取りの両方がサービス層を通じて実行されます。
規格外
マイクロサービスの最大の利点はスケーラビリティであり、これは Now アプリケーションから完全に継承されます。任意のゲートウェイを使用して Now にアクセスできます。
同様のゲートウェイは無限にスケールアウトでき、Now アプリケーションにほぼ無限のパフォーマンスを提供します。
SCP のベストプラクティス
Permaweb のアーキテクチャでは、最下層はストレージ層として Arweave のみを使用します。しかし、分散型マイクロサービスはこれに限定されるべきではなく、パーマウェブとマイクロサービス アーキテクチャの利点を深く吸収して、SCP のエンジニアリングのベスト プラクティスを探求する必要があります。
下の写真は、記事「コンセンサス変更、ブロックチェーン アプリケーション パラダイム進化の旅」からのものです。この記事では、将来のブロックチェーン アプリケーション アーキテクチャについて説明しています。ユーザーはブロックチェーン システム自体と対話するのではなく、サービス層と対話します。ブロックチェーン アプリケーションは図 1 から図 3 への進化プロセスを経ており、さらに多くの内容を読むことができます。
上の図 3 からわかるように、アプリケーションが依存するブロックチェーンは Arweave に限定されず、ビットコインとイーサリアムもブロックチェーン オブジェクトです。これらのブロックチェーンはアプリケーションのコンセンサスのソースとして機能し、アプリケーションに分散化と信頼できる保証を提供します。アプリケーションの同様に、Permawebや分散型マイクロサービスも拡張可能であり、ストレージ層はArweaveに限定する必要はなく、同時にビットコインやイーサリアムもストレージ層として利用可能です。ブロックチェーンの種類。考えられるベスト プラクティス アーキテクチャを以下に示します。
ボトムアップの順序で説明します。
要約
過去 30 年間のコンピュータ ソフトウェア エンジニアリングの進化を振り返り、過去 10 年間のブロックチェーン エンジニアリングの進化を考えるとき、グローバル仮想マシン (EVM など) にレイヤー 2 拡張を加えたものであるかどうかを考えなければなりません。ソリューションは究極の分散システムです。
この記事では、Layer2 またはシャーディング テクノロジの実現可能性については詳しく説明しませんが、ブロックチェーン アプリケーションの別の可能性を提供します。この記事では、Arweave エコシステムのパーマウェブを例として取り上げ、ストレージ コンセンサス パラダイム (SCP) とマイクロサービス アーキテクチャのアイデアを組み合わせて、エンジニアリングで実現可能なソリューションを再編成します。このソリューションは、強力な拡張機能を備えているだけでなく、アプリケーションに分散化の特性を持たせることもできます。さらに重要なのは、このソリューションは鏡像ではなく、エンジニアリングですでに実践されているアーキテクチャ システムであるということです。
参考
1. Arweave の可能性は、Filecoin の代替品ではなく、Alexandria ライブラリを復活させることです
2. コンセンサスの進化、ブロックチェーン アプリケーション パラダイムの進化
3. パーマウェブを使ったクッキング
4. ブロックチェーン ストレージ ARWEAVE: チューリング マシンの紙テープ、トラステッド コンピューティングの新しいパラダイム
5. Arweave の開発の簡単な歴史とストレージ コンセンサス パラダイム