From 1b6db44e393370022da63a00a9692f7b9790a185 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 5 Jun 2025 15:46:02 +1000 Subject: [PATCH 01/70] 2025 H2 Roadmap Roadmap, milestones and FURPS for 2025 H2 --- FURPS/application/network_metrics_tracker.md | 39 ++++ FURPS/core/mix.md | 20 +++ FURPS/core/waku_api.md | 36 ++++ draft-roadmap/README.md | 133 ++++++++++++-- .../deploy_rln_onchain_tree_on_l2_testnet.md | 89 +++++++++ .../improve_devex_api_twn_metrics_docs.md | 170 ++++++++++++++++++ draft-roadmap/integrate_rln_with_waku_api.md | 120 +++++++++++++ .../introduce_mixnet_for_message_sending.md | 31 ++++ .../streamline_dev_ex_local_dev_rust.md | 97 ++++++++++ 9 files changed, 723 insertions(+), 12 deletions(-) create mode 100644 FURPS/application/network_metrics_tracker.md create mode 100644 FURPS/core/mix.md create mode 100644 FURPS/core/waku_api.md create mode 100644 draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md create mode 100644 draft-roadmap/improve_devex_api_twn_metrics_docs.md create mode 100644 draft-roadmap/integrate_rln_with_waku_api.md create mode 100644 draft-roadmap/introduce_mixnet_for_message_sending.md create mode 100644 draft-roadmap/streamline_dev_ex_local_dev_rust.md diff --git a/FURPS/application/network_metrics_tracker.md b/FURPS/application/network_metrics_tracker.md new file mode 100644 index 0000000..d740bd1 --- /dev/null +++ b/FURPS/application/network_metrics_tracker.md @@ -0,0 +1,39 @@ +# Network Metrics Tracker FURPS + +## Functionality + +1. Metrics that can be learned from network observations are available +2. Display number of nodes discovered over discv5, by shard +3. Display number of nodes successfully connected to, by shard and user agent, in last hour, day, week +4. Display number of light protocol clients fleet nodes had a inbound connection of, by libp2p protocol, user agent, libp2p transport, and shard, in last hour, day, week; using unique peer id as identifier +5. Number of messages unique messages seen, by shard +6. Inbound and outbound bandwidth, by shard +7. Number of different content topics in last hour, day and week; considering full content topic and application name. +8. Average and max message size by shard +9. Messages stored by fleet store nodes: total size, number, oldest timestamp, by shard + +## Usability + +1. Metrics above are available publicly for the network of major integrations (Status, RAILGUN, TWN). + +## Reliability + +1. Metrics should be available 90% of the time. + +## Performance + +1. The data is updated at least hourly +2. At least 3 months of data is available + +## Supportability + +1. Grafana dashboards +2. Some metrics may be retrieved by a Waku monitor node with aggressive parameters, other from existing fleet nodes; + this includes running limited fleet nodes for other networks. + +## + (Privacy, Anonymity, Deployments) + +1. No IP or Peer Ids are tracked or displayed. +2. Dashboard deployed for The Waku Network +3. Dashboard deployed for Status Waku Network +4. Dashboard deployed for RAILGUN Waku Network \ No newline at end of file diff --git a/FURPS/core/mix.md b/FURPS/core/mix.md new file mode 100644 index 0000000..1220fb3 --- /dev/null +++ b/FURPS/core/mix.md @@ -0,0 +1,20 @@ +# Mixnet FURPS + +## Functionality + +1. Relay nodes can mount mixnet protocol, acting as entry, exit or mixnet nodes. +2. Nodes can discover mixnet relay and exit nodes using available peer discovery mechanisms. +3. Client nodes can send light push requests over the mixnet before delivery to a service node. +4. Client nodes can receive a response to a light push request over the mixnet. + +## Usability + +## Reliability + +## Performance + +## Supportability + +1. nwaku CLI + +## + (Privacy, Anonymity, Deployments) diff --git a/FURPS/core/waku_api.md b/FURPS/core/waku_api.md new file mode 100644 index 0000000..582ddd5 --- /dev/null +++ b/FURPS/core/waku_api.md @@ -0,0 +1,36 @@ +# Waku API FURPS + +(proposing to move away from "messaging api" to avoid confusion) + +## Functionality + +1. Setup, start and stop a Waku node. +2. Support edge node operation mode. +3. Support relay node operation mode. +4. Does automatic peer discovery based on the node platform and operation mode. +5. Returns health and connectivity information using proven heuristics. + +## Usability + +1. When setting up a Waku node, no need to specify what protocols to mount, only an operational mode (edge or relay). +2. Disconnection detection and recovery, and other peer management matters are automatically handled. +3. Developers do not need to specify the protocols used to send and receive messages; it is deduced from the mode of operation. +4. Developers pass and receive data to the API in types native to the wrapping language. +5. By default, auto-sharding is applied, meaning developers do not need to be concerned by sharding; pubsub topics are never exposed. + +## Reliability + +1. Sends a message using peer-to-peer reliability (service node redundancy for edge, optional store confirmation) +2. Receives messages using peer-to-peer reliability (service node redundancy for edge, periodic store query, periodic filter ping) + +## Performance + +## Supportability + +1. Nim library +2. Golang library +3. Browser + +## + (Privacy, Anonymity, Deployments) + +1. ... \ No newline at end of file diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 37d1909..342bd7c 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -2,7 +2,59 @@ Finalised roadmap and milestones can be found on the [Logos roadmap](https://roadmap.logos.co/waku/). -Period in planning: 2025 H1 +Period in planning: 2025 H2 + +## Proposed Priorities + +### Whole Team + +1. **Support Status application**: continue integration of nwaku and provide new chat protocol stack. +2. **Support Logos Core**: ensure that any library and API we push to developers can be consumed in Logos Core; review and prioritize any requirements coming from Logos Core project contributors and developers. +3. **Developer and Contributor Experience:** Review and improve dev assets (docs) and set quality expectation across the team (docs provided with deliverables, etc); Review and take action to improve developer and contributor experience (nimble usage, vscode plugin, etc). + +### Core Team + +1. **Complete integration of nwaku in Status Desktop**. +2. **Simplify a reliable Waku API:** aka Messaging API, make it easier to consume Waku library; critical to enable easy development of Chat SDK. +3. **Upgrade Waku for the Web**: Ensure web applications built on The Waku Network are reliable. +4. **RLN mainnet and API:** Continue RLN migration to onchain tree + L2 testnet, and necessary steps to get RLN on mainnet; provide simple API for Chat SDK. +5. **[Nwaku in Status Mobile and Light Mode MVP](https://github.com/waku-org/pm/milestone/39)**: de-prioritised in favour of cleaning up Waku and RLN APIs for Chat SDK first. +6. **nwaku performance improvement**: Performance on mobile is critical, hence we will review benchmarks and potentially dedicate effort to this topic +(note there is some ongoing effort from Status fleet behaviour). + +#### Research Items + +1. RLN (as above) +2. **Incentivisation:** Deliver incentivisation PoC for reliability, scalability, risk (running own fleet) and sustainability. +3. **Decentralisation and privacy**: continue research work to further decentralised Waku protocols, specifically store, and increase anonymity properties with libp2p-mixnet + +### Chat/App Team + +1. **Chat SDK:** Build a chat SDK (new protocol), learning from Status’ experience. Focus for an iterative delivery of the foundational blocks. Targeting private chats and early RLN integration. + 1. Note that building blocks such as identity mgmt are being built for demos app like Qaku - alignment to define and provide common protocols is expected as we are not limited by existing Status chat protocol. + 2. Work in close partnership with the status-backend developers, to ensure that post-refactoring the SDK can be integrated with the least effort possible. Aim for early and iterative integration. + 3. Note that early Status backend design position chat SDK as backend for Communities too; early iteration may not provide the scale in terms of members per communities; but Status' requirement is noted. + 4. Minimum deliverable will be usability of Chat SDK in Logos Core; need to review the architecture expectation in terms of Logos Core plugin interaction chat sdk <> nwaku. +2. **Build demos and PoC apps**: Continue building PoC apps to teach how to hunt, dogfood and battle test libraries; as well as throwing ideas in the wild, experimenting and seeing what sticks; promising apps will have lib and specs implemented (e.g. Qaku and Logos Forum). + 1. Potentially expand the relevant platforms: from Web to Logos core, Nim/seaqt, Rust, etc. + 2. Integration with Codex still planned under this umbrella + 3. Review Logos Forum (Opchan) requirements; the 2025 Logos Movement Strategy is the new customer. + +### Business and Ecosystem Development Team (BD + Solution Eng) + +1. **Measure Success:** Develop and deploy tools to measure Waku success in terms of users, developers and contributors across all known Waku networks (Status, RAILGUN, TWN, etc) + 1. In partnership with BI. +2. **Waku Chat MVP:** Proceed with the same exercise done for [Waku MVP](https://www.notion.so/Waku-MVP-1838f96fb65c8039acabf8a6a1e689e7?pvs=21). + Consult with current and new leads on their *ideal* Chat SDK. + Understand how confident we are they would onboard on Waku if it is delivered and feedback to Chat/App team to take in account for prioritization. +3. **Support integrations**: support projects that want to build with Waku SDK and Chat SDK. +4. **Foster and join Nim ecosystem (nwaku):** Foster and participate in the Nim developer community inside and outside IFT. +5. **Join FOSS ecosystem:** Be an active part of the FOSS developer community. +6. **Continue planned Rust SDK work**: Messaging API and stable nwaku integration in Status Desktop and pre-requisites to a quality Rust SDK. + +### Status Priorities Review + +**Existing milestones**: - [Hardening and Scaling Foundations for Private Chats](https://roadmap.logos.co/waku/milestones/open/2025-hardening-and-scaling-foundations-for-private-chats): finishing off the work and descoping items that have been identified as unneeded. - [Nwaku in Status Desktop (Relay only)](https://roadmap.logos.co/waku/milestones/open/2024-nwaku-in-status-desktop): work continues, close to completion. @@ -10,6 +62,10 @@ Period in planning: 2025 H1 - [e2e reliability protocol](https://roadmap.logos.co/waku/milestones/open/2024-e2e-reliability-protocol): work continues, close to completion. - [Foundation for Communities Optimization](https://github.com/waku-org/pm/milestone/31): this includes finishing a migration, and move community traffic away from 1:1 chat so we complete the work. +**New work and priorities**: + +1. New Chat SDK (nim) and protocol stack + ## Draft Milestones Testing out new format, once approved: @@ -18,14 +74,67 @@ Testing out new format, once approved: - Deliverables are moved to GitHub issues - Waku FURPS remains in [FURPS](/FURPS/README.md) -- [Foundation for Communities Optimization](foundation_for_communities_optimisation.md) -- [RLN Mainnet](deploy_rln_onchain_tree_on_l2_testnet.md) -- [Hardening and Scaling Foundations for Private Chats](hardening_and_scaling_foundation_for_private_chat.md) -- [Upgrade Waku for the Web](https://github.com/waku-org/pm/milestone/43) -- [Logos Web Apps](formalize_logos_web_apps.md) -- [Explore Peer Discovery Gap](https://github.com/waku-org/pm/milestone/44) -- [Nwaku in Status Desktop (Relay only)](integrate_nwaku_in_status_desktop_relay_mode_only.md) -- [Nwaku in Status Mobile and Light Mode MVP](https://roadmap.logos.co/waku/milestones/open/2025-nwaku-in-status-mobile)https://github.com/waku-org/pm/milestone/44 -- [e2e reliability protocol](introduce_e2e_reliability_in_status.md) -- [Debugging Tools](https://github.com/waku-org/pm/milestone/38) -- [Messaging API](https://github.com/waku-org/pm/milestone/41) \ No newline at end of file +In order of priority. + +1. [Introduce E2E Reliability in Status Communities](./introduce_e2e_reliability_in_status.md) +2. [Foundation for Communities Optimisation](/draft-roadmap/foundation_for_communities_optimisation.md) +3. [Hardening and Scaling Foundations for Private Chat](/draft-roadmap/hardening_and_scaling_foundation_for_private_chat.md) +4. [Integrate nwaku in Status Desktop, relay mode only](/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md) +5. [Deploy RLN Onchain Tree on L2 Testnet](/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md) +6. [Define Incentivisation for RLNaaS](/draft-roadmap/define_incentivisation_for_rlnaas.md) +7. [Improve DevEx: API, TWN, Metrics, Docs](/draft-roadmap/improve_devex_api_twn_metrics_docs.md) +8. [Introduce mixnet for message sending](/draft-roadmap/introduce_mixnet_for_message_sending.md) +9. [Formalize Logos Web Apps](/draft-roadmap/formalize_logos_web_apps.md) +10. [Introduce Chat SDK by enabling basic one-to-one chats]() TODO: should be added by https://github.com/waku-org/pm/pull/303 +11. [Integrate RLN with Waku API](/draft-roadmap/integrate_rln_with_waku_api.md) +12. [Streamline DevEx: Mobile, Rust and Web dev](/draft-roadmap/streamline_dev_ex_local_dev_rust.md) +13. Incentivisation follow-up + +Pushed to 2026 +- WebTransport: depending on nim-libp2p (delivery Q4) +- REST API for Waku API: Useful for DST/QA, but let's focus on Status, Chat SDK, and Rust first + +Not yet planned/not sure: +- nwaku performance on mobile: let's focus on finishing desktop integration and getting API ready for Chat SDK + RLN +- quic: need to review where to put it, should be easy. +- Follow-up steps for incentivization: part of current milestone is to produce a roadmap. +- RLN mainnet and audit -> probably wait for Status L2 mainnet? + +### Business Development Milestones + +TODO + +## Gantt + +TODO: fix dates + +```mermaid +gantt + title Waku 2025H2 + dateFormat YYYY-MM-DD + axisFormat %b + section core research + E2E Reliability: 2025-07-01, 2025-08-01 + RLN Onchain Tree: 2025-07-01, 2025-08-01 + Incentivization: 2025-07-01, 2025-08-01 + Mixnet: 2025-07-01, 2025-12-31 + section nwaku + Status Desktop: 2025-07-01, 2025-08-01 + RLN Onchain Tree: 2025-07-01, 2025-08-01 + Improve DevEx (API): 2025-07-01, 2025-10-01 + Improve DevEx (TWN): 2025-07-01, 2025-09-01 + Streamline DevEx (Mobile, Rust): 2025-09-01, 2025-12-31 + RLN Library: 2025-08-01, 2025-12-31 + section js-waku + Improve DevEx (API): 2025-07-01, 2025-10-01 + Improve DevEx (TWN): 2025-07-01, 2025-10-01 + RLN Library: 2025-07-01, 2025-09-01 + Streamline DevEx (Local dev): 2025-10-01, 2025-12-31 + section app-chat + E2E Reliability: 2025-07-01, 2025-08-01 + Communities Opt: 2025-07-01, 2025-08-01 + Foundations Private Chats: 2025-07-01, 2025-08-01 + Improve DevEx (metrics): 2025-07-01, 2025-09-01 + Logos Web Apps: 2025-07-01, 2025-12-31 + Chat SDK: 2025-07-01, 2025-12-31 +``` \ No newline at end of file diff --git a/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md b/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md new file mode 100644 index 0000000..c5308e3 --- /dev/null +++ b/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md @@ -0,0 +1,89 @@ +# Deploy RLN onchain tree on L2 Testnet + +**Estimated date of completion**: 30 June 2025 + +**Resources Required for 2025H2**: +- {roles and % application to it} +- {external services consumed (Vac/IFT)} +- {infrastructure} + +This is a split of RLN mainnet milestone which grew too large in scope. + +Once complemented, the economical behaviour of RLN will have been specified, +implemented and discussed with the Status team. +An implementation of RLN for light clients will also be done, to demonstrate RLN’s UX with onchain Merkle tree. +Finally, the smart contract will be deployed on a Linea-based L2 testnet and used by The Waku Network. + +It will then be possible to design the usage of RLN in Chat SDK. + +**deliverables**: https://github.com/waku-org/pm/milestone/34 + +## [Implement RLN smart contract for paid, multilevel memberships](https://github.com/waku-org/pm/issues/228) + +**Owner**: research + +**Feature**: [RLN Smart Contract](/FURPS/core/rln_smart_contract.md) + +**FURPS**: + +- F1. RLN rate limit can be defined in terms of multiple messages per epoch. +- F2. RLN rate limit is set at membership insertion +- F3. RLN proof generation and validation only requires Web3 RPC `call`s, no blockchain events or initialisation are needed. +- F4. An ERC-20 token deposit is needed to insert a membership +- U1. Application developers can set RLN rate limit at insertion. + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## [TWN supports RLN onchain tree and deposits, existing memberships only](https://github.com/waku-org/pm/issues/286) + +**Owner**: nwaku + +**Feature**: [RLN Smart Contract](/FURPS/core/rln_smart_contract.md) + +**FURPS**: + +- F3. RLN initialization only requires Web3 RPC `call`s, no blockchain events are needed. +- U2. User do not need to wait for merkle tree synchronization and building to start relaying + or sending messages. +- P1. New node setup with an RLN membership can be ready to verify RLN proof within 5s, + no matter the size of the tree **(Vac-DST)**. +- +1. Smart Contracts are deployed on Linea Testnet. +- +2. TWN uses smart contracts deployed on Linea Testnet. + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## [RLNv2 Web management interface](https://github.com/waku-org/pm/issues/281) + +**Owner**: js-waku + +**Feature**: [RLN Membership Management](/FURPS/application/rln_membership_management.md) + +**FURPS**: + +- F1. Can generate RLN credentials. +- F2. Can insert RLN membership in smart contract, with accompanying deposit. +- F3. Can extend RLN membership on smart contract. +- F4. Can withdraw deposit from smart contract. +- F5. Membership credentials are encrypted by default on local disk. +- U1. RLN membership details can be exported and imported. +- U2. Deployment details (address, chain id) are persisted by library and in exports. +- R1. Import and exports are interoperable across all implementations. +- +1. Deployed on https://rln.waku.org +- +2. Available for Linea Sepolia Testnet contracts. +- +3. Proof generation and validation is out of scope. + +For S1. Browser application, using web3 wallet browser extensions. + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md new file mode 100644 index 0000000..942faf0 --- /dev/null +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -0,0 +1,170 @@ +# Improve DevEx: API, TWN, Metrics, Docs + +**Estimated date of completion**: {Enter date} + +**Resources Required for 2025H2**: +- {roles and % application to it} +- {external services consumed (Vac/IFT)} +- {infrastructure} + +Proceed with a number of improvements to the developer experience on Waku, for both internal and external purposes. +This includes: + +- improving The Waku Network reliability for Logos apps and other web apps +- simplifying the Waku API +- measuring Waku usage across all integrations +- review and setting strategy for Waku documentation + + +**FURPS**: + +- [{Feature Name}]({path/to/furps/file}): {list of furps: F1, etc} +- [Network Metrics Tracker](/FURPS/application/network_metrics_tracker.md): all + +**deliverables**: + +(TODO: adjust FURPS for existing deliverables) +- [Global Network Metrics](https://github.com/waku-org/pm/issues/295) +- [Scalable Data Sync in Browser](https://github.com/waku-org/pm/issues/280) +- [Improved Browser Bootstrap](https://github.com/waku-org/pm/issues/290) +- [Waku Sync](https://github.com/waku-org/pm/issues/132) + +TODO: quic PoC + +## Define and Implement Light Push Error codes in nwaku + +**Owner**: nwaku + +**Feature**: [Light Push](/FURPS/core/light_push.md) + +**FURPS**: +- F4. Supports comprehensive error codes for various failure scenarios. +- U4. Provides descriptive error messages in responses. +- R2. Status codes indicate the best recovery method (retry, discard service node or irrecoverable failure). +- R3. 80% message transmission success rate on live Status network (service node from both Status Desktop and fleet Waku instances) + +For S1. Linux amd64 CLI as service node +Includes spec delivery + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Implement Light Push Error codes in The Browser + +**Owner**: js-waku + +**Feature**: [Light Push](/FURPS/core/light_push.md) + +**FURPS**: +- F4. Supports comprehensive error codes for various failure scenarios. +- U4. Provides descriptive error messages in responses. +- R2. Status codes indicate the best recovery method (retry, discard service node or irrecoverable failure). + +For S2. Browser as client +Spec delivery not included. + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Introduce Waku API in the Browser + +**Owner**: js-waku + +**Feature**: [Waku API](/FURPS/core/waku_api.md) + +**FURPS**: +- F1. Setup, start and stop a Waku node. +- F2. Support edge node operation mode. +- F4. Does automatic peer discovery based on the node platform and operation mode. +- F5. Returns health and connectivity information using proven heuristics. +- U1. When setting up a Waku node, no need to specify what protocols to mount, only an operational mode (edge or relay). +- U2. Disconnection detection and recovery, and other peer management matters are automatically handled. +- U3. Developers do not need to specify the protocols used to send and receive messages; it is deduced from the mode of operation. +- U4. Developers pass and receive data to the API in types native to the wrapping language. +- U5. By default, auto-sharding is applied, meaning developers do not need to be concerned by sharding; pubsub topics are never exposed. +- R1. Sends a message using peer-to-peer reliability (service node redundancy, optional store confirmation) +- R2. Receives messages using peer-to-peer reliability (service node redundancy, periodic store query, periodic filter ping) + +For S3. Browser + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Introduce Waku API in nwaku + +**Owner**: nwaku + +**Feature**: [Waku API](/FURPS/core/waku_api.md) + +**FURPS**: +- F1. Setup, start and stop a Waku node. +- F3. Support relay node operation mode. +- F4. Does automatic peer discovery based on the node platform and operation mode. +- F5. Returns health and connectivity information using proven heuristics. +- U1. When setting up a Waku node, no need to specify what protocols to mount, only an operational mode (edge or relay). +- U2. Disconnection detection and recovery, and other peer management matters are automatically handled. +- U3. Developers do not need to specify the protocols used to send and receive messages; it is deduced from the mode of operation. +- U4. Developers pass and receive data to the API in types native to the wrapping language. +- U5. By default, auto-sharding is applied, meaning developers do not need to be concerned by sharding; pubsub topics are never exposed. +- R1. Sends a message using peer-to-peer reliability (service node redundancy, optional store confirmation) +- R2. Receives messages using peer-to-peer reliability (service node redundancy, periodic store query, periodic filter ping) + +For: +- S1. Nim library; used by chat SDK +- S2. Golang library; used by status-go + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Review Documentation and Define Guidelines + +**Owner**: {one waku subteam} + +(No FURPS) + +- [ ] Review the current developer documentation +- [ ] And contributor doc +- [ ] Define a guideline for Waku teams to follow when contributing to documentation +- [ ] Setup an initial structure + +## Use Protobuf to transfer data from Wrapper to nwaku library PoC TBC + +**Owner**: {one waku subteam} + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## {Name of deliverable 1 - eg "improve feature X for the browser"} + +**Owner**: {one waku subteam} + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) \ No newline at end of file diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md new file mode 100644 index 0000000..2df6200 --- /dev/null +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -0,0 +1,120 @@ +# Integrate RLN With the Waku API + +**Estimated date of completion**: {Enter date} TODO + +**Resources Required for 2025H2**: +- nwaku engineer TODO +- 1 js-waku engineer for 2 months (til 30 Aug) +- core research/test engineer? TODO +- chat sdk engineer TODO +- Support from Vac/ACZ to get zerokit working in the browser. +- {infrastructure} + +Deliver a native RLN library with a deliberate API to manage RLN memberships, as well as proof verification and generation. +This includes extracting RLN Relay as a relay plugin validation strategy, that can then be passed internally to nwaku node +as any other strategy. + +Once delivered, usage of Chat SDK of RLN becomes possible, with clear API to instantiate nwaku library with RLN, as well +as API to manage RLN membership. + +Introduce RLN proof generation and validation in the Browser. RLN API should be similar across all implementations. + +Finally, migrate to Status network L2 testnet and improve UX issues discovered via dogfooding such as rate of RPC Calls. + +**FURPS**: + +- [{Feature Name}]({path/to/furps/file}): {list of furps: F1, etc} TODO + +**deliverables**: + +## Implement RLN membership management in nwaku library + +**Owner**: nwaku + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Implement RLN Onchain Tree Proof generation and verification in the Browser + +**Owner**: js-waku + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Extract RLN as a plug-in library from nwaku + +**Owner**: nwaku + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Deploy RLN Contracts to Status L2 testnet + +**Owner**: nwaku + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Improve RLN UX by reducing Web3 RPC calls + +TODO: other improvements may be flagged as we dogfood the previous RLN milestone. + +**Owner**: nwaku + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## {Name of deliverable 1 - eg "improve feature X for the browser"} + +**Owner**: {one waku subteam} + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) \ No newline at end of file diff --git a/draft-roadmap/introduce_mixnet_for_message_sending.md b/draft-roadmap/introduce_mixnet_for_message_sending.md new file mode 100644 index 0000000..22e7c4c --- /dev/null +++ b/draft-roadmap/introduce_mixnet_for_message_sending.md @@ -0,0 +1,31 @@ +# Introduce Mixnet For Message Sending + +**Estimated date of completion**: 30 Sep 2025 + +**Resources Required for 2025H2**: +- 1 core research engineer for 3 months + +A PoC implementation to improve anonymity in Waku message publishing by mixing Waku Lightpush requests and responses. + +**FURPS** (see deliverables) + +**GitHub Milestone and deliverables**: + +## [Integrate libp2p mix into lightpush](https://github.com/waku-org/nwaku/issues/3280) + +**Owner**: core research + +**Feature**: [Mix](/FURPS/core/mix.md) + +**FURPS**: +- F1. Relay nodes can mount mixnet protocol, acting as entry, exit or mixnet nodes. +- F2. Nodes can discover mixnet relay and exit nodes using available peer discovery mechanisms. +- F3. Client nodes can send light push requests over the mixnet before delivery to a service node. +- F4. Client nodes can receive a response to a light push request over the mixnet. + + +**Checklist**: +- [ ] Specs: link to specs +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) diff --git a/draft-roadmap/streamline_dev_ex_local_dev_rust.md b/draft-roadmap/streamline_dev_ex_local_dev_rust.md new file mode 100644 index 0000000..c60ac8b --- /dev/null +++ b/draft-roadmap/streamline_dev_ex_local_dev_rust.md @@ -0,0 +1,97 @@ +# Streamline DevEx: Mobile, Rust and Web dev + +**Estimated date of completion**: {Enter date} TODO + +**Resources Required for 2025H2**: +- {roles and % application to it} +- {external services consumed (Vac/IFT)} +- {infrastructure} + +Complete the Waku API implementation in nwaku by implementing edge node mode (Status' Light Mode). + +Streamline the Developer Experience by delivering a Rust SDK that implements the full Waku API and is available on crates.io. +As well as building an easy-to-use local dev environment from the browser, enabling developers to build web apps without +relying on external connectivity; as well as opting in and out of RLN, and include a local RLN dev environment. + +Finalize the integration of nwaku in Status application by setting up nwaku-based build for Mobile platforms. + +**FURPS**: + +- [{Feature Name}]({path/to/furps/file}): {list of furps: F1, etc} + +**deliverables**: + +## Edge Mode in Nwaku + +**Owner**: nwaku + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) TODO + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Nwaku in Status Mobile + +**Owner**: nwaku + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) TODO + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Waku Rust SDK + +**Owner**: nwaku + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) TODO + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Local RLN Dev Harness + +**Owner**: ? (nwaku? core-research?) TODO + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD)\ + +## Local Web Dev Harness + +**Owner**: js-waku + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) From c84955b27c02fe7175a60e09baf2b2e29ea6b154 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 5 Jun 2025 16:00:17 +1000 Subject: [PATCH 02/70] update chat sdk links --- draft-roadmap/README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 342bd7c..f89315c 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -76,18 +76,18 @@ Testing out new format, once approved: In order of priority. -1. [Introduce E2E Reliability in Status Communities](./introduce_e2e_reliability_in_status.md) -2. [Foundation for Communities Optimisation](/draft-roadmap/foundation_for_communities_optimisation.md) -3. [Hardening and Scaling Foundations for Private Chat](/draft-roadmap/hardening_and_scaling_foundation_for_private_chat.md) -4. [Integrate nwaku in Status Desktop, relay mode only](/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md) -5. [Deploy RLN Onchain Tree on L2 Testnet](/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md) -6. [Define Incentivisation for RLNaaS](/draft-roadmap/define_incentivisation_for_rlnaas.md) -7. [Improve DevEx: API, TWN, Metrics, Docs](/draft-roadmap/improve_devex_api_twn_metrics_docs.md) -8. [Introduce mixnet for message sending](/draft-roadmap/introduce_mixnet_for_message_sending.md) -9. [Formalize Logos Web Apps](/draft-roadmap/formalize_logos_web_apps.md) -10. [Introduce Chat SDK by enabling basic one-to-one chats]() TODO: should be added by https://github.com/waku-org/pm/pull/303 -11. [Integrate RLN with Waku API](/draft-roadmap/integrate_rln_with_waku_api.md) -12. [Streamline DevEx: Mobile, Rust and Web dev](/draft-roadmap/streamline_dev_ex_local_dev_rust.md) +1. [Introduce E2E Reliability in Status Communities](introduce_e2e_reliability_in_status.md) +2. [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) +3. [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) +4. [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) +5. [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) +6. [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) +7. [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) +8. [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) +9. [Formalize Logos Web Apps](formalize_logos_web_apps.md) +10. [Introduce Chat SDK by enabling basic one-to-one chats]() TODO (see https://github.com/waku-org/pm/pull/303 and https://github.com/waku-org/pm/pull/309) +11. [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) +12. [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) 13. Incentivisation follow-up Pushed to 2026 From c3c072b4f31053c87112c6e0208805b000fd88c9 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 5 Jun 2025 16:42:20 +1000 Subject: [PATCH 03/70] Milestone tidy up # Conflicts: # draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md --- FURPS/application/status_private_chats.md | 2 +- .../define_incentivisation_for_rlnaas.md | 37 +------------------ .../deploy_rln_onchain_tree_on_l2_testnet.md | 7 ++-- ...foundation_for_communities_optimisation.md | 6 ++- ...and_scaling_foundation_for_private_chat.md | 16 ++++---- ...nwaku_in_status_desktop_relay_mode_only.md | 7 +++- .../introduce_e2e_reliability_in_status.md | 2 + 7 files changed, 26 insertions(+), 51 deletions(-) diff --git a/FURPS/application/status_private_chats.md b/FURPS/application/status_private_chats.md index 9d230af..77bd0d9 100644 --- a/FURPS/application/status_private_chats.md +++ b/FURPS/application/status_private_chats.md @@ -1,4 +1,4 @@ -# {Feature Name} FURPS +# Status Private Chats FURPS Waku specific FURPS, **before** integration of the Chat SDK. diff --git a/draft-roadmap/define_incentivisation_for_rlnaas.md b/draft-roadmap/define_incentivisation_for_rlnaas.md index 22102dc..485c051 100644 --- a/draft-roadmap/define_incentivisation_for_rlnaas.md +++ b/draft-roadmap/define_incentivisation_for_rlnaas.md @@ -15,40 +15,5 @@ including RLN proofs as a service, Store, Filter and Lightpush. This milestone encapsulates the efforts to distribute rewards for running RLN Relay nodes and getting paid for providing Waku services. This is the first step to providing a sustainable way to scale the Status application. -**FURPS**: TODO - -**deliverables**: https://github.com/waku-org/pm/milestone/35 TODO adjust deliverables with FURPS - -## [Pay for RLN provision PoC](https://github.com/waku-org/pm/issues/245) - -**Owner**: core research - -**Feature**: [Incentivisation](/FURPS/core/incentivisation.md) - **FURPS**: -- F1. RLNaaS clients proceed to pay RLNaaS providers for attaching RLN proof to published messages. -- F2. RLNaaS clients can assess the quality of a provisioned RLNaaS and use it to build local reputation. -- F3. RLNaaS clients can use local reputation of RLNaaS providers to select what provider to use. -- U1. A consumer node can pay a service node for RLNaaS. -- U2. A consumer node can select an RLNaaS provider based on local reputation. -- R1. A consumer prefers new providers to known unreliable providers. -- R2. In a stable network, a client can find, pay and send a message via a RLNaaS provider (**Vac-QA**) - in 90% of cases **(Vac-DST)**. -- R3. A client can assess whether an RLNaaS provider has relayed their message (**Vac-QA**) - in 90% of cases **(Vac-DST)**. -- P1. Assuming a block time of 5 seconds, - a user can execute an RLNaaS payment and send a message within 30 seconds (Vac-DST) - -For S1. A nwaku-based CLI on a testnet, interaction with a custodial wallet is out-of-scope. - -**Checklist**: -- [ ] Specs: link to specs and/or API definition -- [ ] Code: link to GitHub issues/PRs/Epic -- [ ] Dogfood: link to dogfooding session/artefact -- [ ] Docs: links to README.md or docs.waku.org (TBD) - -## [Service incentivisation roadmap & spec](https://github.com/waku-org/pm/issues/246) - -**Owner**: core research - -**Output**: a roadmap document. \ No newline at end of file +- [Incentivisation](/FURPS/core/incentivisation.md): F1-3, U1-2, R1-3, P1, for S1 \ No newline at end of file diff --git a/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md b/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md index c5308e3..8854c31 100644 --- a/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md +++ b/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md @@ -3,9 +3,10 @@ **Estimated date of completion**: 30 June 2025 **Resources Required for 2025H2**: -- {roles and % application to it} -- {external services consumed (Vac/IFT)} -- {infrastructure} +- 1 nwaku engineer +- 1 js-waku engineer +- 1 core research engineer +All for maintenance and dogfooding related activities. This is a split of RLN mainnet milestone which grew too large in scope. diff --git a/draft-roadmap/foundation_for_communities_optimisation.md b/draft-roadmap/foundation_for_communities_optimisation.md index 4f5e852..fcb02cd 100644 --- a/draft-roadmap/foundation_for_communities_optimisation.md +++ b/draft-roadmap/foundation_for_communities_optimisation.md @@ -1,9 +1,11 @@ # [Foundation for Communities Optimisation](https://github.com/waku-org/pm/milestone/31) -**Estimated date of completion**: 7-Apr-2025 - to be reviewed TODO +**Estimated date of completion**: 31 Oct 2025 (Final clean-up to be merged after a few Status app releases) **Resources Required for 2025H2**: -- App/Chat engineer: Pablo 100% for X months - TODO +- 1 App/Chat engineer for 2 weeks (only work will be to rebase and merge an existing clean-up PR) +- Vac/QA to run status-backend tests +- Status/QA and dev for reviews and testing Once completed, the usage of content topics by Communities will be simplified, enabling both improvements in terms of store queries and light mode message reception, diff --git a/draft-roadmap/hardening_and_scaling_foundation_for_private_chat.md b/draft-roadmap/hardening_and_scaling_foundation_for_private_chat.md index 0186fd1..5c8080b 100644 --- a/draft-roadmap/hardening_and_scaling_foundation_for_private_chat.md +++ b/draft-roadmap/hardening_and_scaling_foundation_for_private_chat.md @@ -1,6 +1,6 @@ # [Hardening and Scaling Foundations for Private Chats](https://github.com/waku-org/pm/milestone/40) -**Estimated date of completion**: TODO +**Estimated date of completion**: TODO (only Private chat rate limit PoC remaining) **Resources Required for 2025H2**: TODO - {roles and % application to it} @@ -31,9 +31,11 @@ either removed or disabled by default to ensure accurate testing and evaluation. **Milestone and deliverables**: https://github.com/waku-org/pm/milestone/40 -TODO: [clean-up the deliverables](https://discord.com/channels/1110799176264056863/1337300409412489290/1379311090302980097): -- specify private chat: drop -- rate limit poc: finish it -- network metrics: move it -- baseline benchmarks: handover to DST -- status-cli: review with QA \ No newline at end of file +## Scope Changes + +1. **Specify Private Chat Protocol**: We stop the exercise here, meaning that we don't formally update/add to Status specs/RFC. + A justification to write a new protocol stack has been [published](https://forum.vac.dev/t/chatsdk-motivations/501). +2. **Private chat rate limit PoC**: Work to be completed to help with reliability. No further RLN integration planned. +3. **Global Network Metrics**: Moved to a new milestone - [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md). +4. **Baseline benchmarks**: Handing over to Vac/DST +5. **status-cli**: Handing over to Vac/QA \ No newline at end of file diff --git a/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md b/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md index 305c8c3..5d153be 100644 --- a/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md +++ b/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md @@ -1,9 +1,12 @@ -# Integrate nwaku in Status Desktop, relay mode only +# [Integrate nwaku in Status Desktop, relay mode only](https://github.com/waku-org/pm/milestone/33) **Estimated date of completion**: 30 June **Resources Required for 2025H2**: -- 1 nwaku engineer +- 1 nwaku engineer for maintenance and support +- Vac-QA to run status-backend tests on a nwaku-based build +- Vac-DST to complete benchmark works and proceed with nwaku-based vs go-waku-based status-backend comparisons +- Status-QA to include nwaku-based builds in tests With this milestone, Status Desktop builds can use nwaku instead of go-waku. However, it should be seen as a MVP as further hardening and implementation of light client mode will be missing. diff --git a/draft-roadmap/introduce_e2e_reliability_in_status.md b/draft-roadmap/introduce_e2e_reliability_in_status.md index 4950318..535ed51 100644 --- a/draft-roadmap/introduce_e2e_reliability_in_status.md +++ b/draft-roadmap/introduce_e2e_reliability_in_status.md @@ -4,6 +4,8 @@ **Resources Required for 2025H2**: - 1 app chat engineer for 2 months +- Status dev for review support +- Status-QA and Vac-QA for new tests - (core research work finishes by end of June) (Renamed "e2e reliability protocol " milestone, but work as per scope, only split a deliverable) From 0e2b4b012bd26bcea7e7af0092a29c7311fb45a3 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 5 Jun 2025 17:09:33 +1000 Subject: [PATCH 04/70] tidy up improve devex milestone --- FURPS/application/nwaku.md | 2 + FURPS/core/store_sync.md | 23 +++++ .../improve_devex_api_twn_metrics_docs.md | 85 ++++++++++++++----- 3 files changed, 91 insertions(+), 19 deletions(-) create mode 100644 FURPS/core/store_sync.md diff --git a/FURPS/application/nwaku.md b/FURPS/application/nwaku.md index 58101f6..88d2de1 100644 --- a/FURPS/application/nwaku.md +++ b/FURPS/application/nwaku.md @@ -21,6 +21,8 @@ 1. libwaku, wakunode2 can build on Windows 2. libwaku supports relay functionalities. +3. TCP transport is supported for peer-to-peer message routing connections. +4. QUIC transport is supported for peer-to-peer message routing connections. ## + (Privacy, Anonymity, Deployments) diff --git a/FURPS/core/store_sync.md b/FURPS/core/store_sync.md new file mode 100644 index 0000000..335b6cb --- /dev/null +++ b/FURPS/core/store_sync.md @@ -0,0 +1,23 @@ +# Store Sync FURPS + +## Functionality + +1. Store nodes synchronize recent messages with each other. +2. Store node to store node synchronization happens on a periodic manner. +3. Store node to store node synchronization happens after re-connection is detected. + +## Usability + +1. Remote store peer selection is done automatically. + +## Reliability + +1. No message discrepancies at any time, for time windows of 5 minutes to 60 minutes ago. + +## Performance + +1. A sync of a 60 minutes time window happens under 60 seconds, assuming 15 msgs/second (total), 150KB message size and a maximum of 10% pre-existing message discrepancy (**Vac-DST**). + +## Supportability + +1. nwaku store service node \ No newline at end of file diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index 942faf0..a660672 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -14,22 +14,69 @@ This includes: - simplifying the Waku API - measuring Waku usage across all integrations - review and setting strategy for Waku documentation - - -**FURPS**: - -- [{Feature Name}]({path/to/furps/file}): {list of furps: F1, etc} -- [Network Metrics Tracker](/FURPS/application/network_metrics_tracker.md): all +- Testing quic as new transport **deliverables**: -(TODO: adjust FURPS for existing deliverables) -- [Global Network Metrics](https://github.com/waku-org/pm/issues/295) -- [Scalable Data Sync in Browser](https://github.com/waku-org/pm/issues/280) -- [Improved Browser Bootstrap](https://github.com/waku-org/pm/issues/290) -- [Waku Sync](https://github.com/waku-org/pm/issues/132) +## [Global Network Metrics](https://github.com/waku-org/pm/issues/295) -TODO: quic PoC +**Owner**: App/Chat Dev + +**Feature**: [Network Metrics Tracker](/FURPS/application/network_metrics_tracker.md) + +**FURPS**: +- all + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## [Scalable Data Sync in Browser](https://github.com/waku-org/pm/issues/280) + +**Owner**: js-waku + +**Feature**: [SDS](/FURPS/application/sds.md) + +**FURPS**: +- all + +For S2. For Web apps as a developer library. + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## [Improved Browser Bootstrap](https://github.com/waku-org/pm/issues/290) + +**Owner**: js-waku + +**Feature**: TODO see https://github.com/waku-org/pm/pull/308 + +**FURPS**: TODO + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## [Waku Sync](https://github.com/waku-org/pm/issues/132) + +**Owner**: core research + +**Feature**: [Store Sync](/FURPS/core/store_sync.md) + +**FURPS**: all + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) ## Define and Implement Light Push Error codes in nwaku @@ -139,14 +186,14 @@ For: - [ ] Define a guideline for Waku teams to follow when contributing to documentation - [ ] Setup an initial structure -## Use Protobuf to transfer data from Wrapper to nwaku library PoC TBC +## Trial QUIC -**Owner**: {one waku subteam} +**Owner**: nwaku -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) +**Feature**: [nwaku](/FURPS/application/nwaku.md) **FURPS**: -- {F1. copy-paste full furps statement} +- S4. QUIC transport is supported for peer-to-peer message routing connections. **Checklist**: - [ ] Specs: link to specs and/or API definition @@ -154,11 +201,11 @@ For: - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## {Name of deliverable 1 - eg "improve feature X for the browser"} +## Use Protobuf to transfer data from Wrapper to nwaku library PoC TBC -**Owner**: {one waku subteam} +**Owner**: nwaku -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) +**Feature**: TODO **FURPS**: - {F1. copy-paste full furps statement} From 8e424310a36836b6cf773decc55263698bfcd8e8 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 5 Jun 2025 21:47:05 +1000 Subject: [PATCH 05/70] core research member will lead docs --- draft-roadmap/improve_devex_api_twn_metrics_docs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index a660672..289502c 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -177,7 +177,7 @@ For: ## Review Documentation and Define Guidelines -**Owner**: {one waku subteam} +**Owner**: core research (No FURPS) From 0351b0cdef5c20e85fa15d092fa77497e4a1e76b Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 5 Jun 2025 22:01:30 +1000 Subject: [PATCH 06/70] transform milestone list to table --- draft-roadmap/README.md | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index f89315c..0a1ff16 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -76,19 +76,21 @@ Testing out new format, once approved: In order of priority. -1. [Introduce E2E Reliability in Status Communities](introduce_e2e_reliability_in_status.md) -2. [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) -3. [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) -4. [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) -5. [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) -6. [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) -7. [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) -8. [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) -9. [Formalize Logos Web Apps](formalize_logos_web_apps.md) -10. [Introduce Chat SDK by enabling basic one-to-one chats]() TODO (see https://github.com/waku-org/pm/pull/303 and https://github.com/waku-org/pm/pull/309) -11. [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) -12. [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) -13. Incentivisation follow-up +| Priority | Milestone | core res | js-waku | nwaku | app-chat | +|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------|----------|---------|-------|----------| +| 1 | [Introduce E2E Reliability in Status Communities](introduce_e2e_reliability_in_status.md) | ✔ | | | ✔ | +| 2 | [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) | | | | | +| 3 | [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) | | | | | +| 4 | [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) | | | | | +| 5 | [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | | | | | +| 6 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | | | | | +| 7 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | | | | | +| 8 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | | | | | +| 9 | [Formalize Logos Web Apps](formalize_logos_web_apps.md) | | | | | +| 10 | [Introduce Chat SDK by enabling basic one-to-one chats]() TODO (see https://github.com/waku-org/pm/pull/303 and https://github.com/waku-org/pm/pull/309) | | | | | +| 11 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | | | | | +| 12 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | | | | | +| 13 | Incentivisation follow-up | | | | | Pushed to 2026 - WebTransport: depending on nim-libp2p (delivery Q4) From 80af296374dbcb1bf670d2d287e10ac008d15b2d Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 6 Jun 2025 11:20:20 +1000 Subject: [PATCH 07/70] transform milestone list to table --- draft-roadmap/README.md | 43 ++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 0a1ff16..5e2c524 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -76,21 +76,21 @@ Testing out new format, once approved: In order of priority. -| Priority | Milestone | core res | js-waku | nwaku | app-chat | -|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------|----------|---------|-------|----------| -| 1 | [Introduce E2E Reliability in Status Communities](introduce_e2e_reliability_in_status.md) | ✔ | | | ✔ | -| 2 | [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) | | | | | -| 3 | [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) | | | | | -| 4 | [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) | | | | | -| 5 | [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | | | | | -| 6 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | | | | | -| 7 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | | | | | -| 8 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | | | | | -| 9 | [Formalize Logos Web Apps](formalize_logos_web_apps.md) | | | | | -| 10 | [Introduce Chat SDK by enabling basic one-to-one chats]() TODO (see https://github.com/waku-org/pm/pull/303 and https://github.com/waku-org/pm/pull/309) | | | | | -| 11 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | | | | | -| 12 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | | | | | -| 13 | Incentivisation follow-up | | | | | +| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | +|----------|------------------------------------------------------------------------------------------------------------|----------|----------|---------|-------|----------| +| 1 | [Introduce E2E Reliability in Status Communities](introduce_e2e_reliability_in_status.md) | 31 Aug | | | | 1*2m | +| 2 | [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) | 31 Oct | | | | 1*2w | +| 3 | [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) | Drop | | | | | +| 4 | [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) | 20 Jun | | | | | +| 5 | [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | 30 Jun | | | | | +| 6 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5*1m | | | | +| 7 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | TBD | +| 8 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | +| 9 | [Formalize Logos Web Apps](formalize_logos_web_apps.md) | 19 Dec | | | | 1.5*6m | +| 10 | [Introduce Chat SDK by enabling basic one-to-one chats]() TODO | TBD | | | | TBD | +| 11 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | +| 12 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | +| 13 | Incentivisation follow-up | TBD | TBD | | | | Pushed to 2026 - WebTransport: depending on nim-libp2p (delivery Q4) @@ -115,11 +115,14 @@ gantt title Waku 2025H2 dateFormat YYYY-MM-DD axisFormat %b - section core research - E2E Reliability: 2025-07-01, 2025-08-01 - RLN Onchain Tree: 2025-07-01, 2025-08-01 - Incentivization: 2025-07-01, 2025-08-01 - Mixnet: 2025-07-01, 2025-12-31 + section core research (6) + Define Incentivization for RLNaaS: 2025-07-01, 2025-08-01 + Define Incentivization for RLNaaS: 2025-07-01, 2025-08-01 + Improve DevEx: 2025-08-01, 2025-09-30 + Mixnet: 2025-07-01, 2025-09-30 + Integrate RLN with Waku API: 2025-07-01, 2025-09-01 + Streamline DevEx: 2025-09-01, 2025-12-31 + Incentivization follow-up: 2025-10-01, 2025-12-31 section nwaku Status Desktop: 2025-07-01, 2025-08-01 RLN Onchain Tree: 2025-07-01, 2025-08-01 From 8c08a833e511493e8812e922b8381a030faf6179 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 6 Jun 2025 12:34:12 +1000 Subject: [PATCH 08/70] metrics are needed for benchmark --- .../integrate_nwaku_in_status_desktop_relay_mode_only.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md b/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md index 5d153be..441c513 100644 --- a/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md +++ b/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md @@ -29,3 +29,5 @@ meaning that if Status were to use RLN (see Scale 1:1 chat messages PoC), then i - [status-go](/FURPS/application/status_go.md): F1, U1, R1, P1, S1-2, +1 **GitHub Milestone and deliverables**: https://github.com/waku-org/pm/milestone/33 + +TODO: add https://github.com/waku-org/nwaku/issues/3202 \ No newline at end of file From dfac54de4701946f740aca1116a8613cbbeedf09 Mon Sep 17 00:00:00 2001 From: pablo Date: Wed, 4 Jun 2025 18:16:43 +0300 Subject: [PATCH 09/70] Segmentation furps --- FURPS/application/segmentation.md | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 FURPS/application/segmentation.md diff --git a/FURPS/application/segmentation.md b/FURPS/application/segmentation.md new file mode 100644 index 0000000..7a15463 --- /dev/null +++ b/FURPS/application/segmentation.md @@ -0,0 +1,33 @@ +# Segmentation FURPS + +## Functionality + +1. Outbound messages larger than the maximum Waku message size are partitioned in several messages to fit in Waku messages. +2. Inbound partitioned messages are reconstructed in a whole message. +3. A capping limit is applied to pre-segmented messages (e.g. 100MB). +4. Messages under the maximum message size are not modified. + +## Usability + +1. Only takes a maximum message size as a parameter. + +## Reliability + +1. Reconstruction can be performed even when parts are received out or order. +2. Reconstruction can be performed as long as 87.5% of the segments is received. +3. If too many parts missing to reconstruct an informative error should be logged. + +## Performance + +1. The payload overhead does not exceed 12.5% + 100 bytes. + +## Supportability + +1. Nim +2. Golang +3. Rust + +## + (Privacy, Anonymity, Deployments) + +1. Segmentation metadata should not reveal information about the original message content +2. Relevant for all Waku nodes From 9893bd8231de0312fad624bf3dd26e71722cac37 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 6 Jun 2025 14:37:29 +1000 Subject: [PATCH 10/70] improve accuracy of segmentation statement --- FURPS/application/segmentation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FURPS/application/segmentation.md b/FURPS/application/segmentation.md index 7a15463..cc1ba85 100644 --- a/FURPS/application/segmentation.md +++ b/FURPS/application/segmentation.md @@ -19,7 +19,7 @@ ## Performance -1. The payload overhead does not exceed 12.5% + 100 bytes. +1. The payload overhead does not exceed 12.5% overall, and 100 bytes per segment. ## Supportability From c9c214fc83918d79e83e810a50c5320469cac339 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 6 Jun 2025 17:20:55 +1000 Subject: [PATCH 11/70] Split Nim improvements to own milestone --- draft-roadmap/README.md | 1 + .../improve_devex_api_twn_metrics_docs.md | 15 ----- draft-roadmap/nim_usage_improvements.md | 55 +++++++++++++++++++ 3 files changed, 56 insertions(+), 15 deletions(-) create mode 100644 draft-roadmap/nim_usage_improvements.md diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 5e2c524..7264612 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -91,6 +91,7 @@ In order of priority. | 11 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | | 12 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | | 13 | Incentivisation follow-up | TBD | TBD | | | | +| 14 | [Nim Usage Improvements](nim_usage_improvements.md) | TBD | | | TBD | | Pushed to 2026 - WebTransport: depending on nim-libp2p (delivery Q4) diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index 289502c..604f50c 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -200,18 +200,3 @@ For: - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) - -## Use Protobuf to transfer data from Wrapper to nwaku library PoC TBC - -**Owner**: nwaku - -**Feature**: TODO - -**FURPS**: -- {F1. copy-paste full furps statement} - -**Checklist**: -- [ ] Specs: link to specs and/or API definition -- [ ] Code: link to GitHub issues/PRs/Epic -- [ ] Dogfood: link to dogfooding session/artefact -- [ ] Docs: links to README.md or docs.waku.org (TBD) \ No newline at end of file diff --git a/draft-roadmap/nim_usage_improvements.md b/draft-roadmap/nim_usage_improvements.md new file mode 100644 index 0000000..f9b259f --- /dev/null +++ b/draft-roadmap/nim_usage_improvements.md @@ -0,0 +1,55 @@ +# Nim Usage Improvements + +**Estimated date of completion**: {Enter date} + +**Resources Required for 2025H2**: +- {roles and % application to it} +- {external services consumed (Vac/IFT)} +- {infrastructure} + +Progress on improving usage of Nim related tooling by proceed with PoCs and collaborating with Nim teams. +This includes adoption of Nimble, usage of VSCode plugin and iteration on C-Binding methodology. + +**FURPS**: + +- [{Feature Name}]({path/to/furps/file}): TODO + +**deliverables**: + +## Dogfood VSCode Plugin and Nimsuggest + +**Owner**: nwaku + +**No FURPS** + +**Output**: Open issues and report on nimsuggest crashes and poor performance when used with nwaku codebase. + +## Migrate nwaku to Nimble PoC + +**Owner**: nwaku + +**Feature**: TODO + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Use Protobuf to transfer data from Wrapper to nwaku library PoC + +**Owner**: nwaku + +**Feature**: TODO + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) \ No newline at end of file From d417717926175dc4d635fa35370053b474ca4cab Mon Sep 17 00:00:00 2001 From: Jazz Turner-Baggs <473256+jazzz@users.noreply.github.com> Date: Wed, 28 May 2025 15:14:48 -0700 Subject: [PATCH 12/70] Add Chat SDK milestone and FURPS --- FURPS/application/chat_sdk.md | 38 +++++++++++++++ FURPS/application/group_chat.md | 31 ++++++++++++ draft-roadmap/chatsdk_groups.md | 72 +++++++++++++++++++++++++++ draft-roadmap/create_chat_sdk.md | 83 ++++++++++++++++++++++++++++++++ 4 files changed, 224 insertions(+) create mode 100644 FURPS/application/chat_sdk.md create mode 100644 FURPS/application/group_chat.md create mode 100644 draft-roadmap/chatsdk_groups.md create mode 100644 draft-roadmap/create_chat_sdk.md diff --git a/FURPS/application/chat_sdk.md b/FURPS/application/chat_sdk.md new file mode 100644 index 0000000..455ea37 --- /dev/null +++ b/FURPS/application/chat_sdk.md @@ -0,0 +1,38 @@ +# Chat SDK + +## Functionality + +1. Accounts can be created in a permissionless way, to communicate on the network. +2. Accounts can send messages to conversations with one other participant. +3. All conversations benefit from forward secrecy and post-compromise security. +4. Sender gets confirmation of message reception by recipient device. +5. Developers can create their own payload types or use supplied basic types. +6. Sdk contains a default message database for developers. +7. Sdk contains a default secrets database for developers. + +## Usability + +1. Secure session setups are non-interactive, allowing messages to be sent without waiting for the recipient's device to come online. +2. Conversations are initiated by sharing invite links out-of-band. +3. Minimal example of the ChatSDK is no more than 25 lines of code. + +## Reliability + +1. Participants in a conversation can eventually determine whether they missed messages. + +## Performance + +1. 10K active SDK users on a single shard add no more than an average of 10Mbps to the total bandwidth; based on clients generating 100 Character ChatMessages, 4 times per minute. + +## Supportability + +1. Messaging integrates Waku RLN, supporting configuration, and limited outbound message per epoch. +2. Payload definitions are versioned to support future protocol updates. +3. library can be used in Go applications +4. library can be used in Rust applications + +## +Privacy + +1. Non-participants in the conversation cannot correlate individual messages to a sender. +2. Non-participants in the conversation cannot correlate conversation to participants. +3. Network observers cannot aggregate account holder activity. \ No newline at end of file diff --git a/FURPS/application/group_chat.md b/FURPS/application/group_chat.md new file mode 100644 index 0000000..50e1e84 --- /dev/null +++ b/FURPS/application/group_chat.md @@ -0,0 +1,31 @@ +# Group Chat + +## Functionality + +1. Accounts can receive a message in multiple locations (e.g. devices) by registering new installations. +2. Accounts can view and remove installations as needed. +3. Accounts can create GroupChats between multiple accounts. +7. Participants can set a group name and description for all participants in the group. +8. Account can view all provisioned installations. +9. Account can revoke other installations in case of a lost device. + +## Usability + + +## Reliability + +1. Group Participants in a conversation can tell if a message is missing, and who sent it. + +## Performance + +1. The number of network messages for a single outbound group message does not scale with the number of group members. + +## Supportability + +1. Developers can create group conversations from Go Applications +2. Developers can create group conversations from Rust Applications + +## +Privacy + +1. Non-participants cannot correlate a group conversation to any of its participants. +2. No identifying information is visible when registering an installation. \ No newline at end of file diff --git a/draft-roadmap/chatsdk_groups.md b/draft-roadmap/chatsdk_groups.md new file mode 100644 index 0000000..aae0e6e --- /dev/null +++ b/draft-roadmap/chatsdk_groups.md @@ -0,0 +1,72 @@ +# Extend ChatSDK with GroupChat + +**Estimated date of completion**: 2025/11/18 + +**Resources Required for 2025H2**: +- 1 Chat Research +- 1 Engineer + +**Risks** +- (Schedule)(Medium) - Task Dependency: This task is dependent on [ChatSDK - Developer Preview](/draft-roadmap/create_chat_sdk.md). Delays there will translate into delays in this project. + +- (Technical)(Medium) - Lack of Libraries: There currently does not exist the required libraries in Nim to build groupchat. This will involve evaluating the potential of calling an existing library via FFI or implementing it from scratch. This can be mitigated by vetting existing library potential should occur early or finding security reviewers for nim implemented cryptography. + +- (Technical)(Low) - Group chat is prone to bugs, even when using existing encryption protocols. Extra time has been alocated to testing and debugging in an effort to mitigate this, however it still remains a risk. + +This milestone is complete when apps like Status can build a chat experience which includes support for multiple device, and multiple participants. + +This is not intended to mark the end of ChatSDK development, but a usable sdk for intial builders. + + +**FURPS**: [Group Chat](/FURPS/application/group_chat.md) + +**GitHub Milestone and deliverables**: + +## [Group Chat ](https://github.com/waku-org/pm/issues/) + +**Owner**: Chat Research + +**Feature**: [Group Chat](/FURPS/application/group_chat.md) + +**FURPS**: + +- F1. Accounts can receive a message in multiple locations (e.g. devices) by registering new installations. +- F2. Accounts can view and remove installations as needed. +- F3. Accounts can create GroupChats between multiple accounts. +- F4. Participants can set a group name and description for all participants in the group. +- F5. Account can view all provisioned installations. +- F6. Account can revoke other installations in case of a lost device. + +- R1. Group Participants in a conversation can tell if a message is missing, and who sent it. + +- P1. The number of network messages for a single outbound group message does not scale with the number of group members. + +- +PRIV1. Non-participants cannot correlate a group conversation to any of its participants. +- +PRIV2. No identifying information is visible when registering an installation. + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + + +## [Group Chat - Bindings ](https://github.com/waku-org/pm/issues/) + +**Owner**: Chat Eng + +**Feature**: [Bindings](/FURPS/application/chat_sdk.md) + +**Dependencies**: [ChatSDK - GroupChat ] + +**FURPS**: + +- S1. Developers can create group conversations from Go Applications +- S2. Developers can create group conversations from Rust Applications + + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) diff --git a/draft-roadmap/create_chat_sdk.md b/draft-roadmap/create_chat_sdk.md new file mode 100644 index 0000000..7274fc5 --- /dev/null +++ b/draft-roadmap/create_chat_sdk.md @@ -0,0 +1,83 @@ +# Create MVP ChatSDK + +**Estimated date of completion**: 2025/08/19 + +**Resources Required for 2025H2**: +- 1 Chat Research +- 1 Engineer + +**Risks** +- (Schedule)(High) - Lack of Nim experience: Nim is a new language to many who will be performing this work, and will require skillup to be effective. Delays and high bug counts are possible due to underestimating effort required to become proficient. Leveraging existing nim knowledge on the team will help mitigate this risk. + +- (Organizational)(Medium) - Direction Alignment: Currently the chat usecase does not have a Security Model and Privacy Model defined from which to drive development. These will need to be drafted while work begins. Given these documents will have wider impact in the org and community there is a risk that consensus will take longer than anticipated, stalling development. Mitigation involves documenting the targeted approach and socializing it as early as possible. Following the Protocol Design Framework outlined for chat usecases will help decompose work areas making partial consensus easier to reach. + +- (Schedule)(Medium) - Cryptographic Primitives: There is an assumption that the cryptographic libraries needed for the success of this project are available and in a usuable state. To mitigate, early tasks will involve spikes to find appropriate libraries and derisk their usage their state. Extra time spent preparing crypto libraries / porting will result in delays. + +- (Technical)(Low) - Uncertain Performance: Performance targets for bandwidth are hard to quantify at this stage. They are listed as `P1` in the FURPS. While these targets appear reasonable (125 bytes per second per user) that remains to be seen. This is hard to mitigate as the SDK cannot be profiled until late in the developement cycle, making adjustments difficult. + +This milestone is complete when a development preview of the Chat SDK is published and made available to the community. + +The SDK is intentionally minimal—focused solely on proving the usability of the core approach. It supports 1:1 chat with out-of-band contact discovery and includes supporting implementations to help developers get up and running quickly. + +The primary goal is to deliver a usable library that developers can build with today, while laying a flexible foundation for future extensions such as group chats and identity. Releasing early as possible maximizes feedback time and interation speed. + +Motivations for the work are described [here](https://forum.vac.dev/t/chatsdk-motivations/501). + + +**FURPS**: [ChatSDK](/FURPS/application/chat_sdk.md) + +**GitHub Milestone and deliverables**: + +## [ChatSDK - Developer Preview ](https://github.com/waku-org/pm/issues/) + +**Owner**: Chat Research + +**Feature**: [Chat SDK](/FURPS/application/chat_sdk.md) + +**FURPS**: +- F1. Accounts can be created in a permissionless way, to communicate on the network. +- F2. Accounts can send messages to conversations with one other participant. +- F3. All conversations benefit from forward secrecy and post-compromise security. +- F4. Sender gets confirmation of message reception by recipient device. +- F5. Developers can create their own payload types or use supplied basic types. +- F6. Sdk contains a default message database for developers. +- F7. Sdk contains a default secrets database for developers. + +- U1. Secure session setups are non-interactive, allowing messages to be sent without waiting for the recipient's device to come online. +- U2. Conversations are initiated by sharing invite links out-of-band. +- U3. Minimal example of the ChatSDK is no more than 25 lines of code. + +- R1. Participants in a conversation can eventually determine whether they missed messages. + +- P1. 10K active SDK users on a single shard add no more than an average of 10Mbps to the total bandwidth; based on clients generating 100 Character ChatMessages, 4 times per minute. + +- S1. Messaging integrates Waku RLN, supporting configuration, and limited outbound message per epoch. +- S2. Payload definitions are versioned to support future protocol updates. + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + + +## [ChatSDK - Bindings ](https://github.com/waku-org/pm/issues/) + +**Owner**: Chat Eng + +**Feature**: [Bindings](/FURPS/application/chat_sdk.md) + +**Dependencies**: [ChatSDK - Developer Preview ] + +**FURPS**: + +For library ChatSDK: +- U3. Minimal example of the ChatSDK is no more than 25 lines of code. +- S3. library can be used in Go applications. +- S4. library can be used in Rust applications + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) From 16c20b1db7c58da64bb412de79bf14a71131cfe6 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 6 Jun 2025 15:45:35 +1000 Subject: [PATCH 13/70] Add rate limit manager furps --- FURPS/application/rate_limit_manager.md | 35 +++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 FURPS/application/rate_limit_manager.md diff --git a/FURPS/application/rate_limit_manager.md b/FURPS/application/rate_limit_manager.md new file mode 100644 index 0000000..ff8c61a --- /dev/null +++ b/FURPS/application/rate_limit_manager.md @@ -0,0 +1,35 @@ +# Rate Limit Manager FURPS + +## Functionality + +1. Rate limit the number of messages passed to the delivery service. +2. The rate limit is set in a form of number of messages per epoch; same format as RLN Relay. +3. Tracks current quota and usage. +4. Messages can be flagged with three priorities level: critical, normal, optional. +5. When remaining message quota is low, critical messages are sent, normal messages are queued and optional messages are dropped. +6. When message quote is exhausted, critical messages are queued on top, normal messages are queued, optional messages are dropped. + +## Usability + +1. Developer can mark messages with relevant priority. +2. Developer can pass messages by batch; with an all-or-none sending strategy. +3. Developer can access total quota and remaining quota values. +4. Message status is available to the developer (queued, dropped, passed to delivery service). + +## Reliability + +1. Errors and status from the underlying delivery service are available to the developer. +2. Queued messages are persisted across restart. +3. Quota status is persisted across restart. + +## Performance + +1. ... + +## Supportability + +1. ... + +## + (Privacy, Anonymity, Deployments) + +1. ... \ No newline at end of file From 0772e952a38238bbe26a1a0e5269ff800c3ae555 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 6 Jun 2025 16:23:58 +1000 Subject: [PATCH 14/70] Tidy up chat sdk milestone --- FURPS/application/chat_sdk.md | 2 +- draft-roadmap/create_chat_sdk.md | 97 +++++++++++++++++++++++++------- 2 files changed, 78 insertions(+), 21 deletions(-) diff --git a/FURPS/application/chat_sdk.md b/FURPS/application/chat_sdk.md index 455ea37..c7322c4 100644 --- a/FURPS/application/chat_sdk.md +++ b/FURPS/application/chat_sdk.md @@ -22,7 +22,7 @@ ## Performance -1. 10K active SDK users on a single shard add no more than an average of 10Mbps to the total bandwidth; based on clients generating 100 Character ChatMessages, 4 times per minute. +1. 10K active SDK users on a single shard add no more than an average of 10Mbps to the total bandwidth; based on clients generating 100 character chat messages, 4 times per minute. ## Supportability diff --git a/draft-roadmap/create_chat_sdk.md b/draft-roadmap/create_chat_sdk.md index 7274fc5..eac7ba5 100644 --- a/draft-roadmap/create_chat_sdk.md +++ b/draft-roadmap/create_chat_sdk.md @@ -1,36 +1,48 @@ # Create MVP ChatSDK -**Estimated date of completion**: 2025/08/19 +**Estimated date of completion**: 19 Aug 2025 **Resources Required for 2025H2**: -- 1 Chat Research -- 1 Engineer +- 1 App/Chat Researcher +- 2 App/Chat Engineers -**Risks** -- (Schedule)(High) - Lack of Nim experience: Nim is a new language to many who will be performing this work, and will require skillup to be effective. Delays and high bug counts are possible due to underestimating effort required to become proficient. Leveraging existing nim knowledge on the team will help mitigate this risk. +The SDK is intentionally minimal—focused solely on proving the usability of the core approach. It supports 1:1 chat with +out-of-band contact discovery and includes supporting implementations to help developers get up and running quickly. -- (Organizational)(Medium) - Direction Alignment: Currently the chat usecase does not have a Security Model and Privacy Model defined from which to drive development. These will need to be drafted while work begins. Given these documents will have wider impact in the org and community there is a risk that consensus will take longer than anticipated, stalling development. Mitigation involves documenting the targeted approach and socializing it as early as possible. Following the Protocol Design Framework outlined for chat usecases will help decompose work areas making partial consensus easier to reach. +The primary goal is to deliver a usable library that developers can build with today, while laying a flexible foundation +for future extensions such as group chats and identity. Releasing early as possible maximizes feedback time and +interaction speed. -- (Schedule)(Medium) - Cryptographic Primitives: There is an assumption that the cryptographic libraries needed for the success of this project are available and in a usuable state. To mitigate, early tasks will involve spikes to find appropriate libraries and derisk their usage their state. Extra time spent preparing crypto libraries / porting will result in delays. +Motivations for development of a new chat protocol are described [here](https://forum.vac.dev/t/chatsdk-motivations/501). -- (Technical)(Low) - Uncertain Performance: Performance targets for bandwidth are hard to quantify at this stage. They are listed as `P1` in the FURPS. While these targets appear reasonable (125 bytes per second per user) that remains to be seen. This is hard to mitigate as the SDK cannot be profiled until late in the developement cycle, making adjustments difficult. +**Risks**: + +- (Schedule)(High) - Lack of Nim experience: Nim is a new language to many who will be performing this work, and will + require skill-up to be effective. Delays and high bug counts are possible due to underestimating effort required to + become proficient. Leveraging existing Nim knowledge in the team will help mitigate this risk. +- (Organizational)(Medium) - Direction Alignment: Currently the chat use case does not have a Security Model and Privacy + Model defined from which to drive development. These will need to be drafted while work begins. Given these documents + will have wider impact in the org and community there is a risk that consensus will take longer than anticipated, + stalling development. Mitigation involves documenting the targeted approach and socializing it as early as possible. + Following the Protocol Design Framework outlined for chat use cases will help decompose work areas making partial consensus easier to reach. +- (Schedule)(Medium) - Cryptographic Primitives: There is an assumption that the cryptographic libraries needed for the + success of this project are available and in a usable state. To mitigate, early tasks will involve spikes to find + appropriate libraries and de-risk their usage their state. Extra time spent preparing crypto libraries / porting will + result in delays. +- (Technical)(Low) - Uncertain Performance: Performance targets for bandwidth are hard to quantify at this stage. They + are listed as `P1` in the FURPS. While these targets appear reasonable (125 bytes per second per user) that remains to + be seen. This is hard to mitigate as the SDK cannot be profiled until late in the development cycle, making + adjustments difficult. This milestone is complete when a development preview of the Chat SDK is published and made available to the community. -The SDK is intentionally minimal—focused solely on proving the usability of the core approach. It supports 1:1 chat with out-of-band contact discovery and includes supporting implementations to help developers get up and running quickly. - -The primary goal is to deliver a usable library that developers can build with today, while laying a flexible foundation for future extensions such as group chats and identity. Releasing early as possible maximizes feedback time and interation speed. - -Motivations for the work are described [here](https://forum.vac.dev/t/chatsdk-motivations/501). - - **FURPS**: [ChatSDK](/FURPS/application/chat_sdk.md) **GitHub Milestone and deliverables**: ## [ChatSDK - Developer Preview ](https://github.com/waku-org/pm/issues/) -**Owner**: Chat Research +**Owner**: App/Chat Research **Feature**: [Chat SDK](/FURPS/application/chat_sdk.md) @@ -49,9 +61,9 @@ Motivations for the work are described [here](https://forum.vac.dev/t/chatsdk-mo - R1. Participants in a conversation can eventually determine whether they missed messages. -- P1. 10K active SDK users on a single shard add no more than an average of 10Mbps to the total bandwidth; based on clients generating 100 Character ChatMessages, 4 times per minute. +- P1. 10K active SDK users on a single shard add no more than an average of 10Mbps to the total bandwidth; based on clients generating 100 character chat messages, 4 times per minute. -- S1. Messaging integrates Waku RLN, supporting configuration, and limited outbound message per epoch. +- S1. Messaging integrates RLN-like rate limit, limiting outbound messages per epoch. - S2. Payload definitions are versioned to support future protocol updates. **Checklist**: @@ -63,9 +75,9 @@ Motivations for the work are described [here](https://forum.vac.dev/t/chatsdk-mo ## [ChatSDK - Bindings ](https://github.com/waku-org/pm/issues/) -**Owner**: Chat Eng +**Owner**: App/Chat Dev -**Feature**: [Bindings](/FURPS/application/chat_sdk.md) +**Feature**: [Chat SDK](/FURPS/application/chat_sdk.md) **Dependencies**: [ChatSDK - Developer Preview ] @@ -81,3 +93,48 @@ For library ChatSDK: - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Create Segmentation Library + +**Owner**: App/Chat Dev + +**Feature**: [Segmentation]() TODO + +**FURPS**: +- + +**Checklist**: +- [ ] Specs: link to specs +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Create Rate Limit Manager + +**Owner**: App/Chat Dev + +**Feature**: [Rate Limit Manager](/FURPS/application/rate_limit_manager.md) + +**FURPS**: +- F1. Rate limit the number of messages passed to the delivery service. +- F2. The rate limit is set in a form of number of messages per epoch; same format as RLN Relay. +- F3. Tracks current quota and usage. +- F4. Messages can be flagged with three priorities level: critical, normal, optional. +- F5. When remaining message quota is low, critical messages are sent, normal messages are queued and optional messages are dropped. +- F6. When message quote is exhausted, critical messages are queued on top, normal messages are queued, optional messages are dropped. + +- U1. Developer can mark messages with relevant priority. +- U2. Developer can pass messages by batch; with an all-or-none sending strategy. +- U3. Developer can access total quota and remaining quota values. +- U4. Message status is available to the developer (queued, dropped, passed to delivery service). + +- R1. Errors and status from the underlying delivery service are available to the developer. +- R2. Queued messages are persisted across restart. +- R3. Quota status is persisted across restart. + + +**Checklist**: +- [ ] Specs: link to specs +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) \ No newline at end of file From 19b25007b1513147111d41a344e4e33e577fde8b Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 6 Jun 2025 16:28:25 +1000 Subject: [PATCH 15/70] rephrase rln integration --- FURPS/application/chat_sdk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FURPS/application/chat_sdk.md b/FURPS/application/chat_sdk.md index c7322c4..3342317 100644 --- a/FURPS/application/chat_sdk.md +++ b/FURPS/application/chat_sdk.md @@ -26,7 +26,7 @@ ## Supportability -1. Messaging integrates Waku RLN, supporting configuration, and limited outbound message per epoch. +1. Messaging integrates RLN-like rate limit, limiting outbound messages per epoch. 2. Payload definitions are versioned to support future protocol updates. 3. library can be used in Go applications 4. library can be used in Rust applications From ff01143c5f2decb68a833729fee332ac9fd19f3e Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 6 Jun 2025 16:32:35 +1000 Subject: [PATCH 16/70] Add segmentation --- draft-roadmap/create_chat_sdk.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/draft-roadmap/create_chat_sdk.md b/draft-roadmap/create_chat_sdk.md index eac7ba5..8e7b8f0 100644 --- a/draft-roadmap/create_chat_sdk.md +++ b/draft-roadmap/create_chat_sdk.md @@ -40,7 +40,7 @@ This milestone is complete when a development preview of the Chat SDK is publish **GitHub Milestone and deliverables**: -## [ChatSDK - Developer Preview ](https://github.com/waku-org/pm/issues/) +## ChatSDK Developer Preview **Owner**: App/Chat Research @@ -98,10 +98,28 @@ For library ChatSDK: **Owner**: App/Chat Dev -**Feature**: [Segmentation]() TODO +**Feature**: [Segmentation](/FURPS/application/segmentation.md) **FURPS**: -- +- F1. Outbound messages larger than the maximum Waku message size are partitioned in several messages to fit in Waku messages. +- F2. Inbound partitioned messages are reconstructed in a whole message. +- F3. A capping limit is applied to pre-segmented messages (e.g. 100MB). +- F4. Messages under the maximum message size are not modified. + +- U1. Only takes a maximum message size as a parameter. + +- R1. Reconstruction can be performed even when parts are received out or order. +- R2. Reconstruction can be performed as long as 87.5% of the segments is received. +- R3. If too many parts missing to reconstruct an informative error should be logged. + +- P1. The payload overhead does not exceed 12.5% overall, and 100 bytes per segment. + +- S1. Nim +- S2. Golang +- S3. Rust + +- +1. Segmentation metadata should not reveal information about the original message content +- +2. Relevant for all Waku nodes **Checklist**: - [ ] Specs: link to specs From 6dc60ff7b4f3af10797234a35ca6ea6e5fc00e00 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 6 Jun 2025 16:33:21 +1000 Subject: [PATCH 17/70] remove link --- draft-roadmap/create_chat_sdk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/draft-roadmap/create_chat_sdk.md b/draft-roadmap/create_chat_sdk.md index 8e7b8f0..2f4cd2d 100644 --- a/draft-roadmap/create_chat_sdk.md +++ b/draft-roadmap/create_chat_sdk.md @@ -73,7 +73,7 @@ This milestone is complete when a development preview of the Chat SDK is publish - [ ] Docs: links to README.md or docs.waku.org (TBD) -## [ChatSDK - Bindings ](https://github.com/waku-org/pm/issues/) +## ChatSDK Bindings **Owner**: App/Chat Dev From b21b1bd3fd1ce641fada7d5cc61d77d928f7e00a Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 6 Jun 2025 16:44:53 +1000 Subject: [PATCH 18/70] Some fixes on group chat --- FURPS/application/group_chat.md | 7 ++-- ....md => extend_chat_sdk_with_group_chat.md} | 42 ++++++++++--------- 2 files changed, 25 insertions(+), 24 deletions(-) rename draft-roadmap/{chatsdk_groups.md => extend_chat_sdk_with_group_chat.md} (61%) diff --git a/FURPS/application/group_chat.md b/FURPS/application/group_chat.md index 50e1e84..7ff5225 100644 --- a/FURPS/application/group_chat.md +++ b/FURPS/application/group_chat.md @@ -5,13 +5,12 @@ 1. Accounts can receive a message in multiple locations (e.g. devices) by registering new installations. 2. Accounts can view and remove installations as needed. 3. Accounts can create GroupChats between multiple accounts. -7. Participants can set a group name and description for all participants in the group. -8. Account can view all provisioned installations. -9. Account can revoke other installations in case of a lost device. +4. Participants can set a group name and description for all participants in the group. +5. Account can view all provisioned installations. +6. Account can revoke other installations in case of a lost device. ## Usability - ## Reliability 1. Group Participants in a conversation can tell if a message is missing, and who sent it. diff --git a/draft-roadmap/chatsdk_groups.md b/draft-roadmap/extend_chat_sdk_with_group_chat.md similarity index 61% rename from draft-roadmap/chatsdk_groups.md rename to draft-roadmap/extend_chat_sdk_with_group_chat.md index aae0e6e..9785ab6 100644 --- a/draft-roadmap/chatsdk_groups.md +++ b/draft-roadmap/extend_chat_sdk_with_group_chat.md @@ -1,30 +1,34 @@ -# Extend ChatSDK with GroupChat +# Extend ChatSDK with Group Chat -**Estimated date of completion**: 2025/11/18 +**Estimated date of completion**: 18 Nov 2025 **Resources Required for 2025H2**: -- 1 Chat Research -- 1 Engineer +- 1 App/Chat Research +- 1 App/Chat Engineer -**Risks** -- (Schedule)(Medium) - Task Dependency: This task is dependent on [ChatSDK - Developer Preview](/draft-roadmap/create_chat_sdk.md). Delays there will translate into delays in this project. +Once done, apps like Status can build a chat experience which includes support for multiple device, and multiple +participants in a given group chat. -- (Technical)(Medium) - Lack of Libraries: There currently does not exist the required libraries in Nim to build groupchat. This will involve evaluating the potential of calling an existing library via FFI or implementing it from scratch. This can be mitigated by vetting existing library potential should occur early or finding security reviewers for nim implemented cryptography. +The features to said group chat will be limited, and extended with further milestones. -- (Technical)(Low) - Group chat is prone to bugs, even when using existing encryption protocols. Extra time has been alocated to testing and debugging in an effort to mitigate this, however it still remains a risk. - -This milestone is complete when apps like Status can build a chat experience which includes support for multiple device, and multiple participants. - -This is not intended to mark the end of ChatSDK development, but a usable sdk for intial builders. +**Risks**: +- (Schedule)(Medium) - Task Dependency: This task is dependent on [ChatSDK - Developer Preview](/draft-roadmap/create_chat_sdk.md). + Delays there will translate into delays to this milestone. +- (Technical)(Medium) - Lack of Libraries: There currently does not exist the required libraries in Nim to build group + chat. This will involve evaluating the potential of calling an existing library via FFI or implementing it from + scratch. This can be mitigated by vetting existing library potential should occur early or finding security reviewers + for nim implemented cryptography. +- (Technical)(Low) - Group chat is prone to bugs, even when using existing encryption protocols. Extra time has been + allocated to testing and debugging in an effort to mitigate this, however it still remains a risk. **FURPS**: [Group Chat](/FURPS/application/group_chat.md) **GitHub Milestone and deliverables**: -## [Group Chat ](https://github.com/waku-org/pm/issues/) +## Add Group Chat -**Owner**: Chat Research +**Owner**: App/Chat Research **Feature**: [Group Chat](/FURPS/application/group_chat.md) @@ -45,26 +49,24 @@ This is not intended to mark the end of ChatSDK development, but a usable sdk fo - +PRIV2. No identifying information is visible when registering an installation. **Checklist**: + - [ ] Specs: link to specs and/or API definition - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## [Group Chat - Bindings ](https://github.com/waku-org/pm/issues/) +## Group Chat Bindings -**Owner**: Chat Eng +**Owner**: App/Chat Dev -**Feature**: [Bindings](/FURPS/application/chat_sdk.md) - -**Dependencies**: [ChatSDK - GroupChat ] +**Feature**: [Bindings](/FURPS/application/group_chat.md) **FURPS**: - S1. Developers can create group conversations from Go Applications - S2. Developers can create group conversations from Rust Applications - **Checklist**: - [ ] Specs: link to specs and/or API definition - [ ] Code: link to GitHub issues/PRs/Epic From d25ed2a1341ddcd1f5e5bd93462de77334dfe45c Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 6 Jun 2025 17:07:33 +1000 Subject: [PATCH 19/70] segmentation is only needed in Nim at first as far as we can tell --- FURPS/application/segmentation.md | 2 -- draft-roadmap/create_chat_sdk.md | 2 -- 2 files changed, 4 deletions(-) diff --git a/FURPS/application/segmentation.md b/FURPS/application/segmentation.md index cc1ba85..cb6ff20 100644 --- a/FURPS/application/segmentation.md +++ b/FURPS/application/segmentation.md @@ -24,8 +24,6 @@ ## Supportability 1. Nim -2. Golang -3. Rust ## + (Privacy, Anonymity, Deployments) diff --git a/draft-roadmap/create_chat_sdk.md b/draft-roadmap/create_chat_sdk.md index 2f4cd2d..c442c20 100644 --- a/draft-roadmap/create_chat_sdk.md +++ b/draft-roadmap/create_chat_sdk.md @@ -115,8 +115,6 @@ For library ChatSDK: - P1. The payload overhead does not exceed 12.5% overall, and 100 bytes per segment. - S1. Nim -- S2. Golang -- S3. Rust - +1. Segmentation metadata should not reveal information about the original message content - +2. Relevant for all Waku nodes From a38fefb05508051e2378ae8d9992f836651faaf1 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Sat, 7 Jun 2025 00:27:10 +1000 Subject: [PATCH 20/70] Specify expectations around packaging --- FURPS/application/chat_sdk.md | 11 ++++++----- FURPS/application/group_chat.md | 6 +++--- FURPS/application/rate_limit_manager.md | 4 ++-- FURPS/application/segmentation.md | 5 +++-- FURPS/core/waku_api.md | 6 +++--- draft-roadmap/README.md | 7 ++++--- ...create_chat_sdk.md => create_chat_sdk_mvp.md} | 16 +++++++++++----- ... extend_chat_sdk_with_group_conversations.md} | 8 ++++---- .../improve_devex_api_twn_metrics_docs.md | 6 +++--- 9 files changed, 39 insertions(+), 30 deletions(-) rename draft-roadmap/{create_chat_sdk.md => create_chat_sdk_mvp.md} (94%) rename draft-roadmap/{extend_chat_sdk_with_group_chat.md => extend_chat_sdk_with_group_conversations.md} (94%) diff --git a/FURPS/application/chat_sdk.md b/FURPS/application/chat_sdk.md index 3342317..8258f87 100644 --- a/FURPS/application/chat_sdk.md +++ b/FURPS/application/chat_sdk.md @@ -2,7 +2,7 @@ ## Functionality -1. Accounts can be created in a permissionless way, to communicate on the network. +1. Accounts can be created in a permission-less way, to communicate on the network. 2. Accounts can send messages to conversations with one other participant. 3. All conversations benefit from forward secrecy and post-compromise security. 4. Sender gets confirmation of message reception by recipient device. @@ -28,11 +28,12 @@ 1. Messaging integrates RLN-like rate limit, limiting outbound messages per epoch. 2. Payload definitions are versioned to support future protocol updates. -3. library can be used in Go applications -4. library can be used in Rust applications +3. library can be used in Go applications; available on pkg.go.dev. +4. library can be used in Rust applications; import via git path. -## +Privacy +## + (Privacy, Anonymity, Deployments) 1. Non-participants in the conversation cannot correlate individual messages to a sender. 2. Non-participants in the conversation cannot correlate conversation to participants. -3. Network observers cannot aggregate account holder activity. \ No newline at end of file +3. Network observers cannot aggregate account holder activity. +4. Nimble package manager is used to build. \ No newline at end of file diff --git a/FURPS/application/group_chat.md b/FURPS/application/group_chat.md index 7ff5225..fcab58d 100644 --- a/FURPS/application/group_chat.md +++ b/FURPS/application/group_chat.md @@ -21,10 +21,10 @@ ## Supportability -1. Developers can create group conversations from Go Applications -2. Developers can create group conversations from Rust Applications +1. Developers can create group conversations from Go Applications; available on pkg.go.dev. +2. Developers can create group conversations from Rust Applications; available on crates.io. -## +Privacy +## + (Privacy, Anonymity, Deployments) 1. Non-participants cannot correlate a group conversation to any of its participants. 2. No identifying information is visible when registering an installation. \ No newline at end of file diff --git a/FURPS/application/rate_limit_manager.md b/FURPS/application/rate_limit_manager.md index ff8c61a..2e96010 100644 --- a/FURPS/application/rate_limit_manager.md +++ b/FURPS/application/rate_limit_manager.md @@ -28,8 +28,8 @@ ## Supportability -1. ... +1. Nim library. ## + (Privacy, Anonymity, Deployments) -1. ... \ No newline at end of file +1. Nimble package manager is used to build. \ No newline at end of file diff --git a/FURPS/application/segmentation.md b/FURPS/application/segmentation.md index cb6ff20..c6ac752 100644 --- a/FURPS/application/segmentation.md +++ b/FURPS/application/segmentation.md @@ -23,9 +23,10 @@ ## Supportability -1. Nim +1. Nim library. ## + (Privacy, Anonymity, Deployments) 1. Segmentation metadata should not reveal information about the original message content -2. Relevant for all Waku nodes +2. Relevant for all Waku nodes. +3. Nimble package manager is used to build. diff --git a/FURPS/core/waku_api.md b/FURPS/core/waku_api.md index 582ddd5..26a1a7e 100644 --- a/FURPS/core/waku_api.md +++ b/FURPS/core/waku_api.md @@ -27,9 +27,9 @@ ## Supportability -1. Nim library -2. Golang library -3. Browser +1. Nim library; import via git path. +2. Golang library; available on pkg.go.dev. +3. Browser; distribution via npmjs.com. ## + (Privacy, Anonymity, Deployments) diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 7264612..a803eca 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -87,11 +87,12 @@ In order of priority. | 7 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | TBD | | 8 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | | 9 | [Formalize Logos Web Apps](formalize_logos_web_apps.md) | 19 Dec | | | | 1.5*6m | -| 10 | [Introduce Chat SDK by enabling basic one-to-one chats]() TODO | TBD | | | | TBD | +| 10 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | TBD | | | | TBD | | 11 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | | 12 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | -| 13 | Incentivisation follow-up | TBD | TBD | | | | -| 14 | [Nim Usage Improvements](nim_usage_improvements.md) | TBD | | | TBD | | +| 13 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | TBD | | | | TBD | +| 14 | Incentivisation follow-up | TBD | TBD | | | | +| 15 | [Nim Usage Improvements](nim_usage_improvements.md) | TBD | | | TBD | | Pushed to 2026 - WebTransport: depending on nim-libp2p (delivery Q4) diff --git a/draft-roadmap/create_chat_sdk.md b/draft-roadmap/create_chat_sdk_mvp.md similarity index 94% rename from draft-roadmap/create_chat_sdk.md rename to draft-roadmap/create_chat_sdk_mvp.md index c442c20..b6578c6 100644 --- a/draft-roadmap/create_chat_sdk.md +++ b/draft-roadmap/create_chat_sdk_mvp.md @@ -1,4 +1,4 @@ -# Create MVP ChatSDK +# Create Chat SDK MVP **Estimated date of completion**: 19 Aug 2025 @@ -47,7 +47,7 @@ This milestone is complete when a development preview of the Chat SDK is publish **Feature**: [Chat SDK](/FURPS/application/chat_sdk.md) **FURPS**: -- F1. Accounts can be created in a permissionless way, to communicate on the network. +- F1. Accounts can be created in a permission-less way, to communicate on the network. - F2. Accounts can send messages to conversations with one other participant. - F3. All conversations benefit from forward secrecy and post-compromise security. - F4. Sender gets confirmation of message reception by recipient device. @@ -66,6 +66,8 @@ This milestone is complete when a development preview of the Chat SDK is publish - S1. Messaging integrates RLN-like rate limit, limiting outbound messages per epoch. - S2. Payload definitions are versioned to support future protocol updates. +- +4. Nimble package manager is used to build. + **Checklist**: - [ ] Specs: link to specs and/or API definition - [ ] Code: link to GitHub issues/PRs/Epic @@ -85,8 +87,9 @@ This milestone is complete when a development preview of the Chat SDK is publish For library ChatSDK: - U3. Minimal example of the ChatSDK is no more than 25 lines of code. -- S3. library can be used in Go applications. -- S4. library can be used in Rust applications + +- S3. library can be used in Go applications; available on pkg.go.dev. +- S4. library can be used in Rust applications; import via git path. **Checklist**: - [ ] Specs: link to specs and/or API definition @@ -114,10 +117,11 @@ For library ChatSDK: - P1. The payload overhead does not exceed 12.5% overall, and 100 bytes per segment. -- S1. Nim +- S1. Nim library. - +1. Segmentation metadata should not reveal information about the original message content - +2. Relevant for all Waku nodes +- +3. Nimble package manager is used to build. **Checklist**: - [ ] Specs: link to specs @@ -148,6 +152,8 @@ For library ChatSDK: - R2. Queued messages are persisted across restart. - R3. Quota status is persisted across restart. +- S1. Nim library. +- +1. Nimble package manager is used to build. **Checklist**: - [ ] Specs: link to specs diff --git a/draft-roadmap/extend_chat_sdk_with_group_chat.md b/draft-roadmap/extend_chat_sdk_with_group_conversations.md similarity index 94% rename from draft-roadmap/extend_chat_sdk_with_group_chat.md rename to draft-roadmap/extend_chat_sdk_with_group_conversations.md index 9785ab6..a73f308 100644 --- a/draft-roadmap/extend_chat_sdk_with_group_chat.md +++ b/draft-roadmap/extend_chat_sdk_with_group_conversations.md @@ -1,4 +1,4 @@ -# Extend ChatSDK with Group Chat +# Extend Chat SDK with Group Conversations **Estimated date of completion**: 18 Nov 2025 @@ -13,7 +13,7 @@ The features to said group chat will be limited, and extended with further miles **Risks**: -- (Schedule)(Medium) - Task Dependency: This task is dependent on [ChatSDK - Developer Preview](/draft-roadmap/create_chat_sdk.md). +- (Schedule)(Medium) - Task Dependency: This task is dependent on [ChatSDK - Developer Preview](create_chat_sdk_mvp.md). Delays there will translate into delays to this milestone. - (Technical)(Medium) - Lack of Libraries: There currently does not exist the required libraries in Nim to build group chat. This will involve evaluating the potential of calling an existing library via FFI or implementing it from @@ -64,8 +64,8 @@ The features to said group chat will be limited, and extended with further miles **FURPS**: -- S1. Developers can create group conversations from Go Applications -- S2. Developers can create group conversations from Rust Applications +- S1. Developers can create group conversations from Go Applications; available on pkg.go.dev. +- S2. Developers can create group conversations from Rust Applications; available on crates.io. **Checklist**: - [ ] Specs: link to specs and/or API definition diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index 604f50c..23d4071 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -138,7 +138,7 @@ Spec delivery not included. - R1. Sends a message using peer-to-peer reliability (service node redundancy, optional store confirmation) - R2. Receives messages using peer-to-peer reliability (service node redundancy, periodic store query, periodic filter ping) -For S3. Browser +For S3. Browser; distribution via npmjs.com. **Checklist**: - [ ] Specs: link to specs and/or API definition @@ -166,8 +166,8 @@ For S3. Browser - R2. Receives messages using peer-to-peer reliability (service node redundancy, periodic store query, periodic filter ping) For: -- S1. Nim library; used by chat SDK -- S2. Golang library; used by status-go +- S1. Nim library; import via git path. +- S2. Golang library; available on pkg.go.dev. **Checklist**: - [ ] Specs: link to specs and/or API definition From 37226f90a1004ac3d2febbaa436d6a0ea7a39232 Mon Sep 17 00:00:00 2001 From: Sasha Date: Wed, 4 Jun 2025 00:52:17 +0200 Subject: [PATCH 21/70] add browser furps --- FURPS/application/js-waku.md | 14 ++--------- FURPS/core/waku_api.md | 2 ++ .../improve_devex_api_twn_metrics_docs.md | 23 ++++++++++++++++++- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/FURPS/application/js-waku.md b/FURPS/application/js-waku.md index c03ccb4..47e2d6b 100644 --- a/FURPS/application/js-waku.md +++ b/FURPS/application/js-waku.md @@ -1,27 +1,17 @@ # JS-Waku FURPS -TODO - ## Functionality -1. ... - ## Usability -1. ... - ## Reliability -1. ... +1. From an operating state, a node can resume transmitting messages within 1 second after disconnection; in a network with 1 bootstrap node, 100 service nodes and 500 browser nodes (**Vac-DST**) ## Performance -1. ... +1. From a cold start, a node can start transmitting messages within 5 seconds; in a network with 1 bootstrap node, 100 service nodes and 500 browser nodes (**Vac-DST**) ## Supportability -1. ... - ## + (Privacy, Anonymity, Deployments) - -1. ... \ No newline at end of file diff --git a/FURPS/core/waku_api.md b/FURPS/core/waku_api.md index 26a1a7e..4b5ebc9 100644 --- a/FURPS/core/waku_api.md +++ b/FURPS/core/waku_api.md @@ -9,6 +9,7 @@ 3. Support relay node operation mode. 4. Does automatic peer discovery based on the node platform and operation mode. 5. Returns health and connectivity information using proven heuristics. +6. Previously discovered peers are persisted across restarted, and potentially used for future connections. ## Usability @@ -17,6 +18,7 @@ 3. Developers do not need to specify the protocols used to send and receive messages; it is deduced from the mode of operation. 4. Developers pass and receive data to the API in types native to the wrapping language. 5. By default, auto-sharding is applied, meaning developers do not need to be concerned by sharding; pubsub topics are never exposed. +6. Developers only need to handle errors in cases of irretrievable failure requiring end-user action. Internal errors are not bubbled up if they can be recovered internally. ## Reliability diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index 23d4071..2efebd5 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -3,7 +3,7 @@ **Estimated date of completion**: {Enter date} **Resources Required for 2025H2**: -- {roles and % application to it} +- 1 js-waku engineer TODO - {external services consumed (Vac/IFT)} - {infrastructure} @@ -130,11 +130,13 @@ Spec delivery not included. - F2. Support edge node operation mode. - F4. Does automatic peer discovery based on the node platform and operation mode. - F5. Returns health and connectivity information using proven heuristics. +- F6. Previously discovered peers are persisted across restarted, and potentially used for future connections. - U1. When setting up a Waku node, no need to specify what protocols to mount, only an operational mode (edge or relay). - U2. Disconnection detection and recovery, and other peer management matters are automatically handled. - U3. Developers do not need to specify the protocols used to send and receive messages; it is deduced from the mode of operation. - U4. Developers pass and receive data to the API in types native to the wrapping language. - U5. By default, auto-sharding is applied, meaning developers do not need to be concerned by sharding; pubsub topics are never exposed. +- U6. Developers only need to handle errors in cases of irretrievable failure requiring end-user action. Internal errors are not bubbled up if they can be recovered internally. - R1. Sends a message using peer-to-peer reliability (service node redundancy, optional store confirmation) - R2. Receives messages using peer-to-peer reliability (service node redundancy, periodic store query, periodic filter ping) @@ -157,11 +159,13 @@ For S3. Browser; distribution via npmjs.com. - F3. Support relay node operation mode. - F4. Does automatic peer discovery based on the node platform and operation mode. - F5. Returns health and connectivity information using proven heuristics. +- F6. Previously discovered peers are persisted across restarted, and potentially used for future connections. - U1. When setting up a Waku node, no need to specify what protocols to mount, only an operational mode (edge or relay). - U2. Disconnection detection and recovery, and other peer management matters are automatically handled. - U3. Developers do not need to specify the protocols used to send and receive messages; it is deduced from the mode of operation. - U4. Developers pass and receive data to the API in types native to the wrapping language. - U5. By default, auto-sharding is applied, meaning developers do not need to be concerned by sharding; pubsub topics are never exposed. +- U6. Developers only need to handle errors in cases of irretrievable failure requiring end-user action. Internal errors are not bubbled up if they can be recovered internally. - R1. Sends a message using peer-to-peer reliability (service node redundancy, optional store confirmation) - R2. Receives messages using peer-to-peer reliability (service node redundancy, periodic store query, periodic filter ping) @@ -200,3 +204,20 @@ For: - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Optimise Browser Bootstrapping + +**Owner**: js-waku + +**Feature**: [js-waku](/FURPS/application/js-waku.md) + +**FURPS**: + +- R1. From an operating state, a node can resume transmitting messages within 1 second after disconnection; in a network with 1 bootstrap node, 100 service nodes and 500 browser nodes (**Vac-DST**) +- P1. From a cold start, a node can start transmitting messages within 5 seconds; in a network with 1 bootstrap node, 100 service nodes and 500 browser nodes (**Vac-DST**) + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) From 31a67447e49eec166064461ce707844486a15856 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Sat, 7 Jun 2025 01:05:22 +1000 Subject: [PATCH 22/70] add metrics in libwaku --- FURPS/application/nwaku.md | 1 + FURPS/application/status_go.md | 2 +- ...nwaku_in_status_desktop_relay_mode_only.md | 21 +++++++++++++++++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/FURPS/application/nwaku.md b/FURPS/application/nwaku.md index 88d2de1..407a70f 100644 --- a/FURPS/application/nwaku.md +++ b/FURPS/application/nwaku.md @@ -4,6 +4,7 @@ 1. nwaku can be compiled as a library, `libwaku`. 2. libwaku exposes c-bindings. +3. Metrics can be enabled in libwaku. ## Usability diff --git a/FURPS/application/status_go.md b/FURPS/application/status_go.md index 338885e..7c924db 100644 --- a/FURPS/application/status_go.md +++ b/FURPS/application/status_go.md @@ -2,7 +2,7 @@ ## Functionality -1. Nwaku is the used Waku implementation for relay mode. +1. Nwaku is the used Waku implementation for relay mode. ## Usability diff --git a/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md b/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md index 441c513..2ac1d95 100644 --- a/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md +++ b/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md @@ -25,9 +25,26 @@ meaning that if Status were to use RLN (see Scale 1:1 chat messages PoC), then i **FURPS**: -- [nwaku](/FURPS/application/nwaku.md): F1-2, S1-2, +1 +- [nwaku](/FURPS/application/nwaku.md): F1-3, S1-2, +1 - [status-go](/FURPS/application/status_go.md): F1, U1, R1, P1, S1-2, +1 **GitHub Milestone and deliverables**: https://github.com/waku-org/pm/milestone/33 -TODO: add https://github.com/waku-org/nwaku/issues/3202 \ No newline at end of file +## Enable Waku Metrics in libwaku + +**Owner**: nwaku + +**Feature**: [nwaku](/FURPS/application/nwaku.md) + +**FURPS**: +- F3. Metrics can be enabled in libwaku. + +https://github.com/waku-org/nwaku/issues/3202 + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +https://github.com/waku-org/nwaku/issues/3202 \ No newline at end of file From 9a4210c154b953215d16f10f7b3e995f5083ab24 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Mon, 9 Jun 2025 17:28:08 +1000 Subject: [PATCH 23/70] drop local rate limit --- draft-roadmap/README.md | 34 +++++++++---------- ...and_scaling_foundation_for_private_chat.md | 12 +++---- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index a803eca..e9d80fc 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -76,23 +76,23 @@ Testing out new format, once approved: In order of priority. -| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | -|----------|------------------------------------------------------------------------------------------------------------|----------|----------|---------|-------|----------| -| 1 | [Introduce E2E Reliability in Status Communities](introduce_e2e_reliability_in_status.md) | 31 Aug | | | | 1*2m | -| 2 | [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) | 31 Oct | | | | 1*2w | -| 3 | [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) | Drop | | | | | -| 4 | [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) | 20 Jun | | | | | -| 5 | [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | 30 Jun | | | | | -| 6 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5*1m | | | | -| 7 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | TBD | -| 8 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | -| 9 | [Formalize Logos Web Apps](formalize_logos_web_apps.md) | 19 Dec | | | | 1.5*6m | -| 10 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | TBD | | | | TBD | -| 11 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | -| 12 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | -| 13 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | TBD | | | | TBD | -| 14 | Incentivisation follow-up | TBD | TBD | | | | -| 15 | [Nim Usage Improvements](nim_usage_improvements.md) | TBD | | | TBD | | +| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | +|----------|------------------------------------------------------------------------------------------------------------|----------------|----------|---------|-------|----------| +| 1 | [Introduce E2E Reliability in Status Communities](introduce_e2e_reliability_in_status.md) | 31 Aug | | | | 1*2m | +| 2 | [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) | 31 Oct | | | | 1*2w | +| 3 | [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) | Completed/Drop | | | | | +| 4 | [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) | 20 Jun (TBC) | | | | | +| 5 | [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | 30 Jun | | | | | +| 6 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5*1m | | | | +| 7 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | TBD | +| 8 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | +| 9 | [Formalize Logos Web Apps](formalize_logos_web_apps.md) | 19 Dec | | | | 1.5*6m | +| 10 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | TBD | | | | TBD | +| 11 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | +| 12 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | +| 13 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | TBD | | | | TBD | +| 14 | Incentivisation follow-up | TBD | TBD | | | | +| 15 | [Nim Usage Improvements](nim_usage_improvements.md) | TBD | | | TBD | | Pushed to 2026 - WebTransport: depending on nim-libp2p (delivery Q4) diff --git a/draft-roadmap/hardening_and_scaling_foundation_for_private_chat.md b/draft-roadmap/hardening_and_scaling_foundation_for_private_chat.md index 5c8080b..cc80266 100644 --- a/draft-roadmap/hardening_and_scaling_foundation_for_private_chat.md +++ b/draft-roadmap/hardening_and_scaling_foundation_for_private_chat.md @@ -1,11 +1,11 @@ # [Hardening and Scaling Foundations for Private Chats](https://github.com/waku-org/pm/milestone/40) -**Estimated date of completion**: TODO (only Private chat rate limit PoC remaining) +**Estimated date of completion**: Completed with reduced scope -**Resources Required for 2025H2**: TODO -- {roles and % application to it} -- {external services consumed (Vac/IFT)} -- {infrastructure} +**Resources Required for 2025H2**: +- Waku App/Chat engineer: support Vac-DST and Vac-QA +- Vac-DST: status-backend benchmarks +- Vac-QA: Mobile specific scenarios done on status-backend With this milestone, we establish a foundation for scaling one-to-one and private group chats to support a larger number of users. Additionally, we will harden the underlying protocols by studying and refining the current @@ -35,7 +35,7 @@ either removed or disabled by default to ensure accurate testing and evaluation. 1. **Specify Private Chat Protocol**: We stop the exercise here, meaning that we don't formally update/add to Status specs/RFC. A justification to write a new protocol stack has been [published](https://forum.vac.dev/t/chatsdk-motivations/501). -2. **Private chat rate limit PoC**: Work to be completed to help with reliability. No further RLN integration planned. +2. **Private chat rate limit PoC**: Dropped due to higher effort and lower value than anticipated, due to the move towards a new chat protocol. 3. **Global Network Metrics**: Moved to a new milestone - [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md). 4. **Baseline benchmarks**: Handing over to Vac/DST 5. **status-cli**: Handing over to Vac/QA \ No newline at end of file From 936537b089bccac31899ab68f86d540d8ff3c644 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Mon, 9 Jun 2025 17:33:05 +1000 Subject: [PATCH 24/70] Remove dupe item --- draft-roadmap/README.md | 2 +- .../improve_devex_api_twn_metrics_docs.md | 14 -------------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index e9d80fc..2ce3b03 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -82,7 +82,7 @@ In order of priority. | 2 | [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) | 31 Oct | | | | 1*2w | | 3 | [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) | Completed/Drop | | | | | | 4 | [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) | 20 Jun (TBC) | | | | | -| 5 | [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | 30 Jun | | | | | +| 5 | [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | 30 Jun (H1) | | | | | | 6 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5*1m | | | | | 7 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | TBD | | 8 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index 2efebd5..3f3cd45 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -50,20 +50,6 @@ For S2. For Web apps as a developer library. - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## [Improved Browser Bootstrap](https://github.com/waku-org/pm/issues/290) - -**Owner**: js-waku - -**Feature**: TODO see https://github.com/waku-org/pm/pull/308 - -**FURPS**: TODO - -**Checklist**: -- [ ] Specs: link to specs and/or API definition -- [ ] Code: link to GitHub issues/PRs/Epic -- [ ] Dogfood: link to dogfooding session/artefact -- [ ] Docs: links to README.md or docs.waku.org (TBD) - ## [Waku Sync](https://github.com/waku-org/pm/issues/132) **Owner**: core research From 5fc036f032e1d8977768db4420d9622a2185e1b9 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Mon, 9 Jun 2025 18:33:46 +1000 Subject: [PATCH 25/70] Add Logos Web apps --- FURPS/application/qaku.md | 54 ++++++++++++ draft-roadmap/README.md | 2 +- .../formalize_and_expand_waku_web_apps.md | 82 +++++++++++++++++++ draft-roadmap/formalize_logos_web_apps.md | 19 ----- 4 files changed, 137 insertions(+), 20 deletions(-) create mode 100644 FURPS/application/qaku.md create mode 100644 draft-roadmap/formalize_and_expand_waku_web_apps.md delete mode 100644 draft-roadmap/formalize_logos_web_apps.md diff --git a/FURPS/application/qaku.md b/FURPS/application/qaku.md new file mode 100644 index 0000000..74dffbe --- /dev/null +++ b/FURPS/application/qaku.md @@ -0,0 +1,54 @@ +# Qaku FURPS + +## Functionality + +1. An owner can create public Q&As. +2. An owner can create a private Q&As where only selected participants can read the data, and participate. +3. Owner can close a Q&A, no more questions or answers are accepted. +4. Owner can schedule a Q&A to be opened in the future, allowing questions and answer only from then. +5. Owner can answer questions from a Q&A, an answer is attached to one and only one question; multiple answers per question are allowed. +6. Owner can moderate user questions by hiding them to users, such questions are still accessible as “moderated” to owner. +7. Owner can add a poll to an existing Q&A. +8. Users can answer polls, limited to one answer per poll per user. +9. Owners can close poll, stopping further answers to be accepted. +10. Owner can add and delete admins for a given Q&A. +11. Admins have same permissions as owners on Q&A, apart from adding and deleting admins. +12. All users are identified by an in-browser key pair generated upon first interaction. +13. Users can post questions on a Q&A they have access to. +14. Questions have a published timestamp, upvotes, related answers properties. +15. Users can upvote questions (1 upvote per user). +16. Users can export & import their in-browser identifying key pair (e.g. to multiple devices). +17. Owner have a list of Q&As they created. +18. Users have a list of Q&As they visited. +19. Owner can use ENS to prove they created a given Q&A. +20. Owner’s app backups data on Codex via local Codex node. +21. Data is automatically retrieved from Codex via local Codex node. +22. User can retrieve data from Codex network if missing from Waku (PoC). + +## Usability + +1. Users participating in a Q&A only need the Q&A ID and password (if encrypted). +2. Web3/wallet integration is optional for developers. +3. Developers do not need to understand or know about Waku to integrate Qaku. +4. Developers and Users do not need to understand Codex beyond local node setup to integrate Qaku. +5. Qaku Library API informs whether an outbound message (question, answer, poll, vote, etc) irremediably failed to send. +6. Qaku Library API informs whether an inbound message is missing from a Q&A. +7. The Qaku JS library contains all the functionality and exposes clean API. + +## Reliability + +1. The app connects within 30 seconds of starting. + +## Performance + +1. A user can load previously visited Q&A with a max of 100 questions+responses within 10 seconds. + +## Supportability + +1. The Qaku JS library works in both browser and NodeJS environments, desktop and mobile browser. +2. Codex local node related features are only supported on desktop. +3. Retrieval of data from Codex network from browser mobile and desktop (PoC). + +## + (Privacy, Anonymity, Deployments) + +1. Qaku's deployment uses The Waku Network \ No newline at end of file diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 2ce3b03..43b8ce1 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -86,7 +86,7 @@ In order of priority. | 6 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5*1m | | | | | 7 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | TBD | | 8 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | -| 9 | [Formalize Logos Web Apps](formalize_logos_web_apps.md) | 19 Dec | | | | 1.5*6m | +| 9 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5*6m | | 10 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | TBD | | | | TBD | | 11 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | | 12 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | diff --git a/draft-roadmap/formalize_and_expand_waku_web_apps.md b/draft-roadmap/formalize_and_expand_waku_web_apps.md new file mode 100644 index 0000000..0982274 --- /dev/null +++ b/draft-roadmap/formalize_and_expand_waku_web_apps.md @@ -0,0 +1,82 @@ +# Formalize and Expand Waku Web Apps + +**Estimated date of completion**: 19 Dec 2025 + +**Resources Required for 2025H2**: +- 1.5 engineers for 6 months + +Harden select Waku Web apps by extracting libraries and writing protocol specifications: + +- Qaku (Q&A over Waku): harden Waku to MVP level, so it can be used for IFT Town Halls, and Logos physical events. + - Integrate SDS and write specs. +- Logos Operators Forum: Build a web forum PoC over Waku to serve as a basis for a decentralized Logos forum (opchan). + - Extend the Forum PoC to new FURPS, to align with Logos Movement needs. + +Explore Codex x Waku integration, in Qaku and one other application. + +Develop 10 Waku Web Apps PoC, and push them to the community to "teach them how to hunt" as well as inspire developers +to build over Waku. + +**FURPS**: See deliverables + +**Deliverables**: + +## [Codex for message archival PoC](https://github.com/waku-org/pm/issues/293) + +TODO + +## [Reliable Qaku & library](https://github.com/waku-org/pm/issues/287) + +**Owner**: App/Chat Dev + +**Feature**: [Qaku](/FURPS/application/qaku.md) + +**FURPS**: +- F1-21 +- U1-7 +- R1 +- P1 +- S1-3 + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## Build Ten Waku Web Apps + +**Owner**: App/Chat Dev + +**No FURPS** + +**Output**: 10 working Waku Web apps of various sort. + +- The apps needs to be functioning and deployed, PoC level. +- Broadcast to the community must happen (Logos/Waku Discord, Logos/Vac Forums, conference talks, Twitter, etc). + +**Checklist**: +- ~[ ] Specs: link to specs and/or API definition~ +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- ~[ ] Docs: links to README.md or docs.waku.org (TBD)~ +- [ ] Promote the app + +## Build One Waku Logos Core App + +**Owner**: App/Chat Dev + +**No FURPS** + +**Output**: 1 working Logos Core App. + +- The apps needs to be functioning, PoC level. +- Broadcast to the community must happen (Logos/Waku Discord, Logos/Vac Forums, conference talks, Twitter, etc). +- May use Waku SDK or Chat SDK. + +**Checklist**: +- ~[ ] Specs: link to specs and/or API definition~ +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- ~[ ] Docs: links to README.md or docs.waku.org (TBD)~ +- [ ] Promote the app \ No newline at end of file diff --git a/draft-roadmap/formalize_logos_web_apps.md b/draft-roadmap/formalize_logos_web_apps.md deleted file mode 100644 index c501049..0000000 --- a/draft-roadmap/formalize_logos_web_apps.md +++ /dev/null @@ -1,19 +0,0 @@ -# Formalize Logos Web Apps - -**Estimated date of completion**: 19 Dec 2025 - -**Resources Required for 2025H2**: -- 1.5 engineers for 6 months - -Develop Web applications for Logos, using the Logos technology stack: - -- Qaku (Q&A over Waku): harden Waku to MVP level, so it can be used for IFT Town Halls, and Logos physical events -- Logos Operators Forum: Build a web forum PoC over Waku to serve as a basis for a decentralized Logos forum (opchan). - -As well as leveraging Qaku to explore Codex x Waku integration. - -**FURPS**: - -- [{Feature Name}]({path/to/furps/file}): {list of furps: F1, etc} TODO - -**Milestone and deliverables**: https://github.com/waku-org/pm/milestone/42 From 65be43dbf59b6f815efec51a972dfe31977a4382 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Mon, 9 Jun 2025 18:56:41 +1000 Subject: [PATCH 26/70] add forum FURPS --- FURPS/application/forum.md | 41 ++++++++++++++ .../formalize_and_expand_waku_web_apps.md | 55 ++++++++++++++++++- 2 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 FURPS/application/forum.md diff --git a/FURPS/application/forum.md b/FURPS/application/forum.md new file mode 100644 index 0000000..3e91974 --- /dev/null +++ b/FURPS/application/forum.md @@ -0,0 +1,41 @@ +# Waku Forum FURPS + +## Functionality + +1. Users identify themselves by signing with their Bitcoin key +2. Only users owning Logos ordinal can participate; usage of a centralized API to get current Logos ordinal owners may be needed. +3. Any user (authenticated or not) can see the content; basic encryption functionality +4. Existing cells can be listed +5. Cell can be created with a name, description, icon; icon size will be restricted; created is solo admin +6. Post can be created in a cell with a title and body; text only +7. Comments can be made on posts and other comments; text only +8. Posts can be upvoted +9. Users can setup a call sign; bitcoin identity operator unique name - remains - ordinal used as avatar; OP number out-of-scope (not onchain) +10. Cell admin can mark posts and comments as moderated +11. Cell admin can mark users as moderated + +## Usability + +1. A user can see all topics through all cells +2. A user can see the number of active members per cell; deduced from retrievable activity +3. Users can bookmark posts and topics; local only +4. Users can sort topics per new or top +5. The ordinal picture and information are used to identify user, in addition to the custom nickname +6. Moderated users, comments, and posts are hidden +7. Users do not need to sign every message with their wallet +8. Users do not need any software beyond a Bitcoin wallet browser extension +9. This includes a prototype UI to dogfood the PoC; Nice UI will be handled by Comms Hubs team +10. A library with clear API is produced to enable frontend developers to use it with a nice UI + +## Reliability + +1. Data is ephemeral; and will disappear after some time; No effort spent on topic or comment durability, out of scope for now. +2. End-to-end reliability strategy will be employed to enable app instance to know about missing messages and attempt to retrieve them. + +## Performance + +None + +## Supportability + +1. Web app with Bitcoin wallet browser extension \ No newline at end of file diff --git a/draft-roadmap/formalize_and_expand_waku_web_apps.md b/draft-roadmap/formalize_and_expand_waku_web_apps.md index 0982274..33f5b40 100644 --- a/draft-roadmap/formalize_and_expand_waku_web_apps.md +++ b/draft-roadmap/formalize_and_expand_waku_web_apps.md @@ -1,4 +1,4 @@ -# Formalize and Expand Waku Web Apps +# Logos Web Apps **Estimated date of completion**: 19 Dec 2025 @@ -21,10 +21,40 @@ to build over Waku. **Deliverables**: -## [Codex for message archival PoC](https://github.com/waku-org/pm/issues/293) +## [Forum PoC](https://github.com/waku-org/pm/issues/292) + +**Owner**: App/Chat Dev + +**Feature**: [Waku Forum](/FURPS/application/forum.md) + +**FURPS**: +- F1-11 +- U1-10 +- R1-2 + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## [Codex for Message Archival PoC](https://github.com/waku-org/pm/issues/293) TODO +**Owner**: {one waku subteam} + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + ## [Reliable Qaku & library](https://github.com/waku-org/pm/issues/287) **Owner**: App/Chat Dev @@ -79,4 +109,23 @@ TODO - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact - ~[ ] Docs: links to README.md or docs.waku.org (TBD)~ -- [ ] Promote the app \ No newline at end of file +- [ ] Promote the app + +## Expand Waku Forum MVP + +TODO + +**Owner**: App/Chat Dev + +**Feature**: [Waku Forum](/FURPS/application/forum.md) + +**FURPS**: +- F1-11 +- U1-10 +- R1-2 + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) \ No newline at end of file From 5019a96830305a7ef44f5a239a270038d58afdde Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Mon, 9 Jun 2025 19:27:25 +1000 Subject: [PATCH 27/70] Extend Waku Forum scope --- FURPS/application/forum.md | 57 ++++++++++++------- .../formalize_and_expand_waku_web_apps.md | 22 ++++--- 2 files changed, 49 insertions(+), 30 deletions(-) diff --git a/FURPS/application/forum.md b/FURPS/application/forum.md index 3e91974..0942a83 100644 --- a/FURPS/application/forum.md +++ b/FURPS/application/forum.md @@ -2,30 +2,38 @@ ## Functionality -1. Users identify themselves by signing with their Bitcoin key -2. Only users owning Logos ordinal can participate; usage of a centralized API to get current Logos ordinal owners may be needed. -3. Any user (authenticated or not) can see the content; basic encryption functionality -4. Existing cells can be listed -5. Cell can be created with a name, description, icon; icon size will be restricted; created is solo admin -6. Post can be created in a cell with a title and body; text only -7. Comments can be made on posts and other comments; text only -8. Posts can be upvoted -9. Users can setup a call sign; bitcoin identity operator unique name - remains - ordinal used as avatar; OP number out-of-scope (not onchain) -10. Cell admin can mark posts and comments as moderated -11. Cell admin can mark users as moderated +1. Users identify themselves by signing with their Bitcoin key. +2. Only users owning Logos ordinal or an ENS can create a cell. +3. Any user (authenticated or not) can see the content; basic encryption functionality. +4. Existing cells can be listed. +5. Cell can be created with a name, description, icon; icon size will be restricted; created is solo admin. +6. Post can be created in a cell with a title and body; text only. +7. Comments can be made on posts and other comments; text only. +8. Posts can be upvoted. +9. Users can setup a call sign; bitcoin identity operator unique name - remains - ordinal used as avatar; OP number out-of-scope (not onchain). +10. Cell admin can mark posts and comments as moderated. +11. Cell admin can mark users as moderated. +12. Users can identify themselves by signing with their Web3 key. +13. Posts, comments and cells have a relevance index, which can be used to order or hide them in the UX. +14. The relevance index is lowered for post and comments which are moderated, or from a moderated user. +15. The relevance index is increased if the author owns an ENS or Logos ordinal. +16. The relevance index is increased if the post or comment is upvoted by an ENS or Logos ordinal owner. +17. The relevance index is increased if the post has a comment from an ENS or Logos ordinal owner. ## Usability -1. A user can see all topics through all cells -2. A user can see the number of active members per cell; deduced from retrievable activity -3. Users can bookmark posts and topics; local only -4. Users can sort topics per new or top -5. The ordinal picture and information are used to identify user, in addition to the custom nickname -6. Moderated users, comments, and posts are hidden -7. Users do not need to sign every message with their wallet -8. Users do not need any software beyond a Bitcoin wallet browser extension -9. This includes a prototype UI to dogfood the PoC; Nice UI will be handled by Comms Hubs team -10. A library with clear API is produced to enable frontend developers to use it with a nice UI +1. A user can see all topics through all cells. +2. A user can see the number of active members per cell; deduced from retrievable activity. +3. Users can bookmark posts and topics; local only. +4. Users can sort topics per new or top. +5. The ordinal picture and information are used to identify user, in addition to the custom nickname. +6. Moderated users, comments, and posts are hidden. +7. Users do not need to sign every message with their wallet. +8. Users do not need any software beyond a Bitcoin wallet browser extension. +9. This includes a prototype UI to dogfood the PoC; Nice UI will be handled by Comms Hubs team. +10. A library with clear API is produced to enable frontend developers to use it with a nice UI. +11. ENS holders can choose to use an ENS for display purposes. +12. The relevance index is used to push most relevant posts and comments on top. ## Reliability @@ -38,4 +46,9 @@ None ## Supportability -1. Web app with Bitcoin wallet browser extension \ No newline at end of file +1. Web app with Bitcoin wallet browser extension + +## + (Privacy, Anonymity, Deployments) + +1. A centralised API is used to get Bitcoin ordinal information. +2. The Forum uses The Waku Network. \ No newline at end of file diff --git a/draft-roadmap/formalize_and_expand_waku_web_apps.md b/draft-roadmap/formalize_and_expand_waku_web_apps.md index 33f5b40..0fdbf7a 100644 --- a/draft-roadmap/formalize_and_expand_waku_web_apps.md +++ b/draft-roadmap/formalize_and_expand_waku_web_apps.md @@ -10,7 +10,7 @@ Harden select Waku Web apps by extracting libraries and writing protocol specifi - Qaku (Q&A over Waku): harden Waku to MVP level, so it can be used for IFT Town Halls, and Logos physical events. - Integrate SDS and write specs. - Logos Operators Forum: Build a web forum PoC over Waku to serve as a basis for a decentralized Logos forum (opchan). - - Extend the Forum PoC to new FURPS, to align with Logos Movement needs. + - Added: Extend the Forum PoC to new FURPS, to align with Logos Movement needs. Explore Codex x Waku integration, in Qaku and one other application. @@ -61,7 +61,7 @@ TODO **Feature**: [Qaku](/FURPS/application/qaku.md) -**FURPS**: +**FURPS**: (see GitHub [issue](https://github.com/waku-org/pm/issues/292)) - F1-21 - U1-7 - R1 @@ -111,18 +111,24 @@ TODO - ~[ ] Docs: links to README.md or docs.waku.org (TBD)~ - [ ] Promote the app -## Expand Waku Forum MVP - -TODO +## Open Forum to Web3 Users and Anons **Owner**: App/Chat Dev **Feature**: [Waku Forum](/FURPS/application/forum.md) **FURPS**: -- F1-11 -- U1-10 -- R1-2 +- F2. Only users owning Logos ordinal or an ENS can create a cell. +- F12. Users can identify themselves by signing with their Web3 key. +- F13. Posts, comments and cells have a relevance index, which can be used to order or hide them in the UX. +- F14. The relevance index is lowered for post and comments which are moderated, or from a moderated user. +- F15. The relevance index is increased if the author owns an ENS or Logos ordinal. +- F16. The relevance index is increased if the post or comment is upvoted by an ENS or Logos ordinal owner. +- F17. The relevance index is increased if the post has a comment from an ENS or Logos ordinal owner. + +- U11. ENS holders can choose to use an ENS for display purposes. +- U12. The relevance index is used to push most relevant posts and comments on top. + **Checklist**: - [ ] Specs: link to specs and/or API definition From 3921d7444237fbe3fe17307e343be741d768cdf3 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Mon, 9 Jun 2025 19:31:09 +1000 Subject: [PATCH 28/70] be explicit about anons --- FURPS/application/forum.md | 1 + draft-roadmap/formalize_and_expand_waku_web_apps.md | 1 + 2 files changed, 2 insertions(+) diff --git a/FURPS/application/forum.md b/FURPS/application/forum.md index 0942a83..845d160 100644 --- a/FURPS/application/forum.md +++ b/FURPS/application/forum.md @@ -19,6 +19,7 @@ 15. The relevance index is increased if the author owns an ENS or Logos ordinal. 16. The relevance index is increased if the post or comment is upvoted by an ENS or Logos ordinal owner. 17. The relevance index is increased if the post has a comment from an ENS or Logos ordinal owner. +18. Anonymous users can upvote, comments and post. ## Usability diff --git a/draft-roadmap/formalize_and_expand_waku_web_apps.md b/draft-roadmap/formalize_and_expand_waku_web_apps.md index 0fdbf7a..4f3ce38 100644 --- a/draft-roadmap/formalize_and_expand_waku_web_apps.md +++ b/draft-roadmap/formalize_and_expand_waku_web_apps.md @@ -125,6 +125,7 @@ TODO - F15. The relevance index is increased if the author owns an ENS or Logos ordinal. - F16. The relevance index is increased if the post or comment is upvoted by an ENS or Logos ordinal owner. - F17. The relevance index is increased if the post has a comment from an ENS or Logos ordinal owner. +- F18. Anonymous users can upvote, comments and post. - U11. ENS holders can choose to use an ENS for display purposes. - U12. The relevance index is used to push most relevant posts and comments on top. From a17125e68be6eb450bc30e8d297b235f5aeb5140 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Mon, 9 Jun 2025 19:33:36 +1000 Subject: [PATCH 29/70] rename nim milestone --- draft-roadmap/nim_usage_improvements.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/draft-roadmap/nim_usage_improvements.md b/draft-roadmap/nim_usage_improvements.md index f9b259f..ec5d9df 100644 --- a/draft-roadmap/nim_usage_improvements.md +++ b/draft-roadmap/nim_usage_improvements.md @@ -1,4 +1,4 @@ -# Nim Usage Improvements +# Upgrade Nim Usage **Estimated date of completion**: {Enter date} @@ -7,7 +7,7 @@ - {external services consumed (Vac/IFT)} - {infrastructure} -Progress on improving usage of Nim related tooling by proceed with PoCs and collaborating with Nim teams. +Improve usage of Nim related tooling and design patterns by proceedings with PoCs to discover potential gains and caveats. This includes adoption of Nimble, usage of VSCode plugin and iteration on C-Binding methodology. **FURPS**: From d2d82f0f9ecb77c32a4600f3c633567867d2ccc0 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Mon, 9 Jun 2025 19:36:54 +1000 Subject: [PATCH 30/70] fix chat sdk resources --- draft-roadmap/README.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 43b8ce1..06e04f4 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -76,23 +76,23 @@ Testing out new format, once approved: In order of priority. -| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | -|----------|------------------------------------------------------------------------------------------------------------|----------------|----------|---------|-------|----------| -| 1 | [Introduce E2E Reliability in Status Communities](introduce_e2e_reliability_in_status.md) | 31 Aug | | | | 1*2m | -| 2 | [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) | 31 Oct | | | | 1*2w | -| 3 | [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) | Completed/Drop | | | | | -| 4 | [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) | 20 Jun (TBC) | | | | | -| 5 | [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | 30 Jun (H1) | | | | | -| 6 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5*1m | | | | -| 7 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | TBD | -| 8 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | -| 9 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5*6m | -| 10 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | TBD | | | | TBD | -| 11 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | -| 12 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | -| 13 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | TBD | | | | TBD | -| 14 | Incentivisation follow-up | TBD | TBD | | | | -| 15 | [Nim Usage Improvements](nim_usage_improvements.md) | TBD | | | TBD | | +| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | +|----------|------------------------------------------------------------------------------------------------------------|----------------|----------|---------|-------|-------------| +| 1 | [Introduce E2E Reliability in Status Communities](introduce_e2e_reliability_in_status.md) | 31 Aug | | | | 1*2m | +| 2 | [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) | 31 Oct | | | | 1*2w | +| 3 | [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) | Completed/Drop | | | | | +| 4 | [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) | 20 Jun (TBC) | | | | | +| 5 | [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | 30 Jun (H1) | | | | | +| 6 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5*1m | | | | +| 7 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | TBD | +| 8 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | +| 9 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5*6m | +| 10 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | TBD | | | | 2 dev/1 res | +| 11 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | +| 12 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | +| 13 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | TBD | | | | TBD | +| 14 | Incentivisation follow-up | TBD | TBD | | | | +| 15 | [Nim Usage Improvements](nim_usage_improvements.md) | TBD | | | TBD | | Pushed to 2026 - WebTransport: depending on nim-libp2p (delivery Q4) From 240935661e191005764fca9a069f8252c857a0f3 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 09:52:58 +1000 Subject: [PATCH 31/70] date, clarify docs --- draft-roadmap/improve_devex_api_twn_metrics_docs.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index 3f3cd45..ca3d15d 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -1,6 +1,7 @@ # Improve DevEx: API, TWN, Metrics, Docs **Estimated date of completion**: {Enter date} +- js-waku 31 Aug **Resources Required for 2025H2**: - 1 js-waku engineer TODO @@ -172,9 +173,11 @@ For: (No FURPS) - [ ] Review the current developer documentation -- [ ] And contributor doc -- [ ] Define a guideline for Waku teams to follow when contributing to documentation -- [ ] Setup an initial structure + - [ ] And contributor doc +- [ ] Define a guideline for Waku teams to + - [ ] Minimum requirements to consider "doc done" for any future deliverable + - [ ] How to contribute to documentation: location, format +- [ ] Setup an initial structure to enable the guideline ## Trial QUIC From 969aa54193babf93ad2c09d0b43ec18e39875b9a Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 10:51:30 +1000 Subject: [PATCH 32/70] tidy up --- draft-roadmap/integrate_rln_with_waku_api.md | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md index 2df6200..a98bbd9 100644 --- a/draft-roadmap/integrate_rln_with_waku_api.md +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -98,21 +98,6 @@ TODO: other improvements may be flagged as we dogfood the previous RLN milestone **FURPS**: - {F1. copy-paste full furps statement} -**Checklist**: -- [ ] Specs: link to specs and/or API definition -- [ ] Code: link to GitHub issues/PRs/Epic -- [ ] Dogfood: link to dogfooding session/artefact -- [ ] Docs: links to README.md or docs.waku.org (TBD) - -## {Name of deliverable 1 - eg "improve feature X for the browser"} - -**Owner**: {one waku subteam} - -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) - -**FURPS**: -- {F1. copy-paste full furps statement} - **Checklist**: - [ ] Specs: link to specs and/or API definition - [ ] Code: link to GitHub issues/PRs/Epic From e5d31a5e48289229e16852d4db468ad5130e3c75 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 10:51:42 +1000 Subject: [PATCH 33/70] split h1 and h2 milestones --- draft-roadmap/README.md | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 06e04f4..c316c3e 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -76,23 +76,29 @@ Testing out new format, once approved: In order of priority. -| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | -|----------|------------------------------------------------------------------------------------------------------------|----------------|----------|---------|-------|-------------| -| 1 | [Introduce E2E Reliability in Status Communities](introduce_e2e_reliability_in_status.md) | 31 Aug | | | | 1*2m | -| 2 | [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) | 31 Oct | | | | 1*2w | -| 3 | [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) | Completed/Drop | | | | | -| 4 | [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) | 20 Jun (TBC) | | | | | -| 5 | [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | 30 Jun (H1) | | | | | -| 6 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5*1m | | | | -| 7 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | TBD | -| 8 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | -| 9 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5*6m | -| 10 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | TBD | | | | 2 dev/1 res | -| 11 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | -| 12 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | -| 13 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | TBD | | | | TBD | -| 14 | Incentivisation follow-up | TBD | TBD | | | | -| 15 | [Nim Usage Improvements](nim_usage_improvements.md) | TBD | | | TBD | | +### To finish in H1 + +| Milestone | End Date | core res | js-waku | nwaku | app-chat | +|------------------------------------------------------------------------------------------------------------|----------------|----------|---------|-------|----------| +| [Introduce E2E Reliability in Status Communities](introduce_e2e_reliability_in_status.md) | 31 Aug | | | | 1 | +| [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) | 31 Oct | | | | 1 | +| [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) | Completed/Drop | | | | | +| [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) | 20 Jun (TBC) | | | 2 | | +| [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | 30 Jun (H1) | | | | | + +### H2 Milestones +| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | +|----------|-----------------------------------------------------------------------------------------|----------|----------|---------|-------|-------------| +| 1 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5 | | | | +| 2 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | TBD | +| 3 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | +| 4 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5*6m | +| 5 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | TBD | | | | 2 dev/1 res | +| 6 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | +| 7 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | +| 8 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | TBD | | | | TBD | +| 9 | Incentivisation follow-up | TBD | TBD | | | | +| 10 | [Nim Usage Improvements](nim_usage_improvements.md) | TBD | | | TBD | | Pushed to 2026 - WebTransport: depending on nim-libp2p (delivery Q4) From fb4bb575995fd9747ee8e6249a9aced82b89e318 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 13:37:46 +1000 Subject: [PATCH 34/70] Add 2025H2 summary --- 2025H2-summary.md | 164 ++++++++++++++++++++++++++++++++++++++++ draft-roadmap/README.md | 4 +- 2 files changed, 167 insertions(+), 1 deletion(-) create mode 100644 2025H2-summary.md diff --git a/2025H2-summary.md b/2025H2-summary.md new file mode 100644 index 0000000..f17e6cf --- /dev/null +++ b/2025H2-summary.md @@ -0,0 +1,164 @@ +# Milestones Presentation (Half-Year to Dec-2025): Waku + +## 🧭 Key Outcome(s) of Vision you are supporting + +- Create Chat SDK MVP - one-to-one (Browser, Nim, Rust, Golang), support Status' technical roadmap, supports Logos Movement and Logos Core by enabling secure conversations over Waku +- Simplify a reliable Waku API and SDK (Browser, Nim, Rust, Golang), supports Chat SDK, Logos Movement and Logos Core, make it is easy to integrate +- Improve Waku Developer Experience by stabilizing The Waku Network and reviewing Docs: Support Logos Movement, make it is easy to integrate +- Deploy metrics to measure Waku and any Waku app's level of adoption: Support measuring success of Logos Movement +- Introduce mixnet for message sending: Support Logos Vision of a private technology stack +- Formalize and Expand Waku Web Apps: Support Logos Movement on teaching them how to hunt +- Integrate RLN with Waku API: Supports Chat SDK, and Logos Movement to make it easy it to integrate Waku RLN. +- Streamline DevEx: Mobile, and Web dev, supporting Status to have nwaku and chat sdk on mobile, provide tooling to make it easy to integrate js-waku +- Extend Chat SDK with Group conversations: ditto create chat sdk +- Nim Usage Improvement: Dedicate time to improve nim usage (nimble usage, iterate on ffi api, study nimsuggest behaviour): to improve nwaku contributor experience, enable all goals above and make it easy to contribute +- Continue Waku Incentivization: Finish Light push PoC and define next step, to make Waku infrastructure decentralized and sustainable, as per Logos Vision + +Strategy changes: + +- New Chat protocol over adapting existing code and protocol ([justification](https://forum.vac.dev/t/chatsdk-motivations/501)) +- Prioritized simplifying Waku API/SDK, to enable Chat SDK but also "make it easy to integrate" +- Prioritized RLN API/SDK, to use with Chat SDK and have early RLN integration in the Chat stack (this time) +- De-prioritized nwaku on mobile in favour of Waku API and RLN API +- Increased commitment to build applications over Waku (Web and Logos Core), to "teach them how to hunt" +- Introduced Developer Experience items: to support Chat SDK, and "make it easy to integrate" +- Nim Usage Improvement: increased priority to support new chat sdk, and "make it easy to contribute" +- De-scoped any Communities or existing Status chat protocol work, apart from e2e reliability as it is a re-usable block for Chat SDK. +- RLN Mainnet is a long term goal, focused instead of smaller, achievable items that enable integration and dogfooding of RLN. + +## 🚩 Proposed Milestones(s) + +| Milestone Headline | Strategic Objective (Short form) ** | Capacity* | Business Val (0/10) | FURPS | +|-------------------------------------------------------------------------------------------------------|-------------------------------------|-----------|---------------------|-------| +| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision | 1.5 | 7 | TODO | +| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Vision, Status (via Chat SDK) | TODO | 8 | | +| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision | 1 | 6 | | +| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement | 1.5 | 7 | | +| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement, Status | 3 | 9 | | +| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement, Status | 0.5 | 9 | | +| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement, Status | TBD | 9 | | +| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement, Status | | 9 | | +| Incentivisation follow-up | TBD | TBD | 7 | | +| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | TBD | | 5 | TBD | + +## 🧩 Strategic Benefits Realisable from coming Half-Year (Top 5) + +- Deliver better APIs and SDKs: Broadens utility of Waku protocol, including RLN, enable building desktop, browser and mobile app using a unified, simple, Waku and RLN API. +- Sustainable, scalable, secure and usable Chat protocol: Enables anyone to build private native chat application, and set sustainable foundations for Status application. +- Waku web apps: demonstrate how to build on Waku, and iterate on dev ex and UX of Waku APIs and protocols, including RLN. +- Roadmap to incentivisation: Explore how the Waku network can be sustainably scalable, resilient, private and censorship-resistant. +- Introduce mixnet: Deliver on our promise of network level anonymity, starting with sender anonymity. +- Improve Nim usage: improve the efficiency of Waku nim developers, to better delivery our commitments and "make it easy to contribute". + +##### Optional link to Full Strategic Benefits - href + +N/A + +## 🚩 Key Cross Project Alignments (Top-5) + +| Project / Community | Specific | Confirmed with Project(Yes/No) | +|---------------------|-----------------------------------------------------------------|--------------------------------| +| Status Application | Create Chat SDK MVP, Extend Chat SDK, Integrate RLN w/ Waku API | Yes | +| Logos Core | Formalize and Expand Waku Web Apps: Logos core app | Pending | +| Logos Movement | Formalize and Expand Waku Web Apps: Forum | Yes | +| Status Application | Streamline DevEx: Mobile | Yes | +| Codex | Formalize and Expand Waku Web Apps: More Codex Integrations | Pending | +| Status L2 | Integrate RLN With the Waku API: Deploy SC on Sepolia | Yes | + +##### Optional link to Full Cross Alignments - href + +N/A + +## 🚩 Key Cross Project/Shared Service Dependency (Top-5) + +| Project | Specific | Confirmed with Project(Yes/No) | +|--------------------|-----------------------------------------------------------------------------------------|--------------------------------| +| Vac-DST | Proceed with status-backend benchmarks for nwaku and new chat sdk migration | Yes | +| Vac-QA | Proceed with status-backend non-regression testing for nwaku and new chat sdk migration | Yes | +| Status Network | Support usage of Sepolia | Yes | +| Vac-ACZ | Assist with using zerokit in the Browser | Yes | +| Vac-ACZ Think Tank | Assist in determining best libraries to use for cryptography in new Chat SDK | Pending | + +##### Optional link to Full Dependency - href + +N/A + +## Funding and Resources (By Strategic Objective) + +### Rolled-Up By Strategic Objective + +TODO + +| Strategic Objective | People Costs | Infra Costs | Other Costs | +|-----------------------------------|--------------|-------------|-------------| +| Protocol Enhancement on Waku Chat | 300k | 50k | | +| Enable Logos Vision Chat Protocol | 400k | 10k | | + +### Budget Consultation + +TODO + +| Headline Activity | Status | +|-------------------------|-----------------------------------| +| Financial Review Status | [new,renew,review,approved] | +| Finance Comments | please add comment rows as needed | | + +### By Resource + +| Resource Headline Item | People | Comment | +|-------------------------|---------|-----------| +| Present Resource | 20 | | +| Additional Resource Ask | 2 | backfills | +| PeopleOps Informed | Yes | | + +### PeopleOps Consultation +TODO + +| Review Status | [new,renew,review,approved]| +| Review Comments | [new,renew,review,approved]| + +## ⚠️ Keys Risks Identified & Controls + +| Risk | (Accept, Own, Mitigation) | +|--------------------|-----------------------------------------------------| +| [Risk] | [Mitigation strategy] | +| [Risk] | [Mitigation strategy] | +| [Risk] | [Mitigation strategy] | + +## ✅ Key Observations +**[Specific observations from this last execution window]** + +TO CLARIFY + +#Appendix As Needed + +## 🛠️ FURPS Reference by Proposed Milestone + +TO CLARIFY + +| Headline 1 | FURPS Defined | Link | +|-------------------------------|----------------------------|---------------| +| Waku Store database narrative | F2(3) U(1) R (1) P(2) S(0) | link to FURPS | +| RLN standard module 1 | F2(3) U(1) R (1) P(1) S(0) | link to FURPS | +| Chat SDK version 1 | F2(3) U(1) R (0) P(0) S(0) | link to FURPS | + +# Appendix A (Optional) + +See links in [Proposed Milestones(s)](#-proposed-milestoness) + +## FURPS + +See links in [Proposed Milestones(s)](#-proposed-milestoness). Each milestone has FURPS + +## Risks Identified + +TO CLARIFY: is this per milestone? + +| Risk | (Accept, Own, Mitigation) | +|--------------------|-----------------------------------------------------| +| [Risk] | [how to we address this risk] | +| [Risk] | [how to we address this risk] | +| [Risk] | [how to we address this risk] | + + + diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index c316c3e..b72e084 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -1,5 +1,7 @@ # Waku Draft Roadmap +**Most of the below is being moved to [2025H2 Summary](../2025H2-summary.md)**, which is now the master document. + Finalised roadmap and milestones can be found on the [Logos roadmap](https://roadmap.logos.co/waku/). Period in planning: 2025 H2 @@ -14,7 +16,7 @@ Period in planning: 2025 H2 ### Core Team -1. **Complete integration of nwaku in Status Desktop**. +1. **Complete integration of nwaku in Status Desktop** (H1) 2. **Simplify a reliable Waku API:** aka Messaging API, make it easier to consume Waku library; critical to enable easy development of Chat SDK. 3. **Upgrade Waku for the Web**: Ensure web applications built on The Waku Network are reliable. 4. **RLN mainnet and API:** Continue RLN migration to onchain tree + L2 testnet, and necessary steps to get RLN on mainnet; provide simple API for Chat SDK. From 0bafc86a57604ed522116549e6c885a8417c73ff Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 13:40:52 +1000 Subject: [PATCH 35/70] add a risk --- 2025H2-summary.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/2025H2-summary.md b/2025H2-summary.md index f17e6cf..ad61d4a 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -154,11 +154,13 @@ See links in [Proposed Milestones(s)](#-proposed-milestoness). Each milestone ha TO CLARIFY: is this per milestone? -| Risk | (Accept, Own, Mitigation) | -|--------------------|-----------------------------------------------------| -| [Risk] | [how to we address this risk] | -| [Risk] | [how to we address this risk] | -| [Risk] | [how to we address this risk] | +TO CLARIFY: What does "(Accept, Own, Mitigation)" mean? + +| Risk | (Accept, Own, Mitigation) | +|-------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------| +| Readiness of status-go for Chat SDK integration | Weekly sync up on chat sdk and status-go refactoring topic between Waku and Status teams, collaborative planning done to align goals and API. | +| [Risk] | [how to we address this risk] | +| [Risk] | [how to we address this risk] | From 62aef27efae65b3674e31888718af0f4d1b95432 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 15:37:18 +1000 Subject: [PATCH 36/70] Upgrade to provided template --- 2025H2-summary.md | 2 + draft-roadmap/README.md | 6 +- draft-roadmap/TEMPLATE.md | 17 ++++-- draft-roadmap/create_chat_sdk_mvp.md | 59 ++++++++++--------- .../define_incentivisation_for_rlnaas.md | 14 ++++- ...xtend_chat_sdk_with_group_conversations.md | 35 ++++++----- .../formalize_and_expand_waku_web_apps.md | 36 +++++++---- .../improve_devex_api_twn_metrics_docs.md | 49 ++++++++++----- draft-roadmap/integrate_rln_with_waku_api.md | 27 ++++++--- .../introduce_mixnet_for_message_sending.md | 20 +++++-- draft-roadmap/nim_usage_improvements.md | 26 ++++++-- .../streamline_dev_ex_local_dev_rust.md | 28 ++++++--- 12 files changed, 213 insertions(+), 106 deletions(-) diff --git a/2025H2-summary.md b/2025H2-summary.md index ad61d4a..484d9af 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -78,6 +78,8 @@ N/A | Status Network | Support usage of Sepolia | Yes | | Vac-ACZ | Assist with using zerokit in the Browser | Yes | | Vac-ACZ Think Tank | Assist in determining best libraries to use for cryptography in new Chat SDK | Pending | +| Infra | Maintain Waku fleet, apply config changes requests, deploy new nodes for metrics | TODO | +| Vac-SC | Support of functional extension of RLN Smart Contract | TODO | ##### Optional link to Full Dependency - href diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index b72e084..0e921ae 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -92,13 +92,13 @@ In order of priority. | Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | |----------|-----------------------------------------------------------------------------------------|----------|----------|---------|-------|-------------| | 1 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5 | | | | -| 2 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | TBD | +| 2 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | 0.16.. | | 3 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | -| 4 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5*6m | +| 4 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5 | | 5 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | TBD | | | | 2 dev/1 res | | 6 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | | 7 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | -| 8 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | TBD | | | | TBD | +| 8 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | TBD | | | | 1 dev/1 res | | 9 | Incentivisation follow-up | TBD | TBD | | | | | 10 | [Nim Usage Improvements](nim_usage_improvements.md) | TBD | | | TBD | | diff --git a/draft-roadmap/TEMPLATE.md b/draft-roadmap/TEMPLATE.md index dcef732..c85cc74 100644 --- a/draft-roadmap/TEMPLATE.md +++ b/draft-roadmap/TEMPLATE.md @@ -7,16 +7,25 @@ - {external services consumed (Vac/IFT)} - {infrastructure} +{Milestone Narrative - what do we get once done} -{Milestone Description - what do we get once done} +## Strategic Objective -**FURPS**: +TODO: Clarify with Leonard + +## FURPS - [{Feature Name}]({path/to/furps/file}): {list of furps: F1, etc} -**deliverables**: +## Risks -## {Name of deliverable 1 - eg "improve feature X for the browser"} +| Risk | (Accept, Own, Mitigation) | +|--------|-------------------------------| +| [Risk] | [how to we address this risk] | + +## Deliverables + +### {Name of deliverable 1 - eg "improve feature X for the browser"} **Owner**: {one waku subteam} diff --git a/draft-roadmap/create_chat_sdk_mvp.md b/draft-roadmap/create_chat_sdk_mvp.md index b6578c6..76a1c46 100644 --- a/draft-roadmap/create_chat_sdk_mvp.md +++ b/draft-roadmap/create_chat_sdk_mvp.md @@ -1,6 +1,6 @@ # Create Chat SDK MVP -**Estimated date of completion**: 19 Aug 2025 +**Estimated date of completion**: 30 Sep 2025 **Resources Required for 2025H2**: - 1 App/Chat Researcher @@ -15,32 +15,34 @@ interaction speed. Motivations for development of a new chat protocol are described [here](https://forum.vac.dev/t/chatsdk-motivations/501). -**Risks**: - -- (Schedule)(High) - Lack of Nim experience: Nim is a new language to many who will be performing this work, and will - require skill-up to be effective. Delays and high bug counts are possible due to underestimating effort required to - become proficient. Leveraging existing Nim knowledge in the team will help mitigate this risk. -- (Organizational)(Medium) - Direction Alignment: Currently the chat use case does not have a Security Model and Privacy - Model defined from which to drive development. These will need to be drafted while work begins. Given these documents - will have wider impact in the org and community there is a risk that consensus will take longer than anticipated, - stalling development. Mitigation involves documenting the targeted approach and socializing it as early as possible. - Following the Protocol Design Framework outlined for chat use cases will help decompose work areas making partial consensus easier to reach. -- (Schedule)(Medium) - Cryptographic Primitives: There is an assumption that the cryptographic libraries needed for the - success of this project are available and in a usable state. To mitigate, early tasks will involve spikes to find - appropriate libraries and de-risk their usage their state. Extra time spent preparing crypto libraries / porting will - result in delays. -- (Technical)(Low) - Uncertain Performance: Performance targets for bandwidth are hard to quantify at this stage. They - are listed as `P1` in the FURPS. While these targets appear reasonable (125 bytes per second per user) that remains to - be seen. This is hard to mitigate as the SDK cannot be profiled until late in the development cycle, making - adjustments difficult. - This milestone is complete when a development preview of the Chat SDK is published and made available to the community. -**FURPS**: [ChatSDK](/FURPS/application/chat_sdk.md) +## Strategic Objective -**GitHub Milestone and deliverables**: +TODO: Clarify with Leonard -## ChatSDK Developer Preview +## Risks + +| Type/Level | Risk | (Accept, Own, Mitigation) | +|-----------------------|--------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Schedule/High | Lack of Nim experience | Nim is a new language to many who will be performing this work, and will require skill-up to be effective. Delays and high bug counts are possible due to underestimating effort required to become proficient. Leveraging existing Nim knowledge in the team will help mitigate this risk. | +| Organisational/Medium | Direction Alignment | Currently the chat use case does not have a Security Model and Privacy Model defined from which to drive development. These will need to be drafted while work begins. Given these documents will have wider impact in the org and community there is a risk that consensus will take longer than anticipated, stalling development. Mitigation involves documenting the targeted approach and socializing it as early as possible. Following the Protocol Design Framework outlined for chat use cases will help decompose work areas making partial consensus easier to reach. | +| Schedule/Medium | Cryptographic Primitives | There is an assumption that the cryptographic libraries needed for the success of this project are available and in a usable state. To mitigate, early tasks will involve spikes to find appropriate libraries and de-risk their usage their state. Collaboration with ACZ Think Tank. Extra time spent preparing crypto libraries / porting will result in delays. | +| Technical/Low | Uncertain Performance | Performance targets for bandwidth are hard to quantify at this stage. They are listed as `P1` in the FURPS. While these targets appear reasonable (125 bytes per second per user) that remains to be seen. This is hard to mitigate as the SDK cannot be profiled until late in the development cycle, making adjustments difficult. | + +## FURPS + +[ChatSDK](/FURPS/application/chat_sdk.md) + +## Risks + +| Risk | (Accept, Own, Mitigation) | +|--------|-------------------------------| +| [Risk] | [how to we address this risk] | + +## Deliverables + +### ChatSDK Developer Preview **Owner**: App/Chat Research @@ -74,8 +76,7 @@ This milestone is complete when a development preview of the Chat SDK is publish - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) - -## ChatSDK Bindings +### ChatSDK Bindings **Owner**: App/Chat Dev @@ -92,12 +93,12 @@ For library ChatSDK: - S4. library can be used in Rust applications; import via git path. **Checklist**: -- [ ] Specs: link to specs and/or API definition +- [ ] Specs: API definition - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact -- [ ] Docs: links to README.md or docs.waku.org (TBD) +- [ ] Docs: links to README.md or docs.waku.orgAPI definition? (TBD) -## Create Segmentation Library +### Create Segmentation Library **Owner**: App/Chat Dev @@ -129,7 +130,7 @@ For library ChatSDK: - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Create Rate Limit Manager +### Create Rate Limit Manager **Owner**: App/Chat Dev diff --git a/draft-roadmap/define_incentivisation_for_rlnaas.md b/draft-roadmap/define_incentivisation_for_rlnaas.md index 485c051..a6f1044 100644 --- a/draft-roadmap/define_incentivisation_for_rlnaas.md +++ b/draft-roadmap/define_incentivisation_for_rlnaas.md @@ -15,5 +15,15 @@ including RLN proofs as a service, Store, Filter and Lightpush. This milestone encapsulates the efforts to distribute rewards for running RLN Relay nodes and getting paid for providing Waku services. This is the first step to providing a sustainable way to scale the Status application. -**FURPS**: -- [Incentivisation](/FURPS/core/incentivisation.md): F1-3, U1-2, R1-3, P1, for S1 \ No newline at end of file +## Strategic Objective + +TODO: Clarify with Leonard + +## FURPS +- [Incentivisation](/FURPS/core/incentivisation.md): F1-3, U1-2, R1-3, P1, for S1 + +## Risks + +| Risk | (Accept, Own, Mitigation) | +|--------------------------------------------|-----------------------------------------------| +| Heavy on research and unknowns, UX impacts | Identify concrete deliverables, dogfood early | \ No newline at end of file diff --git a/draft-roadmap/extend_chat_sdk_with_group_conversations.md b/draft-roadmap/extend_chat_sdk_with_group_conversations.md index a73f308..c8c89a9 100644 --- a/draft-roadmap/extend_chat_sdk_with_group_conversations.md +++ b/draft-roadmap/extend_chat_sdk_with_group_conversations.md @@ -1,6 +1,6 @@ # Extend Chat SDK with Group Conversations -**Estimated date of completion**: 18 Nov 2025 +**Estimated date of completion**: 19 Dec 2025 **Resources Required for 2025H2**: - 1 App/Chat Research @@ -11,22 +11,28 @@ participants in a given group chat. The features to said group chat will be limited, and extended with further milestones. -**Risks**: +Support to plug Status Communities on top of this SDK is **not** expected. +Further group size scaling and extension of membership management API would be needed. -- (Schedule)(Medium) - Task Dependency: This task is dependent on [ChatSDK - Developer Preview](create_chat_sdk_mvp.md). - Delays there will translate into delays to this milestone. -- (Technical)(Medium) - Lack of Libraries: There currently does not exist the required libraries in Nim to build group - chat. This will involve evaluating the potential of calling an existing library via FFI or implementing it from - scratch. This can be mitigated by vetting existing library potential should occur early or finding security reviewers - for nim implemented cryptography. -- (Technical)(Low) - Group chat is prone to bugs, even when using existing encryption protocols. Extra time has been - allocated to testing and debugging in an effort to mitigate this, however it still remains a risk. +## Strategic Objective -**FURPS**: [Group Chat](/FURPS/application/group_chat.md) +TODO: Clarify with Leonard -**GitHub Milestone and deliverables**: +## FURPS -## Add Group Chat +[Group Chat](/FURPS/application/group_chat.md) + +## Risks + +| Type/Level | Risk | (Accept, Own, Mitigation) | +|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Schedule/Medium | Milestone Dependency | This milestone is dependent on [ChatSDK - Developer Preview](create_chat_sdk_mvp.md). Delays there will translate into delays to this milestone. | +| Technical/Medium | Lack of NimLibraries | There currently does not exist the required libraries in Nim to build group chat. This will involve evaluating the potential of calling an existing library via FFI or implementing it from scratch. This can be mitigated by vetting existing library potential should occur early or finding security reviewers for nim implemented cryptography. | +| Technical/Low | Group chat is prone to bugs, even when using existing encryption protocols. Extra time has been allocated to testing and debugging in an effort to mitigate this, however it still remains a risk. | + +## Deliverables + +### Add Group Chat **Owner**: App/Chat Research @@ -55,8 +61,7 @@ The features to said group chat will be limited, and extended with further miles - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) - -## Group Chat Bindings +### Group Chat Bindings **Owner**: App/Chat Dev diff --git a/draft-roadmap/formalize_and_expand_waku_web_apps.md b/draft-roadmap/formalize_and_expand_waku_web_apps.md index 4f3ce38..edd4e5c 100644 --- a/draft-roadmap/formalize_and_expand_waku_web_apps.md +++ b/draft-roadmap/formalize_and_expand_waku_web_apps.md @@ -17,11 +17,23 @@ Explore Codex x Waku integration, in Qaku and one other application. Develop 10 Waku Web Apps PoC, and push them to the community to "teach them how to hunt" as well as inspire developers to build over Waku. -**FURPS**: See deliverables +## Strategic Objective -**Deliverables**: +TODO: Clarify with Leonard -## [Forum PoC](https://github.com/waku-org/pm/issues/292) +## FURPS + +## Risks + +| Risk | (Accept, Own, Mitigation) | +|----------------------------------------------------|----------------------------------------------------------------| +| Logos Core Readiness | Get involed early with Logos Core, tinker and provide feedback | +| Experimental application spam protection for Forum | Focus on MVP to get user feedback early | +| Spec writing by non-researchers | Push for early specs, to enabling feedback and mentoring | + +## Deliverables + +### [Forum PoC](https://github.com/waku-org/pm/issues/292) **Owner**: App/Chat Dev @@ -33,14 +45,14 @@ to build over Waku. - R1-2 **Checklist**: -- [ ] Specs: link to specs and/or API definition +- [ ] Specs: link to specs - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## [Codex for Message Archival PoC](https://github.com/waku-org/pm/issues/293) +### [Codex for Message Archival PoC](https://github.com/waku-org/pm/issues/293) -TODO +TODO - Hanno is defining some FURPS and we can review. **Owner**: {one waku subteam} @@ -55,7 +67,7 @@ TODO - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## [Reliable Qaku & library](https://github.com/waku-org/pm/issues/287) +### [Reliable Qaku & library](https://github.com/waku-org/pm/issues/287) **Owner**: App/Chat Dev @@ -74,7 +86,7 @@ TODO - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Build Ten Waku Web Apps +### Build Ten Waku Web Apps **Owner**: App/Chat Dev @@ -82,7 +94,7 @@ TODO **Output**: 10 working Waku Web apps of various sort. -- The apps needs to be functioning and deployed, PoC level. +- The apps need to be functioning and deployed, PoC level. - Broadcast to the community must happen (Logos/Waku Discord, Logos/Vac Forums, conference talks, Twitter, etc). **Checklist**: @@ -92,7 +104,7 @@ TODO - ~[ ] Docs: links to README.md or docs.waku.org (TBD)~ - [ ] Promote the app -## Build One Waku Logos Core App +### Build One Waku Logos Core App **Owner**: App/Chat Dev @@ -100,7 +112,7 @@ TODO **Output**: 1 working Logos Core App. -- The apps needs to be functioning, PoC level. +- The app needs to be functioning, PoC level. - Broadcast to the community must happen (Logos/Waku Discord, Logos/Vac Forums, conference talks, Twitter, etc). - May use Waku SDK or Chat SDK. @@ -111,7 +123,7 @@ TODO - ~[ ] Docs: links to README.md or docs.waku.org (TBD)~ - [ ] Promote the app -## Open Forum to Web3 Users and Anons +### Open Forum to Web3 Users and Anons **Owner**: App/Chat Dev diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index ca3d15d..ce89811 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -11,18 +11,37 @@ Proceed with a number of improvements to the developer experience on Waku, for both internal and external purposes. This includes: -- improving The Waku Network reliability for Logos apps and other web apps -- simplifying the Waku API -- measuring Waku usage across all integrations -- review and setting strategy for Waku documentation +- Improving The Waku Network reliability for Logos apps and other web apps +- Simplifying the Waku API +- Measuring Waku usage across all integrations +- Review and setting strategy for Waku documentation - Testing quic as new transport -**deliverables**: +## Strategic Objective -## [Global Network Metrics](https://github.com/waku-org/pm/issues/295) +TODO: Clarify with Leonard + +## FURPS + +TODO (see deliverables) + +## Risks + +| Risk | (Accept, Own, Mitigation) | +|---------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------| +| Define collaboration with BI for metrics | Communicate | +| Browser reliability is a multi-prong problem (js-waku/libp2p, nwaku/nim-libp2p) | Strong collaboration | +| No "documentation" expert or dedicated resources | outsource help from doc experts in IFT, focus on setting guidelines for all Waku CCs to follow | + + +## Deliverables + +### [Global Network Metrics](https://github.com/waku-org/pm/issues/295) **Owner**: App/Chat Dev +TODO: Pablo to confirm dependency on BI and what they do vs what we do. + **Feature**: [Network Metrics Tracker](/FURPS/application/network_metrics_tracker.md) **FURPS**: @@ -34,7 +53,7 @@ This includes: - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## [Scalable Data Sync in Browser](https://github.com/waku-org/pm/issues/280) +### [Scalable Data Sync in Browser](https://github.com/waku-org/pm/issues/280) **Owner**: js-waku @@ -51,7 +70,7 @@ For S2. For Web apps as a developer library. - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## [Waku Sync](https://github.com/waku-org/pm/issues/132) +### [Waku Sync](https://github.com/waku-org/pm/issues/132) **Owner**: core research @@ -65,7 +84,7 @@ For S2. For Web apps as a developer library. - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Define and Implement Light Push Error codes in nwaku +### Define and Implement Light Push Error codes in nwaku **Owner**: nwaku @@ -86,7 +105,7 @@ Includes spec delivery - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Implement Light Push Error codes in The Browser +### Implement Light Push Error codes in The Browser **Owner**: js-waku @@ -106,7 +125,7 @@ Spec delivery not included. - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Introduce Waku API in the Browser +### Introduce Waku API in the Browser **Owner**: js-waku @@ -135,7 +154,7 @@ For S3. Browser; distribution via npmjs.com. - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Introduce Waku API in nwaku +### Introduce Waku API in nwaku **Owner**: nwaku @@ -166,7 +185,7 @@ For: - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Review Documentation and Define Guidelines +### Review Documentation and Define Guidelines **Owner**: core research @@ -179,7 +198,7 @@ For: - [ ] How to contribute to documentation: location, format - [ ] Setup an initial structure to enable the guideline -## Trial QUIC +### Trial QUIC **Owner**: nwaku @@ -194,7 +213,7 @@ For: - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Optimise Browser Bootstrapping +### Optimise Browser Bootstrapping **Owner**: js-waku diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md index a98bbd9..66b8612 100644 --- a/draft-roadmap/integrate_rln_with_waku_api.md +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -21,13 +21,24 @@ Introduce RLN proof generation and validation in the Browser. RLN API should be Finally, migrate to Status network L2 testnet and improve UX issues discovered via dogfooding such as rate of RPC Calls. -**FURPS**: +## FURPS -- [{Feature Name}]({path/to/furps/file}): {list of furps: F1, etc} TODO +TODO -**deliverables**: +## Risks -## Implement RLN membership management in nwaku library +| Risk | (Accept, Own, Mitigation) | +|-------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Not all required improvements are yet identified | Dogfooding of the H1 delivery will enable identification of needed improvements, meaning this milestone may change in term of scope and schedule. | +| Dependencies on Nim Web3 library | Previous upgrade of nim web3 libraries have lead to various issues. The dependencies of said library is increasing, meaning potential delay in development. | +| Uncertainty regarding zerokit and wasm in the browser | UX-related property are yet to be explored with the new RLN smart contract. WASM loading and execution may have considerable impact on UX. Collaboration with Vac/ACZ will be required to adapt zerokit for the browser. | +| Smart Contract Changes & Expertise | We expect functional extension of RLN smart contract to potentialy store multiple roots, and maybe other improvement depending on dogfooding. The Solidity knowledge in the team is limited/non-existent so we would need to rely on Vac-SC or upskill. | +| API Refactoring | Extracting RLN as a validation plugin may ensue some API refactoring that may take longer than initially estimated. A conservative estimate will be done. | +| FFI to FFI interaction | The intent will be to have RLN and Waku SDK as 2 separate libraries that can be initialized in any language (e.g Golang). The nim to nim via FFI may raise unforeseen issues . | + +## Deliverables + +### Implement RLN membership management in nwaku library **Owner**: nwaku @@ -42,7 +53,7 @@ Finally, migrate to Status network L2 testnet and improve UX issues discovered v - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Implement RLN Onchain Tree Proof generation and verification in the Browser +### Implement RLN Onchain Tree Proof generation and verification in the Browser **Owner**: js-waku @@ -57,7 +68,7 @@ Finally, migrate to Status network L2 testnet and improve UX issues discovered v - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Extract RLN as a plug-in library from nwaku +### Extract RLN as a plug-in library from nwaku **Owner**: nwaku @@ -72,7 +83,7 @@ Finally, migrate to Status network L2 testnet and improve UX issues discovered v - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Deploy RLN Contracts to Status L2 testnet +### Deploy RLN Contracts to Status L2 testnet **Owner**: nwaku @@ -87,7 +98,7 @@ Finally, migrate to Status network L2 testnet and improve UX issues discovered v - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Improve RLN UX by reducing Web3 RPC calls +### Improve RLN UX by reducing Web3 RPC calls TODO: other improvements may be flagged as we dogfood the previous RLN milestone. diff --git a/draft-roadmap/introduce_mixnet_for_message_sending.md b/draft-roadmap/introduce_mixnet_for_message_sending.md index 22e7c4c..6c655c2 100644 --- a/draft-roadmap/introduce_mixnet_for_message_sending.md +++ b/draft-roadmap/introduce_mixnet_for_message_sending.md @@ -7,11 +7,24 @@ A PoC implementation to improve anonymity in Waku message publishing by mixing Waku Lightpush requests and responses. -**FURPS** (see deliverables) +## Strategic Objective -**GitHub Milestone and deliverables**: +TODO: Clarify with Leonard -## [Integrate libp2p mix into lightpush](https://github.com/waku-org/nwaku/issues/3280) +## FURPS + +See deliverables. + +## Risks + +| Risk | (Accept, Own, Mitigation) | +|-----------------------------------------|--------------------------------------------------------------------| +| Dependency on nim-libp2p | Strong collaboration, integrate early, get involved behind the API | +| Impact on latency and other UX elements | Run simulations and studies to understand impact | + +## Deliverables + +### [Integrate libp2p mix into lightpush](https://github.com/waku-org/nwaku/issues/3280) **Owner**: core research @@ -23,7 +36,6 @@ A PoC implementation to improve anonymity in Waku message publishing by mixing W - F3. Client nodes can send light push requests over the mixnet before delivery to a service node. - F4. Client nodes can receive a response to a light push request over the mixnet. - **Checklist**: - [ ] Specs: link to specs - [ ] Code: link to GitHub issues/PRs/Epic diff --git a/draft-roadmap/nim_usage_improvements.md b/draft-roadmap/nim_usage_improvements.md index ec5d9df..7e73e79 100644 --- a/draft-roadmap/nim_usage_improvements.md +++ b/draft-roadmap/nim_usage_improvements.md @@ -10,21 +10,35 @@ Improve usage of Nim related tooling and design patterns by proceedings with PoCs to discover potential gains and caveats. This includes adoption of Nimble, usage of VSCode plugin and iteration on C-Binding methodology. -**FURPS**: +## Strategic Objective -- [{Feature Name}]({path/to/furps/file}): TODO +TODO: Clarify with Leonard -**deliverables**: +## FURPS -## Dogfood VSCode Plugin and Nimsuggest +TODO + +## Risks + +| Risk | (Accept, Own, Mitigation) | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Maturity of tooling | This milestone focusing on trying out fresh Nim tooling, hence it may not be possible to output a PoC, but instead raising a series of upstream issues. | +| Actual value/impact | The direct value on dev ex is not always clear, especially for Nimble. There is hope on bette contributor experience, but the end impact may mostly be on improving Nim tooling by providing constructive feedback. | + +## Deliverables + +### Dogfood VSCode Plugin and Nimsuggest **Owner**: nwaku **No FURPS** -**Output**: Open issues and report on nimsuggest crashes and poor performance when used with nwaku codebase. +**Output**: +- [ ] Test nimsuggest in the nwaku codebase +- [ ] Create reproducible setup for crashes and poor performance, open upstream issues. +- [ ] Optional: provide a plan to make nwaku better compatible with nimsuggest (eg. no git submodule, less macros, etc) -## Migrate nwaku to Nimble PoC +### Migrate nwaku to Nimble PoC **Owner**: nwaku diff --git a/draft-roadmap/streamline_dev_ex_local_dev_rust.md b/draft-roadmap/streamline_dev_ex_local_dev_rust.md index c60ac8b..c38484d 100644 --- a/draft-roadmap/streamline_dev_ex_local_dev_rust.md +++ b/draft-roadmap/streamline_dev_ex_local_dev_rust.md @@ -15,13 +15,25 @@ relying on external connectivity; as well as opting in and out of RLN, and inclu Finalize the integration of nwaku in Status application by setting up nwaku-based build for Mobile platforms. -**FURPS**: +## Strategic Objective -- [{Feature Name}]({path/to/furps/file}): {list of furps: F1, etc} +TODO: Clarify with Leonard -**deliverables**: +## FURPS -## Edge Mode in Nwaku +TODO + +## Risks + +| Risk | (Accept, Own, Mitigation) | +|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| nwaku performance | Performance of nwaku in comparison to go-waku will be measured by DST during H2 and may raise issues that will become blockers for pratical usage of nwaku in Mobile. | +| Publishing to crates.io | One of the challenge to publish libwaku on crates.io is the package size. Several strategy may be developed and tried to find a way to distribute Nim-based Rust crates. | +| Local dev harness | Creating a local dev environment may be a challenge due to the nature of Waku and RLN, as we would need to locally coordinate bootstrap and blockchain emulation. | + +## Deliverables + +### Edge Mode in Nwaku **Owner**: nwaku @@ -36,7 +48,7 @@ Finalize the integration of nwaku in Status application by setting up nwaku-base - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Nwaku in Status Mobile +### Nwaku in Status Mobile **Owner**: nwaku @@ -51,7 +63,7 @@ Finalize the integration of nwaku in Status application by setting up nwaku-base - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Waku Rust SDK +### Waku Rust SDK **Owner**: nwaku @@ -66,7 +78,7 @@ Finalize the integration of nwaku in Status application by setting up nwaku-base - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Local RLN Dev Harness +### Local RLN Dev Harness **Owner**: ? (nwaku? core-research?) TODO @@ -81,7 +93,7 @@ Finalize the integration of nwaku in Status application by setting up nwaku-base - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD)\ -## Local Web Dev Harness +### Local Web Dev Harness **Owner**: js-waku From f514c7fb3d624398932884721c5fa9cc0974aff4 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 15:52:14 +1000 Subject: [PATCH 37/70] FURPS for RLN mgmt --- FURPS/application/rln_membership_management.md | 6 ++++-- draft-roadmap/README.md | 2 +- draft-roadmap/integrate_rln_with_waku_api.md | 18 ++++++++++++++++-- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/FURPS/application/rln_membership_management.md b/FURPS/application/rln_membership_management.md index a61c760..dbff9d4 100644 --- a/FURPS/application/rln_membership_management.md +++ b/FURPS/application/rln_membership_management.md @@ -24,9 +24,11 @@ ## Supportability 1. Browser application, using web3 wallet browser extensions. +2. library can be used in Go applications; available on pkg.go.dev. +3. library can be used in Rust applications; import via git path. ## + (Privacy, Anonymity, Deployments) -1. Deployed on https://rln.waku.org +1. Web version deployed on https://rln.waku.org 2. Available for Linea Sepolia Testnet contracts. -3. Proof generation and validation is out of scope. \ No newline at end of file +3. Proof generation and validation is out of scope for this FURPS. \ No newline at end of file diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 0e921ae..f23886c 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -95,7 +95,7 @@ In order of priority. | 2 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | 0.16.. | | 3 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | | 4 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5 | -| 5 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | TBD | | | | 2 dev/1 res | +| 5 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | 30 Sep | | | | 2 dev/1 res | | 6 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | | 7 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | | 8 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | TBD | | | | 1 dev/1 res | diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md index 66b8612..f5f5670 100644 --- a/draft-roadmap/integrate_rln_with_waku_api.md +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -42,10 +42,24 @@ TODO **Owner**: nwaku -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) +**Feature**: [RLN Membership Management](/FURPS/application/rln_membership_management.md) **FURPS**: -- {F1. copy-paste full furps statement} +- F1. Can generate RLN credentials. +- F2. Can insert RLN membership in smart contract, with accompanying deposit. +- F3. Can extend RLN membership on smart contract. +- F4. Can withdraw deposit from smart contract. +- F5. Membership credentials are encrypted by default on local disk. + +- U1. RLN membership details can be exported and imported. +- U2. Deployment details (address, chain id) are persisted by library and in exports. + +- R1. Import and exports are interoperable across all implementations. + +- S2. library can be used in Go applications; available on pkg.go.dev. +- S3. library can be used in Rust applications; import via git path. + +- +2. Available for Linea Sepolia Testnet contracts. **Checklist**: - [ ] Specs: link to specs and/or API definition From e62128052d8cf9a24761554338a81d6d4e834b84 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 16:09:35 +1000 Subject: [PATCH 38/70] Add FURPS --- FURPS/application/local_web_dev_harness.md | 25 +++++++++++++++++++ FURPS/core/rln_api.md | 20 +++++++++++++++ FURPS/core/rln_relay.md | 7 +++++- draft-roadmap/integrate_rln_with_waku_api.md | 10 +++++--- .../streamline_dev_ex_local_dev_rust.md | 19 ++++++++++++-- 5 files changed, 75 insertions(+), 6 deletions(-) create mode 100644 FURPS/application/local_web_dev_harness.md create mode 100644 FURPS/core/rln_api.md diff --git a/FURPS/application/local_web_dev_harness.md b/FURPS/application/local_web_dev_harness.md new file mode 100644 index 0000000..88e28c9 --- /dev/null +++ b/FURPS/application/local_web_dev_harness.md @@ -0,0 +1,25 @@ +# Local Web Dev Harness FURPS + +## Functionality + +1. Runs local Waku node to test Web application without relying on external connectivity. +2. js-waku runs in NodeJS for testing and CI purposes. + +## Usability + +1. Developer only need to run a script or preset to start local Waku node and have their web app connect to it. +2. Potential WSS/HTTPS issues are worked around so that developer does need to manually generate or import SSL certificates. +3. There is an easy option for the developer to bootstrap and connect to local node, instead of external peers. + +## Reliability + +## Performance + + +## Supportability + +1. Linux and Mac development environments. +2. Local network without RLN. +3. Chrome and Firefox browsers. + +## + (Privacy, Anonymity, Deployments) diff --git a/FURPS/core/rln_api.md b/FURPS/core/rln_api.md new file mode 100644 index 0000000..e16757b --- /dev/null +++ b/FURPS/core/rln_api.md @@ -0,0 +1,20 @@ +# Waku RLN API FURPS + +TODO + +## Functionality + + +## Usability + + +## Reliability + +## Performance + +## Supportability + + +## + (Privacy, Anonymity, Deployments) + +1. ... \ No newline at end of file diff --git a/FURPS/core/rln_relay.md b/FURPS/core/rln_relay.md index 43f9b63..73c95d1 100644 --- a/FURPS/core/rln_relay.md +++ b/FURPS/core/rln_relay.md @@ -3,10 +3,14 @@ ## Functionality 1. Light push service node can attach RLN proof for clients. +2. Relay node can attach RLN proof for outbound messages. +3. Relay node can verify RLN proof for inbound messages. +4. Light push client can be configured to generate proof for outbound messages. +5. Filter client can be configured to verify proof for inbound messages. ## Usability -1. Light push clients do not need RLN logic. +1. Light push clients do not need RLN logic when using RLNaaS. ## Reliability @@ -23,6 +27,7 @@ ## Supportability 1. Service node proof generation for light push clients is available in `wakunode2` for browser clients. +2. Browser edge nodes can be configured to verify and generate proofs. ## + (Privacy, Anonymity, Deployments) diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md index f5f5670..a6198c6 100644 --- a/draft-roadmap/integrate_rln_with_waku_api.md +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -71,10 +71,13 @@ TODO **Owner**: js-waku -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) +**Feature**: [RLN Relay](/FURPS/core/rln_relay.md) **FURPS**: -- {F1. copy-paste full furps statement} +- F4. Light push client can be configured to generate proof for outbound messages. +- F5. Filter client can be configured to verify proof for inbound messages. + +- S2. Browser edge nodes can be configured to verify and generate proofs. **Checklist**: - [ ] Specs: link to specs and/or API definition @@ -86,7 +89,8 @@ TODO **Owner**: nwaku -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) +TODO +**Feature**: [Waku RLN API](/FURPS/core/rln_api.md) **FURPS**: - {F1. copy-paste full furps statement} diff --git a/draft-roadmap/streamline_dev_ex_local_dev_rust.md b/draft-roadmap/streamline_dev_ex_local_dev_rust.md index c38484d..0fecab7 100644 --- a/draft-roadmap/streamline_dev_ex_local_dev_rust.md +++ b/draft-roadmap/streamline_dev_ex_local_dev_rust.md @@ -95,12 +95,27 @@ TODO ### Local Web Dev Harness +TODO: update milestone +1 js-waku engineer, 70% cap allocated; +start 1st Sep, end 19th Sep; + + **Owner**: js-waku -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) +**Feature**: [Local Web Dev Harness](/FURPS/application/local_web_dev_harness.md) **FURPS**: -- {F1. copy-paste full furps statement} + +- F1. Runs local Waku node to test Web application without relying on external connectivity. +- F2. js-waku runs in NodeJS for testing and CI purposes. + +- U1. Developer only need to run a script or preset to start local Waku node and have their web app connect to it. +- U2. Potential WSS/HTTPS issues are worked around so that developer does need to manually generate or import SSL certificates. +- U3. There is an easy option for the developer to bootstrap and connect to local node, instead of external peers. + +- S1. Linux and Mac development environments. +- S2. Local network without RLN. +- S3. Chrome and Firefox browsers. **Checklist**: - [ ] Specs: link to specs and/or API definition From b87b5041742353c9c2289d9b4f72d8bebd184628 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 16:20:35 +1000 Subject: [PATCH 39/70] Add FURPS for RLN API --- FURPS/core/rln_api.md | 15 ++++++++++++--- draft-roadmap/README.md | 2 +- draft-roadmap/integrate_rln_with_waku_api.md | 17 +++++++++++++++-- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/FURPS/core/rln_api.md b/FURPS/core/rln_api.md index e16757b..8b35d0c 100644 --- a/FURPS/core/rln_api.md +++ b/FURPS/core/rln_api.md @@ -1,12 +1,18 @@ # Waku RLN API FURPS -TODO - ## Functionality +1. Accepts RLN network configuration at initialization. +2. API to pass messages for proof validation. +3. API to import RLN credentials, compatible with RLN Membership management. +4. API to accept Waku Message and generate proof. +5. API to inform on configured rate limit parameters and remaining quota. ## Usability +1. TWN RLN configuration is applied by default. +2. No boilerplate code beyond initialization is necessary to pass RLN instance in a Waku API implementation. +3. Rate usage is persisted across restarts. ## Reliability @@ -14,7 +20,10 @@ TODO ## Supportability +1. library can be used in Go applications; available on pkg.go.dev. +2. library can be used in Rust applications; import via git path. +3. library can be used in Nim applications; import via git path. ## + (Privacy, Anonymity, Deployments) -1. ... \ No newline at end of file +1. Only one set of credentials can be used at a given time. \ No newline at end of file diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index f23886c..94b8f8e 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -93,7 +93,7 @@ In order of priority. |----------|-----------------------------------------------------------------------------------------|----------|----------|---------|-------|-------------| | 1 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5 | | | | | 2 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | 0.16.. | -| 3 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | +| 3 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 0.5 | | | | | 4 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5 | | 5 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | 30 Sep | | | | 2 dev/1 res | | 6 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md index a6198c6..96707e1 100644 --- a/draft-roadmap/integrate_rln_with_waku_api.md +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -89,11 +89,24 @@ TODO **Owner**: nwaku -TODO **Feature**: [Waku RLN API](/FURPS/core/rln_api.md) **FURPS**: -- {F1. copy-paste full furps statement} +- F1. Accepts RLN network configuration at initialization. +- F2. API to pass messages for proof validation. +- F3. API to import RLN credentials, compatible with RLN Membership management. +- F4. API to accept Waku Message and generate proof. +- F5. API to inform on configured rate limit parameters and remaining quota. + +- U1. TWN RLN configuration is applied by default. +- U2. No boilerplate code beyond initialization is necessary to pass RLN instance in a Waku API implementation. +- U3. Rate usage is persisted across restarts. + +- S1. library can be used in Go applications; available on pkg.go.dev. +- S2. library can be used in Rust applications; import via git path. +- S3. library can be used in Nim applications; import via git path. + +- +1. Only one set of credentials can be used at a given t **Checklist**: - [ ] Specs: link to specs and/or API definition From e0ab8bb47144d55b67a8aa4324f41a4199c139a6 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 20:09:12 +1000 Subject: [PATCH 40/70] Yes re Vac commitments --- 2025H2-summary.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/2025H2-summary.md b/2025H2-summary.md index 484d9af..26f9105 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -71,15 +71,15 @@ N/A ## 🚩 Key Cross Project/Shared Service Dependency (Top-5) -| Project | Specific | Confirmed with Project(Yes/No) | -|--------------------|-----------------------------------------------------------------------------------------|--------------------------------| -| Vac-DST | Proceed with status-backend benchmarks for nwaku and new chat sdk migration | Yes | -| Vac-QA | Proceed with status-backend non-regression testing for nwaku and new chat sdk migration | Yes | -| Status Network | Support usage of Sepolia | Yes | -| Vac-ACZ | Assist with using zerokit in the Browser | Yes | -| Vac-ACZ Think Tank | Assist in determining best libraries to use for cryptography in new Chat SDK | Pending | -| Infra | Maintain Waku fleet, apply config changes requests, deploy new nodes for metrics | TODO | -| Vac-SC | Support of functional extension of RLN Smart Contract | TODO | +| Project | Specific | Confirmed with Project(Yes/No) | +|----------------|-----------------------------------------------------------------------------------------|--------------------------------| +| Vac-DST | Proceed with status-backend benchmarks for nwaku and new chat sdk migration | Yes | +| Vac-QA | Proceed with status-backend non-regression testing for nwaku and new chat sdk migration | Yes | +| Status Network | Support usage of Sepolia | Yes | +| Vac-ACZ | Assist with using zerokit in the Browser | Yes | +| Vac-ACZ | Assist in determining best libraries to use for cryptography in new Chat SDK | Yes | +| Infra | Maintain Waku fleet, apply config changes requests, deploy new nodes for metrics | TODO | +| Vac-SC | Support of functional extension of RLN Smart Contract | Yes | ##### Optional link to Full Dependency - href From 2e036bb9a8d6aa4f0db5d0017f53cf85da3098c3 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 21:46:03 +1000 Subject: [PATCH 41/70] some clarificaitons --- 2025H2-summary.md | 69 ++++++++++--------- .../improve_devex_api_twn_metrics_docs.md | 2 +- draft-roadmap/nim_usage_improvements.md | 29 ++++---- 3 files changed, 54 insertions(+), 46 deletions(-) diff --git a/2025H2-summary.md b/2025H2-summary.md index 26f9105..5cea796 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -28,32 +28,34 @@ Strategy changes: ## 🚩 Proposed Milestones(s) -| Milestone Headline | Strategic Objective (Short form) ** | Capacity* | Business Val (0/10) | FURPS | -|-------------------------------------------------------------------------------------------------------|-------------------------------------|-----------|---------------------|-------| -| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision | 1.5 | 7 | TODO | -| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Vision, Status (via Chat SDK) | TODO | 8 | | -| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision | 1 | 6 | | -| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement | 1.5 | 7 | | -| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement, Status | 3 | 9 | | -| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement, Status | 0.5 | 9 | | -| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement, Status | TBD | 9 | | -| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement, Status | | 9 | | -| Incentivisation follow-up | TBD | TBD | 7 | | -| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | TBD | | 5 | TBD | +| Milestone Headline | Strategic Objective | Capacity* | Business Val (0/10) | FURPS | +|-------------------------------------------------------------------------------------------------------|---------------------------------------------------------|-----------|---------------------|-------| +| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision: Core Values Alignment | 1.5 | 7 | TODO | +| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Movement Community Enabling via Dev-X + Telemetry | TODO | 8 | FU__+ | +| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision: Core Values Alignment | 1 | 6 | | +| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement Community Enabling | 1.5 | 7 | | +| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement Module Build Out | 3 | 9 | | +| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement Module Build Out | 0.5 | 9 | | +| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement Community Enabling via Dev-X | TBD | 9 | | +| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement Module Build Out | | 9 | | +| Incentivisation follow-up (write outline) | Logos Vision: Core Values Alignment | TBD | 7 | | +| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | Logos Movement Community Enabling: Dev Journey | | 5 | TBD | ## 🧩 Strategic Benefits Realisable from coming Half-Year (Top 5) +- **Logos Vision - Core Values Alignment**: Progress on making Waku sustainably scalable, resilient, private and censorship-resistant. + +TODO: more like above + +Sustainable, scalable, secure and usable Chat protocol: Enables anyone to build private native chat application, and set sustainable foundations for Status application. + - Deliver better APIs and SDKs: Broadens utility of Waku protocol, including RLN, enable building desktop, browser and mobile app using a unified, simple, Waku and RLN API. -- Sustainable, scalable, secure and usable Chat protocol: Enables anyone to build private native chat application, and set sustainable foundations for Status application. + - Waku web apps: demonstrate how to build on Waku, and iterate on dev ex and UX of Waku APIs and protocols, including RLN. -- Roadmap to incentivisation: Explore how the Waku network can be sustainably scalable, resilient, private and censorship-resistant. + - Introduce mixnet: Deliver on our promise of network level anonymity, starting with sender anonymity. - Improve Nim usage: improve the efficiency of Waku nim developers, to better delivery our commitments and "make it easy to contribute". -##### Optional link to Full Strategic Benefits - href - -N/A - ## 🚩 Key Cross Project Alignments (Top-5) | Project / Community | Specific | Confirmed with Project(Yes/No) | @@ -65,9 +67,6 @@ N/A | Codex | Formalize and Expand Waku Web Apps: More Codex Integrations | Pending | | Status L2 | Integrate RLN With the Waku API: Deploy SC on Sepolia | Yes | -##### Optional link to Full Cross Alignments - href - -N/A ## 🚩 Key Cross Project/Shared Service Dependency (Top-5) @@ -81,15 +80,11 @@ N/A | Infra | Maintain Waku fleet, apply config changes requests, deploy new nodes for metrics | TODO | | Vac-SC | Support of functional extension of RLN Smart Contract | Yes | -##### Optional link to Full Dependency - href - -N/A - ## Funding and Resources (By Strategic Objective) ### Rolled-Up By Strategic Objective -TODO +TODO: copy from strategic objectives in milestone table. | Strategic Objective | People Costs | Infra Costs | Other Costs | |-----------------------------------|--------------|-------------|-------------| @@ -107,11 +102,11 @@ TODO ### By Resource -| Resource Headline Item | People | Comment | -|-------------------------|---------|-----------| -| Present Resource | 20 | | -| Additional Resource Ask | 2 | backfills | -| PeopleOps Informed | Yes | | +| Resource Headline Item | People | Comment | +|-------------------------|---------|-------------------------------------------------| +| Present Resource | 20 | | +| Additional Resource Ask | 2 | backfills (more to ...TODO strategic objhectve) | +| PeopleOps Informed | Yes | | ### PeopleOps Consultation TODO @@ -121,6 +116,12 @@ TODO ## ⚠️ Keys Risks Identified & Controls +TODO: big ones + +Accept: you accept the risk and it may realize +Own: you spend effort to resolve the risk +Mitigation: you find a way to reduce the risk impact + | Risk | (Accept, Own, Mitigation) | |--------------------|-----------------------------------------------------| | [Risk] | [Mitigation strategy] | @@ -131,9 +132,13 @@ TODO **[Specific observations from this last execution window]** TO CLARIFY +Lessons, strategic observations, other improvements. +"Key Improvements"/retrospective. -#Appendix As Needed +--- + +TODO: remove below ## 🛠️ FURPS Reference by Proposed Milestone TO CLARIFY diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index ce89811..60b343f 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -19,7 +19,7 @@ This includes: ## Strategic Objective -TODO: Clarify with Leonard +Logos Movement Community Enabling via Dev-X + Telemetry ## FURPS diff --git a/draft-roadmap/nim_usage_improvements.md b/draft-roadmap/nim_usage_improvements.md index 7e73e79..6c6d72f 100644 --- a/draft-roadmap/nim_usage_improvements.md +++ b/draft-roadmap/nim_usage_improvements.md @@ -8,7 +8,7 @@ - {infrastructure} Improve usage of Nim related tooling and design patterns by proceedings with PoCs to discover potential gains and caveats. -This includes adoption of Nimble, usage of VSCode plugin and iteration on C-Binding methodology. +This includes adoption of Nimble, dogfooding VSCode plugin and iteration on C-Binding methodology. ## Strategic Objective @@ -27,19 +27,10 @@ TODO ## Deliverables -### Dogfood VSCode Plugin and Nimsuggest - -**Owner**: nwaku - -**No FURPS** - -**Output**: -- [ ] Test nimsuggest in the nwaku codebase -- [ ] Create reproducible setup for crashes and poor performance, open upstream issues. -- [ ] Optional: provide a plan to make nwaku better compatible with nimsuggest (eg. no git submodule, less macros, etc) - ### Migrate nwaku to Nimble PoC +Note: maybe taken over by Vac-Nim + **Owner**: nwaku **Feature**: TODO @@ -53,7 +44,19 @@ TODO - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -## Use Protobuf to transfer data from Wrapper to nwaku library PoC +### Dogfood VSCode Plugin and Nimsuggest + +**Owner**: nwaku + +**No FURPS** + +**Output**: +- [ ] Test nimsuggest in the nwaku codebase +- [ ] Create reproducible setup for crashes and poor performance, open upstream issues. +- [ ] Optional: provide a plan to make nwaku better compatible with nimsuggest (eg. no git submodule, less macros, etc) + + +### Use Protobuf to transfer data from Wrapper to nwaku library PoC **Owner**: nwaku From b37862e692e7fe53967ff50e49d10371bfb177af Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 22:19:14 +1000 Subject: [PATCH 42/70] some dates --- .../improve_devex_api_twn_metrics_docs.md | 3 +- draft-roadmap/integrate_rln_with_waku_api.md | 4 +-- .../streamline_dev_ex_local_dev_rust.md | 32 ++++++++++--------- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index 60b343f..c712fe1 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -4,7 +4,8 @@ - js-waku 31 Aug **Resources Required for 2025H2**: -- 1 js-waku engineer TODO +- 1 js-waku engineer, 31 Aug +- 1.5 nwaku eng, 31 Aug - {external services consumed (Vac/IFT)} - {infrastructure} diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md index 96707e1..016a337 100644 --- a/draft-roadmap/integrate_rln_with_waku_api.md +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -1,9 +1,9 @@ # Integrate RLN With the Waku API -**Estimated date of completion**: {Enter date} TODO +**Estimated date of completion**: 30 Sep **Resources Required for 2025H2**: -- nwaku engineer TODO +- 1 nwaku engineer for 2 months - 1 js-waku engineer for 2 months (til 30 Aug) - core research/test engineer? TODO - chat sdk engineer TODO diff --git a/draft-roadmap/streamline_dev_ex_local_dev_rust.md b/draft-roadmap/streamline_dev_ex_local_dev_rust.md index 0fecab7..3965981 100644 --- a/draft-roadmap/streamline_dev_ex_local_dev_rust.md +++ b/draft-roadmap/streamline_dev_ex_local_dev_rust.md @@ -4,6 +4,8 @@ **Resources Required for 2025H2**: - {roles and % application to it} +- nwaku 1 eng during 1 month 70% until 30 Sep - start 1st Sep +- js-waku 1 eng 70% 1-19th Sep - {external services consumed (Vac/IFT)} - {infrastructure} @@ -78,21 +80,6 @@ TODO - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -### Local RLN Dev Harness - -**Owner**: ? (nwaku? core-research?) TODO - -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) - -**FURPS**: -- {F1. copy-paste full furps statement} - -**Checklist**: -- [ ] Specs: link to specs and/or API definition -- [ ] Code: link to GitHub issues/PRs/Epic -- [ ] Dogfood: link to dogfooding session/artefact -- [ ] Docs: links to README.md or docs.waku.org (TBD)\ - ### Local Web Dev Harness TODO: update milestone @@ -122,3 +109,18 @@ start 1st Sep, end 19th Sep; - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) + +### Local RLN Dev Harness + +**Owner**: nwaku + +**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) + +**FURPS**: +- {F1. copy-paste full furps statement} + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD)\ \ No newline at end of file From b2e0a27983519ceeebddf34c96eef8b2ff1408a3 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 22:23:47 +1000 Subject: [PATCH 43/70] fix mix furps --- FURPS/core/mix.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/FURPS/core/mix.md b/FURPS/core/mix.md index 1220fb3..dcd1f7e 100644 --- a/FURPS/core/mix.md +++ b/FURPS/core/mix.md @@ -2,8 +2,8 @@ ## Functionality -1. Relay nodes can mount mixnet protocol, acting as entry, exit or mixnet nodes. -2. Nodes can discover mixnet relay and exit nodes using available peer discovery mechanisms. +1. Relay nodes can mount mixnet protocol, acting as sender, intermediary or exit nodes. +2. Nodes can discover other nodes that support mix using available peer discovery mechanisms 3. Client nodes can send light push requests over the mixnet before delivery to a service node. 4. Client nodes can receive a response to a light push request over the mixnet. @@ -15,6 +15,7 @@ ## Supportability -1. nwaku CLI +1. `wakunode2` for intermediary and exit nodes. +2. nwaku CLI for sender nodes. ## + (Privacy, Anonymity, Deployments) From 2bf421871d41705661b2d664c277daf6383ac413 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 22:25:43 +1000 Subject: [PATCH 44/70] fix mix furps --- draft-roadmap/introduce_mixnet_for_message_sending.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/draft-roadmap/introduce_mixnet_for_message_sending.md b/draft-roadmap/introduce_mixnet_for_message_sending.md index 6c655c2..daad678 100644 --- a/draft-roadmap/introduce_mixnet_for_message_sending.md +++ b/draft-roadmap/introduce_mixnet_for_message_sending.md @@ -19,7 +19,7 @@ See deliverables. | Risk | (Accept, Own, Mitigation) | |-----------------------------------------|--------------------------------------------------------------------| -| Dependency on nim-libp2p | Strong collaboration, integrate early, get involved behind the API | +| Dependency on nim-libp2p-mix | Strong collaboration, integrate early, get involved behind the API | | Impact on latency and other UX elements | Run simulations and studies to understand impact | ## Deliverables @@ -31,11 +31,14 @@ See deliverables. **Feature**: [Mix](/FURPS/core/mix.md) **FURPS**: -- F1. Relay nodes can mount mixnet protocol, acting as entry, exit or mixnet nodes. -- F2. Nodes can discover mixnet relay and exit nodes using available peer discovery mechanisms. +- F1. Relay nodes can mount mixnet protocol, acting as sender, intermediary or exit nodes. +- F2. Nodes can discover other nodes that support mix using available peer discovery mechanisms - F3. Client nodes can send light push requests over the mixnet before delivery to a service node. - F4. Client nodes can receive a response to a light push request over the mixnet. +- S1. `wakunode2` for intermediary and exit nodes. +- S2. nwaku CLI for sender nodes. + **Checklist**: - [ ] Specs: link to specs - [ ] Code: link to GitHub issues/PRs/Epic From 9ae027200b1d398439ec51b7287cb221bef4358e Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 22:27:17 +1000 Subject: [PATCH 45/70] comment on resources --- .../improve_devex_api_twn_metrics_docs.md | 23 +------------------ 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index c712fe1..304e01a 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -5,7 +5,7 @@ **Resources Required for 2025H2**: - 1 js-waku engineer, 31 Aug -- 1.5 nwaku eng, 31 Aug +- 1.5 nwaku eng, 31 Aug (API) - {external services consumed (Vac/IFT)} - {infrastructure} @@ -85,27 +85,6 @@ For S2. For Web apps as a developer library. - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -### Define and Implement Light Push Error codes in nwaku - -**Owner**: nwaku - -**Feature**: [Light Push](/FURPS/core/light_push.md) - -**FURPS**: -- F4. Supports comprehensive error codes for various failure scenarios. -- U4. Provides descriptive error messages in responses. -- R2. Status codes indicate the best recovery method (retry, discard service node or irrecoverable failure). -- R3. 80% message transmission success rate on live Status network (service node from both Status Desktop and fleet Waku instances) - -For S1. Linux amd64 CLI as service node -Includes spec delivery - -**Checklist**: -- [ ] Specs: link to specs and/or API definition -- [ ] Code: link to GitHub issues/PRs/Epic -- [ ] Dogfood: link to dogfooding session/artefact -- [ ] Docs: links to README.md or docs.waku.org (TBD) - ### Implement Light Push Error codes in The Browser **Owner**: js-waku From f10a227c996f19e7e400ceabf2084ff14dc6b8fb Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 22:36:18 +1000 Subject: [PATCH 46/70] clarify dep --- draft-roadmap/nim_usage_improvements.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/draft-roadmap/nim_usage_improvements.md b/draft-roadmap/nim_usage_improvements.md index 6c6d72f..de8fd63 100644 --- a/draft-roadmap/nim_usage_improvements.md +++ b/draft-roadmap/nim_usage_improvements.md @@ -50,6 +50,8 @@ Note: maybe taken over by Vac-Nim **No FURPS** +**Depends on Migrate nwaku to Nimble PoC** + **Output**: - [ ] Test nimsuggest in the nwaku codebase - [ ] Create reproducible setup for crashes and poor performance, open upstream issues. From 669b50780e7891e0942d320a836fd243cc54734a Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 22:39:14 +1000 Subject: [PATCH 47/70] add mix dep --- 2025H2-summary.md | 1 + 1 file changed, 1 insertion(+) diff --git a/2025H2-summary.md b/2025H2-summary.md index 5cea796..5ecfd18 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -77,6 +77,7 @@ Sustainable, scalable, secure and usable Chat protocol: Enables anyone to build | Status Network | Support usage of Sepolia | Yes | | Vac-ACZ | Assist with using zerokit in the Browser | Yes | | Vac-ACZ | Assist in determining best libraries to use for cryptography in new Chat SDK | Yes | +| Vac-ACZ | libp2p-mix protocol development | Yes | | Infra | Maintain Waku fleet, apply config changes requests, deploy new nodes for metrics | TODO | | Vac-SC | Support of functional extension of RLN Smart Contract | Yes | From 71895bfc4d9785bb0d7759fae1eba1e358ba9dfe Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 22:39:38 +1000 Subject: [PATCH 48/70] fix opchan furps --- FURPS/application/forum.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FURPS/application/forum.md b/FURPS/application/forum.md index 845d160..3f0fe4b 100644 --- a/FURPS/application/forum.md +++ b/FURPS/application/forum.md @@ -2,7 +2,7 @@ ## Functionality -1. Users identify themselves by signing with their Bitcoin key. +1. Users can identify themselves by signing with their Bitcoin key. 2. Only users owning Logos ordinal or an ENS can create a cell. 3. Any user (authenticated or not) can see the content; basic encryption functionality. 4. Existing cells can be listed. From 43d4ed65397692597d5499f2f08a795c38e7f0d4 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 22:42:20 +1000 Subject: [PATCH 49/70] no wallet needed --- FURPS/application/forum.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FURPS/application/forum.md b/FURPS/application/forum.md index 3f0fe4b..46bee15 100644 --- a/FURPS/application/forum.md +++ b/FURPS/application/forum.md @@ -30,7 +30,7 @@ 5. The ordinal picture and information are used to identify user, in addition to the custom nickname. 6. Moderated users, comments, and posts are hidden. 7. Users do not need to sign every message with their wallet. -8. Users do not need any software beyond a Bitcoin wallet browser extension. +8. Users do not need any software beyond a browser to use the forum. 9. This includes a prototype UI to dogfood the PoC; Nice UI will be handled by Comms Hubs team. 10. A library with clear API is produced to enable frontend developers to use it with a nice UI. 11. ENS holders can choose to use an ENS for display purposes. @@ -47,7 +47,7 @@ None ## Supportability -1. Web app with Bitcoin wallet browser extension +1. Web app; bitcoin and ethereum wallets optional. ## + (Privacy, Anonymity, Deployments) From 8bba03d525802fcfcf469be86f4ba12a8e7271e7 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 22:43:16 +1000 Subject: [PATCH 50/70] fix harness furps --- FURPS/application/local_web_dev_harness.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FURPS/application/local_web_dev_harness.md b/FURPS/application/local_web_dev_harness.md index 88e28c9..43dccd6 100644 --- a/FURPS/application/local_web_dev_harness.md +++ b/FURPS/application/local_web_dev_harness.md @@ -8,7 +8,7 @@ ## Usability 1. Developer only need to run a script or preset to start local Waku node and have their web app connect to it. -2. Potential WSS/HTTPS issues are worked around so that developer does need to manually generate or import SSL certificates. +2. Potential WSS/HTTPS issues are worked around so that developers do not need to manually generate or import SSL certificates. 3. There is an easy option for the developer to bootstrap and connect to local node, instead of external peers. ## Reliability From eee8c94f4dff2b883b10771818a12f952ec594a6 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 22:47:12 +1000 Subject: [PATCH 51/70] mix name --- 2025H2-summary.md | 2 +- FURPS/application/local_web_dev_harness.md | 1 - draft-roadmap/introduce_mixnet_for_message_sending.md | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/2025H2-summary.md b/2025H2-summary.md index 5ecfd18..4d6dbdc 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -77,7 +77,7 @@ Sustainable, scalable, secure and usable Chat protocol: Enables anyone to build | Status Network | Support usage of Sepolia | Yes | | Vac-ACZ | Assist with using zerokit in the Browser | Yes | | Vac-ACZ | Assist in determining best libraries to use for cryptography in new Chat SDK | Yes | -| Vac-ACZ | libp2p-mix protocol development | Yes | +| Vac-ACZ | mix protocol development | Yes | | Infra | Maintain Waku fleet, apply config changes requests, deploy new nodes for metrics | TODO | | Vac-SC | Support of functional extension of RLN Smart Contract | Yes | diff --git a/FURPS/application/local_web_dev_harness.md b/FURPS/application/local_web_dev_harness.md index 43dccd6..65f303f 100644 --- a/FURPS/application/local_web_dev_harness.md +++ b/FURPS/application/local_web_dev_harness.md @@ -15,7 +15,6 @@ ## Performance - ## Supportability 1. Linux and Mac development environments. diff --git a/draft-roadmap/introduce_mixnet_for_message_sending.md b/draft-roadmap/introduce_mixnet_for_message_sending.md index daad678..96c9ae5 100644 --- a/draft-roadmap/introduce_mixnet_for_message_sending.md +++ b/draft-roadmap/introduce_mixnet_for_message_sending.md @@ -19,7 +19,7 @@ See deliverables. | Risk | (Accept, Own, Mitigation) | |-----------------------------------------|--------------------------------------------------------------------| -| Dependency on nim-libp2p-mix | Strong collaboration, integrate early, get involved behind the API | +| Dependency on mix library | Strong collaboration, integrate early, get involved behind the API | | Impact on latency and other UX elements | Run simulations and studies to understand impact | ## Deliverables From fa657637e8cd804f8f36cda2e521baca528d6600 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Tue, 10 Jun 2025 22:51:05 +1000 Subject: [PATCH 52/70] Iuri says yes --- 2025H2-summary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2025H2-summary.md b/2025H2-summary.md index 4d6dbdc..c7325e3 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -61,7 +61,7 @@ Sustainable, scalable, secure and usable Chat protocol: Enables anyone to build | Project / Community | Specific | Confirmed with Project(Yes/No) | |---------------------|-----------------------------------------------------------------|--------------------------------| | Status Application | Create Chat SDK MVP, Extend Chat SDK, Integrate RLN w/ Waku API | Yes | -| Logos Core | Formalize and Expand Waku Web Apps: Logos core app | Pending | +| Logos Core | Formalize and Expand Waku Web Apps: Logos core app | Yes | | Logos Movement | Formalize and Expand Waku Web Apps: Forum | Yes | | Status Application | Streamline DevEx: Mobile | Yes | | Codex | Formalize and Expand Waku Web Apps: More Codex Integrations | Pending | From 8d033f56ee5434b0f718717621890fb4a91486e0 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Wed, 11 Jun 2025 11:19:06 +1000 Subject: [PATCH 53/70] some fix up --- 2025H1-SUMMARY.md | 2 +- 2025H2-summary.md | 2 +- .../formalize_and_expand_waku_web_apps.md | 16 ++++++++++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/2025H1-SUMMARY.md b/2025H1-SUMMARY.md index 4bd7789..5b1360f 100644 --- a/2025H1-SUMMARY.md +++ b/2025H1-SUMMARY.md @@ -29,7 +29,7 @@ | Nwaku in Status Desktop (Relay mode) | Demonstrate usage of nwaku/nim-library in Status Desktop/Golang Application | 10/10 | | RLN Mainnet | Introduce economics to DoS protection smart contract and improve UX | 7/10 | | Hardening and scaling foundations for private chats | Understand chat protocol to define roadmap, increase QA coverage for chat protocols | 7/10 | -| Upgrade Waku for the Web | Delivered end-to-end protocol to Web applications | 5/10 | +| Upgrade Waku for the Web | Delivered end-to-end reliability protocol and improved peer management to Web applications | 5/10 | | Logos Web apps | Decentralized Forum PoC, Qaku library, demonstration of Codex integration w/ Waku and more resilience to Web3 RPC outages for nwaku | 7/10 | | Explore Peer Discovery Gap | Partial Mixnet PoC, dogfooding store sync for network message consistency | 6/10 | | Debugging Tools | Local metrics dashboard to enable study of software behaviour and usage of Waku | 5/10 | diff --git a/2025H2-summary.md b/2025H2-summary.md index c7325e3..801b618 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -2,7 +2,7 @@ ## 🧭 Key Outcome(s) of Vision you are supporting -- Create Chat SDK MVP - one-to-one (Browser, Nim, Rust, Golang), support Status' technical roadmap, supports Logos Movement and Logos Core by enabling secure conversations over Waku +- Create Chat SDK MVP - one-to-one (Nim, Rust, Golang), support Status' technical roadmap, supports Logos Movement and Logos Core by enabling secure conversations over Waku - Simplify a reliable Waku API and SDK (Browser, Nim, Rust, Golang), supports Chat SDK, Logos Movement and Logos Core, make it is easy to integrate - Improve Waku Developer Experience by stabilizing The Waku Network and reviewing Docs: Support Logos Movement, make it is easy to integrate - Deploy metrics to measure Waku and any Waku app's level of adoption: Support measuring success of Logos Movement diff --git a/draft-roadmap/formalize_and_expand_waku_web_apps.md b/draft-roadmap/formalize_and_expand_waku_web_apps.md index edd4e5c..4188508 100644 --- a/draft-roadmap/formalize_and_expand_waku_web_apps.md +++ b/draft-roadmap/formalize_and_expand_waku_web_apps.md @@ -98,11 +98,13 @@ TODO - Hanno is defining some FURPS and we can review. - Broadcast to the community must happen (Logos/Waku Discord, Logos/Vac Forums, conference talks, Twitter, etc). **Checklist**: -- ~[ ] Specs: link to specs and/or API definition~ -- [ ] Code: link to GitHub issues/PRs/Epic + +- [ ] Code: a public GitHub repo - [ ] Dogfood: link to dogfooding session/artefact -- ~[ ] Docs: links to README.md or docs.waku.org (TBD)~ - [ ] Promote the app + - [ ] Logos Forum Post + - [ ] Walkthrough Video + - [ ] Social media post for re-broadcast ### Build One Waku Logos Core App @@ -117,11 +119,13 @@ TODO - Hanno is defining some FURPS and we can review. - May use Waku SDK or Chat SDK. **Checklist**: -- ~[ ] Specs: link to specs and/or API definition~ -- [ ] Code: link to GitHub issues/PRs/Epic + +- [ ] Code: a public GitHub repo - [ ] Dogfood: link to dogfooding session/artefact -- ~[ ] Docs: links to README.md or docs.waku.org (TBD)~ - [ ] Promote the app + - [ ] Logos Forum Post + - [ ] Walkthrough Video + - [ ] Social media post for re-broadcast ### Open Forum to Web3 Users and Anons From c051dc973bc3142fffec3912272393a2c8dcfeab Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Wed, 11 Jun 2025 11:45:30 +1000 Subject: [PATCH 54/70] Add RLN integration in 2nd chat milestone --- FURPS/application/group_chat.md | 1 + FURPS/application/rate_limit_manager.md | 1 + ...xtend_chat_sdk_with_group_conversations.md | 20 +++++++++++++++++++ .../improve_devex_api_twn_metrics_docs.md | 2 +- 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/FURPS/application/group_chat.md b/FURPS/application/group_chat.md index fcab58d..69acd0f 100644 --- a/FURPS/application/group_chat.md +++ b/FURPS/application/group_chat.md @@ -23,6 +23,7 @@ 1. Developers can create group conversations from Go Applications; available on pkg.go.dev. 2. Developers can create group conversations from Rust Applications; available on crates.io. +3. SDK can be instantiated with a RLN-enabled Waku node. ## + (Privacy, Anonymity, Deployments) diff --git a/FURPS/application/rate_limit_manager.md b/FURPS/application/rate_limit_manager.md index 2e96010..34042e8 100644 --- a/FURPS/application/rate_limit_manager.md +++ b/FURPS/application/rate_limit_manager.md @@ -8,6 +8,7 @@ 4. Messages can be flagged with three priorities level: critical, normal, optional. 5. When remaining message quota is low, critical messages are sent, normal messages are queued and optional messages are dropped. 6. When message quote is exhausted, critical messages are queued on top, normal messages are queued, optional messages are dropped. +7. Can consume RLN API to access rate limit and current quota. ## Usability diff --git a/draft-roadmap/extend_chat_sdk_with_group_conversations.md b/draft-roadmap/extend_chat_sdk_with_group_conversations.md index c8c89a9..33f5323 100644 --- a/draft-roadmap/extend_chat_sdk_with_group_conversations.md +++ b/draft-roadmap/extend_chat_sdk_with_group_conversations.md @@ -77,3 +77,23 @@ TODO: Clarify with Leonard - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) + +### Enable usage with RLN SDK + +**Owner**: App/Chat Dev + +#### **Feature**: [Rate Limit Manager](/FURPS/application/rate_limit_manager.md) + +**FURPS**: +- F7. Can consume RLN API to access rate limit and current quota. + +#### **Feature**: [Group Chat](/FURPS/application/group_chat.md) + +**FURPS**: +- S3. SDK can be instantiated with a RLN-enabled Waku node. + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) \ No newline at end of file diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index 304e01a..1dcf319 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -4,7 +4,7 @@ - js-waku 31 Aug **Resources Required for 2025H2**: -- 1 js-waku engineer, 31 Aug +- 2 js-waku engineer, 31 Aug - 1.5 nwaku eng, 31 Aug (API) - {external services consumed (Vac/IFT)} - {infrastructure} From 5ab882a0045cd282bba56da4c7855621eaf29b03 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Wed, 11 Jun 2025 15:24:04 +1000 Subject: [PATCH 55/70] Wrap up dates --- 2025H1-SUMMARY.md | 11 +- 2025H2-summary.md | 139 ++++++------------ FURPS/application/local_dev_rln_harness.md | 23 +++ FURPS/application/nwaku.md | 7 +- FURPS/application/status_go.md | 9 +- FURPS/core/waku_api.md | 7 +- draft-roadmap/README.md | 25 ++-- draft-roadmap/create_chat_sdk_mvp.md | 2 +- .../define_incentivisation_for_rlnaas.md | 4 +- ...xtend_chat_sdk_with_group_conversations.md | 2 +- .../formalize_and_expand_waku_web_apps.md | 2 +- .../improve_devex_api_twn_metrics_docs.md | 25 +--- draft-roadmap/integrate_rln_with_waku_api.md | 11 +- .../introduce_mixnet_for_message_sending.md | 2 +- draft-roadmap/nim_usage_improvements.md | 17 ++- .../streamline_dev_ex_local_dev_rust.md | 44 +++--- 16 files changed, 158 insertions(+), 172 deletions(-) create mode 100644 FURPS/application/local_dev_rln_harness.md diff --git a/2025H1-SUMMARY.md b/2025H1-SUMMARY.md index 5b1360f..587e105 100644 --- a/2025H1-SUMMARY.md +++ b/2025H1-SUMMARY.md @@ -86,13 +86,7 @@ ## Funding and Resources -| Name | Amount | -|------------------------|---------------------| -| Headline Budget Ask | k-USD | -| Final Budget Used | k-USD | -| Resource Count Initial | 21 | -| Resource Count Final | 20 | -| Open Positions | 0 (2 backfill lost) | +https://notes.status.im/E_bcw7cLR36QKI39k-PlMg# ## ⚠️ Keys Risks & Controls @@ -111,5 +105,6 @@ - It was too early to formalize integration with Codex. Nonetheless, Waku apps produced by app/chat team have Codex integration and dogfooding of Waku x Codex will continue. - We attempted to put in place a process with Vac-QA and Vac-DST respectively "certify" `R`s and `P`s. While good on principle, the tracking processes are not there. - It was a first round of planning with FURPS. Lessons have been learned and being applied for H2. -- The "Waku (Messaging) API" was initially a tidy up, as Waku was already integrated in Status. With a focus towards Chat SDK and growing a developer community, it became an urgent-important item. - The Waku internal hackathon was a great experiment to identify use-case but also improvements to the Waku dev ex. With a focus on building (developer) tribes, its strategic value has increased. +- Milestones that involved breaking changes were dragged across several Status release; need to review how this is planned to not postponed milestone completion dates by months. +- Some research items took time to wrap-up, sort bindings, etc. Will discuss with the team on how we can be better are getting research PoC ready for dogfooding. \ No newline at end of file diff --git a/2025H2-summary.md b/2025H2-summary.md index 801b618..9903ac4 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -1,5 +1,7 @@ # Milestones Presentation (Half-Year to Dec-2025): Waku +TODO what's up with eco dev grwoth + ## 🧭 Key Outcome(s) of Vision you are supporting - Create Chat SDK MVP - one-to-one (Nim, Rust, Golang), support Status' technical roadmap, supports Logos Movement and Logos Core by enabling secure conversations over Waku @@ -11,8 +13,8 @@ - Integrate RLN with Waku API: Supports Chat SDK, and Logos Movement to make it easy it to integrate Waku RLN. - Streamline DevEx: Mobile, and Web dev, supporting Status to have nwaku and chat sdk on mobile, provide tooling to make it easy to integrate js-waku - Extend Chat SDK with Group conversations: ditto create chat sdk -- Nim Usage Improvement: Dedicate time to improve nim usage (nimble usage, iterate on ffi api, study nimsuggest behaviour): to improve nwaku contributor experience, enable all goals above and make it easy to contribute -- Continue Waku Incentivization: Finish Light push PoC and define next step, to make Waku infrastructure decentralized and sustainable, as per Logos Vision +- Nim Usage Improvement: Dedicate time to improve nim usage (nimble usage, iterate on ffi api, study `nimsuggest` behaviour): to improve nwaku contributor experience, enable all goals above and make it easy to contribute +- Continue Waku Incentivisation: Finish Light push PoC and define next step, to make Waku infrastructure decentralized and sustainable, as per Logos Vision Strategy changes: @@ -24,37 +26,29 @@ Strategy changes: - Introduced Developer Experience items: to support Chat SDK, and "make it easy to integrate" - Nim Usage Improvement: increased priority to support new chat sdk, and "make it easy to contribute" - De-scoped any Communities or existing Status chat protocol work, apart from e2e reliability as it is a re-usable block for Chat SDK. -- RLN Mainnet is a long term goal, focused instead of smaller, achievable items that enable integration and dogfooding of RLN. +- RLN Mainnet is a long term goal, focus instead of smaller, achievable items that enable integration and dogfooding of RLN. ## 🚩 Proposed Milestones(s) -| Milestone Headline | Strategic Objective | Capacity* | Business Val (0/10) | FURPS | -|-------------------------------------------------------------------------------------------------------|---------------------------------------------------------|-----------|---------------------|-------| -| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision: Core Values Alignment | 1.5 | 7 | TODO | -| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Movement Community Enabling via Dev-X + Telemetry | TODO | 8 | FU__+ | -| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision: Core Values Alignment | 1 | 6 | | -| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement Community Enabling | 1.5 | 7 | | -| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement Module Build Out | 3 | 9 | | -| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement Module Build Out | 0.5 | 9 | | -| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement Community Enabling via Dev-X | TBD | 9 | | -| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement Module Build Out | | 9 | | -| Incentivisation follow-up (write outline) | Logos Vision: Core Values Alignment | TBD | 7 | | -| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | Logos Movement Community Enabling: Dev Journey | | 5 | TBD | +| Milestone Headline | Strategic Objective | Capacity | Business Val (0/10) | FURPS | +|-------------------------------------------------------------------------------------------------------|---------------------------------------------------------|----------|---------------------|-------| +| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision: Core Values Alignment | 0.25 | 7 | TODO | +| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Movement Community Enabling via Dev-X + Telemetry | 1.5 | 10 | FU__+ | +| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision: Core Values Alignment | 0.33 | 4 | | +| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement Community Enabling | 0.25 | 7 | | +| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement Module Build Out | 1.5 | 8 | | +| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement Module Build Out | 0.83 | 9 | | +| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement Community Enabling via Dev-X | 0.5 | 7 | | +| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement Module Build Out | 1 | 8 | | +| Incentivisation follow-up (write outline) | Logos Vision: Core Values Alignment | TBD | 7 | | +| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | Logos Movement Community Enabling: Dev Journey | 0.33 | 5 | TBD | +| Acquire first 10 customers | Logos Movement Community Enabling: Growth | 1.5 | 6 | N/A | ## 🧩 Strategic Benefits Realisable from coming Half-Year (Top 5) -- **Logos Vision - Core Values Alignment**: Progress on making Waku sustainably scalable, resilient, private and censorship-resistant. - -TODO: more like above - -Sustainable, scalable, secure and usable Chat protocol: Enables anyone to build private native chat application, and set sustainable foundations for Status application. - -- Deliver better APIs and SDKs: Broadens utility of Waku protocol, including RLN, enable building desktop, browser and mobile app using a unified, simple, Waku and RLN API. - -- Waku web apps: demonstrate how to build on Waku, and iterate on dev ex and UX of Waku APIs and protocols, including RLN. - -- Introduce mixnet: Deliver on our promise of network level anonymity, starting with sender anonymity. -- Improve Nim usage: improve the efficiency of Waku nim developers, to better delivery our commitments and "make it easy to contribute". +- **Logos Vision - Core Values Alignment**: Progress on making Waku sustainably scalable, resilient, private and censorship-resistant. Increase anonymity properties. +- **Logos Movement Community Enabling**: Simplify APIs to reduce cost of onboarding and deliver them in demanded languages, build application as examples and demonstrations of the technology, provide telemetry to track success and improve Dev-X for contributors. +- **Logos Movement Module Build Out**: Deliver a Chat SDK that can scale over Waku, supporting secure one-to-one and group chats, with early integration of DoS protection. ## 🚩 Key Cross Project Alignments (Top-5) @@ -85,17 +79,16 @@ Sustainable, scalable, secure and usable Chat protocol: Enables anyone to build ### Rolled-Up By Strategic Objective -TODO: copy from strategic objectives in milestone table. +https://notes.status.im/E_bcw7cLR36QKI39k-PlMg# -| Strategic Objective | People Costs | Infra Costs | Other Costs | -|-----------------------------------|--------------|-------------|-------------| -| Protocol Enhancement on Waku Chat | 300k | 50k | | -| Enable Logos Vision Chat Protocol | 400k | 10k | | +| Strategic Objective | People | +|--------------------------------------|--------| +| Logos Vision - Core Values Alignment | | +| Logos Movement Community Enabling | | +| Logos Movement Module Build Out | | ### Budget Consultation -TODO - | Headline Activity | Status | |-------------------------|-----------------------------------| | Financial Review Status | [new,renew,review,approved] | @@ -103,72 +96,34 @@ TODO ### By Resource -| Resource Headline Item | People | Comment | -|-------------------------|---------|-------------------------------------------------| -| Present Resource | 20 | | -| Additional Resource Ask | 2 | backfills (more to ...TODO strategic objhectve) | -| PeopleOps Informed | Yes | | +| Resource Headline Item | People | Comment | +|-------------------------|--------|----------------------------------------------| +| Present Resource | 20 | | +| Additional Resource Ask | 1 | backfill - Logos Movement Community Enabling | +| PeopleOps Informed | Yes | | ### PeopleOps Consultation -TODO | Review Status | [new,renew,review,approved]| | Review Comments | [new,renew,review,approved]| ## ⚠️ Keys Risks Identified & Controls -TODO: big ones - -Accept: you accept the risk and it may realize -Own: you spend effort to resolve the risk -Mitigation: you find a way to reduce the risk impact - -| Risk | (Accept, Own, Mitigation) | -|--------------------|-----------------------------------------------------| -| [Risk] | [Mitigation strategy] | -| [Risk] | [Mitigation strategy] | -| [Risk] | [Mitigation strategy] | +| Risk | (Accept, Own, Mitigation) | +|-------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------| +| Cryptographic primitives in Nim | Expect to nim-wrap existing Rust/C libraries - will consult with Vac to lean towards libraries already used in Nim/IFT ecosystem. | +| Timeline uncertainties for research items | Focus on iterative delivery of usable deliverables, to get early feedback and direction and lower cost of failure. | +| Nim ecosystem and tooling maturity | New initiative to foster Nim community within IFT, work closely with Vac/Nim re tooling, block time to migrate to Nimble. | +| RLN UX | Integrate in web apps, continue dogfooding and iteration, close collaboration with Status. | +| Readiness of status-go for Chat SDK integration | Weekly sync up on chat sdk and status-go refactoring topics between Waku and Status teams, collaborative planning done to align goals and API. | ## ✅ Key Observations -**[Specific observations from this last execution window]** - -TO CLARIFY -Lessons, strategic observations, other improvements. -"Key Improvements"/retrospective. - - ---- - -TODO: remove below -## 🛠️ FURPS Reference by Proposed Milestone - -TO CLARIFY - -| Headline 1 | FURPS Defined | Link | -|-------------------------------|----------------------------|---------------| -| Waku Store database narrative | F2(3) U(1) R (1) P(2) S(0) | link to FURPS | -| RLN standard module 1 | F2(3) U(1) R (1) P(1) S(0) | link to FURPS | -| Chat SDK version 1 | F2(3) U(1) R (0) P(0) S(0) | link to FURPS | - -# Appendix A (Optional) - -See links in [Proposed Milestones(s)](#-proposed-milestoness) - -## FURPS - -See links in [Proposed Milestones(s)](#-proposed-milestoness). Each milestone has FURPS - -## Risks Identified - -TO CLARIFY: is this per milestone? - -TO CLARIFY: What does "(Accept, Own, Mitigation)" mean? - -| Risk | (Accept, Own, Mitigation) | -|-------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------| -| Readiness of status-go for Chat SDK integration | Weekly sync up on chat sdk and status-go refactoring topic between Waku and Status teams, collaborative planning done to align goals and API. | -| [Risk] | [how to we address this risk] | -| [Risk] | [how to we address this risk] | - - +- Exciting 6 months ahead with clear path on how to deliver value to both Status and the Logos Community with the same effort. +- Improving work tracking with Vac-DST/Vac-QA, discussion is ongoing to better integrate Waku FURPS in Vac planning. +- We know have a breaking change strategy for Status items. +- Aiming more of a team rally behind milestones, dev milestones are now larger and contain more items that can be done in parallel, so that most of the team work on same milestone together. +- Focus on more frequent milestone delivery, by avoiding intra-dependency of items in milestone. +- Increasing collaboration between research and engineering teams, to ensure early unblocking and neat wrap-up of items. +- The "Waku (Messaging) API" was initially a tidy up task, as Waku was already integrated in Status. With a focus towards Chat SDK and growing a developer community, it became an urgent-important item. +- Intent to continue internal hackathon initiative with 2 more occurrences in 2025 (tentatively July and October). diff --git a/FURPS/application/local_dev_rln_harness.md b/FURPS/application/local_dev_rln_harness.md new file mode 100644 index 0000000..f86c6fb --- /dev/null +++ b/FURPS/application/local_dev_rln_harness.md @@ -0,0 +1,23 @@ +# Local Dev RLN Harness FURPS + +## Functionality + +1. Runs local Ethereum environment. +2. Deploys ERC-20 and RLN smart contract. +3. Utility to fund wallet addresses with necessary tokens for deposit for RLN membership registration. + +## Usability + +1. Developer only need to run a script to setup local blockchain environment. +2. Developers can run documented RPC calls to fund wallet addresses. +3. Developers can run documented RPC calls to interact with RLN smart contract. + +## Reliability + +## Performance + +## Supportability + +1. Linux and Mac development environments. + +## + (Privacy, Anonymity, Deployments) diff --git a/FURPS/application/nwaku.md b/FURPS/application/nwaku.md index 407a70f..5c94c9e 100644 --- a/FURPS/application/nwaku.md +++ b/FURPS/application/nwaku.md @@ -21,10 +21,13 @@ ## Supportability 1. libwaku, wakunode2 can build on Windows -2. libwaku supports relay functionalities. +2. libwaku supports relay node functionalities. 3. TCP transport is supported for peer-to-peer message routing connections. 4. QUIC transport is supported for peer-to-peer message routing connections. +5. libwaku builds on Android and iOS +6. libwaku support edge node functionalities. ## + (Privacy, Anonymity, Deployments) -1. Every nwaku release includes a Windows binary for wakunode2. \ No newline at end of file +1. Every nwaku release includes a Windows binary for wakunode2. + \ No newline at end of file diff --git a/FURPS/application/status_go.md b/FURPS/application/status_go.md index 7c924db..b4cc2d8 100644 --- a/FURPS/application/status_go.md +++ b/FURPS/application/status_go.md @@ -3,6 +3,7 @@ ## Functionality 1. Nwaku is the used Waku implementation for relay mode. +2. Nwaku is the used Waku implementation for light mode. ## Usability @@ -20,8 +21,12 @@ ## Supportability 1. Status Desktop binary for Linux, Mac and Windows. -2. Relay mode is supported; no edge/light mode. +2. Relay mode is supported. +3. Light mode is supported. +4. Status Mobile binary for Android and iOS. +5. Status Tablet binary for Android and iOS. ## + (Privacy, Anonymity, Deployments) -1. Status Desktop CI builds binaries with nwaku, alongside go-waku-based binaries. \ No newline at end of file +1. Status Desktop CI builds binaries with nwaku, alongside go-waku-based binaries. +2. Status Mobile and Tablet CI builds binaries with nwaku, alongside go-waku-based binaries. \ No newline at end of file diff --git a/FURPS/core/waku_api.md b/FURPS/core/waku_api.md index 4b5ebc9..52b47f7 100644 --- a/FURPS/core/waku_api.md +++ b/FURPS/core/waku_api.md @@ -10,6 +10,8 @@ 4. Does automatic peer discovery based on the node platform and operation mode. 5. Returns health and connectivity information using proven heuristics. 6. Previously discovered peers are persisted across restarted, and potentially used for future connections. +7. When wrapping the C API, conversion from native types to JSON is needed by the wrapper. +8. When wrapping the C API, conversion from native types to Protobuf is needed by the wrapper. ## Usability @@ -19,6 +21,7 @@ 4. Developers pass and receive data to the API in types native to the wrapping language. 5. By default, auto-sharding is applied, meaning developers do not need to be concerned by sharding; pubsub topics are never exposed. 6. Developers only need to handle errors in cases of irretrievable failure requiring end-user action. Internal errors are not bubbled up if they can be recovered internally. +7. When wrapping the C API, a protobuf definition can be used to generate native types for the host language. ## Reliability @@ -32,7 +35,9 @@ 1. Nim library; import via git path. 2. Golang library; available on pkg.go.dev. 3. Browser; distribution via npmjs.com. +4. Rust; available on crates.io. ## + (Privacy, Anonymity, Deployments) -1. ... \ No newline at end of file +1. C API uses JSON format for data passing. +2. C API uses Protobuf format for data passing. \ No newline at end of file diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 94b8f8e..db3226f 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -89,18 +89,19 @@ In order of priority. | [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | 30 Jun (H1) | | | | | ### H2 Milestones -| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | -|----------|-----------------------------------------------------------------------------------------|----------|----------|---------|-------|-------------| -| 1 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5 | | | | -| 2 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | TBD | TBD | TBD | TBD | 0.16.. | -| 3 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 0.5 | | | | -| 4 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5 | -| 5 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | 30 Sep | | | | 2 dev/1 res | -| 6 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | TBD | TBD | 1*2m | TBD | | -| 7 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | TBD | TBD? | TBD | TBD | | -| 8 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | TBD | | | | 1 dev/1 res | -| 9 | Incentivisation follow-up | TBD | TBD | | | | -| 10 | [Nim Usage Improvements](nim_usage_improvements.md) | TBD | | | TBD | | + +| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | +|----------|-----------------------------------------------------------------------------------------|----------|----------|---------|--------|----------| +| 1 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5*1m | | | | +| 2 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | 31 Aug | 1*1m | 2*2m | 1.5*2m | 1*1m | +| 3 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | +| 4 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5*6m | +| 5 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | 30 Sep | | | | 3*3m | +| 6 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | 30 Sep | 1*1m | 1*2m | 1*2m | | +| 7 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | 30 Nov | | 1*1m | 1*2m | | +| 8 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | 19 Dec | | | | 2*3m | +| 9 | Incentivisation follow-up | TBD | TBD | | | | +| 10 | [Nim Usage Improvements](nim_usage_improvements.md) | 19 Dec | | | 1*2m | | Pushed to 2026 - WebTransport: depending on nim-libp2p (delivery Q4) diff --git a/draft-roadmap/create_chat_sdk_mvp.md b/draft-roadmap/create_chat_sdk_mvp.md index 76a1c46..e7c0e75 100644 --- a/draft-roadmap/create_chat_sdk_mvp.md +++ b/draft-roadmap/create_chat_sdk_mvp.md @@ -19,7 +19,7 @@ This milestone is complete when a development preview of the Chat SDK is publish ## Strategic Objective -TODO: Clarify with Leonard +Logos Movement Module Build Out ## Risks diff --git a/draft-roadmap/define_incentivisation_for_rlnaas.md b/draft-roadmap/define_incentivisation_for_rlnaas.md index a6f1044..85a781c 100644 --- a/draft-roadmap/define_incentivisation_for_rlnaas.md +++ b/draft-roadmap/define_incentivisation_for_rlnaas.md @@ -3,7 +3,7 @@ **Estimated date of completion**: 31 July 2025 **Resources Required for 2025H2**: -- 1.5 core researchers for 1 month +- 1.5 core researchers for 1 month = 0.25 By the end of this milestone, we will have defined a roadmap and implemented a working proof of concept to incentivise node operators running Waku infrastructure for shared shards. @@ -17,7 +17,7 @@ This is the first step to providing a sustainable way to scale the Status applic ## Strategic Objective -TODO: Clarify with Leonard +Logos Vision: Core Values Alignment ## FURPS - [Incentivisation](/FURPS/core/incentivisation.md): F1-3, U1-2, R1-3, P1, for S1 diff --git a/draft-roadmap/extend_chat_sdk_with_group_conversations.md b/draft-roadmap/extend_chat_sdk_with_group_conversations.md index 33f5323..cbea5d1 100644 --- a/draft-roadmap/extend_chat_sdk_with_group_conversations.md +++ b/draft-roadmap/extend_chat_sdk_with_group_conversations.md @@ -16,7 +16,7 @@ Further group size scaling and extension of membership management API would be n ## Strategic Objective -TODO: Clarify with Leonard +Logos Movement Module Build Out ## FURPS diff --git a/draft-roadmap/formalize_and_expand_waku_web_apps.md b/draft-roadmap/formalize_and_expand_waku_web_apps.md index 4188508..75ff152 100644 --- a/draft-roadmap/formalize_and_expand_waku_web_apps.md +++ b/draft-roadmap/formalize_and_expand_waku_web_apps.md @@ -19,7 +19,7 @@ to build over Waku. ## Strategic Objective -TODO: Clarify with Leonard +Logos Movement Community Enabling ## FURPS diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index 1dcf319..6fd1187 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -1,13 +1,12 @@ # Improve DevEx: API, TWN, Metrics, Docs -**Estimated date of completion**: {Enter date} -- js-waku 31 Aug +**Estimated date of completion**: 31 Aug **Resources Required for 2025H2**: -- 2 js-waku engineer, 31 Aug -- 1.5 nwaku eng, 31 Aug (API) -- {external services consumed (Vac/IFT)} -- {infrastructure} +- 2 js-waku engineers +- 1.5 nwaku eng +- 1 core research + Proceed with a number of improvements to the developer experience on Waku, for both internal and external purposes. This includes: @@ -71,20 +70,6 @@ For S2. For Web apps as a developer library. - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -### [Waku Sync](https://github.com/waku-org/pm/issues/132) - -**Owner**: core research - -**Feature**: [Store Sync](/FURPS/core/store_sync.md) - -**FURPS**: all - -**Checklist**: -- [ ] Specs: link to specs and/or API definition -- [ ] Code: link to GitHub issues/PRs/Epic -- [ ] Dogfood: link to dogfooding session/artefact -- [ ] Docs: links to README.md or docs.waku.org (TBD) - ### Implement Light Push Error codes in The Browser **Owner**: js-waku diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md index 016a337..70a5f5b 100644 --- a/draft-roadmap/integrate_rln_with_waku_api.md +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -5,8 +5,7 @@ **Resources Required for 2025H2**: - 1 nwaku engineer for 2 months - 1 js-waku engineer for 2 months (til 30 Aug) -- core research/test engineer? TODO -- chat sdk engineer TODO +- 1 core research for 1 month (assuming ownership of RLN UX deliverable) - Support from Vac/ACZ to get zerokit working in the browser. - {infrastructure} @@ -21,6 +20,10 @@ Introduce RLN proof generation and validation in the Browser. RLN API should be Finally, migrate to Status network L2 testnet and improve UX issues discovered via dogfooding such as rate of RPC Calls. +## Strategic Objective + +Logos Movement Module Build Out + ## FURPS TODO @@ -131,9 +134,9 @@ TODO ### Improve RLN UX by reducing Web3 RPC calls -TODO: other improvements may be flagged as we dogfood the previous RLN milestone. +TODO: Clarify ownership -**Owner**: nwaku +**Owner**: nwaku or core research **Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) diff --git a/draft-roadmap/introduce_mixnet_for_message_sending.md b/draft-roadmap/introduce_mixnet_for_message_sending.md index 96c9ae5..38125c0 100644 --- a/draft-roadmap/introduce_mixnet_for_message_sending.md +++ b/draft-roadmap/introduce_mixnet_for_message_sending.md @@ -9,7 +9,7 @@ A PoC implementation to improve anonymity in Waku message publishing by mixing W ## Strategic Objective -TODO: Clarify with Leonard +Logos Vision: Core Values Alignment ## FURPS diff --git a/draft-roadmap/nim_usage_improvements.md b/draft-roadmap/nim_usage_improvements.md index de8fd63..b54155b 100644 --- a/draft-roadmap/nim_usage_improvements.md +++ b/draft-roadmap/nim_usage_improvements.md @@ -1,18 +1,17 @@ # Upgrade Nim Usage -**Estimated date of completion**: {Enter date} +**Estimated date of completion**: 19 Dec **Resources Required for 2025H2**: -- {roles and % application to it} -- {external services consumed (Vac/IFT)} -- {infrastructure} +- 1 nwaku eng for 2 months +- Support from Vac/Nim team Improve usage of Nim related tooling and design patterns by proceedings with PoCs to discover potential gains and caveats. This includes adoption of Nimble, dogfooding VSCode plugin and iteration on C-Binding methodology. ## Strategic Objective -TODO: Clarify with Leonard +Logos Movement Community Enabling: Dev Journey ## FURPS @@ -58,14 +57,16 @@ Note: maybe taken over by Vac-Nim - [ ] Optional: provide a plan to make nwaku better compatible with nimsuggest (eg. no git submodule, less macros, etc) -### Use Protobuf to transfer data from Wrapper to nwaku library PoC +### Streamline FFI API Creation by using Protobuf types instead of JSON PoC **Owner**: nwaku -**Feature**: TODO +**Feature**: [Waku API](/FURPS/core/waku_api.md) **FURPS**: -- {F1. copy-paste full furps statement} +- F8. When wrapping the C API, conversion from native types to Protobuf is needed by the wrapper. + +- U7. When wrapping the C API, a protobuf definition can be used to generate native types for the host language. **Checklist**: - [ ] Specs: link to specs and/or API definition diff --git a/draft-roadmap/streamline_dev_ex_local_dev_rust.md b/draft-roadmap/streamline_dev_ex_local_dev_rust.md index 3965981..88918a0 100644 --- a/draft-roadmap/streamline_dev_ex_local_dev_rust.md +++ b/draft-roadmap/streamline_dev_ex_local_dev_rust.md @@ -1,9 +1,8 @@ # Streamline DevEx: Mobile, Rust and Web dev -**Estimated date of completion**: {Enter date} TODO +**Estimated date of completion**: 30 Nov **Resources Required for 2025H2**: -- {roles and % application to it} - nwaku 1 eng during 1 month 70% until 30 Sep - start 1st Sep - js-waku 1 eng 70% 1-19th Sep - {external services consumed (Vac/IFT)} @@ -19,7 +18,7 @@ Finalize the integration of nwaku in Status application by setting up nwaku-base ## Strategic Objective -TODO: Clarify with Leonard +Logos Movement Community Enabling via Dev-X ## FURPS @@ -39,25 +38,35 @@ TODO **Owner**: nwaku -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) TODO +#### **Feature**: [status-go](/FURPS/application/status_go.md) **FURPS**: -- {F1. copy-paste full furps statement} +- F2. Nwaku is the used Waku implementation for light mode. +- S3. Light mode is supported. + +#### **Feature**: [nwaku](/FURPS/application/nwaku.md) + +**FURPS**: +- S6. libwaku support edge node functionalities. **Checklist**: - [ ] Specs: link to specs and/or API definition - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) +TBD ### Nwaku in Status Mobile **Owner**: nwaku -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) TODO +**Feature**: [status-go](/FURPS/application/status_go.md) **FURPS**: -- {F1. copy-paste full furps statement} +- S4. Status Mobile binary for Android and iOS. +- S5. Status Tablet binary for Android and iOS. + +- +2. Status Mobile and Tablet CI builds binaries with nwaku, alongside go-waku-based binaries. **Checklist**: - [ ] Specs: link to specs and/or API definition @@ -69,10 +78,10 @@ TODO **Owner**: nwaku -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) TODO +**Feature**: [Waku API](/FURPS/core/waku_api.md) **FURPS**: -- {F1. copy-paste full furps statement} +- S4. Rust; available on crates.io. **Checklist**: - [ ] Specs: link to specs and/or API definition @@ -82,11 +91,6 @@ TODO ### Local Web Dev Harness -TODO: update milestone -1 js-waku engineer, 70% cap allocated; -start 1st Sep, end 19th Sep; - - **Owner**: js-waku **Feature**: [Local Web Dev Harness](/FURPS/application/local_web_dev_harness.md) @@ -110,14 +114,20 @@ start 1st Sep, end 19th Sep; - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -### Local RLN Dev Harness +### Local Dev RLN Harness **Owner**: nwaku -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) +**Feature**: [Local Dev RLN Harness](/FURPS/application/local_dev_rln_harness.md) **FURPS**: -- {F1. copy-paste full furps statement} +- F1. Runs local Ethereum environment. +- F2. Deploys ERC-20 and RLN smart contract. +- F3. Utility to fund wallet addresses with necessary tokens for deposit for RLN membership registration. + +- U1. Developer only need to run a script to setup local blockchain environment. +- U2. Developers can run documented RPC calls to fund wallet addresses. +- U3. Developers can run documented RPC calls to interact with RLN smart contract. **Checklist**: - [ ] Specs: link to specs and/or API definition From 47010a6a5b7d3a9be065e187dd7f29c3f50f8272 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Wed, 11 Jun 2025 15:26:02 +1000 Subject: [PATCH 56/70] assuming 1 app chat eng for 1 month --- draft-roadmap/improve_devex_api_twn_metrics_docs.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index 6fd1187..26b61dd 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -6,6 +6,7 @@ - 2 js-waku engineers - 1.5 nwaku eng - 1 core research +- 1 app chat eng for 1 month Proceed with a number of improvements to the developer experience on Waku, for both internal and external purposes. @@ -40,8 +41,6 @@ TODO (see deliverables) **Owner**: App/Chat Dev -TODO: Pablo to confirm dependency on BI and what they do vs what we do. - **Feature**: [Network Metrics Tracker](/FURPS/application/network_metrics_tracker.md) **FURPS**: From dc4db1fc6217806061282632a8d29c5d0308c8b7 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Wed, 11 Jun 2025 15:31:57 +1000 Subject: [PATCH 57/70] fix FURPS summary --- 2025H2-summary.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/2025H2-summary.md b/2025H2-summary.md index 9903ac4..56854ae 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -30,19 +30,19 @@ Strategy changes: ## 🚩 Proposed Milestones(s) -| Milestone Headline | Strategic Objective | Capacity | Business Val (0/10) | FURPS | -|-------------------------------------------------------------------------------------------------------|---------------------------------------------------------|----------|---------------------|-------| -| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision: Core Values Alignment | 0.25 | 7 | TODO | -| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Movement Community Enabling via Dev-X + Telemetry | 1.5 | 10 | FU__+ | -| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision: Core Values Alignment | 0.33 | 4 | | -| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement Community Enabling | 0.25 | 7 | | -| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement Module Build Out | 1.5 | 8 | | -| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement Module Build Out | 0.83 | 9 | | -| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement Community Enabling via Dev-X | 0.5 | 7 | | -| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement Module Build Out | 1 | 8 | | -| Incentivisation follow-up (write outline) | Logos Vision: Core Values Alignment | TBD | 7 | | -| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | Logos Movement Community Enabling: Dev Journey | 0.33 | 5 | TBD | -| Acquire first 10 customers | Logos Movement Community Enabling: Growth | 1.5 | 6 | N/A | +| Milestone Headline | Strategic Objective | Capacity | Business Val (0/10) | FURPS | +|-------------------------------------------------------------------------------------------------------|---------------------------------------------------------|----------|---------------------|---------| +| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision: Core Values Alignment | 0.25 | 7 | FURPS_ | +| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Movement Community Enabling via Dev-X + Telemetry | 1.5 | 10 | FURPS_ | +| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision: Core Values Alignment | 0.33 | 4 | F___S_ | +| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement Community Enabling | 0.25 | 7 | FURPS_ | +| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement Module Build Out | 1.5 | 8 | FURPS+ | +| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement Module Build Out | 0.83 | 9 | FUR_S+ | +| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement Community Enabling via Dev-X | 0.5 | 7 | FU__S+ | +| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement Module Build Out | 1 | 8 | F_RPS+ | +| Incentivisation follow-up (write outline) | Logos Vision: Core Values Alignment | TBD | 7 | FU_____ | +| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | Logos Movement Community Enabling: Dev Journey | 0.33 | 5 | TBD | +| Acquire first 10 customers | Logos Movement Community Enabling: Growth | 1.5 | 6 | N/A | ## 🧩 Strategic Benefits Realisable from coming Half-Year (Top 5) From 81963e64e8801015d112a864cda147a5b87d1203 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Wed, 11 Jun 2025 15:34:01 +1000 Subject: [PATCH 58/70] more furps --- FURPS/application/nwaku.md | 3 ++- draft-roadmap/nim_usage_improvements.md | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/FURPS/application/nwaku.md b/FURPS/application/nwaku.md index 5c94c9e..1cc6dd0 100644 --- a/FURPS/application/nwaku.md +++ b/FURPS/application/nwaku.md @@ -8,7 +8,8 @@ ## Usability -1. ... +1. Uses nimble for package management and build. +2. Can be imported as a nim library using nimble. ## Reliability diff --git a/draft-roadmap/nim_usage_improvements.md b/draft-roadmap/nim_usage_improvements.md index b54155b..1240d82 100644 --- a/draft-roadmap/nim_usage_improvements.md +++ b/draft-roadmap/nim_usage_improvements.md @@ -15,7 +15,7 @@ Logos Movement Community Enabling: Dev Journey ## FURPS -TODO +See deliverables. ## Risks @@ -32,10 +32,11 @@ Note: maybe taken over by Vac-Nim **Owner**: nwaku -**Feature**: TODO +**Feature**: [nwaku](/FURPS/application/nwaku.md) **FURPS**: -- {F1. copy-paste full furps statement} +- U1. Uses nimble for package management and build. +- U2. Can be imported as a nim library using nimble. **Checklist**: - [ ] Specs: link to specs and/or API definition From 85fb465f63e9ff02381c826544a50b548971b0bc Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Wed, 11 Jun 2025 16:12:20 +1000 Subject: [PATCH 59/70] adding last milestones --- 2025H1-SUMMARY.md | 5 ++- 2025H2-summary.md | 26 +++++------ draft-roadmap/README.md | 5 ++- draft-roadmap/TEMPLATE.md | 2 +- draft-roadmap/acquire_first_10_customers.md | 44 +++++++++++++++++++ .../define_incentivisation_for_rlnaas.md | 2 +- draft-roadmap/incentivisation_follow_up.md | 30 +++++++++++++ 7 files changed, 96 insertions(+), 18 deletions(-) create mode 100644 draft-roadmap/acquire_first_10_customers.md create mode 100644 draft-roadmap/incentivisation_follow_up.md diff --git a/2025H1-SUMMARY.md b/2025H1-SUMMARY.md index 587e105..a6edb04 100644 --- a/2025H1-SUMMARY.md +++ b/2025H1-SUMMARY.md @@ -33,6 +33,7 @@ | Logos Web apps | Decentralized Forum PoC, Qaku library, demonstration of Codex integration w/ Waku and more resilience to Web3 RPC outages for nwaku | 7/10 | | Explore Peer Discovery Gap | Partial Mixnet PoC, dogfooding store sync for network message consistency | 6/10 | | Debugging Tools | Local metrics dashboard to enable study of software behaviour and usage of Waku | 5/10 | +| BD - Acquire first 10 Customers | 1 additional project has been secured (#5), 2 more are to come out of stealth | 5/10 | ## 🧩 Strategic Benefits Realised @@ -60,6 +61,7 @@ | Nwaku in Status Mobile and Light Mode MVP | Underestimated work for desktop integration, reprioritized for H2 behind Chat SDK work | Yes | | Debugging tools, log parser | Handed over to Vac-DST who already have similar log tool and just need to extend its functionality | No | | Messaging API | Work was expected to only start in H1, which it did. Milestone was re-worked for H2 to better fit team resources | Yes | +| BD - Acquire first 10 Customers | Engineering focus on Status over community needs, meaning known gaps (e.g. Rust SDK) creating friction for integration. | Yes | ## 🛠️ FURPS Execution Snapshot @@ -107,4 +109,5 @@ https://notes.status.im/E_bcw7cLR36QKI39k-PlMg# - It was a first round of planning with FURPS. Lessons have been learned and being applied for H2. - The Waku internal hackathon was a great experiment to identify use-case but also improvements to the Waku dev ex. With a focus on building (developer) tribes, its strategic value has increased. - Milestones that involved breaking changes were dragged across several Status release; need to review how this is planned to not postponed milestone completion dates by months. -- Some research items took time to wrap-up, sort bindings, etc. Will discuss with the team on how we can be better are getting research PoC ready for dogfooding. \ No newline at end of file +- Some research items took time to wrap-up, sort bindings, etc. Will discuss with the team on how we can be better are getting research PoC ready for dogfooding. +- With a refocus on community, need to improve tracking of BD results. \ No newline at end of file diff --git a/2025H2-summary.md b/2025H2-summary.md index 56854ae..802980f 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -30,19 +30,19 @@ Strategy changes: ## 🚩 Proposed Milestones(s) -| Milestone Headline | Strategic Objective | Capacity | Business Val (0/10) | FURPS | -|-------------------------------------------------------------------------------------------------------|---------------------------------------------------------|----------|---------------------|---------| -| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision: Core Values Alignment | 0.25 | 7 | FURPS_ | -| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Movement Community Enabling via Dev-X + Telemetry | 1.5 | 10 | FURPS_ | -| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision: Core Values Alignment | 0.33 | 4 | F___S_ | -| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement Community Enabling | 0.25 | 7 | FURPS_ | -| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement Module Build Out | 1.5 | 8 | FURPS+ | -| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement Module Build Out | 0.83 | 9 | FUR_S+ | -| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement Community Enabling via Dev-X | 0.5 | 7 | FU__S+ | -| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement Module Build Out | 1 | 8 | F_RPS+ | -| Incentivisation follow-up (write outline) | Logos Vision: Core Values Alignment | TBD | 7 | FU_____ | -| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | Logos Movement Community Enabling: Dev Journey | 0.33 | 5 | TBD | -| Acquire first 10 customers | Logos Movement Community Enabling: Growth | 1.5 | 6 | N/A | +| Milestone Headline | Strategic Objective | Capacity | Business Val (0/10) | FURPS | +|-------------------------------------------------------------------------------------------------------|---------------------------------------------------------|----------|---------------------|--------| +| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision: Core Values Alignment | 0.25 | 7 | FURPS_ | +| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Movement Community Enabling via Dev-X + Telemetry | 1.5 | 10 | FURPS_ | +| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision: Core Values Alignment | 0.33 | 4 | F___S_ | +| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement Community Enabling | 0.25 | 7 | FURPS_ | +| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement Module Build Out | 1.5 | 8 | FURPS+ | +| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement Module Build Out | 0.83 | 9 | FUR_S+ | +| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement Community Enabling via Dev-X | 0.5 | 7 | FU__S+ | +| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement Module Build Out | 1 | 8 | F_RPS+ | +| [Incentivisation Follow-up Outline](draft-roadmap/incentivisation_follow_up.md) | Logos Vision: Core Values Alignment | 3 | 7 | TBD | +| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | Logos Movement Community Enabling: Dev Journey | 0.33 | 5 | FU____ | +| [BD - Acquire first 10 customers](draft-roadmap/acquire_first_10_customers.md) | Logos Movement Community Enabling: Growth | 0.75 | 7 | N/A | ## 🧩 Strategic Benefits Realisable from coming Half-Year (Top 5) diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index db3226f..0cdc2f4 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -100,8 +100,9 @@ In order of priority. | 6 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | 30 Sep | 1*1m | 1*2m | 1*2m | | | 7 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | 30 Nov | | 1*1m | 1*2m | | | 8 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | 19 Dec | | | | 2*3m | -| 9 | Incentivisation follow-up | TBD | TBD | | | | -| 10 | [Nim Usage Improvements](nim_usage_improvements.md) | 19 Dec | | | 1*2m | | +| 9 | [Incentivisation follow-up Outline](incentivisation_follow_up.md) | TBD | 1.5*5m | | | | +| 10 | [Nim Usage Improvements](nim_usage_improvements.md) | 19 Dec | | | 1*2m | | +| 11 | [BD - Acquire 10 Customers](acquire_first_10_customers.md) | 19 Dec | | | | 0.5*6m | Pushed to 2026 - WebTransport: depending on nim-libp2p (delivery Q4) diff --git a/draft-roadmap/TEMPLATE.md b/draft-roadmap/TEMPLATE.md index c85cc74..4388e45 100644 --- a/draft-roadmap/TEMPLATE.md +++ b/draft-roadmap/TEMPLATE.md @@ -11,7 +11,7 @@ ## Strategic Objective -TODO: Clarify with Leonard +Logos xxx ## FURPS diff --git a/draft-roadmap/acquire_first_10_customers.md b/draft-roadmap/acquire_first_10_customers.md new file mode 100644 index 0000000..5e01a77 --- /dev/null +++ b/draft-roadmap/acquire_first_10_customers.md @@ -0,0 +1,44 @@ +# Business Dev - Acquire First 10 Customers + +**Estimated date of completion**: 2025H2 Period + +**Resources Required for 2025H2**: +- 1 Business Development Lead +- 0.5 Solution Engineer +- Comms Hubs Support + +Onboard Waku first 10 customers. Customers are projects using Waku for their peer-to-peer communication stack, or conversation/chat. +First 10 customers assume involvement from the engineering team to get things right and help co-design. + +Status, Railgun, TheGraph, Portrait and Chrom.ar should count as the first five. + +A couple of projects are in stealth mode and can be counted in once they go public. + +## Strategic Objective + +Logos Movement Community Enabling: Growth + +## Risks + +| Risk | (Accept, Own, Mitigation) | +|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| No dedicated Dev Rel | Work closely with Logos Movement to funnel developers to Waku. Apply guerilla tacting to leverage current Waku team members. Use Solution Engineer for conference talk and presence. | +| No dedicated Growth Lead | Rely on Comms Hubs for Social Media presence, event organization, content and other initiatives. Leverage keen Waku team members to roll out dev community growth initiatives. | + +## KPIs for 2025H2 + +- [ ] Identify 15 Highly Qualified Leads +- [ ] Discuss solution engineering with 10 leads +- [ ] Bring 5 leads into Discord bridge (will to connect and discuss) +- [ ] 3 new integrations started +- [ ] Identify 3 ecosystem grants, and secure initial calls + +## Deliverables + +### Chat SDK MVP Definition + +**Owner**: BD + +Based on customer interviews and co-design sessions, identify the potential Waku Chat SDK USPs and outline an MVP. + +Communicate with targeted customers on MVP. \ No newline at end of file diff --git a/draft-roadmap/define_incentivisation_for_rlnaas.md b/draft-roadmap/define_incentivisation_for_rlnaas.md index 85a781c..b0222f5 100644 --- a/draft-roadmap/define_incentivisation_for_rlnaas.md +++ b/draft-roadmap/define_incentivisation_for_rlnaas.md @@ -3,7 +3,7 @@ **Estimated date of completion**: 31 July 2025 **Resources Required for 2025H2**: -- 1.5 core researchers for 1 month = 0.25 +- 1.5 core researchers for 1 month By the end of this milestone, we will have defined a roadmap and implemented a working proof of concept to incentivise node operators running Waku infrastructure for shared shards. diff --git a/draft-roadmap/incentivisation_follow_up.md b/draft-roadmap/incentivisation_follow_up.md new file mode 100644 index 0000000..a5bf1bb --- /dev/null +++ b/draft-roadmap/incentivisation_follow_up.md @@ -0,0 +1,30 @@ +# Incentivisation Follow-Up Outline + +**Estimated date of completion**: TBC + +**Resources Required for 2025H2**: +- 1.5 core research engineer for 5 months +- {external services consumed (Vac/IFT)} +- {infrastructure} + +Proceed with follow-up step once the [incentivisation light push PoC](https://github.com/waku-org/pm/issues/245) is delivered. + +The exact commitments and deliverables are to be defined as part of the [incentivisation roadmap output](https://github.com/waku-org/pm/issues/246) + +## Strategic Objective + +Logos Vision: Core Values Alignment + +## FURPS + +TBD + +## Risks + +| Risk | (Accept, Own, Mitigation) | +|--------|-------------------------------| +| [Risk] | [how to we address this risk] | + +## Deliverables + +TBD \ No newline at end of file From bb356e7883c648a9d1ece893ba20e0db0a52b6ba Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Wed, 11 Jun 2025 16:15:38 +1000 Subject: [PATCH 60/70] Fix up TODOs --- 2025H2-summary.md | 4 +--- FURPS/application/p2p_reliability.md | 4 ---- draft-roadmap/README.md | 12 ++++-------- draft-roadmap/improve_devex_api_twn_metrics_docs.md | 2 +- draft-roadmap/incentivisation_follow_up.md | 2 +- draft-roadmap/integrate_rln_with_waku_api.md | 2 +- draft-roadmap/streamline_dev_ex_local_dev_rust.md | 3 +-- 7 files changed, 9 insertions(+), 20 deletions(-) diff --git a/2025H2-summary.md b/2025H2-summary.md index 802980f..2c21748 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -1,7 +1,5 @@ # Milestones Presentation (Half-Year to Dec-2025): Waku -TODO what's up with eco dev grwoth - ## 🧭 Key Outcome(s) of Vision you are supporting - Create Chat SDK MVP - one-to-one (Nim, Rust, Golang), support Status' technical roadmap, supports Logos Movement and Logos Core by enabling secure conversations over Waku @@ -72,7 +70,7 @@ Strategy changes: | Vac-ACZ | Assist with using zerokit in the Browser | Yes | | Vac-ACZ | Assist in determining best libraries to use for cryptography in new Chat SDK | Yes | | Vac-ACZ | mix protocol development | Yes | -| Infra | Maintain Waku fleet, apply config changes requests, deploy new nodes for metrics | TODO | +| Infra | Maintain Waku fleet, apply config changes requests, deploy new nodes for metrics | Pending | | Vac-SC | Support of functional extension of RLN Smart Contract | Yes | ## Funding and Resources (By Strategic Objective) diff --git a/FURPS/application/p2p_reliability.md b/FURPS/application/p2p_reliability.md index 5ba6be1..592be05 100644 --- a/FURPS/application/p2p_reliability.md +++ b/FURPS/application/p2p_reliability.md @@ -14,12 +14,8 @@ ## Reliability -TBD - ## Performance -TBD - ## Supportability 1. Within browser environments (edge node mode) diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 0cdc2f4..e37acb5 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -85,8 +85,8 @@ In order of priority. | [Introduce E2E Reliability in Status Communities](introduce_e2e_reliability_in_status.md) | 31 Aug | | | | 1 | | [Foundation for Communities Optimisation](foundation_for_communities_optimisation.md) | 31 Oct | | | | 1 | | [Hardening and Scaling Foundations for Private Chat](hardening_and_scaling_foundation_for_private_chat.md) | Completed/Drop | | | | | -| [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) | 20 Jun (TBC) | | | 2 | | -| [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | 30 Jun (H1) | | | | | +| [Integrate nwaku in Status Desktop, relay mode only](integrate_nwaku_in_status_desktop_relay_mode_only.md) | 30 Jun | | | 2 | | +| [Deploy RLN Onchain Tree on L2 Testnet](deploy_rln_onchain_tree_on_l2_testnet.md) | 30 Jun | | | | | ### H2 Milestones @@ -109,14 +109,10 @@ Pushed to 2026 - REST API for Waku API: Useful for DST/QA, but let's focus on Status, Chat SDK, and Rust first Not yet planned/not sure: -- nwaku performance on mobile: let's focus on finishing desktop integration and getting API ready for Chat SDK + RLN -- quic: need to review where to put it, should be easy. +- nwaku performance on mobile: let's focus on finishing desktop integration and getting API ready for Chat SDK + RLN - Follow-up steps for incentivization: part of current milestone is to produce a roadmap. - RLN mainnet and audit -> probably wait for Status L2 mainnet? - -### Business Development Milestones - -TODO +- Signal network ## Gantt diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index 26b61dd..12a35a9 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -24,7 +24,7 @@ Logos Movement Community Enabling via Dev-X + Telemetry ## FURPS -TODO (see deliverables) +See deliverables. ## Risks diff --git a/draft-roadmap/incentivisation_follow_up.md b/draft-roadmap/incentivisation_follow_up.md index a5bf1bb..9fc24e5 100644 --- a/draft-roadmap/incentivisation_follow_up.md +++ b/draft-roadmap/incentivisation_follow_up.md @@ -1,6 +1,6 @@ # Incentivisation Follow-Up Outline -**Estimated date of completion**: TBC +**Estimated date of completion**: TBD **Resources Required for 2025H2**: - 1.5 core research engineer for 5 months diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md index 70a5f5b..0e7f4e6 100644 --- a/draft-roadmap/integrate_rln_with_waku_api.md +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -26,7 +26,7 @@ Logos Movement Module Build Out ## FURPS -TODO +See deliverables. ## Risks diff --git a/draft-roadmap/streamline_dev_ex_local_dev_rust.md b/draft-roadmap/streamline_dev_ex_local_dev_rust.md index 88918a0..a4cade7 100644 --- a/draft-roadmap/streamline_dev_ex_local_dev_rust.md +++ b/draft-roadmap/streamline_dev_ex_local_dev_rust.md @@ -22,7 +22,7 @@ Logos Movement Community Enabling via Dev-X ## FURPS -TODO +See deliverables. ## Risks @@ -54,7 +54,6 @@ TODO - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -TBD ### Nwaku in Status Mobile From 6ceb056f80e9da10e084f9db0c57869d0845a534 Mon Sep 17 00:00:00 2001 From: jm-clius Date: Wed, 11 Jun 2025 13:20:19 +0100 Subject: [PATCH 61/70] docs: furps suggestion for simple codex poc --- FURPS/application/codex.md | 26 +++++++++++++++++++ .../formalize_and_expand_waku_web_apps.md | 10 +++---- 2 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 FURPS/application/codex.md diff --git a/FURPS/application/codex.md b/FURPS/application/codex.md new file mode 100644 index 0000000..a15b17f --- /dev/null +++ b/FURPS/application/codex.md @@ -0,0 +1,26 @@ +# Codex Archiving PoC + +## Functionality + +1. Any admin in a Qaku Q&A can publish a backup snapshot of the entire thread to Codex once it's reached 20 responses. +2. The admin can publish the corresponding Codex CID with metadata over Waku to a dedicated snapshot content topic +3. Participants can query the Waku snapshot topic for the latest CID +4. Participants can retrieve the archived Q&A from Codex +5. Participants can perform a Store Query for more recent messages following the snapshot timestamp + +## Usability + +1. Workflow should be conceptually identical, whether the Codex interaction is via a local node or Codex gateway +2. Publishing or retrieving via Codex should be optional + +## Reliability + + +## Performance + + +## Supportability + +1. Web app + +## + (Privacy, Anonymity, Deployments) diff --git a/draft-roadmap/formalize_and_expand_waku_web_apps.md b/draft-roadmap/formalize_and_expand_waku_web_apps.md index 75ff152..05b136a 100644 --- a/draft-roadmap/formalize_and_expand_waku_web_apps.md +++ b/draft-roadmap/formalize_and_expand_waku_web_apps.md @@ -52,14 +52,14 @@ Logos Movement Community Enabling ### [Codex for Message Archival PoC](https://github.com/waku-org/pm/issues/293) -TODO - Hanno is defining some FURPS and we can review. +**Owner**: App/Chat Dev -**Owner**: {one waku subteam} - -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) +**Feature**: [Codex Archiving PoC](/FURPS/application/codex.md) **FURPS**: -- {F1. copy-paste full furps statement} +- F1-5 +- U1-2 +- S1 **Checklist**: - [ ] Specs: link to specs and/or API definition From 5db5299b46cc1413b4e207581b0f1f8693506500 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 12 Jun 2025 15:37:21 +1000 Subject: [PATCH 62/70] SDK vs API --- 2025H1-SUMMARY.md | 2 +- 2025H2-summary.md | 39 ++++++++++--------- FURPS/core/waku_api.md | 12 +++--- draft-roadmap/README.md | 2 +- .../improve_devex_api_twn_metrics_docs.md | 2 +- draft-roadmap/integrate_rln_with_waku_api.md | 6 ++- draft-roadmap/nim_usage_improvements.md | 4 +- 7 files changed, 36 insertions(+), 31 deletions(-) diff --git a/2025H1-SUMMARY.md b/2025H1-SUMMARY.md index a6edb04..2fe93ec 100644 --- a/2025H1-SUMMARY.md +++ b/2025H1-SUMMARY.md @@ -108,6 +108,6 @@ https://notes.status.im/E_bcw7cLR36QKI39k-PlMg# - We attempted to put in place a process with Vac-QA and Vac-DST respectively "certify" `R`s and `P`s. While good on principle, the tracking processes are not there. - It was a first round of planning with FURPS. Lessons have been learned and being applied for H2. - The Waku internal hackathon was a great experiment to identify use-case but also improvements to the Waku dev ex. With a focus on building (developer) tribes, its strategic value has increased. -- Milestones that involved breaking changes were dragged across several Status release; need to review how this is planned to not postponed milestone completion dates by months. +- Milestones that involved breaking changes were dragged across several Status release; need to review how this is planned to not postpone milestone completion dates by months. - Some research items took time to wrap-up, sort bindings, etc. Will discuss with the team on how we can be better are getting research PoC ready for dogfooding. - With a refocus on community, need to improve tracking of BD results. \ No newline at end of file diff --git a/2025H2-summary.md b/2025H2-summary.md index 2c21748..6a5b92a 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -3,7 +3,7 @@ ## 🧭 Key Outcome(s) of Vision you are supporting - Create Chat SDK MVP - one-to-one (Nim, Rust, Golang), support Status' technical roadmap, supports Logos Movement and Logos Core by enabling secure conversations over Waku -- Simplify a reliable Waku API and SDK (Browser, Nim, Rust, Golang), supports Chat SDK, Logos Movement and Logos Core, make it is easy to integrate +- Simplify the API of the Waku SDK (Browser, Nim, Rust, Golang), supports Chat SDK, Logos Movement and Logos Core, make it is easy to integrate - Improve Waku Developer Experience by stabilizing The Waku Network and reviewing Docs: Support Logos Movement, make it is easy to integrate - Deploy metrics to measure Waku and any Waku app's level of adoption: Support measuring success of Logos Movement - Introduce mixnet for message sending: Support Logos Vision of a private technology stack @@ -17,9 +17,9 @@ Strategy changes: - New Chat protocol over adapting existing code and protocol ([justification](https://forum.vac.dev/t/chatsdk-motivations/501)) -- Prioritized simplifying Waku API/SDK, to enable Chat SDK but also "make it easy to integrate" -- Prioritized RLN API/SDK, to use with Chat SDK and have early RLN integration in the Chat stack (this time) -- De-prioritized nwaku on mobile in favour of Waku API and RLN API +- Prioritized simplifying Waku API, to enable Chat SDK but also "make it easy to integrate" +- Prioritized RLN SDK, to use with Chat SDK and have early RLN integration in the Chat stack (this time) +- De-prioritized nwaku on mobile in favour of Waku SDK and RLN SDK - Increased commitment to build applications over Waku (Web and Logos Core), to "teach them how to hunt" - Introduced Developer Experience items: to support Chat SDK, and "make it easy to integrate" - Nim Usage Improvement: increased priority to support new chat sdk, and "make it easy to contribute" @@ -28,19 +28,21 @@ Strategy changes: ## 🚩 Proposed Milestones(s) -| Milestone Headline | Strategic Objective | Capacity | Business Val (0/10) | FURPS | -|-------------------------------------------------------------------------------------------------------|---------------------------------------------------------|----------|---------------------|--------| -| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision: Core Values Alignment | 0.25 | 7 | FURPS_ | -| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Movement Community Enabling via Dev-X + Telemetry | 1.5 | 10 | FURPS_ | -| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision: Core Values Alignment | 0.33 | 4 | F___S_ | -| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement Community Enabling | 0.25 | 7 | FURPS_ | -| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement Module Build Out | 1.5 | 8 | FURPS+ | -| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement Module Build Out | 0.83 | 9 | FUR_S+ | -| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement Community Enabling via Dev-X | 0.5 | 7 | FU__S+ | -| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement Module Build Out | 1 | 8 | F_RPS+ | -| [Incentivisation Follow-up Outline](draft-roadmap/incentivisation_follow_up.md) | Logos Vision: Core Values Alignment | 3 | 7 | TBD | -| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | Logos Movement Community Enabling: Dev Journey | 0.33 | 5 | FU____ | -| [BD - Acquire first 10 customers](draft-roadmap/acquire_first_10_customers.md) | Logos Movement Community Enabling: Growth | 0.75 | 7 | N/A | +| Milestone Headline | Strategic Objective | Capacity✱ | Business Val (0/10) | FURPS | +|-------------------------------------------------------------------------------------------------------|---------------------------------------------------------|-----------|---------------------|--------| +| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision: Core Values Alignment | 0.25 | 7 | FURPS_ | +| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Movement Community Enabling via Dev-X + Telemetry | 1.5 | 10 | FURPS_ | +| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision: Core Values Alignment | 0.33 | 4 | F___S_ | +| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement Community Enabling | 0.25 | 7 | FURPS_ | +| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement Module Build Out | 1.5 | 8 | FURPS+ | +| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement Module Build Out | 0.83 | 9 | FUR_S+ | +| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement Community Enabling via Dev-X | 0.5 | 7 | FU__S+ | +| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement Module Build Out | 1 | 8 | F_RPS+ | +| [Incentivisation Follow-up Outline](draft-roadmap/incentivisation_follow_up.md) | Logos Vision: Core Values Alignment | 3 | 7 | TBD | +| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | Logos Movement Community Enabling: Dev Journey | 0.33 | 5 | FU____ | +| [BD - Acquire first 10 customers](draft-roadmap/acquire_first_10_customers.md) | Logos Movement Community Enabling: Growth | 0.75 | 7 | N/A | + +✱ Capacity: How may people assigned in a 6 months window. ## 🧩 Strategic Benefits Realisable from coming Half-Year (Top 5) @@ -119,9 +121,10 @@ https://notes.status.im/E_bcw7cLR36QKI39k-PlMg# - Exciting 6 months ahead with clear path on how to deliver value to both Status and the Logos Community with the same effort. - Improving work tracking with Vac-DST/Vac-QA, discussion is ongoing to better integrate Waku FURPS in Vac planning. -- We know have a breaking change strategy for Status items. +- We now have a breaking change strategy for Status items. - Aiming more of a team rally behind milestones, dev milestones are now larger and contain more items that can be done in parallel, so that most of the team work on same milestone together. - Focus on more frequent milestone delivery, by avoiding intra-dependency of items in milestone. - Increasing collaboration between research and engineering teams, to ensure early unblocking and neat wrap-up of items. - The "Waku (Messaging) API" was initially a tidy up task, as Waku was already integrated in Status. With a focus towards Chat SDK and growing a developer community, it became an urgent-important item. - Intent to continue internal hackathon initiative with 2 more occurrences in 2025 (tentatively July and October). +- Will attempt to secure one grant with minimum extra commitments (foreseeable commitments are wrapper for a specific language or writing RLN smart contract in non-EVM language). \ No newline at end of file diff --git a/FURPS/core/waku_api.md b/FURPS/core/waku_api.md index 52b47f7..f1a70a8 100644 --- a/FURPS/core/waku_api.md +++ b/FURPS/core/waku_api.md @@ -11,7 +11,7 @@ 5. Returns health and connectivity information using proven heuristics. 6. Previously discovered peers are persisted across restarted, and potentially used for future connections. 7. When wrapping the C API, conversion from native types to JSON is needed by the wrapper. -8. When wrapping the C API, conversion from native types to Protobuf is needed by the wrapper. +8. When wrapping the C API, conversion from native types to Protobuf is needed by the wrapper (PoC). ## Usability @@ -21,7 +21,7 @@ 4. Developers pass and receive data to the API in types native to the wrapping language. 5. By default, auto-sharding is applied, meaning developers do not need to be concerned by sharding; pubsub topics are never exposed. 6. Developers only need to handle errors in cases of irretrievable failure requiring end-user action. Internal errors are not bubbled up if they can be recovered internally. -7. When wrapping the C API, a protobuf definition can be used to generate native types for the host language. +7. When wrapping the C API, a protobuf definition can be used to generate native types for the host language (PoC). ## Reliability @@ -32,10 +32,10 @@ ## Supportability -1. Nim library; import via git path. -2. Golang library; available on pkg.go.dev. -3. Browser; distribution via npmjs.com. -4. Rust; available on crates.io. +1. Developers can use the SDK in nim software, importing it via git path. +2. Developers can use the SDK in Golang software, importing it from on pkg.go.dev. +3. Developers can use the SDK in Browser software, importing it from npmjs.com. +4. Developers can use the SDK in Rust software, importing it from crates.io. ## + (Privacy, Anonymity, Deployments) diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index e37acb5..341c09c 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -106,7 +106,7 @@ In order of priority. Pushed to 2026 - WebTransport: depending on nim-libp2p (delivery Q4) -- REST API for Waku API: Useful for DST/QA, but let's focus on Status, Chat SDK, and Rust first +- Implementing Waku API in REST: Useful for DST/QA, but let's focus on Status, Chat SDK, and Rust first Not yet planned/not sure: - nwaku performance on mobile: let's focus on finishing desktop integration and getting API ready for Chat SDK + RLN diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index 12a35a9..c2ef723 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -5,7 +5,7 @@ **Resources Required for 2025H2**: - 2 js-waku engineers - 1.5 nwaku eng -- 1 core research +- 1 core research for 1 month - 1 app chat eng for 1 month diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md index 0e7f4e6..c8c9af3 100644 --- a/draft-roadmap/integrate_rln_with_waku_api.md +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -119,6 +119,8 @@ See deliverables. ### Deploy RLN Contracts to Status L2 testnet +TODO FURPS + **Owner**: nwaku **Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) @@ -134,9 +136,9 @@ See deliverables. ### Improve RLN UX by reducing Web3 RPC calls -TODO: Clarify ownership +TODO FURPS -**Owner**: nwaku or core research +**Owner**: core research **Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) diff --git a/draft-roadmap/nim_usage_improvements.md b/draft-roadmap/nim_usage_improvements.md index 1240d82..3986cee 100644 --- a/draft-roadmap/nim_usage_improvements.md +++ b/draft-roadmap/nim_usage_improvements.md @@ -65,9 +65,9 @@ Note: maybe taken over by Vac-Nim **Feature**: [Waku API](/FURPS/core/waku_api.md) **FURPS**: -- F8. When wrapping the C API, conversion from native types to Protobuf is needed by the wrapper. +- F8. When wrapping the C API, conversion from native types to Protobuf is needed by the wrapper (PoC). -- U7. When wrapping the C API, a protobuf definition can be used to generate native types for the host language. +- U7. When wrapping the C API, a protobuf definition can be used to generate native types for the host language (PoC). **Checklist**: - [ ] Specs: link to specs and/or API definition From a7cd28ca556c7f6f8b55354fd7c634b92f44a5f6 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 12 Jun 2025 15:55:38 +1000 Subject: [PATCH 63/70] checking numbers --- 2025H2-summary.md | 8 +++++--- draft-roadmap/README.md | 9 ++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/2025H2-summary.md b/2025H2-summary.md index 6a5b92a..b612307 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -81,11 +81,13 @@ Strategy changes: https://notes.status.im/E_bcw7cLR36QKI39k-PlMg# +TODO: update + | Strategic Objective | People | |--------------------------------------|--------| -| Logos Vision - Core Values Alignment | | -| Logos Movement Community Enabling | | -| Logos Movement Module Build Out | | +| Logos Vision - Core Values Alignment | 3.58 | +| Logos Movement Community Enabling | 3.33 | +| Logos Movement Module Build Out | 3.33 | ### Budget Consultation diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 341c09c..bd8c2d3 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -90,8 +90,11 @@ In order of priority. ### H2 Milestones -| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | -|----------|-----------------------------------------------------------------------------------------|----------|----------|---------|--------|----------| +Man month: 17.5 * 6 = 105 +(Franck, Aaron full time mgmt/leadership/eco dev/comms, Hanno half-time) + +| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | BD | +|----------|-----------------------------------------------------------------------------------------|----------|----------|---------|--------|----------|------| | 1 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5*1m | | | | | 2 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | 31 Aug | 1*1m | 2*2m | 1.5*2m | 1*1m | | 3 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | @@ -102,7 +105,7 @@ In order of priority. | 8 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | 19 Dec | | | | 2*3m | | 9 | [Incentivisation follow-up Outline](incentivisation_follow_up.md) | TBD | 1.5*5m | | | | | 10 | [Nim Usage Improvements](nim_usage_improvements.md) | 19 Dec | | | 1*2m | | -| 11 | [BD - Acquire 10 Customers](acquire_first_10_customers.md) | 19 Dec | | | | 0.5*6m | +| 11 | [BD - Acquire 10 Customers](acquire_first_10_customers.md) | 19 Dec | | | | 0.5*6m | 1*6m | Pushed to 2026 - WebTransport: depending on nim-libp2p (delivery Q4) From 29ed93775016c2824564b619b7a666992b15bef0 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 12 Jun 2025 16:02:54 +1000 Subject: [PATCH 64/70] make it generic --- FURPS/application/codex.md | 26 ------------------- FURPS/application/codex_archiving.md | 25 ++++++++++++++++++ .../formalize_and_expand_waku_web_apps.md | 16 +++++++++--- 3 files changed, 37 insertions(+), 30 deletions(-) delete mode 100644 FURPS/application/codex.md create mode 100644 FURPS/application/codex_archiving.md diff --git a/FURPS/application/codex.md b/FURPS/application/codex.md deleted file mode 100644 index a15b17f..0000000 --- a/FURPS/application/codex.md +++ /dev/null @@ -1,26 +0,0 @@ -# Codex Archiving PoC - -## Functionality - -1. Any admin in a Qaku Q&A can publish a backup snapshot of the entire thread to Codex once it's reached 20 responses. -2. The admin can publish the corresponding Codex CID with metadata over Waku to a dedicated snapshot content topic -3. Participants can query the Waku snapshot topic for the latest CID -4. Participants can retrieve the archived Q&A from Codex -5. Participants can perform a Store Query for more recent messages following the snapshot timestamp - -## Usability - -1. Workflow should be conceptually identical, whether the Codex interaction is via a local node or Codex gateway -2. Publishing or retrieving via Codex should be optional - -## Reliability - - -## Performance - - -## Supportability - -1. Web app - -## + (Privacy, Anonymity, Deployments) diff --git a/FURPS/application/codex_archiving.md b/FURPS/application/codex_archiving.md new file mode 100644 index 0000000..090c86e --- /dev/null +++ b/FURPS/application/codex_archiving.md @@ -0,0 +1,25 @@ +# Codex Archiving PoC FURPS + +## Functionality + +1. Any end user can publish a backup snapshot of the entire SDS log to Codex. +2. End user (may be privileged) can publish the corresponding Codex CID with metadata over Waku to a dedicated snapshot content topic. +3. Participants can query the Waku snapshot topic for the latest CID. +4. Participants can retrieve the archived messages from Codex. +5. Participants can perform a store Query for more recent messages following the snapshot timestamp and SDS state. + +## Usability + +1. Workflow should be conceptually identical, whether the Codex interaction is via a local node or Codex gateway. +2. Publishing or retrieving via Codex should be optional. + +## Reliability + +## Performance + + +## Supportability + +1. Developers can use this protocol in web applications. + +## + (Privacy, Anonymity, Deployments) diff --git a/draft-roadmap/formalize_and_expand_waku_web_apps.md b/draft-roadmap/formalize_and_expand_waku_web_apps.md index 05b136a..e1febf7 100644 --- a/draft-roadmap/formalize_and_expand_waku_web_apps.md +++ b/draft-roadmap/formalize_and_expand_waku_web_apps.md @@ -54,12 +54,20 @@ Logos Movement Community Enabling **Owner**: App/Chat Dev -**Feature**: [Codex Archiving PoC](/FURPS/application/codex.md) +**Feature**: [Codex Archiving PoC](/FURPS/application/codex_archiving.md) **FURPS**: -- F1-5 -- U1-2 -- S1 + +- F1. Any end user can publish a backup snapshot of the entire SDS log to Codex. +- F2. End user (may be privileged) can publish the corresponding Codex CID with metadata over Waku to a dedicated snapshot content topic. +- F3. Participants can query the Waku snapshot topic for the latest CID. +- F4. Participants can retrieve the archived messages from Codex. +- F5. Participants can perform a store Query for more recent messages following the snapshot timestamp and SDS state. + +- U1. Workflow should be conceptually identical, whether the Codex interaction is via a local node or Codex gateway. +- U2. Publishing or retrieving via Codex should be optional. + +- S1. Developers can use this protocol in web applications. **Checklist**: - [ ] Specs: link to specs and/or API definition From 43ddea1b8f37cebf9821acc9cda5c7ada7d1a145 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 12 Jun 2025 16:45:32 +1000 Subject: [PATCH 65/70] FURPS for signal network --- FURPS/application/signal_network.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 FURPS/application/signal_network.md diff --git a/FURPS/application/signal_network.md b/FURPS/application/signal_network.md new file mode 100644 index 0000000..22dcf8d --- /dev/null +++ b/FURPS/application/signal_network.md @@ -0,0 +1,24 @@ +# Signal Network PoC FURPS + +## Functionality + +1. Establishes a direct connection between two peers using Waku as a signaling layer + +## Usability + +1. Developers have access to a simple API: single entry `connect` function and event-based inbound handling. + +## Reliability + +1. End-to-end reliability is implemented for the signaling conversation. +2. No provided reliability for established connections, left to the developer (e.g. keep alive). + +## Supportability + +1. Developers can use this protocol in web application, imported from npmjs.com. +2. Developers can use this protocol to initiate WebRTC connections. + +## + (Privacy, Anonymity, Deployments) + +1. Signaling payloads are end-to-end encrypted. +2. STUN and TURN servers may be required for WebRTC usage. \ No newline at end of file From f3db7bc5653cb2686fc5bdc62770718b468f0815 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 12 Jun 2025 21:40:18 +1000 Subject: [PATCH 66/70] Review dates and estimates --- 2025H2-summary.md | 45 +++++----- draft-roadmap/README.md | 90 ++++++++++--------- draft-roadmap/incentivisation_follow_up.md | 8 +- draft-roadmap/integrate_rln_with_waku_api.md | 5 +- .../streamline_dev_ex_local_dev_rust.md | 40 +++++++-- 5 files changed, 113 insertions(+), 75 deletions(-) diff --git a/2025H2-summary.md b/2025H2-summary.md index b612307..06426cc 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -30,19 +30,20 @@ Strategy changes: | Milestone Headline | Strategic Objective | Capacity✱ | Business Val (0/10) | FURPS | |-------------------------------------------------------------------------------------------------------|---------------------------------------------------------|-----------|---------------------|--------| -| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision: Core Values Alignment | 0.25 | 7 | FURPS_ | -| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Movement Community Enabling via Dev-X + Telemetry | 1.5 | 10 | FURPS_ | -| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision: Core Values Alignment | 0.33 | 4 | F___S_ | -| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement Community Enabling | 0.25 | 7 | FURPS_ | -| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement Module Build Out | 1.5 | 8 | FURPS+ | -| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement Module Build Out | 0.83 | 9 | FUR_S+ | -| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement Community Enabling via Dev-X | 0.5 | 7 | FU__S+ | -| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement Module Build Out | 1 | 8 | F_RPS+ | +| [Define Incentivisation for RLNaaS](draft-roadmap/define_incentivisation_for_rlnaas.md) | Logos Vision: Core Values Alignment | 0.4 | 7 | FURPS_ | +| [Improve DevEx: API, TWN, Metrics, Docs](draft-roadmap/improve_devex_api_twn_metrics_docs.md) | Logos Movement Community Enabling via Dev-X + Telemetry | 2.1 | 10 | FURPS_ | +| [Introduce mixnet for message sending](draft-roadmap/introduce_mixnet_for_message_sending.md) | Logos Vision: Core Values Alignment | 0.7 | 4 | F___S_ | +| [Formalize and Expand Waku Web Apps](draft-roadmap/formalize_and_expand_waku_web_apps.md) | Logos Movement Community Enabling | 2.1 | 7 | FURPS_ | +| [Create Chat SDK MVP](draft-roadmap/create_chat_sdk_mvp.md) | Logos Movement Module Build Out | 2.1 | 8 | FURPS+ | +| [Integrate RLN with Waku API](draft-roadmap/integrate_rln_with_waku_api.md) | Logos Movement Module Build Out | 1.7 | 9 | FUR_S+ | +| [Streamline DevEx: Mobile, Rust and Web dev](draft-roadmap/streamline_dev_ex_local_dev_rust.md) | Logos Movement Community Enabling via Dev-X | 1.2 | 7 | FU__S+ | +| [Extend Chat SDK with Group Conversations](draft-roadmap/extend_chat_sdk_with_group_conversations.md) | Logos Movement Module Build Out | 1.4 | 8 | F_RPS+ | | [Incentivisation Follow-up Outline](draft-roadmap/incentivisation_follow_up.md) | Logos Vision: Core Values Alignment | 3 | 7 | TBD | -| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | Logos Movement Community Enabling: Dev Journey | 0.33 | 5 | FU____ | -| [BD - Acquire first 10 customers](draft-roadmap/acquire_first_10_customers.md) | Logos Movement Community Enabling: Growth | 0.75 | 7 | N/A | +| [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | Logos Movement Community Enabling: Dev Journey | 0.5 | 5 | FU____ | +| [BD - Acquire first 10 customers](draft-roadmap/acquire_first_10_customers.md) | Logos Movement Community Enabling: Growth | 2.1 | 7 | N/A | ✱ Capacity: How may people assigned in a 6 months window. +- 3.5 are applied across all milestones (Franck, Aaron, 1/2 Hanno, Tanya), 1 cc is awol. ## 🧩 Strategic Benefits Realisable from coming Half-Year (Top 5) @@ -85,9 +86,9 @@ TODO: update | Strategic Objective | People | |--------------------------------------|--------| -| Logos Vision - Core Values Alignment | 3.58 | -| Logos Movement Community Enabling | 3.33 | -| Logos Movement Module Build Out | 3.33 | +| Logos Vision - Core Values Alignment | 4 | +| Logos Movement Community Enabling | 8 | +| Logos Movement Module Build Out | 5 | ### Budget Consultation @@ -111,13 +112,14 @@ TODO: update ## ⚠️ Keys Risks Identified & Controls -| Risk | (Accept, Own, Mitigation) | -|-------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------| -| Cryptographic primitives in Nim | Expect to nim-wrap existing Rust/C libraries - will consult with Vac to lean towards libraries already used in Nim/IFT ecosystem. | -| Timeline uncertainties for research items | Focus on iterative delivery of usable deliverables, to get early feedback and direction and lower cost of failure. | -| Nim ecosystem and tooling maturity | New initiative to foster Nim community within IFT, work closely with Vac/Nim re tooling, block time to migrate to Nimble. | -| RLN UX | Integrate in web apps, continue dogfooding and iteration, close collaboration with Status. | -| Readiness of status-go for Chat SDK integration | Weekly sync up on chat sdk and status-go refactoring topics between Waku and Status teams, collaborative planning done to align goals and API. | +| Risk | (Accept, Own, Mitigation) | +|-------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Cryptographic primitives in Nim | Expect to nim-wrap existing Rust/C libraries - will consult with Vac to lean towards libraries already used in Nim/IFT ecosystem. | +| Timeline uncertainties for research items | Focus on iterative delivery of usable deliverables, to get early feedback and direction and lower cost of failure. | +| Nim ecosystem and tooling maturity | New initiative to foster Nim community within IFT, work closely with Vac/Nim re tooling, block time to migrate to Nimble. | +| RLN UX | Integrate in web apps, continue dogfooding and iteration, close collaboration with Status. | +| Readiness of status-go for Chat SDK integration | Weekly sync up on chat sdk and status-go refactoring topics between Waku and Status teams, collaborative planning done to align goals and API. | +| nwaku performance in Status/Chat context | benchmarks are still wip, we are prepared for potential performance improvement needs in mobile context, as it is a critical point for Status application. | ## ✅ Key Observations @@ -129,4 +131,5 @@ TODO: update - Increasing collaboration between research and engineering teams, to ensure early unblocking and neat wrap-up of items. - The "Waku (Messaging) API" was initially a tidy up task, as Waku was already integrated in Status. With a focus towards Chat SDK and growing a developer community, it became an urgent-important item. - Intent to continue internal hackathon initiative with 2 more occurrences in 2025 (tentatively July and October). -- Will attempt to secure one grant with minimum extra commitments (foreseeable commitments are wrapper for a specific language or writing RLN smart contract in non-EVM language). \ No newline at end of file +- Will attempt to secure one grant with minimum extra commitments (foreseeable commitments are wrapper for a specific language or writing RLN smart contract in non-EVM language). +- Moving one js-waku developer to chat/app team to develop Forum/OpChan app and library for H2. \ No newline at end of file diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index bd8c2d3..4b134f9 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -90,67 +90,75 @@ In order of priority. ### H2 Milestones -Man month: 17.5 * 6 = 105 -(Franck, Aaron full time mgmt/leadership/eco dev/comms, Hanno half-time) +Total people-month available `16.5 p(eople) * 6 m(onths) = 99 p-m`. +(Franck, Aaron full time mgmt/leadership/eco dev/comms, Hanno half-time, Tanya as test engineer) +✧ One core research CC AWOL. + +| | core res p/p-m | js-waku p/p-m | nwaku p/p-m | app-chat p/p-m | BD p/p-m | +|--------------|----------------|---------------|-------------|----------------|----------| +| Available | 3.5/21✧ | 2/12 | 4/24 | 5/30 | 1/6 | +| Work planned | 3.2/19 | 1.5/9 | 2.25/13.5 | 4.7/28 | 1/6 | + +Note: low allocation on nwaku due to +- high risk on nim activities +- general support to research and now chat team. +- performance uncertainty, especially for mobile (benchmarks in status are wip) + +| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | BD | Capacity✱ | +|----------|-----------------------------------------------------------------------------------------|----------|----------|---------|--------|----------|------|-----------| +| 1 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5*1m | | | | | 0.4 | +| 2 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | 31 Aug | 1*1m | 2*2m | 1.5*2m | 1*1m | | 2.1 | +| 3 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | | 0.7 | +| 4 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5*6m | | 2.1 | +| 5 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | 30 Sep | | | | 3*3m | | 2.1 | +| 6 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | 30 Sep | 1*1m | 1*2m | 2*2m | | | 1.7 | +| 7 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | 30 Nov | | 2*6w | 3*6w | | | 1.2 | +| 8 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | 19 Dec | | | | 2*3m | | 1.4 | +| 9 | [Incentivisation and Marketplace Follow-up Outline](incentivisation_follow_up.md) | TBD | 2.5*5m | | | | | 3 | +| 10 | [Nim Usage Improvements](nim_usage_improvements.md) | 19 Dec | | | 1*2m | | | 0.5 | +| 11 | [BD - Acquire 10 Customers](acquire_first_10_customers.md) | 19 Dec | | | | 0.5*6m | 1*6m | 2.1 | + +✱ Capacity: How may people assigned in a 6 months window. Adjusted to 70% allocation for support. -| Priority | Milestone | End Date | core res | js-waku | nwaku | app-chat | BD | -|----------|-----------------------------------------------------------------------------------------|----------|----------|---------|--------|----------|------| -| 1 | [Define Incentivisation for RLNaaS](define_incentivisation_for_rlnaas.md) | 31 Jul | 1.5*1m | | | | -| 2 | [Improve DevEx: API, TWN, Metrics, Docs](improve_devex_api_twn_metrics_docs.md) | 31 Aug | 1*1m | 2*2m | 1.5*2m | 1*1m | -| 3 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | -| 4 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5*6m | -| 5 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | 30 Sep | | | | 3*3m | -| 6 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | 30 Sep | 1*1m | 1*2m | 1*2m | | -| 7 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | 30 Nov | | 1*1m | 1*2m | | -| 8 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | 19 Dec | | | | 2*3m | -| 9 | [Incentivisation follow-up Outline](incentivisation_follow_up.md) | TBD | 1.5*5m | | | | -| 10 | [Nim Usage Improvements](nim_usage_improvements.md) | 19 Dec | | | 1*2m | | -| 11 | [BD - Acquire 10 Customers](acquire_first_10_customers.md) | 19 Dec | | | | 0.5*6m | 1*6m | Pushed to 2026 - WebTransport: depending on nim-libp2p (delivery Q4) - Implementing Waku API in REST: Useful for DST/QA, but let's focus on Status, Chat SDK, and Rust first +- Delivering NodeJS SDK. Not yet planned/not sure: - nwaku performance on mobile: let's focus on finishing desktop integration and getting API ready for Chat SDK + RLN -- Follow-up steps for incentivization: part of current milestone is to produce a roadmap. -- RLN mainnet and audit -> probably wait for Status L2 mainnet? -- Signal network +- RLN mainnet and audit -> probably wait for Status L2 mainnet + focus on iterations ## Gantt -TODO: fix dates - ```mermaid gantt title Waku 2025H2 dateFormat YYYY-MM-DD axisFormat %b section core research (6) - Define Incentivization for RLNaaS: 2025-07-01, 2025-08-01 - Define Incentivization for RLNaaS: 2025-07-01, 2025-08-01 - Improve DevEx: 2025-08-01, 2025-09-30 + Define Incentivisation for RLNaaS: 2025-07-01, 2025-08-01 + Improve DevEx: 2025-08-01, 2025-08-31 + Integrate RLN with Waku API: 2025-09-01, 2025-09-30 Mixnet: 2025-07-01, 2025-09-30 - Integrate RLN with Waku API: 2025-07-01, 2025-09-01 - Streamline DevEx: 2025-09-01, 2025-12-31 - Incentivization follow-up: 2025-10-01, 2025-12-31 - section nwaku - Status Desktop: 2025-07-01, 2025-08-01 - RLN Onchain Tree: 2025-07-01, 2025-08-01 - Improve DevEx (API): 2025-07-01, 2025-10-01 - Improve DevEx (TWN): 2025-07-01, 2025-09-01 - Streamline DevEx (Mobile, Rust): 2025-09-01, 2025-12-31 - RLN Library: 2025-08-01, 2025-12-31 + Incentivisation and Marketplace Follow-up: 2025-08-01, 2025-12-31 section js-waku - Improve DevEx (API): 2025-07-01, 2025-10-01 - Improve DevEx (TWN): 2025-07-01, 2025-10-01 - RLN Library: 2025-07-01, 2025-09-01 - Streamline DevEx (Local dev): 2025-10-01, 2025-12-31 + Improve DevEx (API): 2025-07-01, 2025-08-31 + Improve DevEx (TWN): 2025-07-01, 2025-08-31 + RLN Library: 2025-08-01, 2025-09-30 + Streamline DevEx: 2025-10-01, 2025-11-30 + section nwaku + Improve DevEx (API): 2025-07-01, 2025-08-31 + Improve DevEx (TWN): 2025-07-01, 2025-08-31 + RLN Library: 2025-08-01, 2025-09-30 + Streamline DevEx (Mobile, Rust): 2025-10-01, 2025-11-30 + Nim Usage Improvements: 2025-11-01, 2025-12-31 section app-chat E2E Reliability: 2025-07-01, 2025-08-01 Communities Opt: 2025-07-01, 2025-08-01 - Foundations Private Chats: 2025-07-01, 2025-08-01 - Improve DevEx (metrics): 2025-07-01, 2025-09-01 - Logos Web Apps: 2025-07-01, 2025-12-31 - Chat SDK: 2025-07-01, 2025-12-31 + Improve DevEx (metrics): 2025-08-01, 2025-09-01 + Create Chat SDK: 2025-07-01, 2025-09-30 + Extend Chat SDK: 2025-10-01, 2025-12-31 + Formalize and Expand Waku Web Apps: 2025-07-01, 2025-12-31 ``` \ No newline at end of file diff --git a/draft-roadmap/incentivisation_follow_up.md b/draft-roadmap/incentivisation_follow_up.md index 9fc24e5..579e4f7 100644 --- a/draft-roadmap/incentivisation_follow_up.md +++ b/draft-roadmap/incentivisation_follow_up.md @@ -1,16 +1,16 @@ -# Incentivisation Follow-Up Outline +# Incentivisation and Marketplace Follow-Up Outline **Estimated date of completion**: TBD **Resources Required for 2025H2**: -- 1.5 core research engineer for 5 months -- {external services consumed (Vac/IFT)} -- {infrastructure} +- 2.5 core research engineer for 5 months Proceed with follow-up step once the [incentivisation light push PoC](https://github.com/waku-org/pm/issues/245) is delivered. The exact commitments and deliverables are to be defined as part of the [incentivisation roadmap output](https://github.com/waku-org/pm/issues/246) +This includes progress towards both incentivisation and marketplace problems. + ## Strategic Objective Logos Vision: Core Values Alignment diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md index c8c9af3..17bd6ed 100644 --- a/draft-roadmap/integrate_rln_with_waku_api.md +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -3,11 +3,10 @@ **Estimated date of completion**: 30 Sep **Resources Required for 2025H2**: -- 1 nwaku engineer for 2 months +- 2 nwaku engineer for 2 months - 1 js-waku engineer for 2 months (til 30 Aug) -- 1 core research for 1 month (assuming ownership of RLN UX deliverable) +- 1 core research for 1 month - Support from Vac/ACZ to get zerokit working in the browser. -- {infrastructure} Deliver a native RLN library with a deliberate API to manage RLN memberships, as well as proof verification and generation. This includes extracting RLN Relay as a relay plugin validation strategy, that can then be passed internally to nwaku node diff --git a/draft-roadmap/streamline_dev_ex_local_dev_rust.md b/draft-roadmap/streamline_dev_ex_local_dev_rust.md index a4cade7..873486b 100644 --- a/draft-roadmap/streamline_dev_ex_local_dev_rust.md +++ b/draft-roadmap/streamline_dev_ex_local_dev_rust.md @@ -3,19 +3,20 @@ **Estimated date of completion**: 30 Nov **Resources Required for 2025H2**: -- nwaku 1 eng during 1 month 70% until 30 Sep - start 1st Sep -- js-waku 1 eng 70% 1-19th Sep -- {external services consumed (Vac/IFT)} -- {infrastructure} +- nwaku 3 eng during 6 weeks +- js-waku 2 eng 6 Week Sep Complete the Waku API implementation in nwaku by implementing edge node mode (Status' Light Mode). Streamline the Developer Experience by delivering a Rust SDK that implements the full Waku API and is available on crates.io. As well as building an easy-to-use local dev environment from the browser, enabling developers to build web apps without -relying on external connectivity; as well as opting in and out of RLN, and include a local RLN dev environment. +relying on external connectivity. Provide a similar harness to deploy a local RLN dev environment. Finalize the integration of nwaku in Status application by setting up nwaku-based build for Mobile platforms. +Lastly, develop a PoC protocol to demonstrate the usage of Waku as a Signal network, using WebRTC as example. +This was identified as a demanded demonstration of Waku's capabilities as part of the [Waku MVP analysis](https://www.notion.so/Waku-MVP-1838f96fb65c8039acabf8a6a1e689e7). + ## Strategic Objective Logos Movement Community Enabling via Dev-X @@ -132,4 +133,31 @@ See deliverables. - [ ] Specs: link to specs and/or API definition - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact -- [ ] Docs: links to README.md or docs.waku.org (TBD)\ \ No newline at end of file +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +### [Waku as a Signal Network (WebRTC) PoC](https://github.com/waku-org/pm/issues/298) + +**Owner**: js-waku + +**Feature**: [Waku as a Signal Network](/FURPS/application/signal_network.md) + +**FURPS**: + +- F1. Establishes a direct connection between two peers using Waku as a signaling layer + +- U1. Developers have access to a simple API: single entry `connect` function and event-based inbound handling. + +- 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. + +- +1. Signaling payloads are end-to-end encrypted. +- +2. STUN and TURN servers may be required for WebRTC usage. + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) \ No newline at end of file From 6905aa3cdca1d7f760a24ea07e0548bbf6cbdde4 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 12 Jun 2025 23:49:23 +1000 Subject: [PATCH 67/70] Final review --- 2025H2-summary.md | 13 +++++++------ draft-roadmap/README.md | 10 ++++------ draft-roadmap/integrate_rln_with_waku_api.md | 2 +- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/2025H2-summary.md b/2025H2-summary.md index 06426cc..cbfc51f 100644 --- a/2025H2-summary.md +++ b/2025H2-summary.md @@ -5,14 +5,14 @@ - Create Chat SDK MVP - one-to-one (Nim, Rust, Golang), support Status' technical roadmap, supports Logos Movement and Logos Core by enabling secure conversations over Waku - Simplify the API of the Waku SDK (Browser, Nim, Rust, Golang), supports Chat SDK, Logos Movement and Logos Core, make it is easy to integrate - Improve Waku Developer Experience by stabilizing The Waku Network and reviewing Docs: Support Logos Movement, make it is easy to integrate -- Deploy metrics to measure Waku and any Waku app's level of adoption: Support measuring success of Logos Movement +- Deploy metrics to measure Waku and any Waku app's level of adoption: Support measuring success of Logos Technology adoption - Introduce mixnet for message sending: Support Logos Vision of a private technology stack - Formalize and Expand Waku Web Apps: Support Logos Movement on teaching them how to hunt -- Integrate RLN with Waku API: Supports Chat SDK, and Logos Movement to make it easy it to integrate Waku RLN. +- Integrate RLN with Waku API: Supports Chat SDK, and Logos Movement to make it easy it to integrate Waku RLN - Streamline DevEx: Mobile, and Web dev, supporting Status to have nwaku and chat sdk on mobile, provide tooling to make it easy to integrate js-waku - Extend Chat SDK with Group conversations: ditto create chat sdk - Nim Usage Improvement: Dedicate time to improve nim usage (nimble usage, iterate on ffi api, study `nimsuggest` behaviour): to improve nwaku contributor experience, enable all goals above and make it easy to contribute -- Continue Waku Incentivisation: Finish Light push PoC and define next step, to make Waku infrastructure decentralized and sustainable, as per Logos Vision +- Continue Waku Incentivisation: Finish Light push PoC and define next steps, to make Waku infrastructure decentralized and sustainable, as per Logos Vision Strategy changes: @@ -42,8 +42,8 @@ Strategy changes: | [Nim Usage Improvements](draft-roadmap/nim_usage_improvements.md) | Logos Movement Community Enabling: Dev Journey | 0.5 | 5 | FU____ | | [BD - Acquire first 10 customers](draft-roadmap/acquire_first_10_customers.md) | Logos Movement Community Enabling: Growth | 2.1 | 7 | N/A | -✱ Capacity: How may people assigned in a 6 months window. -- 3.5 are applied across all milestones (Franck, Aaron, 1/2 Hanno, Tanya), 1 cc is awol. +✱ Capacity: How many people assigned in a 6 months window. +- 3.5 are applied across all milestones (Franck, Aaron, 1/2 Hanno, Tanya), 1 core research cc is awol. ## 🧩 Strategic Benefits Realisable from coming Half-Year (Top 5) @@ -82,7 +82,8 @@ Strategy changes: https://notes.status.im/E_bcw7cLR36QKI39k-PlMg# -TODO: update +3.5 are applied across all milestones (Franck, Aaron, 1/2 Hanno, Tanya), 1 core research cc is awol. +Not full 6 months planned, see above for contingency. | Strategic Objective | People | |--------------------------------------|--------| diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 4b134f9..7a76ccb 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -120,15 +120,13 @@ Note: low allocation on nwaku due to ✱ Capacity: How may people assigned in a 6 months window. Adjusted to 70% allocation for support. - -Pushed to 2026 +Pushed to 2026H1/Next on the list - WebTransport: depending on nim-libp2p (delivery Q4) - Implementing Waku API in REST: Useful for DST/QA, but let's focus on Status, Chat SDK, and Rust first - Delivering NodeJS SDK. - -Not yet planned/not sure: -- nwaku performance on mobile: let's focus on finishing desktop integration and getting API ready for Chat SDK + RLN -- RLN mainnet and audit -> probably wait for Status L2 mainnet + focus on iterations +- nwaku performance on mobile: depending on benchmark results +- New entry points for RLN, in addition to deposit (e.g. Karma holder or SNT staker) +- Message caching/database within Waku SDK ## Gantt diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md index 17bd6ed..cd4eb40 100644 --- a/draft-roadmap/integrate_rln_with_waku_api.md +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -4,7 +4,7 @@ **Resources Required for 2025H2**: - 2 nwaku engineer for 2 months -- 1 js-waku engineer for 2 months (til 30 Aug) +- 1 js-waku engineer for 2 months - 1 core research for 1 month - Support from Vac/ACZ to get zerokit working in the browser. From c2e807b994f0706cc3053c74f544a8ac2e154e0c Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 13 Jun 2025 00:12:03 +1000 Subject: [PATCH 68/70] Final furps, rename api --- FURPS/core/rln_smart_contract.md | 6 +++--- FURPS/core/{waku_api.md => waku_sdk.md} | 4 +--- draft-roadmap/improve_devex_api_twn_metrics_docs.md | 4 ++-- draft-roadmap/integrate_rln_with_waku_api.md | 13 +++++-------- draft-roadmap/nim_usage_improvements.md | 2 +- draft-roadmap/streamline_dev_ex_local_dev_rust.md | 2 +- 6 files changed, 13 insertions(+), 18 deletions(-) rename FURPS/core/{waku_api.md => waku_sdk.md} (96%) diff --git a/FURPS/core/rln_smart_contract.md b/FURPS/core/rln_smart_contract.md index e617eec..0ef8d3e 100644 --- a/FURPS/core/rln_smart_contract.md +++ b/FURPS/core/rln_smart_contract.md @@ -12,6 +12,7 @@ 1. Application developers can set RLN rate limit at insertion. 2. User does not need to wait for merkle tree synchronization and building to start relaying or sending messages. +3. Application does not need to do a Web3 RPC call for every tree change to generate or validate messages. ## Reliability @@ -28,6 +29,5 @@ ## + (Privacy, Anonymity, Deployments) -1. Smart Contracts are deployed on Linea Sepolia. -2. TWN uses smart contracts deployed on Linea Sepolia. - +1. Smart Contracts are deployed on ~Linea Sepolia~ Status L2 Sepolia. +2. TWN uses smart contracts deployed on ~Linea Sepolia~ Status L2 Sepolia. diff --git a/FURPS/core/waku_api.md b/FURPS/core/waku_sdk.md similarity index 96% rename from FURPS/core/waku_api.md rename to FURPS/core/waku_sdk.md index f1a70a8..bab1afc 100644 --- a/FURPS/core/waku_api.md +++ b/FURPS/core/waku_sdk.md @@ -1,6 +1,4 @@ -# Waku API FURPS - -(proposing to move away from "messaging api" to avoid confusion) +# Waku ADK FURPS ## Functionality diff --git a/draft-roadmap/improve_devex_api_twn_metrics_docs.md b/draft-roadmap/improve_devex_api_twn_metrics_docs.md index c2ef723..1110eb2 100644 --- a/draft-roadmap/improve_devex_api_twn_metrics_docs.md +++ b/draft-roadmap/improve_devex_api_twn_metrics_docs.md @@ -93,7 +93,7 @@ Spec delivery not included. **Owner**: js-waku -**Feature**: [Waku API](/FURPS/core/waku_api.md) +**Feature**: [Waku SDK](/FURPS/core/waku_sdk.md) **FURPS**: - F1. Setup, start and stop a Waku node. @@ -122,7 +122,7 @@ For S3. Browser; distribution via npmjs.com. **Owner**: nwaku -**Feature**: [Waku API](/FURPS/core/waku_api.md) +**Feature**: [Waku SDK](/FURPS/core/waku_sdk.md) **FURPS**: - F1. Setup, start and stop a Waku node. diff --git a/draft-roadmap/integrate_rln_with_waku_api.md b/draft-roadmap/integrate_rln_with_waku_api.md index cd4eb40..6930a8a 100644 --- a/draft-roadmap/integrate_rln_with_waku_api.md +++ b/draft-roadmap/integrate_rln_with_waku_api.md @@ -118,14 +118,13 @@ See deliverables. ### Deploy RLN Contracts to Status L2 testnet -TODO FURPS - **Owner**: nwaku -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) +**Feature**: [RLN Smart Contract](/FURPS/core/rln_smart_contract.md) **FURPS**: -- {F1. copy-paste full furps statement} +- +1. Smart Contracts are deployed on Status L2 Sepolia. +- +2. TWN uses smart contracts deployed on Status L2 Sepolia. **Checklist**: - [ ] Specs: link to specs and/or API definition @@ -135,14 +134,12 @@ TODO FURPS ### Improve RLN UX by reducing Web3 RPC calls -TODO FURPS - **Owner**: core research -**Feature**: [{Feature Name (only 1)}]({path/to/furps/file}) +**Feature**: [RLN Smart Contract](/FURPS/core/rln_smart_contract.md) **FURPS**: -- {F1. copy-paste full furps statement} +- U3. Application does not need to do a Web3 RPC call for every tree change to generate or validate messages. **Checklist**: - [ ] Specs: link to specs and/or API definition diff --git a/draft-roadmap/nim_usage_improvements.md b/draft-roadmap/nim_usage_improvements.md index 3986cee..f864976 100644 --- a/draft-roadmap/nim_usage_improvements.md +++ b/draft-roadmap/nim_usage_improvements.md @@ -62,7 +62,7 @@ Note: maybe taken over by Vac-Nim **Owner**: nwaku -**Feature**: [Waku API](/FURPS/core/waku_api.md) +**Feature**: [Waku SDK](/FURPS/core/waku_sdk.md) **FURPS**: - F8. When wrapping the C API, conversion from native types to Protobuf is needed by the wrapper (PoC). diff --git a/draft-roadmap/streamline_dev_ex_local_dev_rust.md b/draft-roadmap/streamline_dev_ex_local_dev_rust.md index 873486b..8ad0d66 100644 --- a/draft-roadmap/streamline_dev_ex_local_dev_rust.md +++ b/draft-roadmap/streamline_dev_ex_local_dev_rust.md @@ -78,7 +78,7 @@ See deliverables. **Owner**: nwaku -**Feature**: [Waku API](/FURPS/core/waku_api.md) +**Feature**: [Waku SDK(/FURPS/core/waku_sdk.md) **FURPS**: - S4. Rust; available on crates.io. From 9d6b2ece7a7e797c2097dbe1304c2b9394c119a2 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 13 Jun 2025 00:12:47 +1000 Subject: [PATCH 69/70] rename summary --- 2025H2-summary.md => 2025H2-SUMMARY.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 2025H2-summary.md => 2025H2-SUMMARY.md (100%) diff --git a/2025H2-summary.md b/2025H2-SUMMARY.md similarity index 100% rename from 2025H2-summary.md rename to 2025H2-SUMMARY.md From b3999bfd36f35949841b297234e3d3eb145bbbc0 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 13 Jun 2025 00:14:36 +1000 Subject: [PATCH 70/70] BD KPI are not yet locked in --- draft-roadmap/acquire_first_10_customers.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/draft-roadmap/acquire_first_10_customers.md b/draft-roadmap/acquire_first_10_customers.md index 5e01a77..828da27 100644 --- a/draft-roadmap/acquire_first_10_customers.md +++ b/draft-roadmap/acquire_first_10_customers.md @@ -27,6 +27,8 @@ Logos Movement Community Enabling: Growth ## KPIs for 2025H2 +TODO: These are proposed KPI, need to iterate on them. Will review by EOW (13 June.) + - [ ] Identify 15 Highly Qualified Leads - [ ] Discuss solution engineering with 10 leads - [ ] Bring 5 leads into Discord bridge (will to connect and discuss)