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

fix: slow address generation #199

Merged
merged 8 commits into from
Dec 9, 2024
Merged

Conversation

andreabadesso
Copy link
Collaborator

@andreabadesso andreabadesso commented Dec 4, 2024

Motivation

We currently iterate through all address indices of a wallet when a new address needs to be generated, this is taking up to 20 seconds when the wallet has many addresses

Acceptance Criteria

  • We should add a new composite index on (wallet_id, index), improving query performance
  • All existing functionality should be maintained (address generation, gap limit)
  • Tests should be passing and should cover the new implementation

Checklist

  • If you are requesting a merge into master, confirm this code is production-ready and can be included in future releases as soon as it gets merged
  • Make sure either the unit tests and/or the QA tests are capable of testing the new features
  • Make sure you do not include new dependencies in the project unless strictly necessary and do not include dev-dependencies as production ones. More dependencies increase the possibility of one of them being hijacked and affecting us.

@andreabadesso andreabadesso self-assigned this Dec 4, 2024
@andreabadesso andreabadesso added the bug Something isn't working label Dec 4, 2024
@andreabadesso andreabadesso changed the title Fix/slow address generation fix: slow address generation Dec 4, 2024
packages/daemon/src/services/index.ts Outdated Show resolved Hide resolved
packages/daemon/src/services/index.ts Outdated Show resolved Hide resolved
packages/daemon/src/db/index.ts Show resolved Hide resolved
packages/daemon/src/db/index.ts Outdated Show resolved Hide resolved
packages/daemon/src/db/index.ts Outdated Show resolved Hide resolved
packages/daemon/src/db/index.ts Show resolved Hide resolved
packages/daemon/src/services/index.ts Outdated Show resolved Hide resolved
packages/daemon/src/services/index.ts Outdated Show resolved Hide resolved
packages/daemon/src/services/index.ts Outdated Show resolved Hide resolved
packages/daemon/src/services/index.ts Outdated Show resolved Hide resolved
packages/daemon/src/services/index.ts Outdated Show resolved Hide resolved
@andreabadesso andreabadesso force-pushed the fix/slow-address-generation branch from 5c6a988 to dded183 Compare December 6, 2024 18:23
@andreabadesso andreabadesso merged commit 748522a into master Dec 9, 2024
1 check passed
@andreabadesso andreabadesso deleted the fix/slow-address-generation branch December 9, 2024 11:22
@andreabadesso andreabadesso mentioned this pull request Dec 9, 2024
2 tasks
andreabadesso added a commit that referenced this pull request Dec 9, 2024
* chore: deploy Nano Testnet (#168)

* fix: fetchMinRewardBlocks fails when reward_min_blocks is 0 (#177)

* fix: handle tx with no inputs and outputs (#178)

* chore: added NODE_ENV to integration tests

* fix: stop failing when there are no address balance on a transaction

* tests: added tests for the voidTransaction method

* chore: re-add test_images_down

* feat: allow sending alerts to another account (#179)

* fix: handle tx with no inputs (#181)

* tests: added tests for the voidTransaction method

* chore: re-add test_images_down

* fix: markUtxosAsVoided should not throw when inputs are empty

* fix: returning empty object on db utils and added test for services including db

* tests: fix invalid order of calls

* tests: missing tests [part 1/2] (#183)

* tests: added missing tests

* tests: added missing tests for nft push

* chore: added docker-compose to flake

* tests: ts-ignore -> ts-expect-error

* feat: handling the vertex_removed event (#182)

* feat: handling the vertex_removed event

* fix: handling empty arrays on IN conditions

* feat: handling VERTEX_REMOVED event

* tests: fix last event

* feat: voiding and removing transaction on vertex_removed event

* tests: added tests for empty array errors

* chore: using port 8085

* chore: actually using 8085

* refactor: removed misleading comment

* ci: support sub-accounts (#184)

* fix: non-standard scripts (#185)

* fix: handling utxos with empty scripts being spent

* refactor: helper to roll until an event

* chore: using latest :stable on custom and empty script docker compose

* refactor: removed unused logs

* chore: using fixed dependencies for all projects (#186)

* fix: updated balances and network name (#196)

* fix: updated throttling lib causing deploy to fail (#195)

* fix: updated firebase-admin lib version and deprecated sendMulticast (#194)

* fix: updated firebase-admin lib version and deprecated sendMulticast

* fix: tests mocking sendMulticast instead of the correct method

* fix: slow address generation (#199)

* chore: bumped to v1.6.3 (#200)

---------

Co-authored-by: Luis Helder <luislhl@gmail.com>
@andreabadesso andreabadesso mentioned this pull request Dec 11, 2024
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants