Yumeville

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

3つのホロ・ネットワーク

令和3年7月15日

HoloPortアルファプログラムの発表を受けて、今回はHoloPortアルファプログラムの根幹である、このプログラムを成すネットワークの内容とこれらの存在理由についてご紹介したいと思います。
(また、今回のDev Pulseは100回目です。嬉しい節目ですね 🎉 Amanda、Micah、Klaye、Paulii、Jarod、Lucas、Mary、開発チーム、そして今まで作業してくれた全ての人に大感謝です!)

Holoネットワーク:実は3つの独立したネットワーク

Holoホスティング開発チームは、HoloPortアルファプログラムのすべてのホストを3つのネットワークのいずれかに割り当てます。

  • alphaNetは、生産利用可能なHoloネットワークのアルファリリースです。HPOS(HoloPortOS)から中央のインフラまで、安定していることが確認されているコードで動作しています。つまり、必ずしも性能や機能が充実していたり、バグがなかったりするわけではありませんが、本番使用に適しています。また、更新サイクルが遅く、正しく動作することが証明された場合にのみ変更を取り入れます。
  • flexNetは、alphaNetに昇格できるけどプレリリーステストが必要な機能やバグ修正を含むコードで動作します。このコードには、安定したコンポーネントと安定実績のないコンポーネントが混在しており、信頼できると判断されたコンポーネントに関しては、最終的にリリースされます。このネットワークのコンポーネントには、alphaNet、devNet、または1つの機能に特化したコードベースの特別なブランチが含まれます。
  • devNetは、現在の開発状況を追跡しており、非常に不安定です。ここでは日々の作業が行われ、Holoチームのメンバーのみが使用し、テストを行います。自動テストは毎晩devNet上で行われ、新機能やバグフィックスのほか、「リグレッション(回帰)」と呼ばれる、以前は動作していた機能が新しいコードによって動作しなくなった機能を検知するためにもテストは実行されます。

それぞれのネットワークは、WebブラウザからHoloPortまで、ほぼ完全に分離されています。ユーザーにChaperoneスクリプトを提供するWebサーバー、ウェブユーザーが接続するHoloPortを見つけるマッチメーカーサービス、ユーザーに割り当てられたHoloPortに接続するためのHoloルーター、HoloPort同士を接続するプロキシとブートストラップサービスなど、すべての中央集権型コンポーネントは複製され、alphaNetをdevNetから分離しています。これにより、alphaNet上のユーザーの体験にバグが漏れることを防ぎ、リソースの重い自動テストがαネットを遅くすることを防ぎます。

Holoの開発者たちは、バグが少ないだけでなく、テストとデプロイのセットアップが大幅に簡素化されたことで、ネットワークへの変更をテストする能力が大きく向上したと述べています。各ネットワークは、HoloPortから中央のインフラを経て、ユーザーのブラウザで実行されるスクリプトまで、自動的に展開することができます。このような品質保証のためのアップグレードは、パブリックアルファテストに向けて、今まさに必要なことなのです。

HoloPort Alpha Programの要件

リモートSSHに対応

各ネットワークに必要なHoloPortsの数を選択するのはHoloホスティング開発チームであるため、アルファプログラムのこの段階では、すべてのHoloPortsでSSHがデフォルトで有効になります。これはこれまでのアプローチとは大きく異なるため、3つの点を明確にしておきたいと思います。

  • これは、HoloPort Alpha Programの期間中だけのことです。
  • これは、HoloPort Alpha Programの期間中のみ使用され、HoloPortをネットワーク間で切り替えたり、サポート診断を行うためにのみ使用されます。
  • 将来的には、ホストコンソールの設定から、いつでも好きなときにSSHをオフにできるようになります。これを無効にすると、読者のHoloPortはプログラムで使用されなくなります。つまり、ユーザーにhAppsを提供することはなく、あなたはHoloFuelを受け取る資格がなくなるということです。

95%のアップタイム

将来的には、ウェブユーザーのソースチェーンは、稼働率90%以上の複数のHoloPortsによってバックアップされる予定です。5つのHoloPortによる冗長性を目指しており、合計で99.999%の稼働率となります。これにより、万が一、割り当てられた4つのHoloPortがオフラインになっても、ユーザーはアプリにアクセスすることができます。

しかし今のところ、各ウェブユーザーには1つのHoloPortしか割り当てられていません。そのHoloPortがオフラインになってしまうと、割り当てられたユーザー全員がアプリにアクセスできなくなってしまいます。そのため、HoloPort Alpha Programでは、95%のアップタイム(起動している時間)を参加資格のひとつとしています。これは、テスト目的には十分ですが、それ以下ではユーザーに不快な体験をさせることになります。私たちはこれにお金を払う価値があると考えているので、プログラムに参加するとHoloFuelの俸給を受けることができます。

このプログラムに参加したい方は、Holoフォーラムにアクセスして、今後数週間のうちに発表される内容を確認してください。

開発者向けドキュメントの改善にご協力をお願いします

Sprillowは、ユーザー体験を重視したHolochainアプリの開発会社ですが(Acorn hAppをチェックしてみてください)、開発者のエクスペリエンスにも気を配っています。彼らは、技術的なバックグラウンドを持つすべての人を、今日の12:00 UTCから始まる24時間のDocumentation Driveに招待しました(通知が遅くなってすみません)。あなた自身がHolochainの専門家である必要はありません。ただ、少しでも掘り下げて、少しでも改善したいという気持ちがあればいいのです。

hApp開発者の間では、学習の道のりが少々荒っぽく、改善すべき点がたくさんあることは周知の事実です。Holochainのエコシステムの成功は、hApp開発者にかかっているのですから、この方法は、低コミットメントで大きなインパクトを与えることができます。

このフォームに記入して、ドキュメンテーションの努力に参加してください。

これを企画してくれたSprillowさん、ありがとうございます。

Dev Campアップデート:1000人の登録者!

次回のHolochain開発キャンプへの関心の高さには驚かされました。前回のDev Campに比べて4倍もの増加となり、関心の高さが加速しています。

developブランチでの変更点:復号化関数must_get関数

HolochainのdevelopブランチでhAppを開発している場合、2つの新しい互換性を破る変更が登場しました。

  • 復号化関数であるx_25519_x_salsa20_poly1305_decryptのパラメータが、舞台裏で誤って逆になっていました。ホスト関数の署名やパラメータの順序は変更されていませんので、この修正は実際には互換性を破る変更ではありません。ホスト関数のシグネチャやパラメータの順番は変わっていません。しかし、もし、この関数を動作させるために送信者と受信者を入れ替えなければならないことを発見し、そのように修正していた場合は、ドキュメントに書かれている通りに入れ替える必要があります。

(写真提供者:Paul Carmona on Unsplash)