Difference between revisions of "Challenges May 2020"
(Satoshi) Tag: Replaced |
|||
Line 1: | Line 1: | ||
− | Satoshi | + | ==How to participate== |
+ | |||
+ | If you like to get a better overview of the challenges, join the [https://youtu.be/XvPkyVIPIfY kickoff livestream]. You may also join later on. | ||
+ | |||
+ | Most projects listed their challenges as sprint issues on Github with the lable "hackathon". Simply comment on those that you are interested in and the project mentors should get back to you. | ||
+ | |||
+ | To participate please register on our [https://mm.fulmo.org Mattermost] (OpenSource Slack) and check if there is already a chat room regarding the project you are interested. In the channel "[https://mm.fulmo.org/fulmo/channels/lightning-hacksprint Lightning HackSprint]" should always be someone around to point you into the right direction if you have any further questions. | ||
+ | |||
+ | ==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": [https://github.com/rootzoll/raspiblitz/issues?q=is%3Aopen+is%3Aissue+label%3Ahackathon github.com/rootzoll/raspiblitz] | ||
+ | |||
+ | Video helping you to get started with RaspiBlitz development: https://youtu.be/qTHDkFppsz0 | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/raspiblitz | ||
+ | |||
+ | ===LightningATM=== | ||
+ | |||
+ | Github issues with label "hackathon": [https://github.com/21isenough/LightningATM/issues?q=is%3Aissue+is%3Aopen+label%3Ahackathon github.com/21isenough/LightningATM] | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-lightningatm | ||
+ | |||
+ | ===LNbits=== | ||
+ | |||
+ | https://github.com/arcbtc/lnbits | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-lnbits | ||
+ | |||
+ | In a push to get lnbits new update out and extend its functionality, x3 0.03btc bounties are available for anyone developing extensions. If you're interested in making an extension, pop into the stream for a chat. If the community likes the idea, you can make it and on completion get one of the bounties! | ||
+ | |||
+ | see video: https://www.youtube.com/watch?v=xnHz6NbTgZg | ||
+ | |||
+ | ===RTL (Ride The Lightning)=== | ||
+ | |||
+ | https://github.com/Ride-The-Lightning/RTL | ||
+ | |||
+ | Github issues with label 'hackathon': https://github.com/Ride-The-Lightning/RTL/issues?q=is%3Aissue+is%3Aopen+label%3Ahackathon | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-rtl-ride-the-lightning | ||
+ | |||
+ | ===Quickening - Room77 Point of Sale=== | ||
+ | |||
+ | Github issues starting with "Room77" https://github.com/arcbtc/M5StackSats/issues | ||
+ | |||
+ | Please work on the branch"payment_connector" use the version in the folder [https://github.com/arcbtc/M5StackSats/tree/payment_connector/TheQuickening "TheQuickening"] | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-pos-room77-quickening | ||
+ | |||
+ | ===Lightnite=== | ||
+ | |||
+ | Challenges: https://issues.lightnite.io | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-lightnite-game | ||
+ | |||
+ | ===Specter-Desktop=== | ||
+ | |||
+ | Quickinfo on Specter: https://twitter.com/CryptoAdvance/status/1233833767283941376?s=20 | ||
+ | |||
+ | Challenge: https://github.com/rootzoll/raspiblitz/issues/1059#issuecomment-605526623 | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-specter-desktop | ||
+ | |||
+ | ===TOR2IP-Tunnelservice=== | ||
+ | |||
+ | A service to give a Lightning node running behind TOR a port on a public IP address. | ||
+ | |||
+ | Subpage with Challenge: [[TOR2IP-Tunnelservice]] | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-tor2ip-tunnelservice | ||
+ | |||
+ | ===SendMany App=== | ||
+ | |||
+ | Project Info: https://github.com/fusion44/sendmany | ||
+ | |||
+ | Challenge: https://github.com/rootzoll/raspiblitz/issues/1000#issuecomment-605526180 | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-keysendsendmany | ||
+ | |||
+ | ===Wiki Lightning Spam Protection=== | ||
+ | |||
+ | Turn this prototype https://github.com/thorie7912/LightningPayment to add a Lightning SpamProtection into a [https://en.wikipedia.org/wiki/MediaWiki_extension Media Wiki Extension] thats easy to install and config on a standard Media Wiki. | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/media-wiki-spam-protection | ||
+ | |||
+ | ===The Eye of Satoshi (python-teos)=== | ||
+ | |||
+ | The Eye of Satoshi is a Lightning watchtower compliant with BOLT13, written in Python 3. | ||
+ | |||
+ | Github issues with label "hackathon": [https://github.com/talaia-labs/python-teos/labels/hackathon github.com/talaia-labs/python-teos] | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-the-eye-of-satoshi | ||
+ | |||
+ | ===Exchange Union/OpenDEX=== | ||
+ | |||
+ | Integrate c-lightning as swap client (and more): https://github.com/ExchangeUnion/xud/issues?q=is%3Aopen+is%3Aissue+label%3Ahackathon | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-opendex | ||
+ | |||
+ | ===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 | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-getroutevia-c-lightning-plugin | ||
+ | |||
+ | ===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 [https://hackmd.io/@lpQxZaCeTG6OJZI3awxQPQ/LN-DLC DLCs on LN] or proposed [https://github.com/LNP-BP/lnpbps/issues/24 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 | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-rust-ln-node | ||
+ | |||
+ | ===Weenode=== | ||
+ | |||
+ | This is the new name for the [https://blog.bitcoinprivacy.net/2019/12/20/news-from-the-cheapnode-project/ cheapnode project]: Building the cheapest possible bitcoin fullnode (+lightning and other services) on old Android phones. | ||
+ | |||
+ | Help wanted on [https://github.com/bitcoinprivacy/weenode/labels/hacksprint Github issues with label "hacksprint"] | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-weenode | ||
+ | |||
+ | ===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 [[User:cdecker|Wiki page]] for contact information. | ||
+ | |||
+ | ===Low Bandwidth Lightning Channels=== | ||
+ | |||
+ | There is a need to strengthen the Bitcoin ecosystem for people whose only computing device is a low end mobile phone and who live where Internet access is expensive, unreliable, intermittent or censored. [https://github.com/willcl-ark willcl-ark] created a way to proxy Lightning channels over low-bandwidth communication systems using a c-lightning patch "[https://github.com/willcl-ark/lnproxy/blob/master/clightning/noencrypt_final.patch noencrypt]" and python plugin called [https://github.com/willcl-ark/lnproxy lnproxy]. This plugin is written specifically to use a goTenna radio connected to a computer over USB, but this system can also be adapted for other low-bandwidth channels like SMS (for people who cannot afford mobile internet), LoRa mesh radio or similar systems. [https://github.com/jharveyb jharveyb] is working on [https://github.com/jharveyb/fldigi-proxy fldigi-proxy] to help adapt LNProxy for ham radio and willcl-ark has created a [https://github.com/willcl-ark/lnproxy/commits/2020-02-23-ham fork of lnproxy that uses sockets] to work with the fldigi-proxy. | ||
+ | |||
+ | You can read more about LNProxy [https://inthemesh.com/archive/lntenna-python-3/ here] to get an overview of the project. | ||
+ | |||
+ | The challenge is to adapt LNProxy to a different low-bandwidth communication method. For example, LoRa radio, Bluetooth or an SMS API. | ||
+ | |||
+ | Chatroom to get started: https://mm.fulmo.org/fulmo/channels/lnproxy | ||
+ | |||
+ | [[User:Remyers]] is available for additional information and mentorship. Contact Richard at [https://mm.fulmo.org/fulmo/messages/@remyers @remyers] on fulmo.org or [https://twitter.com/remyers_ @remyers_] on twitter. | ||
+ | |||
+ | === Coinswap/DLC with payment points === | ||
+ | |||
+ | Using single signer ECDSA adaptors the protocols should work on main net. | ||
+ | |||
+ | https://mm.fulmo.org/fulmo/channels/poodles | ||
+ | |||
+ | Work in progress code: https://github.com/bitcoin-s/secp256k1/pull/2 and https://github.com/jonasnick/secp256k1/pull/14/files#diff-4000f70eee37c05aaf6fdad1e39de43d | ||
+ | |||
+ | * https://github.com/LLFourn/one-time-VES | ||
+ | * https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-November/002316.html | ||
+ | * Getting started with bitcoin-s: https://bitcoin-s.org/docs/getting-setup | ||
+ | * Getting started with libsecp: https://github.com/ElementsProject/secp256k1-zkp | ||
+ | |||
+ | |||
+ | |||
+ | ==Adding your Project== | ||
+ | |||
+ | Feel free to add a challenge yourself! The wiki is open to any Bolter (you'll figure out how to edit). If you have a GitHub Repo best practice is to put the label "hackathon" (yellow) next to issues you like people to join/help for the weekend. If you added a challenge please also get in touch on [https://mm.fulmo.org/fulmo/channels/lightning-hacksprint Mattermost] for more information and collaboration. |
Revision as of 18:54, 4 April 2020
How to participate
If you like to get a better overview of the challenges, join the kickoff livestream. You may also join later on.
Most projects listed their challenges as sprint issues on Github with the lable "hackathon". Simply comment on those that you are interested in and the project mentors should get back to you.
To participate please register on our Mattermost (OpenSource Slack) and check if there is already a chat room regarding the project you are interested. In the channel "Lightning HackSprint" should always be someone around to point you into the right direction if you have any further questions.
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
Video helping you to get started with RaspiBlitz development: https://youtu.be/qTHDkFppsz0
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/raspiblitz
LightningATM
Github issues with label "hackathon": github.com/21isenough/LightningATM
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-lightningatm
LNbits
https://github.com/arcbtc/lnbits
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-lnbits
In a push to get lnbits new update out and extend its functionality, x3 0.03btc bounties are available for anyone developing extensions. If you're interested in making an extension, pop into the stream for a chat. If the community likes the idea, you can make it and on completion get one of the bounties!
see video: https://www.youtube.com/watch?v=xnHz6NbTgZg
RTL (Ride The Lightning)
https://github.com/Ride-The-Lightning/RTL
Github issues with label 'hackathon': https://github.com/Ride-The-Lightning/RTL/issues?q=is%3Aissue+is%3Aopen+label%3Ahackathon
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-rtl-ride-the-lightning
Quickening - Room77 Point of Sale
Github issues starting with "Room77" https://github.com/arcbtc/M5StackSats/issues
Please work on the branch"payment_connector" use the version in the folder "TheQuickening"
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-pos-room77-quickening
Lightnite
Challenges: https://issues.lightnite.io
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-lightnite-game
Specter-Desktop
Quickinfo on Specter: https://twitter.com/CryptoAdvance/status/1233833767283941376?s=20
Challenge: https://github.com/rootzoll/raspiblitz/issues/1059#issuecomment-605526623
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-specter-desktop
TOR2IP-Tunnelservice
A service to give a Lightning node running behind TOR a port on a public IP address.
Subpage with Challenge: TOR2IP-Tunnelservice
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-tor2ip-tunnelservice
SendMany App
Project Info: https://github.com/fusion44/sendmany
Challenge: https://github.com/rootzoll/raspiblitz/issues/1000#issuecomment-605526180
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-keysendsendmany
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.
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/media-wiki-spam-protection
The Eye of Satoshi (python-teos)
The Eye of Satoshi is a Lightning watchtower compliant with BOLT13, written in Python 3.
Github issues with label "hackathon": github.com/talaia-labs/python-teos
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-the-eye-of-satoshi
Exchange Union/OpenDEX
Integrate c-lightning as swap client (and more): https://github.com/ExchangeUnion/xud/issues?q=is%3Aopen+is%3Aissue+label%3Ahackathon
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-opendex
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
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-getroutevia-c-lightning-plugin
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
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-rust-ln-node
Weenode
This is the new name for the cheapnode project: Building the cheapest possible bitcoin fullnode (+lightning and other services) on old Android phones.
Help wanted on Github issues with label "hacksprint"
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/x-weenode
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.
Low Bandwidth Lightning Channels
There is a need to strengthen the Bitcoin ecosystem for people whose only computing device is a low end mobile phone and who live where Internet access is expensive, unreliable, intermittent or censored. willcl-ark created a way to proxy Lightning channels over low-bandwidth communication systems using a c-lightning patch "noencrypt" and python plugin called lnproxy. This plugin is written specifically to use a goTenna radio connected to a computer over USB, but this system can also be adapted for other low-bandwidth channels like SMS (for people who cannot afford mobile internet), LoRa mesh radio or similar systems. jharveyb is working on fldigi-proxy to help adapt LNProxy for ham radio and willcl-ark has created a fork of lnproxy that uses sockets to work with the fldigi-proxy.
You can read more about LNProxy here to get an overview of the project.
The challenge is to adapt LNProxy to a different low-bandwidth communication method. For example, LoRa radio, Bluetooth or an SMS API.
Chatroom to get started: https://mm.fulmo.org/fulmo/channels/lnproxy
User:Remyers is available for additional information and mentorship. Contact Richard at @remyers on fulmo.org or @remyers_ on twitter.
Coinswap/DLC with payment points
Using single signer ECDSA adaptors the protocols should work on main net.
https://mm.fulmo.org/fulmo/channels/poodles
Work in progress code: https://github.com/bitcoin-s/secp256k1/pull/2 and https://github.com/jonasnick/secp256k1/pull/14/files#diff-4000f70eee37c05aaf6fdad1e39de43d
- https://github.com/LLFourn/one-time-VES
- https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-November/002316.html
- Getting started with bitcoin-s: https://bitcoin-s.org/docs/getting-setup
- Getting started with libsecp: https://github.com/ElementsProject/secp256k1-zkp
Adding your Project
Feel free to add a challenge yourself! The wiki is open to any Bolter (you'll figure out how to edit). If you have a GitHub Repo best practice is to put the label "hackathon" (yellow) next to issues you like people to join/help for the weekend. If you added a challenge please also get in touch on Mattermost for more information and collaboration.