aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/src/meshbay_node/transport/client.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/transport/client.py')
-rw-r--r--packages/meshbay-node/src/meshbay_node/transport/client.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/transport/client.py b/packages/meshbay-node/src/meshbay_node/transport/client.py
index 3430365..63d50af 100644
--- a/packages/meshbay-node/src/meshbay_node/transport/client.py
+++ b/packages/meshbay-node/src/meshbay_node/transport/client.py
@@ -58,11 +58,13 @@ class ChunkClient:
jwt_token: str,
gek: bytes,
pk_node_b64: str, # node's Ed25519 PK from hub — used for sig verification
+ group_id: str = "",
):
self._host = host
self._port = port
self._jwt_token = jwt_token
self._gek = gek
+ self._group_id = group_id
self._pk_node = Ed25519PublicKey.from_public_bytes(
base64.b64decode(pk_node_b64))
self._reader: asyncio.StreamReader | None = None
@@ -80,12 +82,14 @@ class ChunkClient:
self._reader, self._writer = await asyncio.open_connection(
self._host, self._port, ssl=ssl_ctx)
- # MNP handshake
- await _send(self._writer, {
+ handshake_msg = {
"type": MNP.HANDSHAKE,
"v": MNP_VERSION,
"token": self._jwt_token,
- })
+ }
+ if self._group_id:
+ handshake_msg["group_id"] = self._group_id
+ await _send(self._writer, handshake_msg)
ack = await _recv(self._reader)
if ack.get("type") != MNP.HANDSHAKE_ACK:
raise ConnectionError(f"Handshake rejected: {ack}")