コンテンツにスキップ

ガバナンスアクションSPO投票

概要

  • この投票手順はガバナンスアクションのSPO投票のみに使用できます。
  • SJG Toolに実装しているコマンドとは異なりますが実行結果は同じです。
  • 投票にはトランザクション手数料が必要です。
  • トランザクション手数料はpayment.addrから引き落とされます。プール誓約を下回らないようご注意ください。

ガバナンスアクション確認サイト
https://cardanoscan.io/govActions
https://gov.tools/governance_actions

初めて作業する場合はガバナンス作業用ディレクトリを作成する

mkdir -p $NODE_HOME/governance

1.投票ファイル作成

投票例

ガバナンスアクショントランザクションID:59fd353253eb177e2104e8f23ea4c63e3d32ef95c7865d03e90d3884424dc1dbに対して Noで投票する場合

エアギャップで投票ファイルを作成する

  1. gov_id変数に投票するガバナンスアクションのトランザクションIDを指定する(Bech32IDは指定できない)
  2. 投票フラグは次の3つのいずれかを指定 --yes --no --abstain
gov_id="59fd353253eb177e2104e8f23ea4c63e3d32ef95c7865d03e90d3884424dc1db"
chmod u+rwx $HOME/cold-keys
cd $NODE_HOME
cardano-cli conway governance vote create \
--no \
--governance-action-tx-id $gov_id \
--governance-action-index "0" \
--cold-verification-key-file $HOME/cold-keys/node.vkey \
--out-file $NODE_HOME/governance/vote.file

ファイル転送

エアギャップのvote.fileをBPの~/cnode/governance/ディレクトリにコピーします。

graph LR
    A[エアギャップ] -->|vote.file| B[BP];

ハッシュ値確認 エアギャップとBPでvote.fileファイルハッシュを比較する
必ずハッシュ値が一致していることを確認してください

sha256sum $NODE_HOME/governance/vote.file
sha256sum $NODE_HOME/governance/vote.file

2.トランザクションファイル作成

payment.addrの残高を取得する

cd $NODE_HOME
cardano-cli query utxo \
    --address $(cat payment.addr) \
    $NODE_NETWORK > fullUtxo.out

tail -n +3 fullUtxo.out | sort -k3 -nr | sed -e '/lovelace + [0-9]/d' > balance.out

cat balance.out

未使用UTXOを取得する

tx_in=""
total_balance=0
while read -r utxo; do
    in_addr=$(awk '{ print $1 }' <<< "${utxo}")
    idx=$(awk '{ print $2 }' <<< "${utxo}")
    utxo_balance=$(awk '{ print $3 }' <<< "${utxo}")
    total_balance=$((${total_balance}+${utxo_balance}))
    echo TxHash: ${in_addr}#${idx}
    echo ADA: ${utxo_balance}
    tx_in="${tx_in} --tx-in ${in_addr}#${idx}"
done < balance.out
txcnt=$(cat balance.out | wc -l)
echo Total ADA balance: ${total_balance}
echo Number of UTXOs: ${txcnt}

cd $NODE_HOME
cardano-cli conway transaction build \
$NODE_NETWORK \
${tx_in} \
--change-address $(cat $NODE_HOME/payment.addr) \
--vote-file $NODE_HOME/governance/vote.file \
--witness-override 2 \
--out-file $NODE_HOME/governance/vote-tx.raw

ファイル転送

BPのvote-tx.rawをエアギャップマシンの~/cnode/governance/ディレクトリにコピーします。

graph LR
    A[BP] -->|vote-tx.raw| B[エアギャップ];

ハッシュ値確認 BPとエアギャップでvote-tx.rawファイルハッシュを比較する
必ずハッシュ値が一致していることを確認してください

sha256sum $NODE_HOME/governance/vote-tx.raw
sha256sum $NODE_HOME/governance/vote-tx.raw

3.署名ファイル作成

cardano-cli conway transaction sign \
--tx-body-file $NODE_HOME/governance/vote-tx.raw \
--signing-key-file $HOME/cold-keys/node.skey \
--signing-key-file $NODE_HOME/payment.skey \
--out-file $NODE_HOME/governance/vote-tx.signed

chmod a-rwx $HOME/cold-keys

ファイル転送

エアギャップのvote-tx.signedをBPの~/cnode/governance/ディレクトリにコピーします。

graph LR
    A[エアギャップ] -->|vote-tx.signed| B[BP];

ハッシュ値確認 エアギャップとBPでvote-tx.signedファイルハッシュを比較する
必ずハッシュ値が一致していることを確認してください

sha256sum $NODE_HOME/governance/vote-tx.signed
sha256sum $NODE_HOME/governance/vote-tx.signed

4.投票トランザクション送信

cd $NODE_HOME
cardano-cli conway transaction submit \
--tx-file $NODE_HOME/governance/vote-tx.signed \
$NODE_NETWORK