Difference between revisions of "Challenges May 2020"

From fulmo
Jump to navigation Jump to search
Line 179: Line 179:
  
 
[[User:cdecker]] is available for additional information and mentorship. See his [[User:cdecker|Wiki page]] for contact information.
 
[[User:cdecker]] is available for additional information and mentorship. See his [[User:cdecker|Wiki page]] for contact information.
 +
 +
 +
'''Outcome:'''
 +
 +
* The backup plugin now has a matching `backup-cli` tool to initialize the backend and to restore from a backup
 +
* In addition to the file-backend we now have a dropbox backend that minimizes bandwidth requirements by splitting the backup into multiple files that are uploaded separately
 +
* The Dropbox backend also allows the backup to be GPG encrypted
  
 
===Low Bandwidth Lightning Channels===
 
===Low Bandwidth Lightning Channels===

Revision as of 17:14, 5 April 2020

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%3Aissue+is%3Aopen+label%3Ahackathon

Video helping you to get started with RaspiBlitz development: https://youtu.be/qTHDkFppsz0

Chatroom to get started: https://mm.fulmo.org/fulmo/channels/raspiblitz

Outcome:

  • Repaired some peoples RaspiBlitzes
  • Plans on reviving BlitzD in the future
  • Testing new ways of detecting public IP of RaspiBlitz
  • Helped other RaspiBlitz related projects

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

Outcomes:

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

Outcome:

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

Outcome:

  • Made a keysend chat over a RaspiBlitz with keysend activated (3 hops on LN)
  • Add SendMany App to the RaspiBlitz for install

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

The initial version is implemented, it lets you specify a list of nodes that a route must go through. Apart from this extra parameter, the usage is similar to getroute. It is possible to enforce either that it goes through all or any of them (you have to modify the source code). Other restrictions are also possible (a simple example is in the code). Some questions I faced are in the issues.

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.


Outcome:

  • The backup plugin now has a matching `backup-cli` tool to initialize the backend and to restore from a backup
  • In addition to the file-backend we now have a dropbox backend that minimizes bandwidth requirements by splitting the backup into multiple files that are uploaded separately
  • The Dropbox backend also allows the backup to be GPG encrypted

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/

Bitcoin Router

A high powered plug-and-play router built for the modern Internet user running a bitcoin and lightning fullnode, VPN and Tor so that all your private data stays secure inside your home.

Chatroom to get started: https://router.bitcoin-node.org/mattermost

Outcome

  • Run TOR hidden services
  • Sync Bitcoin on Turris MOX
  • Demo for user interface configuration

Build a LApp

Looking for yet another idea to build a small LApp? Check out ideas for LApps!

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.