Yumeville

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

RSMによって可能になったHolochainの成功事例

令和2年10月02日

概要

今週、David Atkinson氏は、スマートエネルギーのスタートアップであるRedGridのMike Gamble氏とAdam Bumpus博士にインタビューを行い、彼らのチームがコードベースをHolochain RSMに切り替えて成功したことについて話しました。彼らは非常にエキサイティングな結果を得ています。

RSMといえば、ここ数週間で公開/秘密鍵の管理と検証に関して、いくつかの堅実な開発を見てきました。

最後に、私たちのハードウェアパートナーは、待ちに待った HoloPort Nano を私たちの提供したイメージから起動させ、間もなく Holo ネットワーク上でテストするために Nano のサンプルユニットをチームメンバーに送る予定です。

トピック

  1. RedGridのマイク・ギャンブル: “結果の好転に感銘を受けました”
  2. Holochain RSMの開発
  3. HoloPort NanoがHPOSを動作させることに成功

RedGridのマイク・ギャンブル: “結果の好転に感銘を受けました”

スマートエネルギーグリッド技術に焦点を当てたスタートアップであるRedGridは、分散化がグリッドのグリーン化の基本になると考えていました。つまり、彼らの「スマートな」層も分散化されるべきだと考えたのです。最初はブロックチェーンに惹かれていましたが、すぐにブロックチェーンは時間がかかりすぎて、更には実際にはすべてが分散化されているわけではないことに気付きました。Holochainを発見したとき、彼らはこの技術が理想的なマッチであると判断しました。

彼らはHolochainのリファクタリングを長期に渡って粘り強く見守り続け、私たちのビジョンを信じてくれました。しかし、それは簡単なことではありませんでした。特に、彼らが必要なパフォーマンスを引き出すことができず、主要な投資家が焦り始めた時は大変でした。彼らの最大のパートナーであるモナッシュ大学は、RedGridのReduxベースの「トランザクティブエネルギーマーケット」のDNAをテストしてみたところ、データは数分に1エントリの割合でしかコミットできないことがわかりました。(1つの外れ値では17分もかかっていました)。

RedGridはHoloチームに連絡を取り、早い段階でRSMレポに招待され、(エコシステムの他の寛大な開発者の助けを借りて)1ヶ月以内にコードベースを書き換えました。この旋風のような活動が実を結びました。今では、同じテストで2倍のノード数をサポートし、難無く毎秒87エントリをコミットできるようになりました。

RedGridの主任アーキテクトであるMike Gamble氏の言葉を借りれば、Monashは「結果の好転に感銘を受けた」とのことで、他のコンポーネントに使用しているメッセージバスを削除して、「バックボーン」としてHolochainに置き換えることを検討しているとのことです。

彼らの経験についてマイクと対話して、将来の記事で詳細を共有することを楽しみにしています。その間に、トランザクティブエネルギー市場のDNAが現在のHolochain RSMでどの程度のパフォーマンスで稼働しているのかを共有したいと思います。

はい、そうです。15,000%のスピードアップではなく、15,000倍速くなっています。

Holochain RSMの開発

ホロチェーンコアの開発チームがチーム内で、またエコシステム内の最も親しい仲間と一緒に仕事をしている様々なチャット チャンネルを見ることは、私にとってワクワクするような経験でした。以前は何ヶ月もかかっていた機能が、今では朝のコーヒーを入れている間に構築されているように見えます。2週間前にRSMを発表してから、そのような開発がいくつか起こりました。(警告:下記はHolochainの深い部分に入ります!)

キーストア完成

あなたのすべての秘密を管理し、あなたのためにデータに署名するLairキーストアは、コンダクター全体を通して完成され、統合されています。RSMでは、それは、エージェント(ユーザー)のアイデンティティのためにコンダクターによって使用され、TLS暗号化のためにネットワーク層によって使用されます。これにより、コンダクターはエージェント鍵を生成し、それを使ってデータに署名することができるようになり、ホスト関数 `sign`(署名) と `verify_signature` (署名確認)が機能するようになりました。encrypt` と `decrypt` は後々実装されます。(Holochain Reduxのキーストア関数である `keystore_derive_key` のようなものも後から実装されます。しかし、それらは主にDeepKeyのようなDPKI(分散型公開鍵インフラストラクチャー)の実装のためのものなので、読者は使っていない可能性が高いでしょう)。

新しいキーストアは別のバイナリで、メモリ内の秘密のセキュリティを一箇所で管理するのがより簡単になりました。これは、単一のパスワードで秘密のロックを解除し、それを適切なサービスで利用できるようにする長期的なサービスであることを意味しています。(SSH ユーザの場合、これはPageantssh-agentに似ています)。

バリデーション完了間近

次は機能というよりも、Holochainの最も重要な部分に必要なものを集めたものです。peerバリデーションとは、デバイスのネットワークが「免疫システム」を持つことを可能にする原理です。物事が正しく効率的な順序で検証されることを保証する多くの低レベルの作業に加えて、最近ではいくつかの重要な開発者向けコンポーネントが登場しました。

バリデーション・コールバックは、人間工学に基づいたものにするためのフォローアップとともに実装されています。RSMでは、検証コールバックは通常の関数であり、Zomeコードのどこにでも配置することができます。ホストに公開されていて命名規則に従っている限り、ホストはそれをどのように呼び出すかを知っています。まずは、最も限定的なコールバック、例えば `validate_create_entry_blogpost` のようなコールバックを探すことから始めて、そのうちの一つがエラーを返すまで、より限定的でない包括的なコールバックをどんどん探していきます。限定的なコールバックを書かないという選択をしても構いません。(注: Capabilityのgrant/claim(権限付与・主張)、エージェント公開鍵、作成/更新/削除アクションも検証できます。一般的なフォールバックがないリンクの作成や削除も検証できます。将来的には、エージェントのメンブレンプルーフ(ネットワークに新たなユーザーが入る際の権限確認)である、「招待コード」やDNAマイグレーションのエントリも検証できるようになるでしょう。

チェーンロールバックチェックが実装されています。この機能は曖昧に聞こえるかもしれませんが、私にとってはHolochainがHolochainであるという証左でもあると思われるのです。ほとんどのアプリは、すべての参加者のために、直線的で分岐していない、暗号化された署名付きの履歴の保証を望むでしょう。例えば、一人のユーザーがバイデンとトランプの両方に投票することで「現実を2分岐する」ことを可能にする投票アプリが招く混乱を想像してみてください!大変なことになりかねません。なので、ホロチェーンの「免疫システム」が行う作業の一部は、エージェントが「言った」ことをすべて「記憶」することであり、つまり、ユーザーがチェーンに書き込んだすべてのヘッダーを記憶することであります。あるエージェントの活動をバリデートするエンティティ、つまり、ユーザーの履歴を記録するために呼び出されるノードは、DHTでのユーザーの傍らに装備されています。彼らが共通の「親」を持つ2つのヘッダーを検出した場合、それはエージェントが自分のチェーンをロールバックして分岐しようとしたことを意味します。これは、Holochain Reduxではまだ実装していなかったことで、チェーンのロールバックの完全な処理に向けて、かなり距離を縮めています。

他の3つのコンポーネントは以下の通りです。

  • ‘Slow heal’ gossiping: あるエージェントの活動を検証する隣人がお互いに「ゴシップ」をすることで、パーティション攻撃を検出することができます。これは既に実装されています。
  • 任意のエージェントが他のエージェントの活動を検証する隣人にそのエージェントの完全な履歴に加えて未解決のワラントを求めることができるようにするホストAPI機能。これは、正直な取引相手が詐欺的な取引に入るのを防ぐことができます。
  • 悪い行為者に対する応答を加速するための「抗体」として機能するワラント。

最後に、バリデーションパッケージのための基盤が築かれました。バリデーションパッケージは、エントリーとそのヘッダー(通称「エレメント」)、そのエレメントより前の著者の完全なソースチェーン、または同じエントリータイプのソースチェーン内にあるエレメントのみで構成されます。これは、エントリの作成者が自分自身のソースチェーンのオーナーであるため、収集することが期待される特別なタイプの依存関係です。将来的には、ネットワークはこの情報をエントリ著者の隣人から提供してもらうことでコンパイルできるようになるでしょう。

シグナルは実装中

Holochain Reduxには `emit_signal()` という関数があり、メッセージをUIにプッシュすることができていました。これは生身の人間がノード間のメッセージに反応することを可能にするために重要なもので、例えばアリスがボブにトランザクションのオファーに反応して欲しいときなどに使えます。シグナルはRSM用に開発されており、まもなく実装されるはずです。

ネットワークとプロキシも実装中

前回のデベロッパーパルスでも触れましたが、ネットワークはまだまだ開発途中です。(訂正: 少し熱心になりすぎて、近隣でのシャーディング(分散所有)モデルは完全に実装されていると言ってしまいましたが、どうやらまだ作業中のようです。) トランスポート層が現在の焦点であり、他のノードが自分の情報をプロキシ(中継)するための基盤を敷いています。プロキシは、他の2つのピア間でエンドツーエンドで暗号化されたデータを中身を見ることができないまま転送します。誰もがプロキシになることができるので、これにより更に中央集権化を減らすことができます。これは、P2Pネットワークが直面する大きな障害の1つである制限的なファイアウォールの問題に対する簡単な回避策です。

HoloPort NanoがHPOSを動作させることに成功

ハードウェアパートナーから、ネットワークの問題を解決し、HoloPort Nano用のOSイメージを構築するためにブートストラップスクリプトを使用することに成功したというニュースが届きました。このイメージが動作することが確認されたので、数人のチームメンバーにサンプルのNanoユニットを出荷してテストを行っています。テストで明らかになったことを修正したら、すぐにNanoの出荷を開始する予定です!

開発状況

最新版

https://holochain.loveにて使用可能なバージョン

  • Holonix: 0.0.81
  • Holochain Core: 0.0.51-alpha1
  • hc-happ-scaffold: 0.1.2

出典:A Holochain Success Story, Enabled By RSM