Decentraland のノード Catalyst
はじめに
これはno plan inc.の Advent Calendar 2022の21日目の記事です。
今回は、以前の記事に引き続き、分散型メタバースのDecentralandの現状、catalystと呼ばれるノードについてまとめます。
ノード(Catalyst)
Catalystとは
Catalystという英単語を直訳すると、"触媒"と出てきます。
この言葉の通り、ユーザーとランドをつなげるためのサーバーです。
また、複数のサービスを一つにまとめられているサーバーとしても運用されています。
運用数
2022/12 現在、このページでみると現状は11のノードが運用されています。
アーキテクチャ
GithubレポジトリのREADMEによれば、こんな感じ。
こういった感じ
Backend for Frontend (BFF)
主にクライアントとのP2P通信や、APIとしての役割を担っています。また、新機能の実装の繁栄をクライアントにダウンタイムなしで提供するために作られました。
Archipelago
P2Pを利用して、異なるトランスポートとの通信をするために必要なサービスです。
ランドから別のランドに移動する際に、それぞれのオーナーごとに決められた異なるルールや機能(音楽が再生される、NFT認証が走る等)をシームレスに適用させたりするときに必要です。それにより近くにいる他ユーザーや他シーンとのコミュニケーションが効率的になります。
NATS
サービス間ので通信されるメッセージの仲介役です。BFFや、ArchipelagoやLivekitとのやり取りを仲介しています。
LiveKit
P2PではなくWebRTC SFUを利用してスケーラブルで複数ユーザーによる映像や音声データのやりとりを可能にするOSSプロジェクトです。GatherやSpotifyでも使われています。また、ランド内が混雑している状態でも高いパフォーマンスとクオリティを保つためにも使われています。
Lambdas
複数のユーティリティの集まりです。主に、クライアントからのデータ取得やバリデーションを行います。
ブロックチェーンからのデータ取得はThe Graphを利用しているらしいです。
Content Server
Decentraland上で表示される3Dモデル等のエンティティと呼ばれるアセットを保存するためのストレージです。Content Serverは他のContent Serverの内容を自動で同期しており、またDecentraland DAOによってホワイトリストされたものが保存されています。SceneやWearables, Profileなんかもここに保存されています。
Nginx
トラフィックをルーティングするためのリバースプロキシです。
運用するには
運用する際には、このレポジトリのdocker-compose.ymlを利用するようです。
スペック
Catalystを運用するためのスペックは、
- 4 vCPUs
- 16 Gb RAM
- 2TB SSD
AWSのEC2インスタンスで言うと、t2.xlarge
0.1856 USD/時間 のオンデマンド料金で運用するとすれば、
- 1カ月 約 133.632 USD
- 6カ月 約 801.792 USD
- 1年 約 1603.584 USD
になります。高い。。
課題
- コンテンツが数サーバーにでしか管理されておらず十分に分散されていない。
- ブロックチェーンのデータ取得をTheGraph に頼っているので長期的に見てコスパ悪い
おわりに
メタバースにおける、UI/UXを求めていくと、やはり、トラストポイントや単一障害点になるような部分がどうしても増えてしまうのだなと感じました。
最近DecentralandのSDKのバージョン7がリリースされ書き方かなり変わったりと、まだまだ発展途上なコミュニティなので、これからも追っていきます。また、The SandboxやOthersideの開発にも手を出してみたいです。
no plan株式会社について
- no plan株式会社は、ブロックチェーン技術、Webサイト開発、ネイティブアプリ開発、チーム育成、などWebサービス全般の開発から運用や教育、支援などを行っています。よくわからない、ふわふわしたノープラン状態でも大丈夫!ご一緒にプランを立てていきましょう!
- no plan株式会社について
- no plan株式会社 | ブロックチェーン実績
- no plan株式会社 | ブログ一覧
Discussion