Proof of Data Availability

Sunriseのデータ可用性層はバリデータによって検証されます。バリデータは有効でない可能性のあるデータを検証し、その証明をチェーンに送信する必要があります。

このセクションでは、バリデータがどのようにデータを証明するかについて説明します。

証明

証明が必要なデータは、MsgSubmitInvalidityが送信され、ステータスがCHALLENGINGに変更されたものだけです。

CHALLENGINGの閾値は、全シャードの33%(ジェネシスのデフォルト)に対してMsgSubmitInvalidityが送信された場合です。

その後、バリデータが検証されます。一定数以上のシャードが証明された場合、ステータスは通常通りVERIFIEDに変更されます。そうでない場合、ステータスはREJECTEDに変更されます。

データ可用性層におけるステータスとデータの証明については、データ可用性を参照してください。

バリデータのためのsunrise-data

sunrise-dataは、バリデータにCHALLENGINGになったデータをモニタリングし証明する機能を提供します。

バリデータの証明代理を登録する

バリデータは自身でトランザクションを送信してデータを証明することもできますが、鍵の漏洩を防ぐために代理アドレスを使用することをお勧めします。

sunrised tx da register-proof-deputy [deputy_address] \
   --from [your_validator_key] \
   --chain-id=$CHAIN_ID \
   --fees=21000urise \
   --gas=220000

登録するには、sunrisedでバリデータキーを使用してトランザクションを一度だけ送信する必要があります。sunrise-dataで使用する代理のアドレスを登録します。

セットアップ方法

  1. バリデータとしてsunrisedを実行する セットアップについてはバリデータノードを参照してください。

  2. sunrise-dataリポジトリをクローンする

    cd ~
    git clone https://github.com/sunriselayer/sunrise-data.git
    cd sunrise-data
    make install
  3. config.tomlを作成して編集する

    cp config.default.toml config.toml
    vi config.toml

    ローカルのIPFSデーモンに接続するには、ipfs_api_urlフィールドを空のままにしておきます

    home_pathを.sunriseディレクトリに、proof_deputy_accountをsunrisedキーの名前に、validator_addressをバリデータアドレスに変更します。

    [api]
    port = 8000
    ipfs_api_url = ""
    ipfs_address_info = ""
    
    [chain]
    address_prefix="sunrise"
    home_path="/home/ubuntu/.sunrise"
    keyring_backend="test"
    sunrised_rpc="http://localhost:26657"
    
    [validator]
     proof_deputy_account="your_deputy_account"
     validator_address="sunrisevaloper1a8jcsmla6heu99ldtazc27dna4qcd4jyv75vcz"
     proof_fees="10000urise"
     proof_interval=5

ローカルでIPFSを実行する

  1. IPFSを実行する

    wget https://dist.ipfs.tech/kubo/v0.31.0/kubo_v0.31.0_linux-amd64.tar.gz
    tar -xvzf kubo_v0.31.0_linux-amd64.tar.gz
    cd kubo
    sudo ./install.sh
    ipfs init --profile=lowpower
    ipfs daemon
  2. IPFSノードIDを確認し、必要に応じてリモートピアを共有して追加する

    ipfs id

データの証明を開始する

sunrise-dataディレクトリで、

sunrise-data validator

またはサービスとして登録する

vi /etc/systemd/system/sunrise-data.service
systemctl enable sunrise-data
systemctl start sunrise-data
[Unit]
Description = sunrise-data validator daemon
After=network-online.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/sunrise-data
ExecStart = /home/ubuntu/go/bin/sunrise-data validator
Restart=on-failure
RestartSec=3
LimitNOFILE=1400000

[Install]
WantedBy = multi-user.target

セットアップが成功すると、表示は次のようになります

$ sunrise-data validator
{"level":"info","time":"2025-02-19T18:32:52+09:00","message":"Starting validator task"}
{"level":"info","time":"2025-02-19T18:32:52+09:00","message":"validator: sunrisevaloper1a8jcsmla6heu99ldtazc27dna4qcd4jyv75vcz deputy: sunrise155u042u8wk3al32h3vzxu989jj76k4zcc6d03n"}
{"level":"info","time":"2025-02-19T18:32:52+09:00","message":"On-chain data is checked every 5 sec"}

最終更新