HolochainのFull Chain(ソースチェーン全体)バリデーションとHoloscapeのUXアップグレードについて
概要
我々は、インターネット上でアプリを実行する際の障害を取り除いたHolochain Coreリリース0.0.41-alpha3の直後に、パフォーマンスの改善、開発者の開発経験の向上、自動テストインフラストラクチャのサポートに力を注ぎました。今回のリリースには、hAppバンドルの統合とオフラインでのFull Chainつまりソースチェーン全体の検証の2つの重要な変更点が含まれています。 Holoscapeのリリース0.0.5-alphaも、新しいコンダクターと多くのUIの修正と改善のおかげで、いくつかのパフォーマンスが向上しました。開発者の皆さんはいくつかの優れた機能、特にデバッグビューが役に立つでしょう。
トピック
- Holochain Core 0.0.41-alpha3: hc runの新しい開発機能
- Holochain Core 0.0.41-alpha3: オフラインでのFull Chainバリデーション
- Holoscape 0.0.5-alpha: 開発者及びユーザーエクスペリエンスの改善
- コミュニティhAppを備えたHoloscape 0.0.5-alphaのデモ
詳細
Holochain Core 0.0.41-alpha3: hc runの新しい開発機能
デベロッパー・パルス58号では、hAppバンドルについて説明し、開発コンダクターのhc runでこれを近々使えることを伝えました。これは、Holochain Coreリリース0.0.41-alpha3で利用できるようになり、独自にコンダクター構成ファイルを作成または維持することなく、1つのコマンドで、ブリッジされたDNAの集まりとUIを開発モードで実行できるようになりました。これにより、手動でのテストが簡単になり、実際のユーザーエクスペリエンスに近い環境でのテストが可能になりました。
前回に説明したように、最初からhAppバンドルを使用するのが最善の開発方法です。そうすることで、コンダクターコンフィグファイルを後々生成する心配がなくなります。ただし、この開発ワークフローを実際に機能させるには、hc runにこのhAppバンドルを生成する機能を含める必要がありました。良いことに、このリリースからは、開発プロセスにhAppバンドルの組み込みが可能になりました。
hAppバンドルでの作業が実際にどのようになるのかを理解するには、hAppのバンドルを使用するこのビデオ(英語)をご覧ください。ビデオにもあるPeer chat(Holochainで開発されたチャットアプリ)のようなかなり複雑なhAppでこの機能が必要な理由が確認できます。
また、hc runコマンドには役立つ2つの新しいパラメーターがあります。
- –agent-nameパラメーターを介してエージェント名を渡すことができます。これにより、同じDNAの複数のインスタンスを1台のマシンで実行できます。
- インスタンスをsim2hに接続し、-networked sim2h –sim2h-server wss:// <host>:<port>を使用して特定のサーバーにインスタンスをダイレクトできます。
このリリースに含まれる他の変更点は以下の通りです。
- テストのスピードを上げるために、プライベートキーのパスワードハッシュのデフォルト設定を変更(テスト段階なので速度を上げるためにセキュリティレベルを落とした)して、Holoscapeの起動に長すぎる時間がかからないようにしました。つまりこれは、新しいコンダクターは古いコンダクターで作成されたキーを復号化できないため、ユーザーに新しいキーを作成させる必要があります。また、以前ほど安全ではないことを意味しますが、アルファ版を使用している間は、セキュリティと使いやすさの適切なバランスがこの変更でとれると考えています。
- ゴシップとバリデーション待ちでのバグを修正しました。まずは、遅延されているバリデーションがHoloscapeの統計に追加されました。また、FetchEntryがノードに完全なデータを送信して、インスタンスを適切に区別できるようにしました。また、不要なpetgraph依存関係が削除され、バリデーションのキューは同じエントリのコピーを無期限に蓄積しなくなりました。インスタンスは、ゴシップリストを著者リスト(完全同期DHTを想定)とマージしなくなりましたが、代わりにsim2h_workerに依存するようになりました。
- Gzipエンコードを使用して、.dna.jsonファイルのサイズを約75%削減しています。扱いにくい1つの大きな文字列の代わりに、ファイルは文字列のリストを出力するようになりました。ただし、小さなゾーム(1 KB未満)では1つの文字列が生成されることに注意してください。
- env varsを使用して既存のテストを実行できます。これはin_streamクレート内で取得され、接続、メッセージ、またはパケットをドロップし、接続の悪いネットワーク(実世界を見据えて)でどのように動作するかを確認できます。
- proc-macro-attributeが個別のクレートになり、ルールマクロとアトリビュートマクロを同時にエクスポートできるようになりました。
Holochain Core 0.0.41-alpha3: オフラインでのFull Chainバリデーション
上記のセクションで説明した変更に加えて、Holochain Core 0.0.41-alpha3では、オフラインでのFull Chainのバリデーションも可能になります。ノードがDHTにエントリを公開するとき、バリデーター(検証者)は「バリデーションパッケージ(validation package)」を提供することをバリデーションの条件としています。このパッケージには、そのエントリータイプのバリデーション方法に応じて、ソースチェーンにあるパブリックエントリー、ヘッダー、または両方を含めることができます(パッケージの中身が無いのも可)。以前は、ノードは検証時にパッケージをすべてのバリデーターに提供する必要がありました。つまり、そのノードがオンラインの場合にのみ、バリデーター(検証者)はバリデーション(検証)を行うことができました。エントリーを公開したばかりの場合は、少なくともしばらくの間オンラインのままになる可能性が高いため問題ないでしょう。ただし、数時間経過してバリデーターの1つがオフラインになると、新しく選ばれたバリデーターはもともとのエントリーの持ち主であるノードがオンラインになるまで何もできませんでした。
すべての公開エントリーは、そのエントリーのヘッダーもDHTに公開されます。エントリーの作成者がオフラインの場合、バリデーターは検証パッケージのすべての部分をDHTから直接収集できる必要があります。これは、より高速で直接的な通信方法(エントリー作成者からバリデーションパッケージを取得)が失敗した場合のフォールバックとして実装されました。
Holoscape 0.0.5-alpha: 開発者及びユーザーエクスペリエンスの改善
このリリースは、ユーザーエクスペリエンスの面で大きな飛躍を成し遂げています。これは、次の3つの主要な領域で確認できます。
- スプラッシュスクリーンとその他のUIの改善 – Holoscapeを起動すると、スプラッシュスクリーンが自動的に表示され、hApp UIがドロワーに表示されます。また、システムトレイメニューやその他のスタイル変更が微調整され、全体的なユーザーエクスペリエンスが視覚的に魅力的になりました。
- 改良されたhApp Store – まだプロトタイプですが、ダウンロード/インストールの進行状況やステータスを示したりするようになったりはるかに応答性が高くなっています。また最初に解凍せずに、zipからhAppバンドルを直接インストールできるようになりました。更にいくつかのレンダリングのバグも修正しました。
- より強力なデバッグビュー – ステートダンプがはるかに高速になり、変更がリアルタイムで表示され、実際に変更されたステートの一部のみが再読み込みされるようになりました。さらに良いことに、すべてのテーブルは検索可能です。たとえば、どのノードがどのエントリを保持しているかを確認できるようになりました。インスタンスのソースチェーンとDHTエントリをタイプまたはハッシュでフィルタリングすることもできるようになりました。これにより、データ一貫性の現在の状態をすばやく簡単に把握できます。
コミュニティhAppを備えたHoloscape 0.0.5-alphaのデモ
Holoscape 0.0.5-alphaデモとアプリの紹介を必ずご覧ください!!上記で説明したことがよりわかるようになると思います。また、皆さんにHoloscape 0.0.5-alphaをテストしてもらい、Holochainフォーラムで皆さんの経験とフィードバックを共有してもらえると嬉しいです!
Holochain Core Conceptsとチュートリアル
皆さんの意見が聞きたいです!Holochainの理解に最も有益なドキュメントの作成の支援をお願いしたいと思います。Holochain Core Concepts(英語)やチュートリアル(日本語版)をすでに読んだり、完了している場合は、この簡単なスレッドに(日本語で大丈夫です!)回答して、あなたの経験についての感想や、今後あなたをどの様に支援できるか教えてください!
開発ステータス
Holochain Coreリリース: 0.0.42-alpha1| 変更ログ 次リリース:0.0.43-alpha1
Holoscapeリリース:v0.0.5-alpha
Holonixリリース:v0.0.56
Try-o-rama(エンドツーエンドテストツール)リリース:v0.3.1
出典:Holochain’s Full Chain Validation & Holoscape’s Major UX Upgrade