diff --git a/Cargo.lock b/Cargo.lock index 1deb983e7..622bafd18 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2363,7 +2363,7 @@ dependencies = [ [[package]] name = "kaspa-addresses" -version = "0.14.5" +version = "0.14.7" dependencies = [ "borsh", "criterion", @@ -2380,7 +2380,7 @@ dependencies = [ [[package]] name = "kaspa-addressmanager" -version = "0.14.5" +version = "0.14.7" dependencies = [ "borsh", "igd-next", @@ -2403,14 +2403,14 @@ dependencies = [ [[package]] name = "kaspa-alloc" -version = "0.14.5" +version = "0.14.7" dependencies = [ "mimalloc", ] [[package]] name = "kaspa-bip32" -version = "0.14.5" +version = "0.14.7" dependencies = [ "borsh", "bs58", @@ -2437,7 +2437,7 @@ dependencies = [ [[package]] name = "kaspa-cli" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-trait", "borsh", @@ -2484,7 +2484,7 @@ dependencies = [ [[package]] name = "kaspa-connectionmanager" -version = "0.14.5" +version = "0.14.7" dependencies = [ "duration-string", "futures-util", @@ -2501,7 +2501,7 @@ dependencies = [ [[package]] name = "kaspa-consensus" -version = "0.14.5" +version = "0.14.7" dependencies = [ "arc-swap", "async-channel 2.3.1", @@ -2544,7 +2544,7 @@ dependencies = [ [[package]] name = "kaspa-consensus-client" -version = "0.14.5" +version = "0.14.7" dependencies = [ "ahash", "cfg-if 1.0.0", @@ -2572,7 +2572,7 @@ dependencies = [ [[package]] name = "kaspa-consensus-core" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-trait", "bincode", @@ -2610,7 +2610,7 @@ dependencies = [ [[package]] name = "kaspa-consensus-notify" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-channel 2.3.1", "cfg-if 1.0.0", @@ -2629,7 +2629,7 @@ dependencies = [ [[package]] name = "kaspa-consensus-wasm" -version = "0.14.5" +version = "0.14.7" dependencies = [ "cfg-if 1.0.0", "faster-hex", @@ -2653,7 +2653,7 @@ dependencies = [ [[package]] name = "kaspa-consensusmanager" -version = "0.14.5" +version = "0.14.7" dependencies = [ "duration-string", "futures", @@ -2671,7 +2671,7 @@ dependencies = [ [[package]] name = "kaspa-core" -version = "0.14.5" +version = "0.14.7" dependencies = [ "cfg-if 1.0.0", "ctrlc", @@ -2689,7 +2689,7 @@ dependencies = [ [[package]] name = "kaspa-daemon" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-trait", "borsh", @@ -2711,7 +2711,7 @@ dependencies = [ [[package]] name = "kaspa-database" -version = "0.14.5" +version = "0.14.7" dependencies = [ "bincode", "enum-primitive-derive", @@ -2733,7 +2733,7 @@ dependencies = [ [[package]] name = "kaspa-grpc-client" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-channel 2.3.1", "async-stream", @@ -2765,7 +2765,7 @@ dependencies = [ [[package]] name = "kaspa-grpc-core" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-channel 2.3.1", "async-stream", @@ -2794,7 +2794,7 @@ dependencies = [ [[package]] name = "kaspa-grpc-server" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-channel 2.3.1", "async-stream", @@ -2830,7 +2830,7 @@ dependencies = [ [[package]] name = "kaspa-hashes" -version = "0.14.5" +version = "0.14.7" dependencies = [ "blake2b_simd", "borsh", @@ -2851,7 +2851,7 @@ dependencies = [ [[package]] name = "kaspa-index-core" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-channel 2.3.1", "async-trait", @@ -2870,7 +2870,7 @@ dependencies = [ [[package]] name = "kaspa-index-processor" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-channel 2.3.1", "async-trait", @@ -2898,7 +2898,7 @@ dependencies = [ [[package]] name = "kaspa-math" -version = "0.14.5" +version = "0.14.7" dependencies = [ "borsh", "criterion", @@ -2919,14 +2919,14 @@ dependencies = [ [[package]] name = "kaspa-merkle" -version = "0.14.5" +version = "0.14.7" dependencies = [ "kaspa-hashes", ] [[package]] name = "kaspa-metrics-core" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-trait", "borsh", @@ -2942,7 +2942,7 @@ dependencies = [ [[package]] name = "kaspa-mining" -version = "0.14.5" +version = "0.14.7" dependencies = [ "criterion", "futures-util", @@ -2969,7 +2969,7 @@ dependencies = [ [[package]] name = "kaspa-mining-errors" -version = "0.14.5" +version = "0.14.7" dependencies = [ "kaspa-consensus-core", "thiserror", @@ -2977,7 +2977,7 @@ dependencies = [ [[package]] name = "kaspa-muhash" -version = "0.14.5" +version = "0.14.7" dependencies = [ "criterion", "kaspa-hashes", @@ -2990,7 +2990,7 @@ dependencies = [ [[package]] name = "kaspa-notify" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-channel 2.3.1", "async-trait", @@ -3026,7 +3026,7 @@ dependencies = [ [[package]] name = "kaspa-p2p-flows" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-trait", "chrono", @@ -3057,7 +3057,7 @@ dependencies = [ [[package]] name = "kaspa-p2p-lib" -version = "0.14.5" +version = "0.14.7" dependencies = [ "borsh", "ctrlc", @@ -3088,7 +3088,7 @@ dependencies = [ [[package]] name = "kaspa-perf-monitor" -version = "0.14.5" +version = "0.14.7" dependencies = [ "kaspa-core", "log", @@ -3100,7 +3100,7 @@ dependencies = [ [[package]] name = "kaspa-pow" -version = "0.14.5" +version = "0.14.7" dependencies = [ "criterion", "js-sys", @@ -3116,7 +3116,7 @@ dependencies = [ [[package]] name = "kaspa-rpc-core" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-channel 2.3.1", "async-trait", @@ -3158,7 +3158,7 @@ dependencies = [ [[package]] name = "kaspa-rpc-macros" -version = "0.14.5" +version = "0.14.7" dependencies = [ "convert_case 0.6.0", "proc-macro-error", @@ -3170,7 +3170,7 @@ dependencies = [ [[package]] name = "kaspa-rpc-service" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-trait", "kaspa-addresses", @@ -3199,7 +3199,7 @@ dependencies = [ [[package]] name = "kaspa-testing-integration" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-channel 2.3.1", "async-trait", @@ -3259,7 +3259,7 @@ dependencies = [ [[package]] name = "kaspa-txscript" -version = "0.14.5" +version = "0.14.7" dependencies = [ "blake2b_simd", "borsh", @@ -3291,7 +3291,7 @@ dependencies = [ [[package]] name = "kaspa-txscript-errors" -version = "0.14.5" +version = "0.14.7" dependencies = [ "secp256k1", "thiserror", @@ -3299,7 +3299,7 @@ dependencies = [ [[package]] name = "kaspa-utils" -version = "0.14.5" +version = "0.14.7" dependencies = [ "arc-swap", "async-channel 2.3.1", @@ -3335,7 +3335,7 @@ dependencies = [ [[package]] name = "kaspa-utils-tower" -version = "0.14.5" +version = "0.14.7" dependencies = [ "cfg-if 1.0.0", "futures", @@ -3349,7 +3349,7 @@ dependencies = [ [[package]] name = "kaspa-utxoindex" -version = "0.14.5" +version = "0.14.7" dependencies = [ "futures", "kaspa-consensus", @@ -3370,7 +3370,7 @@ dependencies = [ [[package]] name = "kaspa-wallet" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-std", "async-trait", @@ -3382,7 +3382,7 @@ dependencies = [ [[package]] name = "kaspa-wallet-cli-wasm" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-trait", "js-sys", @@ -3396,7 +3396,7 @@ dependencies = [ [[package]] name = "kaspa-wallet-core" -version = "0.14.5" +version = "0.14.7" dependencies = [ "aes", "ahash", @@ -3477,7 +3477,7 @@ dependencies = [ [[package]] name = "kaspa-wallet-keys" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-trait", "borsh", @@ -3510,7 +3510,7 @@ dependencies = [ [[package]] name = "kaspa-wallet-macros" -version = "0.14.5" +version = "0.14.7" dependencies = [ "convert_case 0.5.0", "proc-macro-error", @@ -3523,7 +3523,7 @@ dependencies = [ [[package]] name = "kaspa-wallet-pskt" -version = "0.14.5" +version = "0.14.7" dependencies = [ "bincode", "derive_builder", @@ -3550,7 +3550,7 @@ dependencies = [ [[package]] name = "kaspa-wasm" -version = "0.14.5" +version = "0.14.7" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -3578,7 +3578,7 @@ dependencies = [ [[package]] name = "kaspa-wasm-core" -version = "0.14.5" +version = "0.14.7" dependencies = [ "faster-hex", "hexplay", @@ -3589,7 +3589,7 @@ dependencies = [ [[package]] name = "kaspa-wrpc-client" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-std", "async-trait", @@ -3625,7 +3625,7 @@ dependencies = [ [[package]] name = "kaspa-wrpc-example-subscriber" -version = "0.14.5" +version = "0.14.7" dependencies = [ "ctrlc", "futures", @@ -3640,7 +3640,7 @@ dependencies = [ [[package]] name = "kaspa-wrpc-proxy" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-trait", "clap 4.5.16", @@ -3659,7 +3659,7 @@ dependencies = [ [[package]] name = "kaspa-wrpc-server" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-trait", "borsh", @@ -3687,7 +3687,7 @@ dependencies = [ [[package]] name = "kaspa-wrpc-wasm" -version = "0.14.5" +version = "0.14.7" dependencies = [ "ahash", "async-std", @@ -3717,7 +3717,7 @@ dependencies = [ [[package]] name = "kaspad" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-channel 2.3.1", "cfg-if 1.0.0", @@ -5141,7 +5141,7 @@ dependencies = [ [[package]] name = "rothschild" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-channel 2.3.1", "clap 4.5.16", @@ -5593,7 +5593,7 @@ dependencies = [ [[package]] name = "simpa" -version = "0.14.5" +version = "0.14.7" dependencies = [ "async-channel 2.3.1", "cfg-if 1.0.0", diff --git a/Cargo.toml b/Cargo.toml index 13ce765e2..f3096a714 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,7 +62,7 @@ members = [ [workspace.package] rust-version = "1.81.0" -version = "0.14.5" +version = "0.14.7" authors = ["Kaspa developers"] license = "ISC" repository = "https://github.com/kaspanet/rusty-kaspa" @@ -79,61 +79,61 @@ include = [ ] [workspace.dependencies] -# kaspa-testing-integration = { version = "0.14.5", path = "testing/integration" } -kaspa-addresses = { version = "0.14.5", path = "crypto/addresses" } -kaspa-addressmanager = { version = "0.14.5", path = "components/addressmanager" } -kaspa-bip32 = { version = "0.14.5", path = "wallet/bip32" } -kaspa-cli = { version = "0.14.5", path = "cli" } -kaspa-connectionmanager = { version = "0.14.5", path = "components/connectionmanager" } -kaspa-consensus = { version = "0.14.5", path = "consensus" } -kaspa-consensus-core = { version = "0.14.5", path = "consensus/core" } -kaspa-consensus-client = { version = "0.14.5", path = "consensus/client" } -kaspa-consensus-notify = { version = "0.14.5", path = "consensus/notify" } -kaspa-consensus-wasm = { version = "0.14.5", path = "consensus/wasm" } -kaspa-consensusmanager = { version = "0.14.5", path = "components/consensusmanager" } -kaspa-core = { version = "0.14.5", path = "core" } -kaspa-daemon = { version = "0.14.5", path = "daemon" } -kaspa-database = { version = "0.14.5", path = "database" } -kaspa-grpc-client = { version = "0.14.5", path = "rpc/grpc/client" } -kaspa-grpc-core = { version = "0.14.5", path = "rpc/grpc/core" } -kaspa-grpc-server = { version = "0.14.5", path = "rpc/grpc/server" } -kaspa-hashes = { version = "0.14.5", path = "crypto/hashes" } -kaspa-index-core = { version = "0.14.5", path = "indexes/core" } -kaspa-index-processor = { version = "0.14.5", path = "indexes/processor" } -kaspa-math = { version = "0.14.5", path = "math" } -kaspa-merkle = { version = "0.14.5", path = "crypto/merkle" } -kaspa-metrics-core = { version = "0.14.5", path = "metrics/core" } -kaspa-mining = { version = "0.14.5", path = "mining" } -kaspa-mining-errors = { version = "0.14.5", path = "mining/errors" } -kaspa-muhash = { version = "0.14.5", path = "crypto/muhash" } -kaspa-notify = { version = "0.14.5", path = "notify" } -kaspa-p2p-flows = { version = "0.14.5", path = "protocol/flows" } -kaspa-p2p-lib = { version = "0.14.5", path = "protocol/p2p" } -kaspa-perf-monitor = { version = "0.14.5", path = "metrics/perf_monitor" } -kaspa-pow = { version = "0.14.5", path = "consensus/pow" } -kaspa-rpc-core = { version = "0.14.5", path = "rpc/core" } -kaspa-rpc-macros = { version = "0.14.5", path = "rpc/macros" } -kaspa-rpc-service = { version = "0.14.5", path = "rpc/service" } -kaspa-txscript = { version = "0.14.5", path = "crypto/txscript" } -kaspa-txscript-errors = { version = "0.14.5", path = "crypto/txscript/errors" } -kaspa-utils = { version = "0.14.5", path = "utils" } -kaspa-utils-tower = { version = "0.14.5", path = "utils/tower" } -kaspa-utxoindex = { version = "0.14.5", path = "indexes/utxoindex" } -kaspa-wallet = { version = "0.14.5", path = "wallet/native" } -kaspa-wallet-cli-wasm = { version = "0.14.5", path = "wallet/wasm" } -kaspa-wallet-keys = { version = "0.14.5", path = "wallet/keys" } -kaspa-wallet-pskt = { version = "0.14.5", path = "wallet/pskt" } -kaspa-wallet-core = { version = "0.14.5", path = "wallet/core" } -kaspa-wallet-macros = { version = "0.14.5", path = "wallet/macros" } -kaspa-wasm = { version = "0.14.5", path = "wasm" } -kaspa-wasm-core = { version = "0.14.5", path = "wasm/core" } -kaspa-wrpc-client = { version = "0.14.5", path = "rpc/wrpc/client" } -kaspa-wrpc-proxy = { version = "0.14.5", path = "rpc/wrpc/proxy" } -kaspa-wrpc-server = { version = "0.14.5", path = "rpc/wrpc/server" } -kaspa-wrpc-wasm = { version = "0.14.5", path = "rpc/wrpc/wasm" } -kaspa-wrpc-example-subscriber = { version = "0.14.5", path = "rpc/wrpc/examples/subscriber" } -kaspad = { version = "0.14.5", path = "kaspad" } -kaspa-alloc = { version = "0.14.5", path = "utils/alloc" } +# kaspa-testing-integration = { version = "0.14.7", path = "testing/integration" } +kaspa-addresses = { version = "0.14.7", path = "crypto/addresses" } +kaspa-addressmanager = { version = "0.14.7", path = "components/addressmanager" } +kaspa-bip32 = { version = "0.14.7", path = "wallet/bip32" } +kaspa-cli = { version = "0.14.7", path = "cli" } +kaspa-connectionmanager = { version = "0.14.7", path = "components/connectionmanager" } +kaspa-consensus = { version = "0.14.7", path = "consensus" } +kaspa-consensus-core = { version = "0.14.7", path = "consensus/core" } +kaspa-consensus-client = { version = "0.14.7", path = "consensus/client" } +kaspa-consensus-notify = { version = "0.14.7", path = "consensus/notify" } +kaspa-consensus-wasm = { version = "0.14.7", path = "consensus/wasm" } +kaspa-consensusmanager = { version = "0.14.7", path = "components/consensusmanager" } +kaspa-core = { version = "0.14.7", path = "core" } +kaspa-daemon = { version = "0.14.7", path = "daemon" } +kaspa-database = { version = "0.14.7", path = "database" } +kaspa-grpc-client = { version = "0.14.7", path = "rpc/grpc/client" } +kaspa-grpc-core = { version = "0.14.7", path = "rpc/grpc/core" } +kaspa-grpc-server = { version = "0.14.7", path = "rpc/grpc/server" } +kaspa-hashes = { version = "0.14.7", path = "crypto/hashes" } +kaspa-index-core = { version = "0.14.7", path = "indexes/core" } +kaspa-index-processor = { version = "0.14.7", path = "indexes/processor" } +kaspa-math = { version = "0.14.7", path = "math" } +kaspa-merkle = { version = "0.14.7", path = "crypto/merkle" } +kaspa-metrics-core = { version = "0.14.7", path = "metrics/core" } +kaspa-mining = { version = "0.14.7", path = "mining" } +kaspa-mining-errors = { version = "0.14.7", path = "mining/errors" } +kaspa-muhash = { version = "0.14.7", path = "crypto/muhash" } +kaspa-notify = { version = "0.14.7", path = "notify" } +kaspa-p2p-flows = { version = "0.14.7", path = "protocol/flows" } +kaspa-p2p-lib = { version = "0.14.7", path = "protocol/p2p" } +kaspa-perf-monitor = { version = "0.14.7", path = "metrics/perf_monitor" } +kaspa-pow = { version = "0.14.7", path = "consensus/pow" } +kaspa-rpc-core = { version = "0.14.7", path = "rpc/core" } +kaspa-rpc-macros = { version = "0.14.7", path = "rpc/macros" } +kaspa-rpc-service = { version = "0.14.7", path = "rpc/service" } +kaspa-txscript = { version = "0.14.7", path = "crypto/txscript" } +kaspa-txscript-errors = { version = "0.14.7", path = "crypto/txscript/errors" } +kaspa-utils = { version = "0.14.7", path = "utils" } +kaspa-utils-tower = { version = "0.14.7", path = "utils/tower" } +kaspa-utxoindex = { version = "0.14.7", path = "indexes/utxoindex" } +kaspa-wallet = { version = "0.14.7", path = "wallet/native" } +kaspa-wallet-cli-wasm = { version = "0.14.7", path = "wallet/wasm" } +kaspa-wallet-keys = { version = "0.14.7", path = "wallet/keys" } +kaspa-wallet-pskt = { version = "0.14.7", path = "wallet/pskt" } +kaspa-wallet-core = { version = "0.14.7", path = "wallet/core" } +kaspa-wallet-macros = { version = "0.14.7", path = "wallet/macros" } +kaspa-wasm = { version = "0.14.7", path = "wasm" } +kaspa-wasm-core = { version = "0.14.7", path = "wasm/core" } +kaspa-wrpc-client = { version = "0.14.7", path = "rpc/wrpc/client" } +kaspa-wrpc-proxy = { version = "0.14.7", path = "rpc/wrpc/proxy" } +kaspa-wrpc-server = { version = "0.14.7", path = "rpc/wrpc/server" } +kaspa-wrpc-wasm = { version = "0.14.7", path = "rpc/wrpc/wasm" } +kaspa-wrpc-example-subscriber = { version = "0.14.7", path = "rpc/wrpc/examples/subscriber" } +kaspad = { version = "0.14.7", path = "kaspad" } +kaspa-alloc = { version = "0.14.7", path = "utils/alloc" } # external aes = "0.8.3" diff --git a/cli/src/modules/connect.rs b/cli/src/modules/connect.rs index 92a3c676b..024f7e693 100644 --- a/cli/src/modules/connect.rs +++ b/cli/src/modules/connect.rs @@ -26,13 +26,23 @@ impl Connect { }; if is_public { - tpara!( - ctx, - "Please note that public node infrastructure is community-operated and \ - accessing it may expose your IP address to different node providers. \ - Consider running your own node for better privacy. \ - ", - ); + static WARNING: AtomicBool = AtomicBool::new(false); + if !WARNING.load(Ordering::Relaxed) { + WARNING.store(true, Ordering::Relaxed); + + tprintln!(ctx); + + tpara!( + ctx, + "Please note that public node infrastructure is operated by contributors and \ + accessing it may expose your IP address to different node providers. \ + Consider running your own node for better privacy. \ + ", + ); + tprintln!(ctx); + tpara!(ctx, "Please do not connect to public nodes directly as they are load-balanced."); + tprintln!(ctx); + } } let options = ConnectOptions { diff --git a/rpc/wrpc/client/src/client.rs b/rpc/wrpc/client/src/client.rs index 2bd66b7cc..71147fd67 100644 --- a/rpc/wrpc/client/src/client.rs +++ b/rpc/wrpc/client/src/client.rs @@ -422,12 +422,16 @@ impl KaspaRpcClient { /// This method starts background RPC services if they are not running and /// attempts to connect to the RPC endpoint. pub async fn connect(&self, options: Option) -> ConnectResult { + // this has no effect if not currently connected + self.disconnect().await?; + let _guard = self.inner.connect_guard.lock().await; let options = options.unwrap_or_default(); let strategy = options.strategy; self.inner.set_default_url(options.url.as_deref()); + self.inner.rpc_ctl.set_descriptor(options.url.clone()); // 1Gb message and frame size limits (on native and NodeJs platforms) let ws_config = WebSocketConfig {