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:
Leo 2021-05-31 15:25:06 +02:00 committed by Leopold Schabel
parent 79cc6a9f46
commit 4f306fdb8b
1 changed files with 1 additions and 1 deletions

View File

@ -253,7 +253,7 @@ fn pack_sig_verification_txs<'a>(
let payload = VerifySigPayload {
signers: signature_status,
hash: vaa_hash,
initial_creation: tx_index == 0,
initial_creation: false,
};
let verify_ix = match verify_signatures(