Created
April 15, 2025 18:35
-
-
Save martinsaposnic/8e2167640ae6a878c47992f0d2f7f5df to your computer and use it in GitHub Desktop.
Grant proposal - Spiral - Martin Saposnic
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Hi Spiral Team, | |
| I hope you’re well. I’m Martin Saposnic, a professional developer | |
| with over 11 years of experience based in Buenos Aires, Argentina. | |
| Growing up in a country where economic instability and stringent | |
| financial policies are a way of life, I learned early on that | |
| traditional financial systems have inherent limits. This background | |
| shaped my understanding of Bitcoin’s potential, not merely as an | |
| alternative, but as a vital tool for promoting financial autonomy on | |
| a global scale. I’ve been fascinated with Bitcoin for over 8 years, | |
| admiring its revolutionary design from afar and increasingly engaging | |
| with its open source infrastructure as I sought to contribute | |
| meaningfully to its evolution. | |
| Encouraged by the BOSS program, I set out to address a specific | |
| technical challenge within the Lightning Network ecosystem: ensuring | |
| that mobile apps remain reliable even when backgrounded. As a | |
| concrete use case, consider a small business in an emerging market | |
| that uses a Lightning Service Provider to process its mobile | |
| Lightning payments for everyday transactions. When the mobile app is | |
| backgrounded, loss of network connectivity can lead to missed | |
| notifications, delayed payments, and diminished trust in the network. | |
| The LSPS5 specification offers an elegant, standardized solution by | |
| enabling mobile clients to securely register webhooks and receive | |
| vital push notifications even when not active. While I began by | |
| working on integrating LSPS5 into rust‑lightning to produce a robust, | |
| production-quality reference implementation, my scope has since | |
| expanded to improving the overall reliability and robustness of | |
| Lightning Service Provider support in rust-lightning. My primary | |
| motivation is to improve the user experience for new Lightning users, | |
| and advancing the production-readiness of LSP on rust-lightning will | |
| be crucial in achieving this goal. | |
| Project Scope | |
| LSPS5: | |
| * Continue working on my current pull request | |
| (https://github.com/lightningdevkit/rust-lightning/pull/3662) by | |
| incorporating reviewer feedback to fully align with the LSPS5 | |
| specification. It’s important to note that the current agreed scope | |
| of this PR is to implement LSPS5 without storage | |
| * Add service-side persistence to LSPS5 | |
| * Produce detailed documentation that facilitates understanding and | |
| encourages adoption of the LSPS5 implementation. | |
| * Conduct thorough testing, including unit tests, integration tests, | |
| and fuzz testing, to ensure the solution proves robust and secure. | |
| * Develop a reference mobile app that integrates with LSPS5, | |
| providing users with a rapid-start solution for their mobile | |
| clients. | |
| * Create blog posts and demo videos (in both English and Spanish, to | |
| encourage Latin American users to start creating and managing | |
| Lightning Service Providers) to showcase and explain LSPS5, | |
| mirroring the approach used by other LSPS implementations. | |
| LSPS1: | |
| * Complete rewrite of the service side | |
| * Add service-side persistence | |
| * See issue for full list of TODOs: | |
| https://github.com/lightningdevkit/rust-lightning/issues/3480 | |
| LSPS2: | |
| * Add service-side persistence | |
| * Make the LSPS2 crate std compatible by using the new trait | |
| time_provider introduced in my LSPS5 PR (see | |
| https://github.com/lightningdevkit/rust-lightning/issues/3471) | |
| * Fully implement client-trusts-LSP flow (see | |
| https://github.com/lightningdevkit/ldk-node/issues/479) | |
| * Make the implementation fully compliant with the spec. (These are | |
| not critical, but still worth doing) See issues: | |
| * https://github.com/lightningdevkit/rust-lightning/issues/3462 | |
| * https://github.com/lightningdevkit/rust-lightning/issues/3465 | |
| * https://github.com/lightningdevkit/rust-lightning/issues/3463 | |
| * https://github.com/lightningdevkit/rust-lightning/issues/3460 | |
| * https://github.com/lightningdevkit/rust-lightning/issues/3461 | |
| * Improve the error handling of various scenarios. See issues: | |
| * https://github.com/lightningdevkit/rust-lightning/issues/3468 | |
| * https://github.com/lightningdevkit/rust-lightning/issues/3469 | |
| * https://github.com/lightningdevkit/rust-lightning/issues/3475 | |
| * https://github.com/lightningdevkit/rust-lightning/issues/3476 | |
| * https://github.com/lightningdevkit/rust-lightning/issues/3479 | |
| * https://github.com/lightningdevkit/rust-lightning/issues/3551 | |
| * Improve docs (see | |
| https://github.com/lightningdevkit/rust-lightning/issues/3478) | |
| LSPS (in general) | |
| * Develop a robust testing framework for lightning-liquidity | |
| * Enhance unit and integration testing to verify the functional | |
| integrity of all implementations (see | |
| https://github.com/lightningdevkit/rust-lightning/issues/3466) | |
| * Implement fuzz testing throughout the entire lightning-liquidity | |
| codebase. This will ensure soundness and focus on minimizing | |
| security vulnerabilities, particularly by preventing crashes | |
| from user input. (see | |
| https://github.com/lightningdevkit/rust-lightning/issues/3515) | |
| * Introduce anti-DoS measures | |
| * Provide measures for DoS/spamming protection for the | |
| BOLT8-based transport. | |
| * Make error messages and log levels uniform across the whole LSPS | |
| ecosystem (see | |
| https://github.com/lightningdevkit/rust-lightning/issues/3492) | |
| * Participate in LSP spec calls | |
| * Actively review LSP related PRs. | |
| Side note: Liquidity Ads is the planned next iteration of LSP but is | |
| currently (April 2025) blocked by dependencies such as Splicing and | |
| 0-fee commitment transactions. It may remain blocked during my grant | |
| period, but if unblocked, I intend to get involved and contribute to | |
| its development and review. | |
| Success for this initiative will be measured by delivering | |
| production-ready Lightning Service Provider functionality across the | |
| LSPS suite, starting with LSPS5 and extending to LSPS1, LSPS2, and | |
| the broader LSP ecosystem within rust-lightning. This includes | |
| passing rigorous testing benchmarks, implementing robust persistence | |
| and error handling, and creating documentation and tooling that | |
| enable wallet developers and service providers to adopt these | |
| features with confidence. My underlying hypothesis is that | |
| strengthening LSP support will significantly improve the reliability | |
| of mobile Lightning apps, build user trust, and unlock new | |
| possibilities for real-world adoption of Bitcoin, particularly in | |
| emerging markets. | |
| Funding Request | |
| I am seeking a grant that will allow me to dedicate myself full-time | |
| to these efforts over the next 12 months. With your support, I can | |
| accelerate development, testing, and outreach across the LSPS | |
| implementations, helping ensure the Lightning Network becomes more | |
| robust, reliable, and accessible, especially for the next wave of | |
| users and developers. | |
| I’d also like to mention that Jonas, CEO of Chaincode Labs, has been | |
| following my progress closely and is available as a reference | |
| regarding my work and my commitment to advancing Bitcoin’s potential. | |
| Thank you for considering my proposal. I look forward to advancing | |
| Bitcoin’s capabilities and contributing further to our shared | |
| mission. | |
| Best regards, | |
| Martin Saposnic | |
| GitHub: https://github.com/martinsaposnic |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment