委任代表者への委任
Cardanoエコシステムでは、委任代表者 (DReps) が、ガバナンスアクションに投票する権限を委任するADA保有者に代わってリソースを調整します。
Cardanoガバナンスの詳細については、1694.IO または Govtool をご覧ください。
代表者に委任するには、委任を反映した投票委任証明書を生成し、その証明書をブロックチェーンに送信する必要があります。
投票権を委任できる相手は以下のとおりです。
- Registered DReps(登録されたDRep) - ガバナンスアクションに投票するための投票権の委任を受ける Cardano コミュニティのメンバー。
- Always Abstain(常に棄権する) - ガバナンス プロセスから脱退します。
- Always Vote No Confidence(常に不信任票を投じる) - すべての提案に反対票を投じます。
投票権を委任するには、stake.vkeyを使用して証明書vote-deleg.certを作成します。
- エアギャップ
-
投票権をDRepに委任するには、次のコマンドを入力します。
${drep_id}は、委任を受けるDRepのIDです。 -
governanceディレクトリを作成します。
mkdir -p $NODE_HOME/governance
- 変数drep_idに投票権を委任したいDRep-IDを代入します。
CIP-105を入力してください。Hex
drep_id=
以下はAKYOのMainnetのDRep-IDです。
drep1uygrv5qxyalmdgu0xdjh8ru6juae6426y6048fugyf97g4srzkn
CIP-105 preview.gov.tools
- drep.idファイルを作成します。
cat > $NODE_HOME/governance/drep.id << EOF
${drep_id}
EOF
- 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ディレクトリにコピーします。
- BP
手数料支払い用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ディレクトリにコピーします。
署名されたトランザクションを送信します。
- BP
cardano-cli latest transaction submit \
--tx-file $NODE_HOME/governance/tx.signed \
${NODE_NETWORK}
Transaction successfully submitted.