From 4f306fdb8b565c01209e2d167b031c001eae62dd Mon Sep 17 00:00:00 2001 From: Leo Date: Mon, 31 May 2021 15:25:06 +0200 Subject: [PATCH] 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 Change-Id: I0c418497f19cc97c9ae7a11b206035d6e70c1b66 --- solana/agent/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solana/agent/src/main.rs b/solana/agent/src/main.rs index 761b20876..bfad0a533 100644 --- a/solana/agent/src/main.rs +++ b/solana/agent/src/main.rs @@ -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(