solana/agent: always submit signature verify transactions
The first transaction acquires a pseudo-lock by setting initial_creation = true, which will fail if a signature account already exists. However, this is unsafe since the operation consists of multiple operations and is not atomic - if the first validator fails to submit a full set of signature transactions, other guardians will not retry submitting signature verification txs. We disable this mechanism to never set initial_creation, which causes guardians to spend more fees in exchange for fault tolerance. Instead of failing with an AlreadyExists error, duplicate transactions will now succeed as a no-op and all nodes will attempt to submit the full series of signature transactions. Co-authored-by: Hendrik Hofstadt <hendrik@nexantic.com> Change-Id: I0c418497f19cc97c9ae7a11b206035d6e70c1b66
This commit is contained in:
parent
79cc6a9f46
commit
4f306fdb8b
|
@ -253,7 +253,7 @@ fn pack_sig_verification_txs<'a>(
|
||||||
let payload = VerifySigPayload {
|
let payload = VerifySigPayload {
|
||||||
signers: signature_status,
|
signers: signature_status,
|
||||||
hash: vaa_hash,
|
hash: vaa_hash,
|
||||||
initial_creation: tx_index == 0,
|
initial_creation: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
let verify_ix = match verify_signatures(
|
let verify_ix = match verify_signatures(
|
||||||
|
|
Loading…
Reference in New Issue