Code Monkey home page Code Monkey logo

ideas's Introduction

Lightning Accepted Here

Gitter

Ideas

Ideas for the stuff to be built/done/researched on the monthly/bi-weekly Chiang Mai meetups.

All ideas in Issues; one issue == one idea :).

For the bitcoin only meetup, check out this link

Events schedule

date venue occasion description food available
Aug 1st (Wed) Ryan's SegWit lock-in 1st anniversary intro event - getting everyone to get to know each other 🥩
Aug 24th (Fri) Ryan's SegWit activation 1st anniversary LN payment terminal - build a RBP-based payment terminal handling user interaction via e-paper display 🥩 ➕ 🥃
Sep 17th (Mon) Ryan's Not a Weekend Putting "The Box" things together. Maybe adding a display. Testing it out on testnet & mainnet 🥩
Oct 2nd (Tue) Ryan's #FreeRoss Day The usual LN stuff & maybe Ryan will share an insight or two about Baltic Honey Badger 🥩
Oct 24th (Wed) Ryan's Crash of 1929 Discuss news from Scaling Bitcoin 2018, The Box and PoS system 🥩
Jan 28th (Mon) Food4Thought@16:30 #MakeAliceGrinAgain Let's talk about how we can move Lightning forward in Chiang Mai! 🍽➕🍺➕⚡️

Note: All official announcements will either happen via commits to this repository, on Mastodon @[email protected] or Twitter @lncnx.

Bitcoin Only Meetup

date venue occasion description food available
October 28th Sababa Restaurant - tentative Bitcoin Only 2.0 Meetup #1 First of the Bitcoin only 2.0 series. Will host this at Sababa at 7pm. This venue accepts lightning and bitcoin and has many options for food. 🥩🌱➕🍺➕⚡️
November 15th Corner Bistro Taproot / ATH Networking Meetup (1) First meetup post covid19 restrictions. The venue will host from 16:20 onwards and will accept lightning and bitcoin payments 🥩🌱➕🍺➕⚡️
Future meetups will be announced in this announce only telegram group, will look at other options soon.

or please scan the following link:

Telegram group

Bitcoin & Lightning Network Nodes

To connect to one of our nodes, see the wiki here.

Discussions

All day-to-day discussions are held in a Wire group. To get in either create an issue requesting access here or ping @meeDamian on Wire or Twitter.

ideas's People

Contributors

anotherdroog avatar doweig avatar istoramandiri avatar meedamian avatar nolim1t avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ideas's Issues

LN payment processing device (aka "The Box")

Just a rehash from our Keep document

Description

We build a device that runs Bitcoin/Tor(?)/LN nodes and presents a UI to select a product, connect to it (LN-connstring), displays QR code of an invoice to pay, and shows payment confirmation.

Needed:

  • Raspberry Pi - @meeDamian brings 2-3 (@AnotherDroog can bring a couple more if needed)
  • Raspberry Pi Power Brick - @meeDamian can bring 1, would be good to have two more (@AnotherDroog can bring a couple more)
  • display - Damian brings e-paper one (https://www.waveshare.com/2.7inch-e-Paper-HAT-B.htm ) - any other welcome too :)
  • micro SD storage cards - @meeDamian will same # as RBPs
  • USB sticks for RAM - @meeDamian will bring
  • HDD with 250GB+ - if we want to run the node on a mainnet too, I (@meeDamian ) can (probably) try bringing a copy of a full blockchain, but I don't have a spare HDD I can commit to it, so anyone is welcome to bring one (@AnotherDroog has a spare USB HDD and can populate with blockchain)

Comments

  • The raspberry Pi powered ln payment processor sounds like a cool idea 💡 @nolim1t

P2mP transactions using LN

Hey,
Let me expose this challenge:

An integration of pay per click procedure based on Peer to Multiple Peer (P2mP) transactions via Lightning Network.

Both elements are challenging and very hard.

Hints: A custom wallet might be useful for the creation of this scenario

5th event

Let's discuss having another event at Ryan's on Tuesday the 16th of October.

GUI for Setup

We discussed the other night about creating a Web App GUI for making it easy to work with the box, including:

  • A setup wizard for network configuration
  • Bonjour discovery (xxx.local) for connecting
  • The ability to create invoices and show the QR code
  • Some kind of management console for funding, spending, opening channels, etc.
  • (Possibly) A permissions system to manage multiple devices creating invoices and spending

Luckily, it looks like LND supports GRPC out of the box, so as far as I can tell, it'll enable us to do HTTP calls directly from clients in a web app (no special middleware required). We could bundle a a static HTML/JS app with very little overhead (served on the device via local network and/or tor) which could talk directly to the LND node, or through a reverse proxy on the box.

The main issues we face are regards to security. We need to think about how the bootstrap process can be secured, followed by general use (perhaps some kind of secure token is stored on the clients, so we don't need to rely on HTTPS, which won't work with .local, and/or a protocol such as SRP), as well as system reset / key recovery (it was mentioned that we could use a seed to generate creds for both the node and this system).

I expressed interested in helping with the development of this, including playing with the recently released blueprint framework.

Ref:
https://api.lightning.community/
https://github.com/lightningnetwork/lnd/tree/master/lnrpc
https://grpc.io/

Create "Bitcoin/LN accepted here" sign

Create a nice laminated sign for merchants.

Ideally:

  • include LNCM logo on it somewhere ("with 🥩 from LNCM")
  • include logos of credit cards, alipays, etc as "and also" small on the bottom :D

Inspiration:

img_20190107_210145

Research IPFS

ppl interested: Corvin, Stan, Barry

Desc: Spend time learning what's possible, what are the limitations, maybe try to write simple programs interacting with it in some ways.

Needed:

  • Computer - BYOD
  • Internet - courtesy of Ryan
  • Brain - BYOD

Multisig donation address

Given we want to have a multisig wallet for donations, and assuming an m of n address:

  1. What should m be?
  2. What (and who) should n be?

RSK hackaton

There will be a Rootstock (Etherium running on top of Bitcoin) hackaton on 24th - 25th November, I'll be going there, and anyone else is obviously also welcome to join me :).

Move to gitter.im

  • See if makes sense (discuss below or on Wire)
  • create org/account
  • move everyone onto it 😓
  • change all Wire references to gitter

Micropayments use cases

Pay per minute / kb internet sharing:

  • the box to phone over ad-hoc wifi or same-network service
  • captive portal
  • phone to phone mesh network
  • top up usage via recurring LN micropayments

Similarly, pay per minute phone (or drone) charging box.

Get a domain for lncm

These are the currently considered options, please comment below:

lncm.network
    .club
    .house
    .zone
    .institute
    .soy
    .app
    .run
    .tools
    .co
    .io
    .is

edit: replaced broken poll with the list above

Create universal Bitcoin tools

Ideally by extending and building on top of https://github.com/meeDamian/bc1toolkit, but any contribution to universal and good tooling for Bitcoin would be vastly useful and a time well spent.

Desc: I'm slowly building a set of focused, unix-style tools to interact with various aspects of BTC/LN, you can find them here: https://github.com/meeDamian/bc1toolkit

TODOs:

  • check them out & report issues/problems, compatibility issues,
  • pick one of the issues, and build it,
  • pick one of the issues, and think through how the tool should function (what should be there, what shouldn't what the API should be etc, etc),
  • come up with something useful and file an issue.

Tor Hidden Service

Desc: Create your first Tor Hidden Service - it's very easy, but understanding the fundamentals of Tor, while I think very useful can take a moment or two.

Needed:
Computer, Brain, Internet

LN CM Official Hackathon

As discussed on wire we should time an official hackathon around bkk blockchain week.

Things needed

  • Suitable venue with fast internet
  • Food catering (and maybe beer 🍺 / Coffee ☕️ )
  • Sponsors (approach some exchanges or blockchain companies for a chance for exposure)
  • Pricing based on sponsors (maybe free or a nominal price of 1 satoshi over lightning for VIP participants if enough sponsors)

Docker Infra checklist

I've had a lot of stuff happening all around the place, so I want to create this issue to just gather it all together (Perhaps move it to some wiki later)…

🧩 meeDamian/simple-qemu

tl;dr: Fetches qemu source, and from it builds static binaries for amd64 host system. Result is pushed to Docker registry(ies), and binaries are uploaded to Github Release.

  • Get rid of workflow generation scripts, once :octocat: Actions allows for either:
    • optional jobs (not steps, nor workflows)
    • referencing jobs in different workflows
Click to expand already done
  • Get it to build
  • Verify it works
  • Build multiple versions
    • [x]: v3.1.0 v3.1.1 v4.0.0 v4.1.0
  • Create short/floating tags
    • v4, v3, v4.0, v4.1, v3.1, arm, aarch64, latest, arm32v7, arm64v8, enable, riscv32, riscv64, etc…
  • Create permanent tags
  • Push to 🐳 Hub
  • Push to :octocat: Registry It's borked. Perhaps later…
  • Write proper README.md
  • Create short script to generate the Simple tags section the way most repos have it
  • Ask @lncm/lncm for code, and process review

🧩 lncm/berkeleydb

tl;dr: Pre-builds and packages BerkeleyDB v4.8.30.NC into a small container, that later can be reused in Dockerfile with sth like:

COPY --from=meedamian/berkeleydb:db-4.8.30.NC  /opt/  /opt/
  • Document build process more in README.md(?)
Click to expand already done
  • Push to :octocat: Registry It's borked. Perhaps later…
  • Setup build on :octocat: Actions
  • Build for amd64, arm32v7, and arm64v8
  • Push to 🐳 Hub
  • BDB doesn't use semver, but for consistency permanent tags can behave the same as above +build
  • See if it's possible to help consumers emulating CPU arch choose the correct version based on manifest, w/o specifying it verbatim
  • Ask @lncm/lncm for code, and process review
  • :octocat: Actions are enabled for the org (see lncm/docker-berkeleydb#11)
  • Move back to lncm/ namespace (blocked by: lncm/docker-berkeleydb#13, AKA no-secrets-in-forks issue)

🧩 lncm/bitcoind

tl;dr: Docker image with Bitcoin Core client built for amd64, arm32v7, and arm64v8.

  • Create a nowallet variant(?)
  • Push to 🐳 Hub
  • Document build process more in README.md
  • Document new release process more in README.md (or another .md file)
  • Move back to lncm/ namespace
  • Use +build to distinguish internal builds(?)
  • Ask @lncm/lncm for code, and process review
Click to expand already done
  • Push to :octocat: Registry It's borked. Perhaps later…
  • Get it to build on a CI
  • Split build into jobs
    • 1. Berkeleydb
    • 2. Finish at make
    • 3. Start at make check
    • 2. Build images
    • 3. Upload images
  • Build a few last, non vulnerable, versions
    • builds latest ~3 on each push to master
  • Build for amd64, arm32v7, and arm64v8
  • Do not upload anything to image registry, until builds of all architecture variants complete green

🧩 lncm/lnd

tl;dr: Docker image of a Lightning Network client built for amd64, arm32v7, and arm64v8.

  • Create a neutrino variant (if warrants a separate image)
  • From :octocat: Actions push to 🐳 Hub
  • Move back to lncm/ namespace
  • Ask @lncm/lncm for code and process review
Click to expand already done
  • Push to :octocat: Registry It's borked. Perhaps later…
  • Move to :octocat: Actions
  • Build for amd64, arm32v7, and arm64v8
  • Use Go v1.13
  • Use -trimpath -mod=readonly
  • In each build, build each binary twice:
    • alpine
    • debian:*-slim
    • compare checksums

🧩 lncm/invoicer

tl;dr: Utility living on top of lnd (and optionally bitcoind), that helps with creation of payment-accepting frontends

  • Add tests
  • Document a release process
  • Get rid of the Makefile(?)
Click to expand already done
  • Push to :octocat: Registry It's borked. Perhaps later…
  • Move to :octocat: Actions
  • Build for amd64, arm32v7, and arm64v8
  • Use Go v1.13
  • Use -trimpath -mod=readonly
  • In each build, build each binary twice:
    • alpine
    • debian:*-slim
    • compare checksums
  • From :octocat: Actions push to 🐳 Hub
  • Move back to lncm/ namespace once :octocat: Actions are enabled for the org (see lncm/docker-berkeleydb#11)
  • Get rid of *BSD platforms (@AnotherDroog?)
  • Ask @lncm/lncm for code and process review

🧩 lncm/donations

tl;dr: A UI that lives on top of invoicer that facilitates receiving BTC & LN donations.

  • Cleanup
    • Get rid of fluff

🧩 lncm/invoicer-ui

tl;dr: A UI that lives on top of invoicer that facilitates receiving BTC & LN in-store payments.

  • Should probably be renamed to sth along the lines of merchant-ui
  • is there anyone actually maintaining it?

🧩 lncm/noma

🧩 lncm/pi-factory

Other/General TODOs

  • Create references from pre-existing issues to points on this list 😅
  • Create template repo for stuff that needs emulation
  • Look into DOCKER_CONTENT_TRUST=1 (currently @ meeDamian/simple-qemu#5)
Click to expand already done

Battery module

This one should probably belong to a "case" repo, but we can move it there after @BTCln creates it.

@hitchcott has suggested this as our UPS solution. I think it might be perfect, but I also think we should try to find it cheaper somewhere.

macos 2018-11-07 at 14 27 52

(screenshot in case Amazon listing gets deleted/changed)

Web GUI for PoS

This is an extension of invoicer-ui where specific amounts can be requested by the wallet owner

LNCM Pitch/Slides Brainstorming Thread

Some ideas for slides

Format ideally should be on building the box, the open source aspect, and then a little demo.

The Pitch (Feel free to edit)

  • Easy to install. Flash a MicroSD card using Etcher (MacOS) or Rufus (Windows), and then let it do the magic.
  • Cheap to build. Hardware costs under $50 to source out. No need to worry about import taxes.
  • No custodial funds.
  • Low power consumption.
  • Fully Open Source. Don't trust, Verify.

lncm website

Eventually we want to point people to a website which says what we do.

Eventually it should have the following features:

  • Static website (for example - Jekyll)
  • ipfs with the site pinned on each box (decentralized)

The only thing that maybe isn't decentralized is the domain name which is purely there for seo purposes.

Raspberry Pi based PoS System

Related to "The Box", scope and use-case is extended however.

Goal is to create a self-contained bitcoin/lightning Point-of-Sale system for developing countries.

Constraints are:

  • Reduced BOM (bill of materials) – ideally <$100
  • Secure & safe to use by default, even for novices
  • Useable via smartphone, including initial setup
  • Easy & convenient to use, convert local currency, handle receipts and VAT

Special thanks to Stanley for writing up the initial concept

Learn foundations of Bitcoin

[practical] build a bitcoin transaction "by hand"

Desc: using private keys from testnet build a valid transaction for it

@meeDamian's note: Either me or Ryan can help with that (if we're not too busy with sth else :P). I can bring the cheat-sheet from Jimmi Song's seminar. Ryan has Mastering Bitcoin book.

3rd event

We have a date for the 2nd event, but it's never too early to ask for your preferred date for the 3rd event :). Leave comments below, or 👍 if someone already posted date that's best for you.

Next Bitcoin calendar event is on Oct 2nd (#FreeRoss day), but I don't think it makes sense to wait over 5 weeks for the next one.

PS. If you haven't added Bitcoin Calendar to your Google Calendar yet, you can do so here (or, if you don't care about possible future updates, download in iCal format)

LN invoice generating service

Create a simple service that uses underlying LN node to expose a simple basic-authenticated REST(?) API generating invoices for specified amounts and descriptions and informs about invoice status change (unpaid -> paid|cancelled|expired).

Ideally done as a part of #1, but can also be delayed for the next meetup, if doing it this way would delay things.

copied from notepad:

Desc: Somewhat related and complementing idea #1 - the service would run on Raspberry Pi, have basic authentication, ufw, fail2ban, and would generate invoices upon request.
Can be used on personal website as a donation link, can be used by projects like satoshis.place to separate payment machine from code-running machine, can be run as a simple merchant PoS payment integration. Can be used as a vending machine backend, etc, etc

Needed: RBP running a LN node, internet connection and either public IP or Tor hidden service.

Lightning Network wallet (and/or dev env) setup

[practical] Get lightning wallets and nodes setup, create lightning transactions

Desc: Let's learn through practice: get help setting up Bitcoin /LN nodes on your machine while getting an overview of lightning architecture, how channels work, etc

Needed:
Device of your choice: laptop, Android/iOS, raspberry, VPS

QR code displaying

In support of #14 and #1

  • Generate QR code png using pure python
  • Use ERROR_CORRECT_L (About 7% or less errors can be corrected)
  • Hook up to #5 API and generate QR from invoice request (convert to uppercase)
  • Resize png using pure python (keep QR centered on white background)
  • Add text to top and bottom (e.g. amount to pay, "Scan to pay")
  • Display generated png on e-ink
  • Consider writing bitmap to display framebuffer instead of using png intermediate step

Arduino-based projects

IMO it's always a good idea to learn a bit more about working with HW. We'll bring a bunch of Arduino boards, and other HW thingies so that anyone interested can play and learn/teach :).

Desc: I have a bunch of particle.io products I can bring, and we can try to use them to something: opening fridge doors upon successful payment from #1?, keeping RBP alive and running, I'm open to any ideas here :).

Needed:

@AnotherDroog can bring wires, resistors, relays, LEDs and Espressobin (Single Board Computer)

IPFS on The Box

Put some of the website and frontend / JS / Image assets on IPFS, and pin them on each box.

So that it's completely decentralized. Each box supporting each other. Of course there should be a local version too.

Thoughts on this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.