-
Notifications
You must be signed in to change notification settings - Fork 94
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(utxo): prioritize electrum connections #1966
Commits on Aug 26, 2023
-
Configuration menu - View commit details
-
Copy full SHA for bd00a99 - Browse repository at this point
Copy the full SHA bd00a99View commit details
Commits on Sep 1, 2023
-
rozhkovdmitrii committed
Sep 1, 2023 Configuration menu - View commit details
-
Copy full SHA for a31179a - Browse repository at this point
Copy the full SHA a31179aView commit details
Commits on Sep 4, 2023
-
save state of being able to be compiled
rozhkovdmitrii committedSep 4, 2023 Configuration menu - View commit details
-
Copy full SHA for da4e5f9 - Browse repository at this point
Copy the full SHA da4e5f9View commit details
Commits on Sep 7, 2023
-
rozhkovdmitrii committed
Sep 7, 2023 Configuration menu - View commit details
-
Copy full SHA for 38e3cc4 - Browse repository at this point
Copy the full SHA 38e3cc4View commit details
Commits on Sep 8, 2023
-
introduce conn_mng guarded state
rozhkovdmitrii committedSep 8, 2023 Configuration menu - View commit details
-
Copy full SHA for 50c8052 - Browse repository at this point
Copy the full SHA 50c8052View commit details
Commits on Sep 10, 2023
-
rozhkovdmitrii committed
Sep 10, 2023 Configuration menu - View commit details
-
Copy full SHA for 4ba4a1a - Browse repository at this point
Copy the full SHA 4ba4a1aView commit details
Commits on Sep 11, 2023
-
rozhkovdmitrii committed
Sep 11, 2023 Configuration menu - View commit details
-
Copy full SHA for 9466e53 - Browse repository at this point
Copy the full SHA 9466e53View commit details
Commits on Sep 21, 2023
-
pushing secondary connection is implemented
rozhkovdmitrii committedSep 21, 2023 Configuration menu - View commit details
-
Copy full SHA for ae5ed65 - Browse repository at this point
Copy the full SHA ae5ed65View commit details -
rozhkovdmitrii committed
Sep 21, 2023 Configuration menu - View commit details
-
Copy full SHA for c1bffff - Browse repository at this point
Copy the full SHA c1bffffView commit details -
Conn manager works as it was supposed
rozhkovdmitrii committedSep 21, 2023 Configuration menu - View commit details
-
Copy full SHA for 03af8ce - Browse repository at this point
Copy the full SHA 03af8ceView commit details -
refactor: get
get_conn
andget_conn_by_address
apartrozhkovdmitrii committedSep 21, 2023 Configuration menu - View commit details
-
Copy full SHA for b31a9ff - Browse repository at this point
Copy the full SHA b31a9ffView commit details -
refactor: electrum_request_multi rolled back
rozhkovdmitrii committedSep 21, 2023 Configuration menu - View commit details
-
Copy full SHA for f325ebf - Browse repository at this point
Copy the full SHA f325ebfView commit details
Commits on Sep 22, 2023
-
feat: introduce conn_mng_policy and start moving parts into the files…
… of theirs own
rozhkovdmitrii committedSep 22, 2023 Configuration menu - View commit details
-
Copy full SHA for 39a7475 - Browse repository at this point
Copy the full SHA 39a7475View commit details -
feat: started to implement multiple_conn_mng based on dev branch
rozhkovdmitrii committedSep 22, 2023 Configuration menu - View commit details
-
Copy full SHA for 0e612bb - Browse repository at this point
Copy the full SHA 0e612bbView commit details
Commits on Sep 25, 2023
-
rozhkovdmitrii committed
Sep 25, 2023 Configuration menu - View commit details
-
Copy full SHA for d5fa172 - Browse repository at this point
Copy the full SHA d5fa172View commit details -
feat: multiple conn mng has been simplified
rozhkovdmitrii committedSep 25, 2023 Configuration menu - View commit details
-
Copy full SHA for e7a10f0 - Browse repository at this point
Copy the full SHA e7a10f0View commit details
Commits on Sep 27, 2023
-
rozhkovdmitrii committed
Sep 27, 2023 Configuration menu - View commit details
-
Copy full SHA for cfbeea0 - Browse repository at this point
Copy the full SHA cfbeea0View commit details -
refactor: Bring Priority enum into mm2_rpc::rpc_data
rozhkovdmitrii committedSep 27, 2023 Configuration menu - View commit details
-
Copy full SHA for 99408ce - Browse repository at this point
Copy the full SHA 99408ceView commit details -
feat: Provide setting conn_mng_policy during config initialization us…
…ing the cli
rozhkovdmitrii committedSep 27, 2023 Configuration menu - View commit details
-
Copy full SHA for de14a3f - Browse repository at this point
Copy the full SHA de14a3fView commit details -
refactor: Prefer &str in some places
rozhkovdmitrii committedSep 27, 2023 Configuration menu - View commit details
-
Copy full SHA for 8363353 - Browse repository at this point
Copy the full SHA 8363353View commit details -
feat: implement rotate_servers for conn_mng_multiple
rozhkovdmitrii committedSep 27, 2023 Configuration menu - View commit details
-
Copy full SHA for 04eae35 - Browse repository at this point
Copy the full SHA 04eae35View commit details -
rozhkovdmitrii committed
Sep 27, 2023 Configuration menu - View commit details
-
Copy full SHA for 48d507c - Browse repository at this point
Copy the full SHA 48d507cView commit details -
rozhkovdmitrii committed
Sep 27, 2023 Configuration menu - View commit details
-
Copy full SHA for a193f5d - Browse repository at this point
Copy the full SHA a193f5dView commit details -
rozhkovdmitrii committed
Sep 27, 2023 Configuration menu - View commit details
-
Copy full SHA for 7b98067 - Browse repository at this point
Copy the full SHA 7b98067View commit details -
process creating subsystem errors
rozhkovdmitrii committedSep 27, 2023 Configuration menu - View commit details
-
Copy full SHA for 3663716 - Browse repository at this point
Copy the full SHA 3663716View commit details
Commits on Sep 28, 2023
-
Merge branch 'dev' into 1520-prioritize-nodes
# Conflicts: # mm2src/adex_cli/src/rpc_data.rs # mm2src/adex_cli/src/scenarios/init_mm2_cfg.rs # mm2src/coins/utxo/utxo_builder/utxo_coin_builder.rs # mm2src/coins/z_coin.rs
rozhkovdmitrii committedSep 28, 2023 Configuration menu - View commit details
-
Copy full SHA for 7f10b19 - Browse repository at this point
Copy the full SHA 7f10b19View commit details -
rozhkovdmitrii committed
Sep 28, 2023 Configuration menu - View commit details
-
Copy full SHA for 4c1a577 - Browse repository at this point
Copy the full SHA 4c1a577View commit details
Commits on Sep 29, 2023
-
rozhkovdmitrii committed
Sep 29, 2023 Configuration menu - View commit details
-
Copy full SHA for da4d58d - Browse repository at this point
Copy the full SHA da4d58dView commit details -
rozhkovdmitrii committed
Sep 29, 2023 Configuration menu - View commit details
-
Copy full SHA for 5686619 - Browse repository at this point
Copy the full SHA 5686619View commit details -
rozhkovdmitrii committed
Sep 29, 2023 Configuration menu - View commit details
-
Copy full SHA for 3534ddb - Browse repository at this point
Copy the full SHA 3534ddbView commit details
Commits on Oct 1, 2023
-
refactor: implement
duplicate_suspend_timeout
and `reset_supend_tim……eout` using the common method `set_suspend_timeout`
rozhkovdmitrii committedOct 1, 2023 Configuration menu - View commit details
-
Copy full SHA for d98521f - Browse repository at this point
Copy the full SHA d98521fView commit details -
fix: getting of connecting state
rozhkovdmitrii committedOct 1, 2023 Configuration menu - View commit details
-
Copy full SHA for 9031c9f - Browse repository at this point
Copy the full SHA 9031c9fView commit details -
rozhkovdmitrii committed
Oct 1, 2023 Configuration menu - View commit details
-
Copy full SHA for fa25b6f - Browse repository at this point
Copy the full SHA fa25b6fView commit details -
refactor: get_conn_ctx and get_conn_ctx_mut for the selective con_mng
rozhkovdmitrii committedOct 1, 2023 Configuration menu - View commit details
-
Copy full SHA for 6500dbd - Browse repository at this point
Copy the full SHA 6500dbdView commit details -
refactor: bring ConnMngTrait into separate file
rozhkovdmitrii committedOct 1, 2023 Configuration menu - View commit details
-
Copy full SHA for 41c1872 - Browse repository at this point
Copy the full SHA 41c1872View commit details -
refactor: introduce ConnMngError
rozhkovdmitrii committedOct 1, 2023 Configuration menu - View commit details
-
Copy full SHA for 22116e1 - Browse repository at this point
Copy the full SHA 22116e1View commit details
Commits on Oct 3, 2023
-
refactor: rollback some changes
rozhkovdmitrii committedOct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 0d09323 - Browse repository at this point
Copy the full SHA 0d09323View commit details -
refactor: rollback some changes
rozhkovdmitrii committedOct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 9d045ef - Browse repository at this point
Copy the full SHA 9d045efView commit details -
Revert "refactor: rollback some changes"
This reverts commit 9d045ef.
rozhkovdmitrii committedOct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 4fce08b - Browse repository at this point
Copy the full SHA 4fce08bView commit details -
refactor: rollback some changes
rozhkovdmitrii committedOct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 95bf9fa - Browse repository at this point
Copy the full SHA 95bf9faView commit details -
refactor: rollback some changes
rozhkovdmitrii committedOct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 2373174 - Browse repository at this point
Copy the full SHA 2373174View commit details -
rozhkovdmitrii committed
Oct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 9608966 - Browse repository at this point
Copy the full SHA 9608966View commit details -
rozhkovdmitrii committed
Oct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for d05347d - Browse repository at this point
Copy the full SHA d05347dView commit details -
rozhkovdmitrii committed
Oct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 291d901 - Browse repository at this point
Copy the full SHA 291d901View commit details -
rozhkovdmitrii committed
Oct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 5e51798 - Browse repository at this point
Copy the full SHA 5e51798View commit details -
rozhkovdmitrii committed
Oct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 5b23e37 - Browse repository at this point
Copy the full SHA 5b23e37View commit details -
rozhkovdmitrii committed
Oct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for eb82125 - Browse repository at this point
Copy the full SHA eb82125View commit details -
rozhkovdmitrii committed
Oct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 3e98a42 - Browse repository at this point
Copy the full SHA 3e98a42View commit details -
rozhkovdmitrii committed
Oct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 5663668 - Browse repository at this point
Copy the full SHA 5663668View commit details -
rozhkovdmitrii committed
Oct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 79e6850 - Browse repository at this point
Copy the full SHA 79e6850View commit details -
rozhkovdmitrii committed
Oct 3, 2023 Configuration menu - View commit details
-
Copy full SHA for 0e10bcb - Browse repository at this point
Copy the full SHA 0e10bcbView commit details
Commits on Jan 30, 2024
-
Merge branch 'dev' into 1520-prioritize-nodes
# Conflicts: # mm2src/adex_cli/Cargo.lock # mm2src/coins/utxo.rs # mm2src/coins/utxo/rpc_clients.rs # mm2src/coins/utxo/utxo_builder/utxo_coin_builder.rs # mm2src/coins/utxo/utxo_tests.rs # mm2src/coins/z_coin.rs
Configuration menu - View commit details
-
Copy full SHA for 6f96d6e - Browse repository at this point
Copy the full SHA 6f96d6eView commit details -
Configuration menu - View commit details
-
Copy full SHA for c630ee0 - Browse repository at this point
Copy the full SHA c630ee0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 71d9664 - Browse repository at this point
Copy the full SHA 71d9664View commit details -
Configuration menu - View commit details
-
Copy full SHA for b2434da - Browse repository at this point
Copy the full SHA b2434daView commit details
Commits on Jan 31, 2024
-
merge ConnectionManagerSelectiveQueue with ConnectionManagerSelective…
…State and other minor changes
Configuration menu - View commit details
-
Copy full SHA for 935bee5 - Browse repository at this point
Copy the full SHA 935bee5View commit details
Commits on Feb 6, 2024
-
manage sending multiple sub requests for same scripthash and other fi…
…xes/improvements
Configuration menu - View commit details
-
Copy full SHA for 2097e53 - Browse repository at this point
Copy the full SHA 2097e53View commit details
Commits on Feb 12, 2024
-
Merge remote-tracking branch 'origin/dev' into 1520-prioritize-nodes
# Conflicts: # mm2src/coins/utxo/rpc_clients.rs # mm2src/coins/utxo/utxo_balance_events.rs
Configuration menu - View commit details
-
Copy full SHA for 0ed6c3a - Browse repository at this point
Copy the full SHA 0ed6c3aView commit details -
Configuration menu - View commit details
-
Copy full SHA for e6585ee - Browse repository at this point
Copy the full SHA e6585eeView commit details
Commits on Feb 15, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9cc0378 - Browse repository at this point
Copy the full SHA 9cc0378View commit details -
rename guarded to state_guard and move connect impl to impl trait for…
… ConnectionManagerMultiple
Configuration menu - View commit details
-
Copy full SHA for 0e59572 - Browse repository at this point
Copy the full SHA 0e59572View commit details -
move get_connection_ctx_mut and get_connection_ctx to ConnectionManag…
…erMultipleState impl
Configuration menu - View commit details
-
Copy full SHA for e6f2ba3 - Browse repository at this point
Copy the full SHA e6f2ba3View commit details
Commits on Feb 16, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 5eede71 - Browse repository at this point
Copy the full SHA 5eede71View commit details -
Configuration menu - View commit details
-
Copy full SHA for 350a992 - Browse repository at this point
Copy the full SHA 350a992View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2d24da3 - Browse repository at this point
Copy the full SHA 2d24da3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7b7110d - Browse repository at this point
Copy the full SHA 7b7110dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 10ff5c8 - Browse repository at this point
Copy the full SHA 10ff5c8View commit details -
Configuration menu - View commit details
-
Copy full SHA for ef6ff41 - Browse repository at this point
Copy the full SHA ef6ff41View commit details
Commits on Feb 17, 2024
-
Refactor ConnectionManagerMultiple & ConnectionManagerSelective
This commit refactors `multiple` and `selective` connection managers. Now the inner impl managers' `Arc` implements `ConnectionManagerTrait` while the outer wrapper only implements `Deref` to return the `Arc`. Also some methods that only used the `state: MutexGuard` are now moved to `ConnectionManager[Multiple|Selective]State`.
Configuration menu - View commit details
-
Copy full SHA for f87278d - Browse repository at this point
Copy the full SHA f87278dView commit details
Commits on Mar 22, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 61af931 - Browse repository at this point
Copy the full SHA 61af931View commit details
Commits on Apr 17, 2024
-
Configuration menu - View commit details
-
Copy full SHA for a1d0a9a - Browse repository at this point
Copy the full SHA a1d0a9aView commit details -
Configuration menu - View commit details
-
Copy full SHA for ebb5394 - Browse repository at this point
Copy the full SHA ebb5394View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9bed9d1 - Browse repository at this point
Copy the full SHA 9bed9d1View commit details
Commits on Apr 18, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 5666936 - Browse repository at this point
Copy the full SHA 5666936View commit details
Commits on Apr 19, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 426037c - Browse repository at this point
Copy the full SHA 426037cView commit details
Commits on Apr 21, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 94a90aa - Browse repository at this point
Copy the full SHA 94a90aaView commit details
Commits on Apr 22, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 20c70bf - Browse repository at this point
Copy the full SHA 20c70bfView commit details
Commits on Apr 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 0471735 - Browse repository at this point
Copy the full SHA 0471735View commit details
Commits on May 5, 2024
-
Configuration menu - View commit details
-
Copy full SHA for bf3781f - Browse repository at this point
Copy the full SHA bf3781fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2129a8f - Browse repository at this point
Copy the full SHA 2129a8fView commit details
Commits on May 13, 2024
-
to avoid 2 connections starting in close proximity and cancelling each other (rare race condition) this essentially merges the `is_connected` & setting the tx end of the conneciton in one guard
Configuration menu - View commit details
-
Copy full SHA for dafff72 - Browse repository at this point
Copy the full SHA dafff72View commit details -
Configuration menu - View commit details
-
Copy full SHA for a9a56fe - Browse repository at this point
Copy the full SHA a9a56feView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7cffd67 - Browse repository at this point
Copy the full SHA 7cffd67View commit details -
add back scripthash notification sender since it's used to send Subsc…
…ribeToAddresses notifications unfortunately :(
Configuration menu - View commit details
-
Copy full SHA for 1b49971 - Browse repository at this point
Copy the full SHA 1b49971View commit details
Commits on May 17, 2024
-
still needs refactoring for the tons of warnings there also selective connection manager is missing
Configuration menu - View commit details
-
Copy full SHA for af03de3 - Browse repository at this point
Copy the full SHA af03de3View commit details -
Configuration menu - View commit details
-
Copy full SHA for b296728 - Browse repository at this point
Copy the full SHA b296728View commit details
Commits on May 20, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 5a06371 - Browse repository at this point
Copy the full SHA 5a06371View commit details
Commits on May 22, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 85c3609 - Browse repository at this point
Copy the full SHA 85c3609View commit details -
Configuration menu - View commit details
-
Copy full SHA for c2f4488 - Browse repository at this point
Copy the full SHA c2f4488View commit details -
Configuration menu - View commit details
-
Copy full SHA for dd7cb96 - Browse repository at this point
Copy the full SHA dd7cb96View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6bb5e4f - Browse repository at this point
Copy the full SHA 6bb5e4fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2d72df4 - Browse repository at this point
Copy the full SHA 2d72df4View commit details -
Configuration menu - View commit details
-
Copy full SHA for d31f648 - Browse repository at this point
Copy the full SHA d31f648View commit details -
Configuration menu - View commit details
-
Copy full SHA for d8c11b9 - Browse repository at this point
Copy the full SHA d8c11b9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5f91ca5 - Browse repository at this point
Copy the full SHA 5f91ca5View commit details
Commits on May 23, 2024
-
bound establish_connecion_loop method with a timeout
the total time this method might take is at most the timeout decided in the connection settings, which is the time needed to establish the connection and query for the version
Configuration menu - View commit details
-
Copy full SHA for 518819b - Browse repository at this point
Copy the full SHA 518819bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2be78df - Browse repository at this point
Copy the full SHA 2be78dfView commit details -
Configuration menu - View commit details
-
Copy full SHA for dfc4bc7 - Browse repository at this point
Copy the full SHA dfc4bc7View commit details
Commits on May 29, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 769304b - Browse repository at this point
Copy the full SHA 769304bView commit details
Commits on May 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for dc47f67 - Browse repository at this point
Copy the full SHA dc47f67View commit details -
temp fix: leak the abortable system to keep its children systems alive
the abortable system that created the children abortable systems for the connections were dropped and that resulted in a non functioning connection abortable systems
Configuration menu - View commit details
-
Copy full SHA for cce2ec4 - Browse repository at this point
Copy the full SHA cce2ec4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4c76491 - Browse repository at this point
Copy the full SHA 4c76491View commit details -
Configuration menu - View commit details
-
Copy full SHA for ed6801d - Browse repository at this point
Copy the full SHA ed6801dView commit details
Commits on May 31, 2024
-
don't query for the version again
electrum servers don't like it when the same connection query for the vesion again, they expect us to store the version and never ask about it again
Configuration menu - View commit details
-
Copy full SHA for 3d9680a - Browse repository at this point
Copy the full SHA 3d9680aView commit details -
don't create an extra child subsystem, use the parent directly
the middle subsystem wasn't used anywhere, thus was dropped and caused all the connection subsystems to get aborted.
Configuration menu - View commit details
-
Copy full SHA for 229a809 - Browse repository at this point
Copy the full SHA 229a809View commit details -
wait till one of the electrum server connects, applied while initiali…
…zation and not in tests
Configuration menu - View commit details
-
Copy full SHA for 1e0e162 - Browse repository at this point
Copy the full SHA 1e0e162View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8d9ac1c - Browse repository at this point
Copy the full SHA 8d9ac1cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4c8d834 - Browse repository at this point
Copy the full SHA 4c8d834View commit details
Commits on Jun 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 732e00e - Browse repository at this point
Copy the full SHA 732e00eView commit details
Commits on Jun 3, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 3185860 - Browse repository at this point
Copy the full SHA 3185860View commit details -
Configuration menu - View commit details
-
Copy full SHA for ffa086d - Browse repository at this point
Copy the full SHA ffa086dView commit details
Commits on Jun 4, 2024
-
Configuration menu - View commit details
-
Copy full SHA for d908ec6 - Browse repository at this point
Copy the full SHA d908ec6View commit details -
adapt test_unavailable_electrum_proto_version to the new design
the new design doesn't break the coin initilization if the electrum servers fail for whatever reason. Create the coin and make sure that each server fails version check when queried
Configuration menu - View commit details
-
Copy full SHA for eddb9ee - Browse repository at this point
Copy the full SHA eddb9eeView commit details -
Configuration menu - View commit details
-
Copy full SHA for c4592fc - Browse repository at this point
Copy the full SHA c4592fcView commit details
Commits on Jun 14, 2024
-
Configuration menu - View commit details
-
Copy full SHA for f7297b5 - Browse repository at this point
Copy the full SHA f7297b5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 84fc19d - Browse repository at this point
Copy the full SHA 84fc19dView commit details
Commits on Jun 23, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 76b2f68 - Browse repository at this point
Copy the full SHA 76b2f68View commit details
Commits on Jun 28, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ef4f458 - Browse repository at this point
Copy the full SHA ef4f458View commit details -
use hashset instead of vec for the subs list
execution-wise this should make no difference (we won't ever get the address twice and event if we did it should be a benign side-effect), but it makes the code logically easier to understand
Configuration menu - View commit details
-
Copy full SHA for a447eff - Browse repository at this point
Copy the full SHA a447effView commit details -
package
disconnected_at
andnext_suspend_time
in one mutexThese two pieces of info are always used & updated together, put them into a single mutex.
Configuration menu - View commit details
-
Copy full SHA for 0103f0b - Browse repository at this point
Copy the full SHA 0103f0bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6dab399 - Browse repository at this point
Copy the full SHA 6dab399View commit details -
Configuration menu - View commit details
-
Copy full SHA for d81bd8b - Browse repository at this point
Copy the full SHA d81bd8bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8ae8d02 - Browse repository at this point
Copy the full SHA 8ae8d02View commit details -
Configuration menu - View commit details
-
Copy full SHA for 220d70b - Browse repository at this point
Copy the full SHA 220d70bView commit details -
we are trying to be easy on the servers anyways, so avoid unrecoverable labelling when possible
Configuration menu - View commit details
-
Copy full SHA for 54acd8e - Browse repository at this point
Copy the full SHA 54acd8eView commit details
Commits on Jul 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for d9549ab - Browse repository at this point
Copy the full SHA d9549abView commit details -
adex cli: use closer versions in cargo toml
to avoid duplications as much as possible
Configuration menu - View commit details
-
Copy full SHA for 260192e - Browse repository at this point
Copy the full SHA 260192eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5b92281 - Browse repository at this point
Copy the full SHA 5b92281View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0eedd97 - Browse repository at this point
Copy the full SHA 0eedd97View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0395e2c - Browse repository at this point
Copy the full SHA 0395e2cView commit details
Commits on Jul 29, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 8513b37 - Browse repository at this point
Copy the full SHA 8513b37View commit details
Commits on Aug 13, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 62993a0 - Browse repository at this point
Copy the full SHA 62993a0View commit details
Commits on Aug 14, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 33075e9 - Browse repository at this point
Copy the full SHA 33075e9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 064a12d - Browse repository at this point
Copy the full SHA 064a12dView commit details -
Configuration menu - View commit details
-
Copy full SHA for ae04b68 - Browse repository at this point
Copy the full SHA ae04b68View commit details -
Configuration menu - View commit details
-
Copy full SHA for bf01ba0 - Browse repository at this point
Copy the full SHA bf01ba0View commit details
Commits on Aug 15, 2024
-
endlessly try
electrum_request_multi
also parallelize it so the overall timeout is reducued (ELECTRUM_REQUEST_TIMEOUT instead of N * ELECTRUM_REQUEST_TIMEOUT, assuming at least one server is actually working)
Configuration menu - View commit details
-
Copy full SHA for 21b0799 - Browse repository at this point
Copy the full SHA 21b0799View commit details -
Configuration menu - View commit details
-
Copy full SHA for 22fb7ff - Browse repository at this point
Copy the full SHA 22fb7ffView commit details -
Configuration menu - View commit details
-
Copy full SHA for 484143a - Browse repository at this point
Copy the full SHA 484143aView commit details
Commits on Aug 29, 2024
-
trigger disconnecting a connection if it errored
this helps refreshing and trying new connections in selective mode
Configuration menu - View commit details
-
Copy full SHA for 6d71546 - Browse repository at this point
Copy the full SHA 6d71546View commit details
Commits on Sep 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 6c48485 - Browse repository at this point
Copy the full SHA 6c48485View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4b2464c - Browse repository at this point
Copy the full SHA 4b2464cView commit details -
some macros to simplify if-let & let-else patterns
let-else isn't formatabble by cargo fmt and the `Some()` around the variable kind of reduces the importance of it. we also execute some important code inside the if-let block but it doesn't look that important since it is inside an if and we continue normally otherwise. The point is, most of these options should never be None (e.g. `connections().get(address)`), we can either panic there or just ignore the error. Ignoring it is safer but fills the code with a lot of if-let let-else patterns. The added macros makes the refactor somewhat similar to `?` in `ret_option()?`
Configuration menu - View commit details
-
Copy full SHA for 1a0058c - Browse repository at this point
Copy the full SHA 1a0058cView commit details -
only aquire write lock when needed
over the maintained connections set. One could find the change of quesstion would benifit us with a fewer write lock acquisitions when we have a low max_connected value with a lot of very robust servers. The previous code would have acquired the lock periodically for each checked server
Configuration menu - View commit details
-
Copy full SHA for 7a458e3 - Browse repository at this point
Copy the full SHA 7a458e3View commit details -
try connections sequentially on the background task
this takes more time but respects the number of connections open at a single time by mm2. trying all the connections in parallel can cause a lot of open file descriptors on mobile devices
Configuration menu - View commit details
-
Copy full SHA for ced724b - Browse repository at this point
Copy the full SHA ced724bView commit details -
I used trigger disconnect because I thought we don't have access to the event handlers to notify them, so the simplist way then was to just let the connection disconnect on its own when the sender is taken out (in trigger_disconnect). but since we have the event_handlers already in electurm client, we can just disconnect right away and call them
Configuration menu - View commit details
-
Copy full SHA for 21fda09 - Browse repository at this point
Copy the full SHA 21fda09View commit details
Commits on Sep 3, 2024
-
resolve fixme: version negotiation logic is correct
looks like after the refactor i miss understood what `negotiate_version` flag is for. it's for running a version negotiation actually, i.e. not fail if the versions doesn't match (we will accept the server even though it has a bad version).
Configuration menu - View commit details
-
Copy full SHA for 09f34ca - Browse repository at this point
Copy the full SHA 09f34caView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7e5e8dd - Browse repository at this point
Copy the full SHA 7e5e8ddView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4809812 - Browse repository at this point
Copy the full SHA 4809812View commit details -
revert to trying connections in parallel in background task (to some …
…extent) so looks like trying connections sequntially introduced a long wait time till we got a valid working connection. this happens when the list of electrums are bunch of faulty ones and the last of them is working fine. this didn't hurt the correctness in anyway, but made it kind of slow to bootstrap (finding the first working connection), and since tests doesn't try requests forever (forever-waiting until the request is successful is only used on cfg(not(test)) environments), this meant a lot of tests will fail to find a working connection soon enough and will panic on the first request. we might want to find a strong fix for this. In this commit, however, the fix to mitigate this issue is to re-intoduce concurrency to the point that the number of open connections at any time is less than or equal `max_connected` specified in the enable request. For multiple policy (min=1, max=len(servers)), this is just trying all the servers concurrently so that's fast, the multiple policy is the one used by default and in tests
Configuration menu - View commit details
-
Copy full SHA for f836f04 - Browse repository at this point
Copy the full SHA f836f04View commit details -
Configuration menu - View commit details
-
Copy full SHA for 678601f - Browse repository at this point
Copy the full SHA 678601fView commit details -
Configuration menu - View commit details
-
Copy full SHA for a6e8d69 - Browse repository at this point
Copy the full SHA a6e8d69View commit details -
So the issue was, we didn't have the = when comparing the number of maintained connections with min_connected. But since we never maintain more then min_connected, this means the check without the = will always be false thus skiping the sleep code in the background task. The background task was basically looping non-stop and degrading the performance of all other async tasks running on the runtime. Very slow tests led to slow connections and timeouting everytime.
Configuration menu - View commit details
-
Copy full SHA for 6945ad1 - Browse repository at this point
Copy the full SHA 6945ad1View commit details
Commits on Sep 4, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 48f5ddd - Browse repository at this point
Copy the full SHA 48f5dddView commit details -
This refactors expirable map to make it so that deleting expired entries is cheap (not looping over the whole map, but looping only over the known expired entries). This increases the memory requirements though because the key of type `K` is now cloned an extra time to be stored in the inverse map. A solution for the potentially expensive cloning is to wrap the key in an Arc, but, looking at the usage of expirable map, it looks like most (actually all) of the times, the keys are integer IDs, which are cheaply cloned/copied. So leaving this as a direct clone for now until the need arises.
Configuration menu - View commit details
-
Copy full SHA for 62d26c7 - Browse repository at this point
Copy the full SHA 62d26c7View commit details -
let the responses map in eletrum connections be expriable
otherwise responses which timeout are never deleted :O Also we now send electrum_request_multi in parallel, the first response is considered and the others are discarded. This can make up end in a case where one connection had the response notifier registered in the responses map but the request was never sent, thus a response will never be received, thus this entry will never be removed.
Configuration menu - View commit details
-
Copy full SHA for 4a16d78 - Browse repository at this point
Copy the full SHA 4a16d78View commit details -
make wait_till_connected test-only
not needed in non-test environments since these wait forever till the request is resolved
Configuration menu - View commit details
-
Copy full SHA for ea0cbe3 - Browse repository at this point
Copy the full SHA ea0cbe3View commit details -
split the connection manager into multiple impl blocks
for organization
Configuration menu - View commit details
-
Copy full SHA for c37cc9b - Browse repository at this point
Copy the full SHA c37cc9bView commit details -
let connections map inside the manager be dynaimc
so we can add and remove connections in runtime
Configuration menu - View commit details
-
Copy full SHA for 8fd92df - Browse repository at this point
Copy the full SHA 8fd92dfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 122cf7d - Browse repository at this point
Copy the full SHA 122cf7dView commit details -
nothing was changed. seems like the header loop is ran forever but only the notifier is short lived
Configuration menu - View commit details
-
Copy full SHA for bf3608d - Browse repository at this point
Copy the full SHA bf3608dView commit details
Commits on Sep 5, 2024
-
simplfying establish_connection_loop method as much as possible
splitting the big function into smaller ones and sharing the sharable parts between native and wasm
Configuration menu - View commit details
-
Copy full SHA for 3fb958b - Browse repository at this point
Copy the full SHA 3fb958bView commit details
Commits on Sep 12, 2024
-
don't retry forever, and also try all connections when the active one…
…s fail this is kind of doing the connection managers work as a last resort fail safe mechanisim when electrum request fails, that is, we establish all connections sequentially and try them. things we need to consider: - we prolly need to introduce wait_till_connected back (now that we don't wait forever) - we don't disconnect any of the established connections, they will disconnect automatically when not used for a long time, but for this long time, we might break the `max_connected` rule.
Configuration menu - View commit details
-
Copy full SHA for 69db230 - Browse repository at this point
Copy the full SHA 69db230View commit details -
properly respect the max_connected threshold
let the background thread of the connection manager respect the `max_connected` threshold (not entirely really, we can reach up to `max_connected + 1`). This is done by refactoring the connection establishment to not establish all connections but only connections that we know we will maintain for sure. This also is lighter overall than the old approach. but it's also slower since connections are tried sequentially, we don't need the speed here anyways since if an electrum request fails we fail back to try all connections which is a logic that isn't controlled by the connection manager in any way.
Configuration menu - View commit details
-
Copy full SHA for eead6a8 - Browse repository at this point
Copy the full SHA eead6a8View commit details -
Configuration menu - View commit details
-
Copy full SHA for ffd2052 - Browse repository at this point
Copy the full SHA ffd2052View commit details -
suggestion from omar - 2 - (un)maintain methods
removed write_maintained_connections and added maintain & unmaintain methods.
Configuration menu - View commit details
-
Copy full SHA for f9866b1 - Browse repository at this point
Copy the full SHA f9866b1View commit details -
testing if this would fix tests
disconnecting like that broke a lot of requests, we probably shouldn't disconnect from some thread since we don't know if another thread is holding the connection to use it
Configuration menu - View commit details
-
Copy full SHA for d98fd21 - Browse repository at this point
Copy the full SHA d98fd21View commit details
Commits on Sep 24, 2024
-
Revert "testing if this would fix tests"
This reverts commit d98fd21. This should make a lot of tests fail again, proving we shouldn't randomly just disconnect a connection from different threads.
Configuration menu - View commit details
-
Copy full SHA for ff8833a - Browse repository at this point
Copy the full SHA ff8833aView commit details -
bug: don't disconnect the connection we want to connect while version…
… checking when doing version checking, the connection isn't marked as maintained yet, this means flagging the not needed will disconnect it immediately. a fix for this is to keep a state of `Connecting` for example to avoid disconnecting a connection which is in progress, eaiser solution is to not ask for disconnection for connections that we didn't force connect. so only if we caused the connection to connect will we call for it to be not needed anymore
Configuration menu - View commit details
-
Copy full SHA for df2fdcc - Browse repository at this point
Copy the full SHA df2fdccView commit details -
for the fall back case. But delegate whether to disconnect or not to the connection manager. this helps with concurrent requests disconnecting for no reason (so no error) and breaking other requests
Configuration menu - View commit details
-
Copy full SHA for 0971d9c - Browse repository at this point
Copy the full SHA 0971d9cView commit details -
abandon the wait_till_connected test-only method
this was used to make sure the background task have found a working connection by the time we start querying electrum requests. we don't need this now though. because if there are no working/maintained connections we fall back to using any/all other connections (and we establish the connection inline first)
Configuration menu - View commit details
-
Copy full SHA for fe90391 - Browse repository at this point
Copy the full SHA fe90391View commit details -
fix test_electrum_rpc_client_error
the test was failing because the expected request id was 0 and not 1. this is becasue the server version request was constructed AFTER the get verbose transaction request. this might not be always the case, so the background thread might in some (rare) instances be fast enough and establish the connection and query for version before get verbose transaction is called, so the id 0 is reserved then for the server version query. lets just remove the id part in the expected string as we don't really care about it
Configuration menu - View commit details
-
Copy full SHA for 69a6810 - Browse repository at this point
Copy the full SHA 69a6810View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9bda46b - Browse repository at this point
Copy the full SHA 9bda46bView commit details -
yield in both test and non-test environment
to avoid a potential starvation due to a potential busy waiting loop
Configuration menu - View commit details
-
Copy full SHA for 2c61c61 - Browse repository at this point
Copy the full SHA 2c61c61View commit details -
Configuration menu - View commit details
-
Copy full SHA for 25b174a - Browse repository at this point
Copy the full SHA 25b174aView commit details -
Configuration menu - View commit details
-
Copy full SHA for b546bbd - Browse repository at this point
Copy the full SHA b546bbdView commit details -
add a todo regarding abortablequeue abort vs finish
This currently isn't really problamatic, but if re-used later could have a hard to debug nightmares the solution here would be to totally order both operations favoring abortion over finishing. In `AbortableQueue` we would need to realize this by checking the future ID in question and not call `on_future_finished` if it's already aborted
Configuration menu - View commit details
-
Copy full SHA for 49564b3 - Browse repository at this point
Copy the full SHA 49564b3View commit details
Commits on Sep 25, 2024
-
patch on_future_finished to not mark id as finished if it was aborted
this was the side effect we had (described in the previous commit) in abortable queue. on_future_finished was called AFTER the abortable queue has been fully cleared and reset. We need to make sure first that an abort handle the future actually exists in the abort handlers vector and that the future is aborted (i.e. the same future ID wasn't used to run a new future that is still running).
Configuration menu - View commit details
-
Copy full SHA for 4c2a5e0 - Browse repository at this point
Copy the full SHA 4c2a5e0View commit details
Commits on Sep 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 2f9c568 - Browse repository at this point
Copy the full SHA 2f9c568View commit details
Commits on Oct 3, 2024
-
fix test_one_unavailable_electrum_proto_version
version mismatch was labeled as temporary error by mistake. note that when electrum replys successfully for the version query this means there is no version mismatch and we don't need to check for that
Configuration menu - View commit details
-
Copy full SHA for 417d054 - Browse repository at this point
Copy the full SHA 417d054View commit details
Commits on Oct 4, 2024
-
Configuration menu - View commit details
-
Copy full SHA for b791204 - Browse repository at this point
Copy the full SHA b791204View commit details -
Configuration menu - View commit details
-
Copy full SHA for 989ec9e - Browse repository at this point
Copy the full SHA 989ec9eView commit details -
simplyfy timeouting - handle timeout in establish_connection_loop only
don't let child helper funcs know about the timeout
Configuration menu - View commit details
-
Copy full SHA for e0e7708 - Browse repository at this point
Copy the full SHA e0e7708View commit details -
simplify erroring: handle disconnection in establish_connection_loop …
…only let the other helper methods just return the error but not disconnect the connection
Configuration menu - View commit details
-
Copy full SHA for db93005 - Browse repository at this point
Copy the full SHA db93005View commit details -
Configuration menu - View commit details
-
Copy full SHA for d2906ff - Browse repository at this point
Copy the full SHA d2906ffView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1e92dfd - Browse repository at this point
Copy the full SHA 1e92dfdView commit details -
actually validate min & max connected
instead of just constructing a string and dumping it into the sea :)
Configuration menu - View commit details
-
Copy full SHA for fc3f172 - Browse repository at this point
Copy the full SHA fc3f172View commit details -
Configuration menu - View commit details
-
Copy full SHA for dc8a84e - Browse repository at this point
Copy the full SHA dc8a84eView commit details -
Configuration menu - View commit details
-
Copy full SHA for c93bcb9 - Browse repository at this point
Copy the full SHA c93bcb9View commit details -
reduce the btree key of json bach request to its hash
which makes it susbtible to hash conflicts so this might not be a good idea
Configuration menu - View commit details
-
Copy full SHA for be219ee - Browse repository at this point
Copy the full SHA be219eeView commit details -
use a deterministically-selected rpc_id from the batch
and use it as a batch_id
Configuration menu - View commit details
-
Copy full SHA for 556b65f - Browse repository at this point
Copy the full SHA 556b65fView commit details
Commits on Oct 7, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 72b3ab9 - Browse repository at this point
Copy the full SHA 72b3ab9View commit details -
Configuration menu - View commit details
-
Copy full SHA for ee7f6a4 - Browse repository at this point
Copy the full SHA ee7f6a4View commit details -
label version mismatch only when the electrum server replys
to us with a json rpc error. we could have encountered other errors like timeouts and transport errors in the version queries, such errors shouldn't be version mismatch as we never knew the server's reply
Configuration menu - View commit details
-
Copy full SHA for e99fd25 - Browse repository at this point
Copy the full SHA e99fd25View commit details -
Configuration menu - View commit details
-
Copy full SHA for a2e4348 - Browse repository at this point
Copy the full SHA a2e4348View commit details -
Configuration menu - View commit details
-
Copy full SHA for decacb8 - Browse repository at this point
Copy the full SHA decacb8View commit details -
disable the coin if the balance query fails
otherwise the GUI will get an error and think the coin wasn't enabled successfuly but it was. so disabling the coin to keep consistent with the GUIs expectionations. one solution would be to omit the balance field if balance querying fialed, but we would need the GUI to account for that then
Configuration menu - View commit details
-
Copy full SHA for 89bad4f - Browse repository at this point
Copy the full SHA 89bad4fView commit details
Commits on Oct 9, 2024
-
run rpc futures in a tokio thread till completion
when ran directly inside hyper's service function, it might get aborted mid-way when a client disconnects, leaving the future in complete. this is an issue as we might have some code that need to be executed atomically inside any part of the code base that could be triggered by an RPC request. if the client disconnects, such a function will abort on the next await call, leaving us with non-atomic state (e.g. partial update for a map and its inverse).
Configuration menu - View commit details
-
Copy full SHA for 5e38086 - Browse repository at this point
Copy the full SHA 5e38086View commit details -
Configuration menu - View commit details
-
Copy full SHA for 643d1f3 - Browse repository at this point
Copy the full SHA 643d1f3View commit details -
cap the electrum request to 5s
the balance query by default could take up to 40s: 20s to establish a connnection with an electrum server & 20s to perform the electrum request. the old electrum rpc would timeout in 5s if the electrum servers aren't responsive, and it seems like the desktop GUI accounted only for such timeout. let's use 5s timeout internally for the electrum request to make sure we are compatible with GUIs. note that this only caps the timeout for the enable request to 5s, but in normal operations the other configured timeouts are used
Configuration menu - View commit details
-
Copy full SHA for 2060704 - Browse repository at this point
Copy the full SHA 2060704View commit details
Commits on Oct 10, 2024
-
mitigate the noisy logs from the endless retries
don't log (trivial) errors inside establish connection loop, so no connection establishment error no version errors no timeout errors. log these errors instead from the manager, but if the manager is in panic mode we don't want to log no further. also don't pre-log the 'connected securely/not-securely' message, only print it when the connection is final and ready to be used.
Configuration menu - View commit details
-
Copy full SHA for d5b2ef3 - Browse repository at this point
Copy the full SHA d5b2ef3View commit details -
Revert "to revert: try to deser the electrum response as json and log…
… it" This reverts commit decacb8.
Configuration menu - View commit details
-
Copy full SHA for 00b71c3 - Browse repository at this point
Copy the full SHA 00b71c3View commit details
Commits on Oct 16, 2024
-
convert async mutexs to sync ones
this carried over from the usage of these fields in past impl. there is no reason to have these mutexes async. sync mutexs are better for performance. one mutex is left async though (establishing_connection) to not cpu-block other threads when they are waiting on the same connection to be established.
Configuration menu - View commit details
-
Copy full SHA for cae9842 - Browse repository at this point
Copy the full SHA cae9842View commit details -
Configuration menu - View commit details
-
Copy full SHA for 596cba0 - Browse repository at this point
Copy the full SHA 596cba0View commit details
Commits on Oct 18, 2024
-
review(sami): let max & min connected be usize
and avoid lots of conversions
Configuration menu - View commit details
-
Copy full SHA for 2457b96 - Browse repository at this point
Copy the full SHA 2457b96View commit details
Commits on Oct 20, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 24a64e3 - Browse repository at this point
Copy the full SHA 24a64e3View commit details