Yumeville

Holochain デベロッパーパルス No.58

hc runを使用して開発中にhApp-bundlesを実行

概要

デプロイのためにhApp(ホロチェーンアプリ)をセットアップするプロセスは、今後のリリースで登場する「hc run」の更新により、更にシンプルになります。このアップデート以降、開発時にはhAppバンドルを使用するようにしてください。独自にデプロイする場合でも、HoloscapeまたはHolo Hostingにデプロイする場合でも、hAppは最小限の変更のみで同じように実行しなければなりません。このアップデートにより、デプロイの複雑さが解消され、新しいデプロイの度にhAppが将来にわたって互換性が保たれます。

トピック

  1. ユーザビリティーでの飛躍
  2. アプリの開発とデプロイを容易にするhAppバンドルを実行

詳細

ユーザビリティーでの飛躍

我々は、過去数か月で、Holochainスタックの使いやすさに向けて多くの進歩(こちらこちら)を遂げました。主要なバグの発見と解決から、桁違いのパフォーマンスの向上まで、多くの成果をお届けできます。これらの大幅な改善により、0.0.40-alpha1リリース以降、Holochain Coreのパフォーマンスが向上しました。さらに、機能的な暫定ネットワークソリューションの詳細および開発者とユーザーエクスペリエンスでの改善点は、また次回のデベロッパー・パルスで説明します。

今週は、現在のhAppの開発方法に変更点をもたらすものについてお話したいと思います!これらの改善により、Holochainが安定使用に耐え、更なる開発のために十分に機能を発揮するようになります。 Holochainの進歩により、BasicチャットアプリとPeer Chatアプリ(どちらもホロチェーンアプリ)を内部的に高速にし、より高いユーザーエクスペリエンスで使用できるようになりました。

アプリの開発とデプロイを容易にするhAppバンドルを実行(#1939)

複数のブリッジとDNAを持つ複雑なhAppを開発する際の最大の課題の1つは、現在から将来的に渡り、デプロイした製品が機能することを現時点で保証することです。ホロチェーンアプリ開発の初期段階では、hApp開発者が多くの手動での調整(環境変数やnpmスクリプトの使用など)を行って、インスタンスIDやRPCインターフェイスポートなどを管理していました。基本的に、これはコンダクターコンフィグファイル全体を変更する必要があるということでした。このアプローチでは、開発者を1つのデプロイ方法に閉じ込めてしまうことがよくありました。たとえば、ローカルでの環境で開発を開始した場合、必要または希望に応じてHoloscapeまたはHolo Hostingに切り替える簡単な方法は存在していませんでした。

この難題は、いくつかの理由で発生しました。まず、8月になってようやく、完全機能するhAppのコンポーネントを定義する「hAppバンドル」ができました。これらは、バックエンドを構成するDNAとブリッジ、およびフロントエンド用のオプションであるWebベースUIパッケージを示します。 hAppバンドル形式を使用すると、開発者はユーザーの既存のランタイムコンフィグレーションを気にすることなく、コンポーネントに独自の一貫したIDを付与できます。これにより、hAppのデプロイの信頼性と使いやすさが大幅に向上します。

第二に、開発者が開発プロセスでhAppバンドルを使用する方法がありませんでしたが、私たちは常に、ランタイムに依存しないhAppを作成するためのツールを提供することを意図してきました。そのため今回は、「hc run」に新たに追加するアップデートを発表しています。この更新により、開発中にhAppバンドルを使用できるようになります。これは、次のリリースに含まれます。

実行時に呼び出されるすべてのコンポーネントの一種のマニフェストとして、 `hc run`はまず現在の作業ディレクトリで` bundle.toml`ファイルを探します。次に、そのファイル(存在する場合)を読み取り、そのhAppバンドルを実装するように内部コンダクターを設定します。つまり、すべてのインスタンス、ブリッジ、およびUIを(静的HTTPサーバー経由で)追加して実行します。それ以外の場合、以前のように現在の作業ディレクトリにDNAのインスタンスが作成されます。

この変更により、DNAが1つしかない場合でも、hApp開発はhAppバンドルの作成から開始する必要があります。これにより、hAppプロジェクトは将来にわたってデプロイできるようになります。 hAppコードは、hAppバンドルで明示的に指定されているものを除き、実行される環境について何も想定してはしていません。 hAppバンドルは絶対に必要ではありませんが、独自のデプロイを行う(たとえば、コンダクターをiOSアプリに入れてUIを自分で管理する場合)、hAppストアを使用する場合、またはHoloscapeまたはHolo Hostingにデプロイする場合は必須となります。

Holochain Core Conceptsとチュートリアル

皆さんの意見が聞きたいです!Holochainの理解に最も有益なドキュメントの作成の支援をお願いしたいと思います。Holochain Core Concepts(英語)やチュートリアル(日本語版)をすでに読んだり、完了している場合は、この簡単なスレッドに(日本語で大丈夫です!)回答して、あなたの経験についての感想や、今後あなたをどの様に支援できるか教えてください!

開発ステータス

Holochain Coreリリース: 0.0.40-alpha1| 変更ログ 次リリース:0.0.41-alpha1

Holoscapeリリース:v0.0.4-alpha

Holonixリリース:v0.0.52

Try-o-rama(エンドツーエンドテストツール)リリース:v0.3.0-rc.1

出典:Run hApp-bundles during development with hc run