Challenges May 2020
How to participate
If you like to get a better overview of the challengers, join the kickoff livestream. You may also join later on.
Most projects listed their challenges as sprint issues on Github, simply comment on those that you are interested in and the project mentors should get back to you.
Also register on https:/mm.fulmo.org and let us know in the channel "Lightning HackSprint" what you like to work on.
Projects with Challenges
This is the list of Lightning Network related projects that registered for the HackSprint so far:
RaspiBlitz
Github issues with label "hackathon": github.com/rootzoll/raspiblitz
LightningATM
Github issues with label "hackathon": github.com/21isenough/LightningATM
LNbits
https://github.com/arcbtc/lnbits
RTL (Ride The Lightning)
https://github.com/Ride-The-Lightning/RTL
Quickening - Room77 Point of Sale
https://github.com/arcbtc/M5StackSats
Lightnite
Specter-Desktop
https://github.com/rootzoll/raspiblitz/issues/1059#issuecomment-605526623
TOR2IP-Tunnelservice
SendMany App
https://github.com/fusion44/sendmany https://github.com/rootzoll/raspiblitz/issues/1000#issuecomment-605526180
Wiki Lightning Spam Protection
Turn this prototype https://github.com/thorie7912/LightningPayment to add a Lightning SpamProtection into a Media Wiki Extension thats easy to install and config on a standard Media Wiki.
The Eye of Satoshi (python-teos)
Github issues with label "hackathon": github.com/talaia-labs/python-teos
Exchange Union/OpenDEX
Integrate c-lightning as swap client (and more): https://github.com/ExchangeUnion/xud/issues?q=is%3Aopen+is%3Aissue+label%3Ahackathon
getroutevia: a c-lightning plugin for route search with restrictions
Find routes that satisfy additional criteria, for instance, must [not] go through certain nodes. More info and discussion here: https://github.com/s-tikhomirov/getroutevia/issues/1
Rust Lightning network node
Another LN node? Why we need it?
The problem with the existing Lightning node implementations is their very limited extensibility for such things as:
- future LN upgrades (channel factories, pay-to-ec-point, taproot),
- protocols on top of LN (layer 3), like DLCs on LN or proposed Lightspeed payments, which require modification on the structure of the commitment transaction.
We will try to build a node that is highly modular and is ready for the future LN extensions. More information here: https://github.com/LNP-BP/lnpd
During the hackathon we will try to:
- compose core architecture with non-blocking multithreading
- add lightning network wire protocol
- implement BOLT-9 (using rust-lightning it should be simple)
- implement BOLT-1: do connection to other LN nodes + send/receive `connect`, `ping` & `ping` messages
- (optionally) implement gossip protocol
Contact User:Dr-Orlovsky for details
Weenode
This is the new name for the cheapnode project. Help wanted on Github issues with label "hacksprint"
Backup plugin for c-lightning
Backups are a major issue in the Lightning Protocol, given that any sort of dataloss could potentially result in loss of funds. This means that restoring an old backup of the database could result in the node broadcasting an old state, which is a cheat attempt in the protocol, which is punished.
The backup c-lightning plugin (https://github.com/lightningd/plugins/pull/97) implements the basic mechanisms to create a synchronous backup of any change to the database, and ensures that the backup stays in sync with the database. It does so in a generic way allowing to write backups to a variety of backends, but initially only implements a file-system based backup backend that is located on the same machine, but on a separate disk. Doing so already provides protection against data corruption on the primary disk. Potential future improvements could include:
- Backup to Google services. Examples include:
- GDrive
- Google Docs - Sheets
- Google Cloud Storage
- Backup to Dropbox
- Send backup data to a peer using the custommsg hook
- Backups to a dedicated backup server
In the case of a dedicated backup server the plugin could also manage a subscription that is used to pay for the backup service.
User:cdecker is available for additional information and mentorship. See his Wiki page for contact information.
Adding your Project
Feel free to add a challenge yourself! The wiki is open to any Bolter (you'll figure out how to edit.) Get in touch on Mattermost for more information and collaboration.