SDK vs API

This commit is contained in:
fryorcraken 2025-06-12 15:37:21 +10:00
parent bb356e7883
commit 5db5299b46
No known key found for this signature in database
GPG Key ID: A82ED75A8DFC50A4
7 changed files with 36 additions and 31 deletions

View File

@ -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.

View File

@ -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).

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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})

View File

@ -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