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: added ability to refresh the pool manually #1623

Merged

Conversation

wadeking98
Copy link
Contributor

@wadeking98 wadeking98 commented Oct 31, 2023

Previously AFJ wouldn't call refresh on genesis files, this meant that the pool could be out of date and contain dead nodes. This change adds a function to the pool service that allows an afj user to manually refresh the pool as needed. Example:

const poolService = newAgent.dependencyManager.resolve(IndyVdrPoolService)
await poolService.refreshPoolConnections()

all the pools are refreshed asynchronously so it doesn't take more than 1 - 2 seconds on BC Wallet.

Note: I tried returning the transactions too so that we could cache them, however when I was playing around with the yarn patch I made, whenever I called this._pool.transactions in the IndyCdrPool.js file I would get a JSON parse error. I was unclear what was causing the error, it seems to be coming from the indy-vdr-shared library

Signed-off-by: wadeking98 <wkingnumber2@gmail.com>
Signed-off-by: wadeking98 <wkingnumber2@gmail.com>
@codecov-commenter
Copy link

codecov-commenter commented Oct 31, 2023

Codecov Report

Merging #1623 (68bbc1a) into main (ec3182d) will decrease coverage by 0.03%.
The diff coverage is 7.14%.

@@            Coverage Diff             @@
##             main    #1623      +/-   ##
==========================================
- Coverage   85.67%   85.65%   -0.03%     
==========================================
  Files         959      959              
  Lines       23082    23095      +13     
  Branches     4049     4050       +1     
==========================================
+ Hits        19775    19781       +6     
- Misses       3123     3129       +6     
- Partials      184      185       +1     
Files Coverage Δ
packages/indy-vdr/src/index.ts 100.00% <100.00%> (ø)
packages/indy-vdr/src/IndyVdrApi.ts 87.50% <0.00%> (-12.50%) ⬇️
packages/indy-vdr/src/pool/IndyVdrPoolService.ts 80.48% <0.00%> (-4.13%) ⬇️
packages/indy-vdr/src/pool/IndyVdrPool.ts 80.00% <0.00%> (-6.67%) ⬇️

... and 3 files with indirect coverage changes

@TimoGlastra
Copy link
Contributor

Thanks @wadeking98! We can probably expose this method as well on the IndyVdrApi, so you can acces it on agent.modules.indyVdr.xxx

Re the parse error, the transactios is not a valid json array/object. As each line is a separate json object, but it's not constructed as an array. Maybe we do some incorrect parsing in the indy vdr lib..

@TimoGlastra
Copy link
Contributor

It seems the react native wrappers calls json.parse in poolGetTransactions, while the Node.JS wrapper doesn't: https://github.com/hyperledger/indy-vdr/blob/main/wrappers/javascript/indy-vdr-react-native/src/ReactNativeIndyVdr.ts

@berendsliedrecht could you make a quick fix for this in Indy VDR?

@berendsliedrecht
Copy link
Contributor

It seems the react native wrappers calls json.parse in poolGetTransactions, while the Node.JS wrapper doesn't: https://github.com/hyperledger/indy-vdr/blob/main/wrappers/javascript/indy-vdr-react-native/src/ReactNativeIndyVdr.ts

@berendsliedrecht could you make a quick fix for this in Indy VDR?

hyperledger/indy-vdr#234

Signed-off-by: wadeking98 <wkingnumber2@gmail.com>
* Get all pool transactions
*/
public getAllPoolTransactions() {
return Promise.allSettled(this.pools.map((pool) => pool.transactions))
Copy link
Contributor

Choose a reason for hiding this comment

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

This is not a promise right? So then allSettled is not needed I think?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

pool.transactions returns a promise

packages/indy-vdr/src/IndyVdrApi.ts Outdated Show resolved Hide resolved
Signed-off-by: wadeking98 <wkingnumber2@gmail.com>
Copy link
Contributor

@genaris genaris left a comment

Choose a reason for hiding this comment

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

Thanks @wadeking98! Do you think it could be useful to add some JSDoc comments in the new methods for IndyVdrApi? They seem to be self-explanatory (and do not get any input parameter but probably can help others to notice about their use cases (e.g. the performance issue that raised this PR).

wadeking98 and others added 2 commits November 3, 2023 15:17
Signed-off-by: wadeking98 <wkingnumber2@gmail.com>
@wadeking98
Copy link
Contributor Author

@genaris @TimoGlastra I don't have permissions to merge this so one of you will have to do it when you're ready

@genaris
Copy link
Contributor

genaris commented Nov 3, 2023

@genaris @TimoGlastra I don't have permissions to merge this so one of you will have to do it when you're ready

Sure, can you fix the Validate error? A yarn prettier -w should do the trick I think

@genaris genaris merged commit 0865ea5 into openwallet-foundation:main Nov 4, 2023
8 checks passed
auer-martin pushed a commit to auer-martin/aries-framework-javascript that referenced this pull request Nov 15, 2023
…dation#1623)

Signed-off-by: wadeking98 <wkingnumber2@gmail.com>
Signed-off-by: Martin Auer <martin.auer97@gmail.com>
amitpadmani-awts pushed a commit to ayanworks/aries-framework-javascript that referenced this pull request Nov 29, 2023
* fix: listen to incoming messages on agent initialize not constructor (openwallet-foundation#1542)

Signed-off-by: Niall Shaw <niall.shaw@absa.africa>

* fix(cheqd): make cosmos payer seed optional (openwallet-foundation#1547)

Signed-off-by: Timo Glastra <timo@animo.id>

* fix: create message subscription first (openwallet-foundation#1549)

Signed-off-by: Timo Glastra <timo@animo.id>

* fix(transport): Use connection in WebSocket ID (openwallet-foundation#1551)

* fix: priority sorting for didcomm services (openwallet-foundation#1555)

Signed-off-by: Timo Glastra <timo@animo.id>

* fix: bump missing dependencies version (openwallet-foundation#1557)

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* chore(release): v0.4.1 (openwallet-foundation#1548)

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: do not send package via outdated session (openwallet-foundation#1559)

Signed-off-by: Niall Shaw <niall.shaw@absa.africa>

* build(deps): bump @types/indy-sdk from 1.16.26 to 1.16.27 (openwallet-foundation#1564)

Signed-off-by: dependabot[bot] <support@github.com>

* fix(cheqd): changed the name formatting to a encoded hex value (openwallet-foundation#1574)

Signed-off-by: Tom Lanser <tom@animo.id>

* build(deps): bump @cheqd/ts-proto from 2.2.0 to 2.2.2 (openwallet-foundation#1568)

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump @cosmjs/proto-signing from 0.31.0 to 0.31.1 (openwallet-foundation#1566)

Signed-off-by: dependabot[bot] <support@github.com>

* fix(core): remove node-fetch dependency (openwallet-foundation#1578)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>

* fix: log and throw on WebSocket sending errors (openwallet-foundation#1573)

Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>

* fix(oob): support oob with connection and messages (openwallet-foundation#1558)

Signed-off-by: Timo Glastra <timo@animo.id>

* feat: allow connection invitation encoded in oob url param (openwallet-foundation#1583)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>

* fix: duplicate service ids in connections protocol (openwallet-foundation#1589)

* fix: implicit invitation to specific service (openwallet-foundation#1592)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>

* fix(askar): throw error if imported wallet exists (openwallet-foundation#1593)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>

* fix: service validation in OOB invitation objects (openwallet-foundation#1575)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>

* fix: update tsyringe for ts 5 support (openwallet-foundation#1588)

Signed-off-by: Timo Glastra <timo@animo.id>

* chore(release): v0.4.2 (openwallet-foundation#1591)

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: save AnonCredsCredentialRecord createdAt (openwallet-foundation#1603)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>

* feat: sped up lookup for revocation registries (openwallet-foundation#1605)

Signed-off-by: wadeking98 <wkingnumber2@gmail.com>

* build(deps): bump @types/express from 4.17.17 to 4.17.18 (openwallet-foundation#1596)

Bumps [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) from 4.17.17 to 4.17.18.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express)

---
updated-dependencies:
- dependency-name: "@types/express"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump actions/checkout from 3 to 4 (openwallet-foundation#1599)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump amannn/action-semantic-pull-request from 5.2.0 to 5.3.0 (openwallet-foundation#1598)

build(deps): bump amannn/action-semantic-pull-request

Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from 5.2.0 to 5.3.0.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md)
- [Commits](amannn/action-semantic-pull-request@v5.2.0...v5.3.0)

---
updated-dependencies:
- dependency-name: amannn/action-semantic-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: abandon proof protocol if presentation fails (openwallet-foundation#1610)

Signed-off-by: Timo Glastra <timo@animo.id>

* feat!: upgrade shared components (openwallet-foundation#1606)

* feat: update dockerfile to node 18 and sample mediator to askar (openwallet-foundation#1622)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>

* feat(sd-jwt-vc): Module for Issuer, Holder and verifier (openwallet-foundation#1607)

Signed-off-by: Berend Sliedrecht <blu3beri@proton.me>

* feat(indy-vdr): ability to refresh the pool manually (openwallet-foundation#1623)

Signed-off-by: wadeking98 <wkingnumber2@gmail.com>

* build(deps): bump @babel/traverse from 7.21.4 to 7.23.2 (openwallet-foundation#1608)

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump uuid and @types/uuid (openwallet-foundation#1597)

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): use node's built-in fetch (openwallet-foundation#1631)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>

* build(deps): bump react-devtools-core from 4.27.6 to 4.28.5 (openwallet-foundation#1630)

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump @mattrglobal/bbs-signatures from 1.1.0 to 1.3.1 (openwallet-foundation#1601)

Signed-off-by: dependabot[bot] <support@github.com>

* fix: some log messages (openwallet-foundation#1636)

Signed-off-by: Timo Glastra <timo@animo.id>

* feat: bump indy-vdr version (openwallet-foundation#1637)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>

* fix(core): allow string for did document controller (openwallet-foundation#1644)

Signed-off-by: Berend Sliedrecht <sliedrecht@berend.io>

* feat(anoncreds): issue revocable credentials (openwallet-foundation#1427)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>

* refactor(anoncreds)!: move supportRevocation to options (openwallet-foundation#1648)

Signed-off-by: Timo Glastra <timo@animo.id>

* refactor: move message-pickup directory (openwallet-foundation#1650)

Signed-off-by: Ariel Gentile <gentilester@gmail.com>

---------

Signed-off-by: Niall Shaw <niall.shaw@absa.africa>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Eric Vergnaud <eric.vergnaud@wanadoo.fr>
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Tom Lanser <tom@animo.id>
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
Signed-off-by: wadeking98 <wkingnumber2@gmail.com>
Signed-off-by: Berend Sliedrecht <blu3beri@proton.me>
Signed-off-by: Berend Sliedrecht <sliedrecht@berend.io>
Co-authored-by: Niall Shaw <100220424+niall-shaw@users.noreply.github.com>
Co-authored-by: Timo Glastra <timo@animo.id>
Co-authored-by: Alexander Shenshin <93187809+AlexanderShenshin@users.noreply.github.com>
Co-authored-by: ericvergnaud <eric.vergnaud@wanadoo.fr>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tom Lanser <tommy.lanser@gmail.com>
Co-authored-by: Ariel Gentile <gentilester@gmail.com>
Co-authored-by: Wade King <wkingnumber2@gmail.com>
Co-authored-by: Berend Sliedrecht <61358536+berendsliedrecht@users.noreply.github.com>
auer-martin pushed a commit to auer-martin/aries-framework-javascript that referenced this pull request Dec 4, 2023
…dation#1623)

Signed-off-by: wadeking98 <wkingnumber2@gmail.com>
Signed-off-by: Martin Auer <martin.auer97@gmail.com>
genaris pushed a commit to genaris/credo-ts that referenced this pull request Dec 4, 2023
…dation#1623)

Signed-off-by: wadeking98 <wkingnumber2@gmail.com>
Signed-off-by: Ariel Gentile <gentilester@gmail.com>
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.

5 participants