mirror of
https://github.com/basicswap/basicswap.git
synced 2025-11-05 10:28:10 +01:00
zmq: Use persistent client keypair.
This commit is contained in:
@@ -10556,7 +10556,7 @@ class BasicSwap(BaseApp, BSXNetwork, UIApp):
|
||||
)
|
||||
|
||||
def update(self) -> None:
|
||||
if self._zmq_queue_enabled:
|
||||
if self._zmq_queue_enabled and self.zmqSubscriber:
|
||||
try:
|
||||
if self._read_zmq_queue:
|
||||
topic, message, seq = self.zmqSubscriber.recv_multipart(
|
||||
|
||||
@@ -3220,8 +3220,9 @@ def main():
|
||||
for c in with_coins:
|
||||
withchainclients[c] = chainclients[c]
|
||||
|
||||
zmq_public_key, zmq_secret_key = zmq.curve_keypair()
|
||||
extra_opts["zmqsecret"] = base64.b64encode(zmq_secret_key).decode("utf-8")
|
||||
zmq_server_pubkey, zmq_server_key = zmq.curve_keypair()
|
||||
zmq_client_pubkey, zmq_client_key = zmq.curve_keypair()
|
||||
extra_opts["zmqsecret"] = base64.b64encode(zmq_server_key).decode("utf-8")
|
||||
|
||||
settings = {
|
||||
"debug": True,
|
||||
@@ -3238,7 +3239,9 @@ def main():
|
||||
"check_watched_seconds": 60,
|
||||
"check_expired_seconds": 60,
|
||||
"wallet_update_timeout": 10, # Seconds to wait for wallet page update
|
||||
"zmq_server_key": base64.b64encode(zmq_public_key).decode("utf-8"),
|
||||
"zmq_client_key": base64.b64encode(zmq_client_key).decode("utf-8"),
|
||||
"zmq_client_pubkey": base64.b64encode(zmq_client_pubkey).decode("utf-8"),
|
||||
"zmq_server_pubkey": base64.b64encode(zmq_server_pubkey).decode("utf-8"),
|
||||
}
|
||||
|
||||
wshost: str = extra_opts.get("wshost", htmlhost)
|
||||
|
||||
@@ -90,7 +90,7 @@ class BSXNetwork:
|
||||
self._poll_smsg = self.settings.get("poll_smsg", False)
|
||||
self.zmqContext = None
|
||||
self.zmqSubscriber = None
|
||||
self.zmq_server_key = self.settings.get("zmq_server_key", None)
|
||||
self.zmq_server_key = self.settings.get("zmq_server_pubkey", None)
|
||||
|
||||
self.SMSG_SECONDS_IN_HOUR = (
|
||||
60 * 60
|
||||
@@ -149,9 +149,15 @@ class BSXNetwork:
|
||||
self.zmqSubscriber = self.zmqContext.socket(zmq.SUB)
|
||||
if self.zmq_server_key is not None:
|
||||
zmq_server_key = base64.b64decode(self.zmq_server_key)
|
||||
public_key, secret_key = zmq.curve_keypair()
|
||||
self.zmqSubscriber.setsockopt(zmq.CURVE_PUBLICKEY, public_key)
|
||||
self.zmqSubscriber.setsockopt(zmq.CURVE_SECRETKEY, secret_key)
|
||||
zmq_client_key = base64.b64decode(self.settings["zmq_client_key"])
|
||||
zmq_client_pubkey = base64.b64decode(
|
||||
self.settings["zmq_client_pubkey"]
|
||||
)
|
||||
|
||||
self.zmqSubscriber.setsockopt(
|
||||
zmq.CURVE_PUBLICKEY, zmq_client_pubkey
|
||||
)
|
||||
self.zmqSubscriber.setsockopt(zmq.CURVE_SECRETKEY, zmq_client_key)
|
||||
self.zmqSubscriber.setsockopt(zmq.CURVE_SERVERKEY, zmq_server_key)
|
||||
self.zmqSubscriber.setsockopt_string(zmq.SUBSCRIBE, "smsg")
|
||||
self.zmqSubscriber.setsockopt_string(zmq.SUBSCRIBE, "hashwtx")
|
||||
|
||||
Reference in New Issue
Block a user