メインコンテンツまでスキップ

委任代表者への委任

Cardanoエコシステムでは、委任代表者 (DReps) が、ガバナンスアクションに投票する権限を委任するADA保有者に代わってリソースを調整します。

備考

Cardanoガバナンスの詳細については、1694.IO または Govtool をご覧ください。

代表者に委任するには、委任を反映した投票委任証明書を生成し、その証明書をブロックチェーンに送信する必要があります。

投票権を委任できる相手は以下のとおりです。

  • Registered DReps(登録されたDRep) - ガバナンスアクションに投票するための投票権の委任を受ける Cardano コミュニティのメンバー。
  • Always Abstain(常に棄権する) - ガバナンス プロセスから脱退します。
  • Always Vote No Confidence(常に不信任票を投じる) - すべての提案に反対票を投じます。

投票権を委任するには、stake.vkeyを使用して証明書vote-deleg.certを作成します。

  1. 投票権をDRepに委任するには、次のコマンドを入力します。
    ${drep_id}は、委任を受けるDRepのIDです。

  2. governanceディレクトリを作成します。

mkdir -p $NODE_HOME/governance
  1. 変数drep_idに投票権を委任したいDRep-IDを代入します。

CIP-105を入力してください。Hex

drep_id=

以下はAKYOのMainnetのDRep-IDです。

drep1uygrv5qxyalmdgu0xdjh8ru6juae6426y6048fugyf97g4srzkn

CIP-105 preview.gov.tools

  1. drep.idファイルを作成します。
cat > $NODE_HOME/governance/drep.id << EOF 
${drep_id}
EOF
  1. vote-deleg.certファイルを作成します。
cd $NODE_HOME
cardano-cli latest stake-address vote-delegation-certificate \
--stake-verification-key-file stake.vkey \
--drep-key-hash $(cat $NODE_HOME/governance/drep.id) \
--out-file $NODE_HOME/governance/vote-deleg.cert
棄権または不信任を表明したい場合
複数のリレーノードの設定

エアギャップオフラインマシンで適切なドメイン名またはIPアドレスを設定してください。

  • ガバナンスプロセスを棄権するには、次のように入力します。
cd $NODE_HOME
cardano-cli latest stake-address vote-delegation-certificate \
--stake-verification-key-file stake.vkey \
--always-abstain \
--out-file $NODE_HOME/governance/vote-deleg.cert
  • すべての提案に「いいえ」と投票するには、次のように入力します。
cd $NODE_HOME
cardano-cli latest stake-address vote-delegation-certificate \
--stake-verification-key-file stake.vkey \
--always-no-confidence \
--out-file $NODE_HOME/governance/vote-deleg.cert
ヒント

BPで事前にgovernanceディレクトリを作成しておきます。

mkdir -p $NODE_HOME/governance
ファイル転送

エアギャップの$NODE_HOME/governance/vote-deleg.certをBPの$NODE_HOME/governanceディレクトリにコピーします。

手数料支払い用UTxOを1つ選択します(datum / referenceScript なし)。

tx_in=$(
cardano-cli latest query utxo \
--address "$(cat $NODE_HOME/payment.addr)" \
${NODE_NETWORK} \
--output-json \
| jq -r '
to_entries
| map(
select((.value.referenceScript // null) == null)
| select((.value.datum // null) == null)
| select((.value.inlineDatum // null) == null)
| select((.value.inlineDatumRaw // null) == null)
| select((.value.datumhash // null) == null)
)
| sort_by(.value.value.lovelace) | reverse
| if length > 0 then .[0].key else empty end
'
)

if [ -z "${tx_in}" ]; then
echo "WARNING: 使用可能なUTxOが見つかりません。"
echo "payment.addr のUTxOを確認してください。"
else
echo "tx_in: ${tx_in}"
fi

投票委任証明書を含むトランザクションを構築します。

cardano-cli latest transaction build \
${NODE_NETWORK} \
--tx-in "${tx_in}" \
--change-address "$(cat $NODE_HOME/payment.addr)" \
--certificate-file $NODE_HOME/governance/vote-deleg.cert \
--witness-override 2 \
--out-file $NODE_HOME/governance/tx.raw
ファイル転送

BPの$NODE_HOME/governance/tx.rawをエアギャップの$NODE_HOME/governanceディレクトリにコピーします。

支払いとステークの秘密鍵の両方を使用してトランザクションに署名します。

cd $NODE_HOME
cardano-cli latest transaction sign \
--tx-body-file $NODE_HOME/governance/tx.raw \
--signing-key-file payment.skey \
--signing-key-file stake.skey \
${NODE_NETWORK} \
--out-file $NODE_HOME/governance/tx.signed
ファイル転送

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

署名されたトランザクションを送信します。

cardano-cli latest transaction submit \
--tx-file $NODE_HOME/governance/tx.signed \
${NODE_NETWORK}

Transaction successfully submitted.