Closed swcurran closed 11 months ago
@andrewwhitehead @cvarjao @jleach @WadeBarnes -- Did I get that right?
In the Python wrapper, the open_pool
method actually takes a 'no_refresh' parameter with the assumption that it should always perform a refresh before returning.
I couldn't find it before, but it appears that the nodejs and react-native wrappers do have a 'setConfig' method that can be used to set the pool configuration globally. This should be called before creating any pool instances, if it needs to be adjusted. For speeding up the initial setup I would explore setting the request_read_nodes
parameter to 1 (default is 2) which defines the minimum number of nodes to send each request to. Along with this change it might be beneficial to reduce ack_timeout
from 20 seconds; this is the time it will wait before dispatching another request, when the first node is slow to respond. The full set of options is here (could also use documenting elsewhere): https://github.com/hyperledger/indy-vdr/blob/323f28b547424b7f7559330eb18eed1d23ed34c2/libindy_vdr/src/config/types.rs#L8
When connecting to multiple ledgers at startup I would also make sure that those connections are performed in parallel.
Good stuff! Questions:
ACA-Py leaves the “no_refresh” parameter as is, correct? Is the “refresh” that results from checking that parameter get executed by the Python wrapper, or within Indy VDR itself?
What do you suggestion lowering ack_timeout
to?
I’ll get a PR in to the documentation here, and I’ll put an issue into AFJ for the changes that might be/are needed.
Closing this issue as PR #242 has been completed where the Global Defaults were adjusted.
AFJ and other libraries are still able to update the defaults, but at least the defaults are improved.
A couple of key features that seem to impact performance are in the Python wrapper, but not in the JavaScript wrapper. Consider adding those features.