Astar Network勉強会(devillageさん主催 3/6(日)21:00~)
こんにちは、CryptoGamesの高橋です。
クリスペの会社です。
また、CryptoMaidsのアンバサダーも務めさせていただいております。
この度はdevillageさん主催の勉強会で、Astar Networkについてお話しすることになりましたので、お話し内容をここに記載します。
予習や復習などにお役に立てていただければ幸いです。
1 Polkadotについて
1ー1 構成
次のような2つのチェーンによって構成されています。
① Relaychain
② Parachain
1ー2 Relaychainとは
Polkadotのコアです。
次の部分を担当しています。
① ネットワークのセキュリティ
② コンセンサス
③ チェーン間の相互運用性
なお、③は、XCMP(Cross-chain Message Passing)とも言われます。
パラチェーンAからパラチェーンBにメッセージを送ることができます。
1ー3 Parachainとは
ParachainはRelaychainに接続されておりますが、それ自体が独立したブロックチェーンです。
また、特定のユースケースに対して、機能を最適化しています。
2 Astar Networkについて
2ー1 概要
Astar Networkは最初の拡張性に特化したスマートコントラクトのパラチェーンになることを目指しています。
2ー2 スケーラビリティについて
スケーラビリティには2つのタイプがあります。
① L1スケーラビリティ(水平的)
② L2スケーラビリティ(垂直的)
下の図がわかりやすいと思います。
L2の構造を組み合わせることで、Astar Network上で色々なDappsの作成が可能になります。
3 Plasmaとは
3ー1 概要
Plasmaはブロックチェーンのスケーリングソリューションの一つです。
① サイドチェーンを作り
② メインチェーンへの接続
ができます。
Plasmaはブロックチェーンを
① 安全性と分散化を犠牲にすることなく
② 速く・安くする
ということを念頭に置いています。
3ー2 Asatar内での具体的な処理
Plasmaは
①チェーンの外の
②マークルツリーで
③高速に
④トランザクションを管理・処理します。
そして、Aggregatorが
①チェーン外の処理を実行して
②マークルルートだけをブロックチェーンに送ります。
これによって、ブロックチェーンに書き込む量が大幅に削減されます。
3ー3 状態遷移について
Plasmaは
①トランザクションではなく、状態を保持
②状態遷移のルールはOVMで定義されます
状態遷移のフローは次のようになります。
① オーナーがトランザクションを署名
② Outputとして特定
③ OVMを使って記述される
OVMのロジックは「一階述語論理」で記載され「Predicate(述語論理)」と呼ばれているようです。
余談(命題論理と述語論理について)
専門ではないので参考です。
下のように「全ての〜」「いくつかの〜」というような「量化子」が入るものが述語論理と呼ばれるようです。
下の動画を参考にしました。
4 Astar/Shiden Network Family
大まかに、下のようになります。
① Astar:ポルカドットのパラチェーン
② Shiden:クサマのパラチェーン
③ Shibuya:Shidenのテストネットワーク
④ Local Network:ローカル環境で動く
4ー1 Astar/Shiden
① Astar:ポルカドットのパラチェーン
② Shiden:クサマのパラチェーン
現時点では、まだポルカドットのパラチェーンは利用ができないため、現在はShidenのみ利用ができます。
なお、Shidenもそれ自体に経済的価値があります。
4ー2 Shibuya
③ Shibuya:Shidenのテストネットワーク
ほぼShidenと同様の動きをするため、新しい機能の追加時などには、Shibuyaでテストを行います。
4ー3 Local Network
④ Local Network:ローカル環境で動く
5 collatorsとは
5ー1 概要
collatorsはネットワーク環境の維持に重要な役割を果たします。
① ブロックの生成
② トランザクションの確認
5ー2 collatorの役割
次のような役割があります。
① トランザクションを候補となるブロックに集約する
(まだこの時点ではそのブロックがつながるかが確定していない)
② バリデータのために状態遷移証明を作成する
なお、validatorsと異なり、collatorsはネットワークを安全にするわけではありません。
妥当でないブロックはvalidatorsに拒絶されます。
さらにcollatorsが多すぎるとネットワークが遅くなる可能性もあります。
5ー3 XCMPの立役者
Parachain間でメッセージを送れる仕組みをXCMPと呼び、ポルカドットの重要な機能の一つです。
このキーとなるのがcollatorです。
Relaychainのフルノードとなることで、お互いをpeersとして連携し、XCMPを可能にしています。
6 collatorの動きを見てみよう
6ー1 最新のファイルを取得する
次のようにバイナリファイルの取得方法には2種類あります。
① Githubから取得する
② ソースから作る
ここでは、Githubから取得していきます。
こちらからダウンロードを行います。(私はMacなので「MacOS」から)
では、こちらに沿って、実行許可とバージョンの確認を行いましょう。
chmod +x ./astar-collator
./astar-collator --version
私の場合は、このようにバージョン確認がそのままできませんでした。
下のように、「システム環境設定」から「セキュリティとプライバシー」に進みます。
「このまま許可」を押します。
再度実行すると、このように表示されます。
ご自身の責任でリスクを確認した上で、問題なければ「開く」を選択
このように、バージョンの確認ができました!
6ー2 ローカルのネットワーク環境を実行する
下のコマンドで、ローカルのネットワークを立ち上げましょう。
./astar-collator --port 30333 --ws-port 9944 --rpc-port 9933 --rpc-cors all --alice --dev
このように立ち上がりました。
ちなみに、よく見てみると、ブロックの生成は次のようなステップを踏んでいるようです。
① Starting consensus session
② Prepared block(ブロックの準備ができた)
③ Pre-sealed block(封をする前のブロック)
④ Imported(取り込み完了)
大まかに、こんな感じになっています。
6ー3 エクスプローラーからローカルネットワークを見てみる
ターミナルからだけではなく、下のようにポルカドット・エクスプローラーからも見ることができます。
このように、アカウントの情報も見ることができます。
なお、こちらのポルカドット・エクスプローラはEthereum RPCには対応していないようです。
7 参考
こちらは参考です。
7ー1 メタマスクにネットワークを追加する
メタマスクに「Shibuya」やローカルネットワークなどを入れるためには、下の情報を「Custom RPC」から入れていきましょう。
7ー2 メタマスクにローカルのトークンを入れる(現時点では参考です。)
そもそも、なぜポルカドット・エクスプローラからメタマスクのウォレットに直接トークンを送ることができないのでしょうか。
それは、上にあるようにアドレスのフォーマットが異なるためです。
① Substrate:SS58フォーマット
② Metamask(EVM):H160フォーマット
そのため、メタマスクのアドレスをSS58フォーマットに変換する必要があります。
以上で終了いたします。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊