From d7ebccb4c50948920b8f4443d32f923ac370c044 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 20 Jun 2025 18:41:39 +1000 Subject: [PATCH 1/6] Update Signal Network FURPS Trying to be more detailed on expectations to match a recently expressed user need. --- FURPS/application/signal_network.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/FURPS/application/signal_network.md b/FURPS/application/signal_network.md index 22dcf8d..8c9d30d 100644 --- a/FURPS/application/signal_network.md +++ b/FURPS/application/signal_network.md @@ -1,12 +1,17 @@ # Signal Network PoC FURPS +TODO: Update in deliverable + ## Functionality -1. Establishes a direct connection between two peers using Waku as a signaling layer +1. Advertise intent to join a given meeting. +2. Discover remote peers willing to join a given meeting. +3. Establish direct connection to remote peer with same intent to join a given meeting. ## Usability -1. Developers have access to a simple API: single entry `connect` function and event-based inbound handling. +1. Developers sets arbitrary meeting identifier. +2. Developers selects discovered to connect to. ## Reliability @@ -20,5 +25,5 @@ ## + (Privacy, Anonymity, Deployments) -1. Signaling payloads are end-to-end encrypted. +1. Network observers cannot retrieve node connection details without knowing meeting identifier. 2. STUN and TURN servers may be required for WebRTC usage. \ No newline at end of file From 5c45cdbf71e33dfb23d60dcfb9189155359b9a06 Mon Sep 17 00:00:00 2001 From: fryorcraken <110212804+fryorcraken@users.noreply.github.com> Date: Mon, 23 Jun 2025 10:02:52 +1000 Subject: [PATCH 2/6] Use `session` term Co-authored-by: Sasha <118575614+weboko@users.noreply.github.com> --- FURPS/application/signal_network.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FURPS/application/signal_network.md b/FURPS/application/signal_network.md index 8c9d30d..506b794 100644 --- a/FURPS/application/signal_network.md +++ b/FURPS/application/signal_network.md @@ -4,7 +4,7 @@ TODO: Update in deliverable ## Functionality -1. Advertise intent to join a given meeting. +1. Advertise intent to join a given session. 2. Discover remote peers willing to join a given meeting. 3. Establish direct connection to remote peer with same intent to join a given meeting. From 34f6bf1edd91b42c24dd5c8a5b9d8a60225fbe48 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Mon, 23 Jun 2025 10:08:29 +1000 Subject: [PATCH 3/6] Prefer `session` to `meeting` term --- FURPS/application/signal_network.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/FURPS/application/signal_network.md b/FURPS/application/signal_network.md index 506b794..e9a0482 100644 --- a/FURPS/application/signal_network.md +++ b/FURPS/application/signal_network.md @@ -5,12 +5,12 @@ TODO: Update in deliverable ## Functionality 1. Advertise intent to join a given session. -2. Discover remote peers willing to join a given meeting. -3. Establish direct connection to remote peer with same intent to join a given meeting. +2. Discover remote peers willing to join a given session. +3. Establish direct connection to remote peer with same intent to join a given session. ## Usability -1. Developers sets arbitrary meeting identifier. +1. Developers sets arbitrary session identifier. 2. Developers selects discovered to connect to. ## Reliability @@ -25,5 +25,5 @@ TODO: Update in deliverable ## + (Privacy, Anonymity, Deployments) -1. Network observers cannot retrieve node connection details without knowing meeting identifier. +1. Network observers cannot retrieve node connection details without knowing session identifier. 2. STUN and TURN servers may be required for WebRTC usage. \ No newline at end of file From bce4813c9cf355d00025bd2f0386beb2329c3199 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 24 Jun 2025 12:12:52 +1000 Subject: [PATCH 4/6] Session identifier should be provided. --- FURPS/application/signal_network.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/FURPS/application/signal_network.md b/FURPS/application/signal_network.md index e9a0482..c5a34b5 100644 --- a/FURPS/application/signal_network.md +++ b/FURPS/application/signal_network.md @@ -10,8 +10,7 @@ TODO: Update in deliverable ## Usability -1. Developers sets arbitrary session identifier. -2. Developers selects discovered to connect to. +1. Developers selects discovered nodes to connect to. ## Reliability From 6eaff61ecaeb3827e70e6de3ff5a15c3b705f4c8 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Mon, 30 Jun 2025 15:44:12 +1000 Subject: [PATCH 5/6] Update as per discussion --- FURPS/application/signal_network.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/FURPS/application/signal_network.md b/FURPS/application/signal_network.md index c5a34b5..410685c 100644 --- a/FURPS/application/signal_network.md +++ b/FURPS/application/signal_network.md @@ -4,13 +4,13 @@ TODO: Update in deliverable ## Functionality -1. Advertise intent to join a given session. -2. Discover remote peers willing to join a given session. -3. Establish direct connection to remote peer with same intent to join a given session. +1. Establish direct connection to remote peer using their public key as identifier. ## Usability -1. Developers selects discovered nodes to connect to. +1. Developers can implement their own application-level discovery method. +2. Only remote peer's public key is needed to initiate connection. +3. Hook is provided for developer to filter inbound connection requests. ## Reliability @@ -21,8 +21,9 @@ TODO: Update in deliverable 1. Developers can use this protocol in web application, imported from npmjs.com. 2. Developers can use this protocol to initiate WebRTC connections. +3. Only 1:1 direct connections are supported. ## + (Privacy, Anonymity, Deployments) -1. Network observers cannot retrieve node connection details without knowing session identifier. +1. Network observers cannot retrieve node connection details; forward secrecy is **not** included. 2. STUN and TURN servers may be required for WebRTC usage. \ No newline at end of file From 320086dccaf8217c9845ca06e16fb1f776ec3b18 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Wed, 2 Jul 2025 15:29:11 +1000 Subject: [PATCH 6/6] Update deliverable --- FURPS/application/signal_network.md | 2 -- draft-roadmap/streamline_dev_ex_local_dev_rust.md | 9 ++++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/FURPS/application/signal_network.md b/FURPS/application/signal_network.md index 410685c..446a90b 100644 --- a/FURPS/application/signal_network.md +++ b/FURPS/application/signal_network.md @@ -1,7 +1,5 @@ # Signal Network PoC FURPS -TODO: Update in deliverable - ## Functionality 1. Establish direct connection to remote peer using their public key as identifier. diff --git a/draft-roadmap/streamline_dev_ex_local_dev_rust.md b/draft-roadmap/streamline_dev_ex_local_dev_rust.md index 8ad0d66..f2eb66b 100644 --- a/draft-roadmap/streamline_dev_ex_local_dev_rust.md +++ b/draft-roadmap/streamline_dev_ex_local_dev_rust.md @@ -143,17 +143,20 @@ See deliverables. **FURPS**: -- F1. Establishes a direct connection between two peers using Waku as a signaling layer +- F1. Establish direct connection to remote peer using their public key as identifier. -- U1. Developers have access to a simple API: single entry `connect` function and event-based inbound handling. +- U1. Developers can implement their own application-level discovery method. +- U2. Only remote peer's public key is needed to initiate connection. +- U3. Hook is provided for developer to filter inbound connection requests. - R1. End-to-end reliability is implemented for the signaling conversation. - R2. No provided reliability for established connections, left to the developer (e.g. keep alive). - S1. Developers can use this protocol in web application, imported from npmjs.com. - S2. Developers can use this protocol to initiate WebRTC connections. +- S3. Only 1:1 direct connections are supported. -- +1. Signaling payloads are end-to-end encrypted. +- +1. Network observers cannot retrieve node connection details; forward secrecy is **not** included. - +2. STUN and TURN servers may be required for WebRTC usage. **Checklist**: