Cardstack Hubとは何ですか?
素人からの紹介
リード開発者のEd FaulknerはリードしてCardstack Hubに近づきます。 (8分)
Cardstack Hubは、Cardstackアーキテクチャの最も重要な部分の1つです。クラウド、ブロックチェーンまたは他の場所でも、アプリケーションが複数のデータソースを簡単に処理できるようにします。
以下のブログ記事は、素人が上記のビデオのバラバラなレコードに基づいて、Hubが何であり、どのように稼働しているかについての紹介です。
開発人員注意事項
私たちはHubのドキュメンテーションに取り組んでいます。この期間に、ホワイトペーパーを読むこと、またはGitHubページにアクセスすることで、もっと詳しく了解できます。その中にはCardstack Hubが完全にオープンソース化されているのです。
それは「カード」から始まります
Cardstackアーキテクチャの鍵は、Webアプリケーションを「カード」(非常に豊富な機能をコンポーネントフォームにパッケージ化される)として表示することです。私たちは、さまざまなソース、作者からのすべての異なるコンポーネントがWebブラウザに共存することを望んでいます。これは非常に通用するアプリケーション・ランタイムです。
このチャレンジは、これらのアプリを、集中化されたインターネットと分散化されたインターネットの両方のさまざまなデータソースと簡単に対話できるようにします。
多くのデータソースを処理します
デジタルライフは、さまざまなデータソースにおいている可能性があります。いくつかのデータは、PostgreSQLのような従来のSQLデータベースにあるかもしれません。いくつかのデータはイーサリアム・ブロックチェーン上、またはGit、完全にホストされたデータソースにあるかもしれません。
データはこれらの異なる島々に閉じ込められているため、人々は面倒臭く感じます。Googleカレンダーのコンテンツは、経理データベースとQuickbooksのコンテンツについて何も知らなく、それをイーサリアムのあるスマートコントラクトと結ばせるのは容易ではありません。
どのようにすべてのものをまとめるのですか?データの所有者として、自分の検索エンジンを実行する人でなければなりません。それがCardstack Hubの設計目標です。
Cardstack Hub あなたのデジタルライフを統一します
このアイデアは、あなたに関連するすべてのコンテンツ(すべてのデータソースの中に存在する)を自分のHubにインデックスすることができるということです。 技術的に言えば、HubはNode.jsに基づくサーバーです。Hubの中には、ElasticSearchやPostgreSQLのインデックスが備えて‐強力な検索エンジンで、カノニカルソースのデータを非常に高速な検索可能なティアにデノーマル化できます。
コンテンツをHubにインデックスすると、標準のJSON:API規範、またはリアルタイムプッシュと同時的なWebSocketを通じて、フロントエンドカード・アプリケーションで発生するすべてのインタラクティビティは、すべてのデータを表示でき、非常に高速な標準インターフェースを備えています。多くの異なるソースからにもかかわらず、これらのテータは相互引用され、全体的に接続されます。
https://i.loli.net/2018/07/23/5b5591a125b42.pngすべてがフロントエンドとHubの間で発生するため、データソースが根本的に異なる速度、稼働時間を持つ可能性があります。ブロックチェーンのような遅いデータソースを処理するとき、この点は非常に重要です。
これを可能にするには、典型的なアダプターパターンが必要です。Hubには非常に優れたプラグイン機能が備えられているので、Hub用のアダプタを組むことができます。このアダプタはPostgreSQLとの会話方法を知っています。自身のマイクロサービスをパッケージ化することもできます。たとえば、「イーサリアムを自分のHubに追加したい」と言う場合は、このプラグインは必要なマイクロサービスを稼働してGethをホストします。
Cardstack プラグイン
我々は、プラグインに影響されるシステムではなく、よく型付けのプラグインシステムがあります。
こういうプラグインを組むことによって、すべてのプラグインは特性を提供し、可能的な特性が無数にあるかもしれません。あるプラグインは、ミドルウェアのように非常に通用的で、強力な機能を備えているが、他のものはもっと集中しているかもしれません。
例えば、データソースを実現するために、インデクサー機能、ライター機能、およびサーチャー機能を組み合わせることは必要です。
事実により、これらの3種類のよく型付けのプラグインは、全然違うバックエンドを完成するのに十分です。
インデクサ
インデクサは、コンテンツを他の場所から個人検索インデックスに徐々にインデックスすることができます。これは、すべてのデータのローカルが高速にキャッシュできるようになったため、データを使用する最も強力な方法です。
これにより、認可ルールなどを適用するために、多くの権限が与えられます。そのデータに対してどのようなルールを使用していても、インデックス時に実行できます。したがって、非常に豊富な認可ルールを持っていても、すべての事実を個人検索インデックスに要約し、フロントエンドで非常に検索エンジンのような経験をすることができます。こういう場合は、許可チェックなどに制限されません。
ライター
ライター・プラグインは、データソースに書き込むと聞こえます。
権威のデータページがバックエンドであることを認識することが重要です。気にするデータは、あなたが所有し、管理しているバックエンドにあるべきです。
統合しようとしているデータはまだ本来の場所にあり、Hub Tierは本当はキャッシュティアです。したがって、ライタープラグインはキャッシュに書き込まれません。
一方、フルラウンドトリップを行い:ライタープラグインは直接的にHubを通って、権威のデータソースに書き込んだり、インデクサがそのコンテンツを取り込みます。これは、バックエンドのすべてのネイティブ・セマンティクスを取得することを示します。
たとえば、イーサリアムへの書き込みによって物事が起こる場合-スマートコントラクト・コードが実行され、状態が変更され、インデックスに反映されます。
あるいは、PostgreSQLデータベースが他の場所のコードにタッチされている場合や、トリガーがある場合は、深刻な影響をもたらします。
サーチャー
検索者は、Hubを通じてリクエストを処理することができます。私たちは、ローカルで検索インデックスにないものをより深く検索することができます。
たとえば、アプリケーションで、ID管理を他人に委託することを決め、GitHubプロファイルでユーザーにログインさせるかもしれません。
その場合は、アプリケーションでユーザーを引き続き代表したいなら、ユーザーを表すモデルが必要です。
すべてのGitHubユーザーをHubにインデックスする必要はありません。こういう場合は、サーチャーだけを使用し、特定のユーザーを引用すると、リクエストが直接的にフロントエンドにマッチします
フルスタック分散型アプリケーション
目標:このフルスタックのすべて機能セットをパッケージ化できることです。
たとえば、開発者は、イーサリアムをデータソースとしてのdAppを構築するために、アプリケーションのデータを反映するフロントエンドカードを作成できます。また、Hubに必要なサーバサイド・コードをカードに与えて、データティアと通信するためのプラグインも提供します。
https://i.loli.net/2018/07/23/5b5591a0d7436.pngHubアーキテクチャは、カードがオンチェーンのスマートコントラクトと簡単に対話することを許します。
Data Tierが行う作業が多くあるかもしれません。スマートコントラクトを作成するかもしれません。作成する必要があるPostgreSQLデータベースがあるかもしれません。Gitリポジトリが作成されている可能性があります。
重要な点は、すべてのティアを再利用可能な部分としてパッケージ化できることです。
そうすれば、完全にオープンなエコシステムを持つことになり、それを使用できるようになります。
複数のブロックチェーンに向かいます
私たちが組んだ初めてのブロックチェーン・プラグインは、Hubがイーサリアム、 Gethと対話することを可能にします。しかし、Cardstackアーキテクチャは複数の同時データソースをサポートしており、それらがすべてファーストクラスであることを保証するため、おく構造化されたプラグインAPIを提供することで、プラグイン(ブロックチェーン、dApp)を追加でき、数に制限はありません。
つまり、Cardstackは、分散型データソースを簡単にインデックス作成、検索、書き込みが可能なアプリケーションの作成をこれまで簡単に行うことができます。言い換えれば、Hubとは、任意のブロックチェーンが他のブロックチェーン、dApp、既存のデータソースと相互運用できることを意味します。
結論
Cardstackアーキテクチャについてのメリットは、個々の部分が経験豊富なチームが現在構築している部分と根本的に異なるものではないということです。パターンは、このアプリケーションを何度も何度も試し、経験を生かしてきたことで、構成することができました。
最小限の実行可能な製品であるCardstack トークンを使用して、ジェネレーション・イベントWebアプリを作成することで、私たちのアプローチを証明しました。このアプリケーションは完全にCardstack Hubによってサポートされています。今後登場する予定のCardspaceは、UI、UXと組み合わせてHubの能力を実証する予定です。
我々の目標は、Cardstackアーキテクチャを将来dappsの通用的な開発者のツールキットとして、ユーザーのデジタルライフに完全に普及されたソフトウェアを支払いできるようになります。
参加する方法
公式テレグラムチャンネル
https://t.me/cardstack Cardstackに関する討論に参加してください。
重要なリマインダー
どんな状況でも、電子メール、私的なメッセージ、またはソーシャルメディアを通じて資金を募ることは決してありません。
日本語テレグラム:
https://t.me/CardStack_JP2018