Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: improve wallet responsiveness #3625

Conversation

hansieodendaal
Copy link
Contributor

Description

Improved wallet responsiveness by cutting down on unnecessary wallet database calls:

  • TransactionEvent::TransactionValidationSuccess was published regardless of any state change in the wallet database, which resulted in many unnecessary fetch 'All Complete Transactions' calls to the wallet database. This issue was optimized to only send the event when a state change was affected.
  • A missing event was added when state changed due to reorgs.
  • This should have a slight positive impact on mobile wallet battery usage.

Motivation and Context

Unnecessary wallet database calls to fetch all completed transactions were made each time the transaction validation protocol was run, especially when nothing changed in the database. This effect grew linearly with the amount of transactions in the database,

How Has This Been Tested?

  • Unit tests
  • Cucumber tests (npm test -- --tags "not @long-running and not @broken")
  • System level tests

`TransactionEvent::TransactionValidationSuccess` was published regardless of
any state change in the wallet database, which resulted in many unnecessary
`fetch 'All Complete Transactions'` calls to the wallet database. This issue
was optimized to only send the event when a state change was affected.
Copy link
Contributor

@philipr-za philipr-za left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@aviator-app aviator-app bot merged commit 73d862f into tari-project:development Nov 29, 2021
@hansieodendaal hansieodendaal deleted the ho_improve_wallet_responsiveness branch November 29, 2021 14:28
sdbondi added a commit to sdbondi/tari that referenced this pull request Dec 6, 2021
* development: (29 commits)
  fix(pruned mode)!: prune inputs, allow horizon sync resume and other fixes (tari-project#3521)
  feat!: sending one-sided transactions in wallet_ffi (tari-project#3634)
  fix: use json 5 for tor identity (regression) (tari-project#3624)
  test: add operation_id to log messages (tari-project#3633)
  fix!: multiple monerod addresses in tari merge mining proxy (tari-project#3628)
  fix: get-peer command works with public key again (tari-project#3636)
  fix!: separate peer seeds to common.network (tari-project#3635)
  test: removed stress test log target (tari-project#3631)
  feat: removed transaction validation redundant events (tari-project#3630)
  feat: improve wallet responsiveness (tari-project#3625)
  feat: add bulletproof rewind profiling (tari-project#3618)
  fix!: console wallet grpc_console_wallet_addresss config (tari-project#3619)
  test: increase timeout in cucumber (tari-project#3621)
  chore: change status line (tari-project#3610)
  feat!: add tcp bypass settings for tor in wallet_ffi (tari-project#3615)
  feat: only trigger UTXO scanning when a new block event is received (tari-project#3620)
  feat: implement dht pooled db connection (tari-project#3596)
  feat: add page for detailed mempool in explorer (tari-project#3613)
  chore: add pub key in the dailes notify (tari-project#3612)
  feat: display network for console wallet (tari-project#3611)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants