"Why libp2p?" ざっくり目を通した
(ページ内にリンク切れが多すぎなんですが…ページ見つかればPR出します)
libp2p, P2Pネットワークのライブラリ。勉強しないとなーなんだけど、今日はちょっとMTG多すぎボンバーで余裕がなかったため大急ぎメモ(ただの翻訳・要約)。しかも、ライブラリのメリットだけにフォーカスするよー!
- モジュール性 - ニーズに合わせてネットワークスタックを組み合わせて使うことができる
- トランスポートの豊富な選択肢 - 色々なプロトコルに対応しているため、ランタイムやネットワーク環境も柔軟に選べる
- 汎用性 - ピアのディスカバリーやデータ保存・受信について様々な方法を使用できる。かつ多くのプログラミング言語で実装されているため柔軟である
- セキュリティ - ピアIDの検証や暗号化通信などの機能を持つ
- ロバスト性 - 堅牢であり、中断や障害などからも素早く復旧できる。攻撃のミティゲーションも備えている
- レジリエンシー - P2Pネットワークは分散により単一障害点がない。到達できないピアがあっても、ディスカバリーやルーティングが働いてネットワークへのアクセスを可能にする
- 効率 - 分散のおかげでリソースを効率よく使える。効率や拡張性を重視したデータの保存・受信方法が色々存在する
- NATの課題にアプローチ - NATトラバーサル機能があり、NATやファイアウォールの後ろでもP2P通信ができるため、これらの障害時にネットワークにアクセスし続けられる
- メッセージの配布 - pub/subによる効率的かつ柔軟なメッセージングを提供している(gossipsub)
- 相互運用性 - プログラミング言語やバージョンが異なっても、libp2pは相互運用できる
- 分散型 - 中央集権型ではないことが大きな利点のひとつである。ネットワークの中断や検閲(?これは適切な訳なんだろうか。後日検討する)に強い
こういうざっくり情報があるだけでも物事はすごく分かりやすくなるので不思議。おやすみー!