lightninglabs / lightninglabs/lightning-node-connect

we need a python module

Open
#71 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
85
Forks
22
PR merge metrics
No merged PRs in 30d

Description

Currently lightning node connect is written in go and compiled to web assembly for use in https://github.com/lightninglabs/lnc-web within a browser using javascript. Initially, I thought that maybe web assembly was the most universal way to use lightning node connect, so I tried to use web assembly from python with wasmer. In https://github.com/lightninglabs/lightning-node-connect/issues/70 I mention that I can't get it to work with wasmer.

Later, I learned that Zeus uses https://github.com/lightninglabs/lnc-rn which has the go code compiled to native binaries for mobile (https://github.com/lightninglabs/lnc-rn/issues/23) and does not use web assembly.

Now, I'm wondering, would it be simpler to make a python module that uses natively compiled go code instead of using web assembly code within python? Here are some relevant resources

- https://github.com/go-python/gopy
- https://words.filippo.io/building-python-modules-with-go-1-5/
- https://github.com/ardanlabs/python-go/tree/master/grpc

With the new LND Accounts feature (https://github.com/lightninglabs/lightning-terminal/pull/363 , https://docs.lightning.engineering/lightning-network-tools/lightning-terminal/accounts) that leverages Lightning Node Connect, it's critical that there are more ways to use Lightning Node Connect in a variety of code bases. The LND Accounts feature can safely and easily allow a wide variety of applications and machine to machine devices to use the lightning network.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing Go implementation and how it is compiled for lnc-web and lnc-rn, then compare the gopy, Python extension, and gRPC resources linked in the issue. Determine the supported approach for exposing Lightning Node Connect to Python without WebAssembly; done should be a documented, usable Python module with an agreed integration path.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, python, wasm
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.