Yumeville

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

HoloPortのアルファプログラム

令和3年7月2日

昨日、HoloPortアルファプログラムを発表しました。HoloPortをお持ちの方は、HoloPortの電源を入れておくだけで、HoloFuelがもらえます。これは冗談ではありません。こちらの発表を読んでみてください。いくつかの稼働時間の要件があり、すべての国で利用できるわけではありませんが、条件はその程度です。

このプログラムは何なのでしょうか?私たちはずっと前からHoloネットワークのアルファテストを行っていたのではないでしょうかと聞きたくなるかもしれません。確かに、技術的にはその通りです。ここでの違いは、「HoloFuelでホスト代を支払う」ということです。この理由は、一日中電源を入れておくためには、たくさんのHoloPortsが必要だからです。その理由を説明したいと思います。

可用性とスケーラビリティ

エレメンタルチャットのホスティングをウェブ上でテストしてもらうためには、メッセージを保存するために割り当てられたHoloPortが常にオンラインであることを保証する必要があります。将来的には、各ユーザーのアプリケーションインスタンスのバックアップを冗長化する予定ですが、現在はHolochainとHoloホスティングのストレステストに重点を置いています。

また、多くのユーザーにサービスを提供して、そのパフォーマンスを確認したいと考えています。そのためには、新規登録者へのアプリ提供を開始できるように、たくさんのHoloPortが常にオンラインである必要があります。

並列テスト

現在、プレリリースのアルファテスターの方々は、非常に忍耐強く、協力的で、厳格なテストとバグ報告をしてくださっています。しかし、今後さらに多くのテスターを募るにあたり、彼らのためにも、またサポートチームのためにも、よりスムーズな体験をしてもらいたいと考えています。

開発チームがHolochain、HPOS(HoloPortsのOS)、エレメンタル・チャットの機能構築とバグの修正を続けている間に、必要に応じてアップデートを元に戻せるよう、慎重にアップデートを行う必要があります。アルファプログラムに参加するホストは、自分のHoloPortsをステージングやHPOSの様々なテストチャンネルにリモートで切り替えることができます。これらのテストは、チームメンバーと前述のプレリリースメンバーに限定された小規模なものです。世の中に出る前に潜んでいるバグが発見されることで、皆さんの経験が良いものになると思います。

Holochain v0.0.101リリース

コア開発チームは今週、Holochainの新バージョンをリリースしました。膨大な数の変更が加えられています(v0.0.100は2月にリリースされましたが、それ以来developブランチは急速に変化しています)。以下にその一部をご紹介します。

  • シャード化されたストレージと免疫システムに対応するために、ストレージエンジンがLMDBからSQLiteに変更された。
  • エントリー公開のためのネットワークトラフィックは、ネットワークへの情報氾濫を避けるために減らされました。
  • ゴシップアルゴリズムは、受信した操作のたびにネットワークに情報の氾濫をさせることはなくなり、代わりにスローループに移行しました。また、同期にはMerkle treeではなくBloom Filterを使用しているため、CPUのスパイクは短いですが、ワイヤー上のバイト数は少なくなっています。
  • HolochainがhAppsを実行するために使用しているWebAssemblyエンジンのWasmerがバージョン2にアップデートされました。このバージョンのWasmerには、メモリリークを引き起こし、実行速度を低下させるバグが発見されました。いくつかの回避策を作りましたが、このバグがアップストリームで修正されるのを待っています。それまでは、1つのコンダクターで1つのhAppの多くのインスタンスをテストしている場合にのみ、パフォーマンスの問題に気づくはずです。
  • アプリをインストールするための管理APIが変更されました。
    • 新しいエンドポイントInstallAppBundleが追加されました。
    • エンドポイントのRegisterDnaは、DnaBundleを受け取ることができるようになりました。
    • 変更点: エンドポイントのInstallAppは、DNAハッシュのみを受け付けるようになりました。DNAをパスで指定する機能は削除され、インストール時にプロパティを指定する機能も削除されました。InstallAppBundleRegisterDnaの使用に移行してください。
    • DNA をパスで指定する場合、エンドポイントのRegisterDnaは、単一のDNAファイルではなくDNAバンドルを指定する必要があります。
    • 開発ツールhcでは、install_appサブコマンドが一時的に削除され、install_app_bundleが使用されるようになりました。
    • 変更点: DNA の中でuuidと呼ばれていたものはすべてuidに変更されました。
    • HDK に 2 つの新しい暗号関数、sign_ephemeralsign_ephemeral_rawが追加されました。

すべての変更履歴を読むにはここをクリックしてください。

パフォーマンスに関する警告: パフォーマンスが向上する部分と低下する部分があります。Wireプロトコルの変更によりネットワークトラフィックが減少し、WasmerとSQLiteへの変更によりメモリとCPUの使用率が向上したり低下したりしています。v0.0.101を開発作業に使用することは問題ありませんが、ユーザー向けのhAppsにバンドルすることはまだお勧めしません。

新しいHolochainは、Holonixのシェルに入るか、crates.ioからcargo(conductor, HDK)経由でダウンロードすることで入手できます。

先週のデベロッパーエコシステムラウンドアップの正誤表と追加事項

素敵な開発者向けリソースをすべて前回のデベロッパーパルスで公開した後、何人かの開発者から、かなり重要なものを見逃しているという指摘を受けました。また、その間にいくつかの新しいリソースも出てきました。

私が忘れてしまった開発者向けリソースがあれば、以下のコメント欄に投稿してください。下のコメント欄に投稿していただければ、今後のDev Pulseで紹介します。

(写真提供者:ian dooley on Unsplash)