Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save martinsaposnic/8e2167640ae6a878c47992f0d2f7f5df to your computer and use it in GitHub Desktop.

Select an option

Save martinsaposnic/8e2167640ae6a878c47992f0d2f7f5df to your computer and use it in GitHub Desktop.
Grant proposal - Spiral - Martin Saposnic
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