Skip to content

Commit 5ce724b

Browse files
committed
signer: Update canned messages for registration
1 parent 7e3ba9c commit 5ce724b

File tree

6 files changed

+89
-67
lines changed

6 files changed

+89
-67
lines changed

Taskfile.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ tasks:
3434
- task: testing:check
3535
- task: clnvm:check
3636

37-
docker-ci-check:
37+
docker-ci-build:
3838
cmds:
3939
- >
4040
docker buildx build \
@@ -47,9 +47,19 @@ tasks:
4747
-t gltesting \
4848
-f docker/gl-testing/Dockerfile \
4949
.
50-
- docker run -ti -v $(pwd):/repo gltesting task ci-check
50+
51+
docker-ci-check:
52+
deps:
53+
# - docker-ci-build
54+
cmds:
55+
- docker run --rm -ti -v $(pwd):/repo gltesting task ci-check
5156

5257
ci-build:
5358
cmds:
5459
- task: signerproxy:build
5560
- task: plugin:build
61+
clean:
62+
dir: "."
63+
cmds:
64+
- cargo clean
65+
- rm -rf .venv

libs/gl-client-py/.tasks.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
version: '3'
22

33
tasks:
4+
force-install:
5+
dir: "."
6+
cmds:
7+
# Forces a reinstall of the latest version
8+
- uv run maturin develop
9+
410
check:
511
env:
612
PYTEST_OPTS: "-vvv"
13+
deps:
14+
- force-install
715
cmds:
816
- uv run pytest tests $PYTEST_OPTS
917

libs/gl-client-py/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "gl-client"
3-
version = "0.3.2"
3+
version = "0.3.2rc1"
44
description = "Add your description here"
55
readme = "README.md"
66
requires-python = ">=3.8"

libs/gl-client/src/signer/mod.rs

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -270,26 +270,8 @@ impl Signer {
270270
dev_bip32_seed: None,
271271
dev_channel_secrets: None,
272272
dev_channel_secrets_shaseed: None,
273-
hsm_wire_min_version: 5,
274-
hsm_wire_max_version: 5,
275-
})
276-
}
277-
278-
fn bolt12initreq() -> vls_protocol::msgs::Message {
279-
vls_protocol::msgs::Message::DeriveSecret(vls_protocol::msgs::DeriveSecret {
280-
info: Octets("bolt12-invoice-base".as_bytes().to_vec()),
281-
})
282-
}
283-
284-
fn scbinitreq() -> vls_protocol::msgs::Message {
285-
vls_protocol::msgs::Message::DeriveSecret(vls_protocol::msgs::DeriveSecret {
286-
info: Octets("scb secret".as_bytes().to_vec()),
287-
})
288-
}
289-
290-
fn commandoinitreq() -> vls_protocol::msgs::Message {
291-
vls_protocol::msgs::Message::DeriveSecret(vls_protocol::msgs::DeriveSecret {
292-
info: Octets("commando".as_bytes().to_vec()),
273+
hsm_wire_min_version: 4,
274+
hsm_wire_max_version: 6,
293275
})
294276
}
295277

@@ -642,11 +624,24 @@ impl Signer {
642624
let requests = vec![
643625
// v22.11 introduced an addiotiona startup message, the
644626
// bolt12 key generation
645-
Signer::bolt12initreq(),
627+
vls_protocol::msgs::Message::DeriveSecret(vls_protocol::msgs::DeriveSecret {
628+
info: Octets("bolt12-invoice-base".as_bytes().to_vec()),
629+
}),
646630
// SCB needs a secret derived too
647-
Signer::scbinitreq(),
631+
vls_protocol::msgs::Message::DeriveSecret(vls_protocol::msgs::DeriveSecret {
632+
info: Octets("scb secret".as_bytes().to_vec()),
633+
}),
648634
// Commando needs a secret for its runes
649-
Signer::commandoinitreq(),
635+
vls_protocol::msgs::Message::DeriveSecret(vls_protocol::msgs::DeriveSecret {
636+
info: Octets("commando".as_bytes().to_vec()),
637+
}),
638+
// The node alias key
639+
vls_protocol::msgs::Message::DeriveSecret(vls_protocol::msgs::DeriveSecret {
640+
info: Octets("node-alias-base".as_bytes().to_vec()),
641+
}),
642+
vls_protocol::msgs::Message::DeriveSecret(vls_protocol::msgs::DeriveSecret {
643+
info: Octets("offer-blinded-path".as_bytes().to_vec()),
644+
}),
650645
];
651646

652647
let serialized: Vec<Vec<u8>> = requests.iter().map(|m| m.inner().as_vec()).collect();

libs/gl-testing/gltesting/node.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,11 @@ def __init__(
9292
'--disable-plugin=cln-grpc',
9393
f'--subdaemon=hsmd:{signerproxy_path}',
9494
f'--important-plugin={plugin_path}',
95-
'--dev-bitcoind-poll=5',
96-
'--dev-fast-gossip',
95+
#'--dev-bitcoind-poll=5',
96+
#'--dev-fast-gossip',
9797
'--offline',
98-
'--experimental-anchors',
99-
'--developer', # TODO Make this multi-version capable
98+
#'--experimental-anchors',
99+
#'--developer', # TODO Make this multi-version capable
100100
]
101101

102102
def write_node_config(self, network: str):

libs/gl-testing/gltesting/scheduler.py

Lines changed: 46 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ def get_node(self, node_id):
136136
for n in self.nodes:
137137
if n.node_id == node_id:
138138
return n
139+
from rich.pretty import pprint
140+
pprint(self.nodes)
139141
raise ValueError(
140142
f"No node with node_id={node_id} found in gltesting scheduler, do you need to register it first?"
141143
)
@@ -264,7 +266,7 @@ async def Recover(self, req):
264266

265267
async def Schedule(self, req):
266268
n = self.get_node(req.node_id)
267-
269+
print("XXX", n)
268270
# If already running we just return the existing binding
269271
if n.process:
270272
return schedpb.NodeInfoResponse(
@@ -274,7 +276,7 @@ async def Schedule(self, req):
274276

275277
node_version = n.signer_version.get_node_version()
276278
node_version = self.versions.get(node_version, None)
277-
279+
print("XXX", node_version)
278280
logging.debug(
279281
f"Determined that we need to start node_version={node_version} for n.signer_version={n.signer_version}"
280282
)
@@ -284,41 +286,48 @@ async def Schedule(self, req):
284286
f"No node_version found for n.signer_version={n.signer_version}"
285287
)
286288

287-
# Otherwise we need to start a new process
288-
n.process = NodeProcess(
289-
node_id=req.node_id,
290-
init_msg=n.initmsg,
291-
directory=n.directory,
292-
network=n.network,
293-
identity=n.identity,
294-
version=node_version,
295-
bitcoind=self.bitcoind,
296-
startupmsgs=n.startupmsgs,
297-
)
298-
n.process.write_node_config(n.network)
299-
n.process.start()
300-
301-
with n.condition:
302-
n.condition.notify_all()
303-
304-
# Wait for the grpc port to be accessible
305-
start_time = time.perf_counter()
306-
timeout = 10
307-
while True:
308-
try:
309-
with socket.create_connection(
310-
("localhost", n.process.grpc_port), timeout=0.1
311-
):
312-
break
313-
except Exception:
314-
time.sleep(0.01)
315-
if time.perf_counter() - start_time >= timeout:
316-
raise TimeoutError(
317-
f"Waited too for port localhost:{n.process.grpc_port} to become reachable"
318-
)
319-
# TODO Actually wait for the port to be accessible
320-
time.sleep(1)
321-
289+
print("XXX","Starting")
290+
try:
291+
# Otherwise we need to start a new process
292+
n.process = NodeProcess(
293+
node_id=req.node_id,
294+
init_msg=n.initmsg,
295+
directory=n.directory,
296+
network=n.network,
297+
identity=n.identity,
298+
version=node_version,
299+
bitcoind=self.bitcoind,
300+
startupmsgs=n.startupmsgs,
301+
)
302+
n.process.write_node_config(n.network)
303+
n.process.start()
304+
305+
# Wait for the grpc port to be accessible
306+
start_time = time.perf_counter()
307+
timeout = 10
308+
print("Waiting for node to become reachable")
309+
while True:
310+
try:
311+
print("Pinging")
312+
with socket.create_connection(
313+
("localhost", n.process.grpc_port), timeout=0.1
314+
):
315+
print("Successfully connected to grpc port")
316+
break
317+
except Exception:
318+
print("Failed to contact grpc port, sleeping")
319+
time.sleep(0.1)
320+
if time.perf_counter() - start_time >= timeout:
321+
raise TimeoutError(
322+
f"Waited too for port localhost:{n.process.grpc_port} to become reachable"
323+
)
324+
# TODO Actually wait for the port to be accessible
325+
time.sleep(1)
326+
with n.condition:
327+
n.condition.notify_all()
328+
except Exception as e:
329+
print(e)
330+
raise e
322331
return schedpb.NodeInfoResponse(
323332
node_id=n.node_id,
324333
grpc_uri=n.process.grpc_uri,

0 commit comments

Comments
 (0)