Skip to content

feat: optimize transaction validation db queries #4117

feat: optimize transaction validation db queries

feat: optimize transaction validation db queries #4117

GitHub Actions / Test Results (Integration tests) failed Mar 19, 2024 in 0s

1 fail, 31 pass in 24m 32s

 2 files  ±0  11 suites  ±0   24m 32s ⏱️ - 46m 5s
32 tests ±0  31 ✅ +2  0 💤 ±0  1 ❌  - 2 
33 runs   - 4  32 ✅ +1  0 💤 ±0  1 ❌  - 5 

Results for commit 4524995. ± Comparison against earlier commit 2b4f071.

Annotations

Check warning on line 0 in /

See this annotation in the file changed.

@github-actions github-actions / Test Results (Integration tests)

1 out of 2 runs failed: Scenario: As a client I want to send a one-sided transaction: tests/features/WalletFFI.feature:175:5

artifacts/junit-ffi-cucumber/cucumber-output-junit.xml [took 9m 2s]
Raw output
Step panicked. Captured output: Wallet RECEIVER failed to have at least num 1 txs with status 8, current status is 0
  Scenario: As a client I want to send a one-sided transaction
   ✔  Given I have a seed node SEED
   ✔  When I have a base node BASE1 connected to all seed nodes
   ✔  When I have wallet SENDER connected to base node BASE1
   ✔  And I have a ffi wallet FFI_WALLET connected to base node SEED
   ✔  When I have wallet RECEIVER connected to base node BASE1
   ✔  When I add contact with alias ALIAS1 and address of SENDER to ffi wallet FFI_WALLET
   ✔  When I add contact with alias ALIAS2 and address of RECEIVER to ffi wallet FFI_WALLET
   ✔  When I have mining node MINER connected to base node BASE1 and wallet SENDER
   ✔  When mining node MINER mines 10 blocks
   ✔  Then all nodes are at height 10
   ✔  Then I wait for wallet SENDER to have at least 129239250000 uT
   ✔  And I send 2400000 uT from wallet SENDER to wallet FFI_WALLET at fee 5
   ✔  And I send 2400000 uT from wallet SENDER to wallet FFI_WALLET at fee 5
   ✔  Then wallet SENDER has at least 2 transactions that are all TRANSACTION_STATUS_BROADCAST and not cancelled
   ✔  Then ffi wallet FFI_WALLET detects AT_LEAST 2 ffi transactions to be TRANSACTION_STATUS_BROADCAST
   ✔  When mining node MINER mines 10 blocks
   ✔  Then all nodes are at height 20
   ✔  Then ffi wallet FFI_WALLET detects AT_LEAST 2 ffi transactions to be TRANSACTION_STATUS_MINED
   ✔  Then I wait for ffi wallet FFI_WALLET to have at least 4000000 uT
   ✔  And I send 1000000 uT from ffi wallet FFI_WALLET to wallet RECEIVER at fee 5 via one-sided transactions
   ✔  Then ffi wallet FFI_WALLET detects AT_LEAST 3 ffi transactions to be TRANSACTION_STATUS_BROADCAST
   ✔  When mining node MINER mines 2 blocks
   ✔  Then all nodes are at height 22
   ✘  Then wallet RECEIVER has at least 1 transactions that are all TRANSACTION_STATUS_ONE_SIDED_UNCONFIRMED and not cancelled
      Step failed:
      Defined: tests/features/WalletFFI.feature:205:9
      Matched: integration_tests/tests/steps/wallet_steps.rs:514:1
      Step panicked. Captured output: Wallet RECEIVER failed to have at least num 1 txs with status 8, current status is 0
      Client {
          base_nodes: {},
          blocks: {},
          miners: {
              "MINER": MinerProcess {
                  name: "MINER",
                  base_node_name: "BASE1",
                  wallet_name: "SENDER",
                  mine_until_height: 100000,
                  stealth: false,
              },
          },
          ffi_wallets: {
              "FFI_WALLET": WalletFFI {
                  name: "FFI_WALLET",
                  port: 18345,
                  base_dir: "/runner/_work/tari/tari/integration_tests/tests/temp/cucumber_6425/Wallet FFI/As a client I want to send a one-sided transaction/ffi_wallets/FFI_WALLET_port_18345",
                  wallet: Mutex {
                      data: Wallet {
                          ptr: 0x000055aba2268a00,
                          liveness_data: Mutex {
                              data: {
                                  "0a4165da0963a33d725f88dcb09030c678943abd0c09b89daefaf0529c43323fb1": ContactsLivenessData {
                                      ptr: 0x00007faf3401c350,
                                  },
                              },
                              poisoned: false,
                              ..
                          },
                          balance: CachedBalance {
                              available: 2400000,
                              time_locked: 0,
                              pending_incoming: 1399330,
                              pending_outgoing: 2400000,
                          },
                      },
                      poisoned: false,
                      ..
                  },
              },
          },
          wallets: {},
          merge_mining_proxies: {},
          chat_clients: [],
          transactions: {},
          wallet_addresses: {},
          utxos: {},
          output_hash: None,
          pre_image: None,
          wallet_connected_to_base_node: {
              "SENDER": "BASE1",
              "RECEIVER": "BASE1",
          },
          seed_nodes: [
              "SEED",
          ],
          wallet_tx_ids: {
              "0a4165da0963a33d725f88dcb09030c678943abd0c09b89daefaf0529c43323fb1": [
                  14358649308687688009,
                  8439352751135709011,
              ],
              "ba9689b8c2eabf961277dec2a85f9ba7a54b15a9e23d4f7f39164e724f60d532c6": [
                  14358649308687688009,
                  8439352751135709011,
              ],
          },
          errors: [],
          last_imported_tx_ids: [],
          last_merge_miner_response: Null,
      }

Check notice on line 0 in .github

See this annotation in the file changed.

@github-actions github-actions / Test Results (Integration tests)

32 tests found

There are 32 tests, see "Raw output" for the full list of tests.
Raw output
Scenario: A message is propagated between clients via 3rd party: tests/features/ChatFFI.feature:7:3
Scenario: A message is propagated between side loaded chat and client via 3rd party: tests/features/ChatFFI.feature:109:3
Scenario: A message receives a delivery receipt via FFI: tests/features/ChatFFI.feature:78:3
Scenario: A message receives a read receipt via FFI: tests/features/ChatFFI.feature:86:3
Scenario: As a client I want to receive a one-sided transaction: tests/features/WalletFFI.feature:212:5
Scenario: As a client I want to receive contact liveness events: tests/features/WalletFFI.feature:73:5
Scenario: As a client I want to retrieve a list of transactions I have made and received: tests/features/WalletFFI.feature:96:5
Scenario: As a client I want to retrieve the mnemonic word list for a given language: tests/features/WalletFFI.feature:24:5
Scenario: As a client I want to send a one-sided transaction: tests/features/WalletFFI.feature:175:5
Scenario: As a wallet I want to submit a transaction: tests/features/WalletQuery.feature:18:3
Scenario: As a wallet send to a wallet connected to a different base node: tests/features/WalletTransfer.feature:9:3
Scenario: Callback for delivery confirmation received: tests/features/ChatFFI.feature:22:3
Scenario: Callback for new message received: tests/features/ChatFFI.feature:14:3
Scenario: Callback for read confirmation received: tests/features/ChatFFI.feature:31:3
Scenario: Chat shuts down without any errors: tests/features/ChatFFI.feature:63:3
Scenario: Clear out mempool: tests/features/Mempool.feature:46:3
Scenario: Create burn transaction: tests/features/WalletTransactions.feature:411:3
Scenario: Fetches all addresses from FFI conversations: tests/features/ChatFFI.feature:95:3
Scenario: Node rolls back reorg on invalid block: tests/features/Reorgs.feature:63:3
Scenario: Reply to message: tests/features/ChatFFI.feature:68:3
Scenario: Simple block sync: tests/features/Sync.feature:26:3
Scenario: Simple propagation: tests/features/Propagation.feature:26:3
Scenario: Simple reorg to stronger chain: tests/features/Reorgs.feature:8:3
Scenario: Simple reorg with burned output: tests/features/Reorgs.feature:33:3
Scenario: Sync burned output: tests/features/Sync.feature:34:3
Scenario: Syncing node while also mining before tip sync: tests/features/Sync.feature:142:5
Scenario: Transactions are propagated through a network: tests/features/Mempool.feature:8:3
Scenario: Verify UTXO and kernel MMR size in header: tests/features/BlockTemplate.feature:8:1
Scenario: Wallet recovery with connected base node staying online: tests/features/WalletRecovery.feature:8:5
Scenario: Wallet sending and receiving one-sided transactions: tests/features/WalletTransactions.feature:8:3
Scenario: When a new node joins the network, it receives all peers: tests/features/Sync.feature:77:3
Scenario: Zero-conf transactions: tests/features/Mempool.feature:124:3