Yumeville

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

Elemental Chatのテストについて

令和3年08月06日

Elemental ChatのHoloホスト版を2週間前からテストしていますが、今のところすべてがうまくいっています。新しい参加者が加わってメッセージを投稿しても、ほとんどのメッセージはすぐに届きます。

この記事を書いている時点では、245人の参加者が94のチャンネルに5405のメッセージを投稿しています。

メッセージがブラウザに届くまでに時間がかかることがあるなど、パフォーマンス上の問題が発生していますが、このようなことが起こることはわかっていました。より多くの人が参加し、より多くのメッセージを書くようになっても、大きな速度低下は今のところ見られません。

A screencast of two web browsers, side-by-side, testing Elemental Chat’s performance. Each browser is serving to a different agent, each of whom is sending and receiving messages with only one second of lag.

 

 

シャーディングによるスピード改善も間もなく

現在、ホロチェーンは「フルシンク」モードで運用されており、すべてのノードがすべてのメッセージを受け取ることができます。これはproof-of-stakeブロックチェーンと大差なく(コストのかかるコンセンサスステップがないことを除いて)、まだ高速化の余地があることを意味します。

ホロチェーンのプロジェクトをずっと見てきた方は、これが最終的なデザインではないことをご存知でしょう。ホロチェーンは、データ処理の負荷を参加者の管理可能な「シャード」(和訳=かけら)に分割することで、日常的なアプリケーションに十分な速度とコストを実現しようとしています。私たちはこれをrrDHTと呼んでいます(rrDHTがどのように動作するのか、なぜこれを作ったのかについて詳しく知りたい方は、こちらをご覧ください)。

a Holochain DHT showing overlapping peer neighbourhoods

ホロチェーンにシャーディングが実装されれば、何千人もの参加者が参加しても、パフォーマンスが格段に向上することが期待できます。嬉しいことに、この作業はすでに完了しており、マージしてテストする準備が整っています。

次のステップは?

Elemental Chatはまだプレリリーステスト中ですが、HoloPort Alpha Programが始まったら、一般の方にも使っていただけるようになる予定です。すでに事前登録用のメールアドレスを受け付けていますので、試してみたい方はこちらから登録してみてください。

ホロチェーンチームがシャーディングのテストを終えたら、ホロチェーンの新しいリリースに含まれ、少数のHoloPortにデプロイされ、プレリリース・テスターによってテストされます。そのテストラウンドを通過すると、すべてのHoloPortsにデプロイされます。

Holochain v0.0.102リリース(互換性を破る変更を含んでいます)

ホロチェーンがまた更新されました。ホスト関数のmust_get_*がついに実装されたことで、get関連の関数をバリデーション用コールバックで使用できなくなりました。この変更については、前回のDev Pulseで詳しく紹介しています。

HolochainがWindowsでもコンパイルできるようになりました! hAppの開発者でHoloの元社員でもあるDamienが、Lairキーストアの互換性バグを修正するパッチを提供してくれました。WindowsネイティブなRustツールチェーンを使って、ホロチェーンやあなたのDNAを構築できるようになりました。まだWindowsを公式にサポートしているわけではありませんが、主要な開発OSとして使用できるようになったようです。

また、パフォーマンスの向上、バグの修正、コンダクターAPIエンドポイントの追加・変更なども行われています。詳しくは、変更履歴をご覧ください。

次のステップは?

  • Shardingのコードが完成し、テストされています。リリースする前に、パフォーマンスのチューニングやバグの修正が必要になると思いますが、コア開発チームはv0.0.103のリリースにこれを含めることを計画しています。
  • HDKでは、エントリーの取得やリンクの取得、他のピアやゾーム、セルへのゾームコールなど、あらゆる種類のリソースを使うな関数を並列化しようとしています。これにより、やることがたくさんある場合には、これらの関数がより速くなるはずです。この機能はすでに開発されており、次のリリースにも含まれる予定です。
  • また、HDKはカウンターサイニングをビルトイン機能としてサポートしようとしています。このホスト関数とエントリータイプのセットは、カウンターサインをうまく行うことを難しくしている複雑さを抽象化します。最初のうちは、同期または非同期に、コードの中でカウンターサインを募ったり集めたりする必要がありますが、最終的にはこのプロセスをさらにシンプルにする機能が用意されるでしょう。その最初の試みは、おそらくシャーディングの後のリリースになるでしょう。

ドキュメンテーション・ドライブの参加者に感謝します

コミュニティ主導で行われたHoloChain Documentation Driveに参加してくださった皆様に感謝しています。特に、hApp構築のチュートリアルクライアントのチュートリアルなど、入門用の資料を新たに更新したことには、とても興奮しています。編集した内容は、近日中に開発者ポータルで公開する予定です。

現在進行中のドキュメント改善活動に参加したい方は、以下の方法があります。

 

(写真提供者:Danielle Cerullo on Unsplash)