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をパスで指定する機能は削除され、インストール時にプロパティを指定する機能も削除されました。InstallAppBundle
とRegisterDna
の使用に移行してください。 - DNA をパスで指定する場合、エンドポイントの
RegisterDna
は、単一のDNAファイルではなくDNAバンドルを指定する必要があります。 - 開発ツール
hc
では、install_app
サブコマンドが一時的に削除され、install_app_bundleが使用されるようになりました。 - 変更点: DNA の中で
uuid
と呼ばれていたものはすべてuid
に変更されました。 - HDK に 2 つの新しい暗号関数、sign_ephemeralとsign_ephemeral_rawが追加されました。
- 新しいエンドポイント
すべての変更履歴を読むにはここをクリックしてください。
パフォーマンスに関する警告: パフォーマンスが向上する部分と低下する部分があります。Wireプロトコルの変更によりネットワークトラフィックが減少し、WasmerとSQLiteへの変更によりメモリとCPUの使用率が向上したり低下したりしています。v0.0.101を開発作業に使用することは問題ありませんが、ユーザー向けのhAppsにバンドルすることはまだお勧めしません。
新しいHolochainは、Holonixのシェルに入るか、crates.ioからcargo
(conductor, HDK)経由でダウンロードすることで入手できます。
先週のデベロッパーエコシステムラウンドアップの正誤表と追加事項
素敵な開発者向けリソースをすべて前回のデベロッパーパルスで公開した後、何人かの開発者から、かなり重要なものを見逃しているという指摘を受けました。また、その間にいくつかの新しいリソースも出てきました。
- Embedded Holochain Runnerは、Holochainをライブラリとして自分のアプリで簡単に実行できるようにするものです。これにより、バックグラウンドのサービスを管理することなく、1つの実行ファイルにすべてをまとめることができます。すでにAcornで使われています。
- 緯度と経度でタグ付けしたり、検索したりできるジオロケーション・ゾームも始まっています。開発者は、地球を「セル」に分割することで最適化された範囲内で検索する機能を追加することについても話しています。
- Cell-clientは、JavaScriptクライアントSDKとHolo Web SDKのラップで、UIがセルフホストのHolochainとHolo-hostedの両方を同時にターゲットにすることを容易にします。
- Holochainのコアタイプ用のTypeScriptの型定義の完全なセットがあります。これは、あなたのUIをあなたのDNAと連動させるのに役立ちます。
- Connor Turland氏は、zome関数と検証コールバックのユニットテストについて、最小限の例と便利なバリデーションヘルパーを加えた素晴らしいガイドを書いています。
- コミュニティが作成したWikiは、優れた検証関数の書き方、Rust enumの適切なシリアライズの仕方、ネットワークの作成など、新しい記事が増えています。
フォーラムでは、これまでの開発者の経験について豊かな会話が交わされています。もし読者がRSMを使って開発をしているのであれば、他の開発者と一緒にお祝いしたり、議論したりしましょう。
私が忘れてしまった開発者向けリソースがあれば、以下のコメント欄に投稿してください。下のコメント欄に投稿していただければ、今後のDev Pulseで紹介します。
(写真提供者:ian dooley on Unsplash)