• This repository has been archived on 23/Feb/2021
  • Stars
    star
    901
  • Rank 50,699 (Top 1.0 %)
  • Language
    JavaScript
  • License
    GNU General Publi...
  • Created almost 8 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An easy-to-use cross-platform Lightning wallet

Lightning Build Status

An easy-to-use cross platform lightning wallet

Screenshot

N.B. This is still early technology and thereโ€™s a risk of losing all of your funds. We recommend not putting in more money than you are willing to lose.

Getting Started

The app comes for two threat models:

  1. Pocket Money: prebuilt and signed releases with auto update (recommended for most users).

  2. Tin Foil Hat: if you'd rather build it yourself and do without auto updates, see the instructions below.

Contributing

See the ToDo (next release) column on our project board. Issues that are easy to pick up for outside contributors are labeled help wanted.

Developing Locally

To build the mobile app locally, see the README in the /mobile directory for instructions.

To build the desktop app locally follow the instructions below:

Install lnd

We will use lnd to make GRPC calls from the ReactJS environment

git clone https://github.com/lightningnetwork/lnd $GOPATH/src/github.com/lightningnetwork/lnd
cd $GOPATH/src/github.com/lightningnetwork/lnd
make && make install tags="experimental autopilotrpc signrpc walletrpc chainrpc invoicesrpc routerrpc"

If you have any issues with this step, make sure to review the Preliniaries to installing LND

Install btcd

We will use btcd as the backend operating mode

git clone https://github.com/btcsuite/btcd $GOPATH/src/github.com/btcsuite/btcd
cd $GOPATH/src/github.com/btcsuite/btcd
GO111MODULE=on go install -v . ./cmd/...

Set up & run

Cloning this git repo git clone https://github.com/lightninglabs/lightning-app and from the project root folder run the following commands:

npm install

npm test

To start the app in development mode (simnet):

npm run electron-dev

Running in development mode can allow you to run in full node mode instead of the default neutrino mode, and will also allow you to run in simnet node for testing. The app will use it's own lnd data/lnd dir and does not share state with other lnd installations on your system. See setup local cluster on how to set up your simnet cluster for development.

Review UI style guide

To build the UI style guide

npm run storybook

Building the Packaged App

To build the packaged version of the app e.g. for macOS run:

cp $GOPATH/bin/lnd ./assets/bin/darwin
npm run electron-pack

The packaged app will then be available in the dist directory. The packaged version of the app will run on Bitcoin mainnet.

Starting the Packaged App (light client)

To run the packaged version of the app e.g. for macOS run:

./dist/mac/Lightning.app/Contents/MacOS/Lightning

The app is configured for mainnet by default but you can opt-in to testnet:

./dist/mac/Lightning.app/Contents/MacOS/Lightning --bitcoin.testnet --bitcoin.node=neutrino --neutrino.addpeer=btcd-testnet.lightning.computer --neutrino.feeurl=https://nodes.lightning.computer/fees/v1/btc-fee-estimates.json

Starting the Packaged App (full node)

btcd

Start btcd in a separate terminal session and wait until it's fully synced (can take a while):

btcd --txindex --rpcuser=kek --rpcpass=kek

To run the packaged version of the app e.g. for macOS run:

./dist/mac/Lightning.app/Contents/MacOS/Lightning --bitcoin.mainnet --btcd.rpcuser=kek --btcd.rpcpass=kek

bitcoind

Start bitcoind in a separate terminal session and wait until it's fully synced (can take over a day):

bitcoind -txindex=1 -rpcuser=kek -rpcpassword=kek -rpcbind=localhost -zmqpubrawblock=tcp://127.0.0.1:28332 -zmqpubrawtx=tcp://127.0.0.1:28333

To run the packaged version of the app e.g. for macOS run:

./dist/mac/Lightning.app/Contents/MacOS/Lightning --bitcoin.mainnet --bitcoin.node=bitcoind --bitcoind.rpcuser=kek --bitcoind.rpcpass=kek --bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 --bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333

Lnd data and logs

Lnd data and logs are written to the following locations in production:

  • Linux: ~/.config/lightning-app/lnd
  • OSX: ~/Library/Application Support/lightning-app/lnd
  • Windows: %USERPROFILE%\AppData\Roaming\lightning-app\lnd

More Repositories

1

neutrino

Privacy-Preserving Bitcoin Light Client
Go
899
star
2

loop

Lightning Loop: A Non-Custodial Off/On Chain Bridge
Go
558
star
3

lightning-terminal

Lightning Terminal: Your Home for Lightning Liquidity
Go
499
star
4

taproot-assets

A layer 1 daemon, for the Taproot Assets Protocol specification, written in Go (golang)
Go
458
star
5

pool

Lightning Pool: a non-custodial batched uniform clearing-price auction for Lightning Channel Leases (LCL). An LCL packages up inbound channel liquidity (ability to receive funds) as a fixed income asset with a maturity date expressed in blocks.
Go
253
star
6

aperture

โšก๏ธL402 (Lightning HTTP 402) Reverse Proxy โšก๏ธ
Go
233
star
7

chantools

A loose collection of tools all somehow related to lnd and Lightning Network channels.
Go
219
star
8

lndmon

๐Ÿ”Žlndmon: A drop-in monitoring solution for your lnd node using Prometheus+Grafana
Go
151
star
9

faraday

Lightning Channel Management & Optimization Tool
Go
130
star
10

LangChainBitcoin

AI tools for giving LangChain agents access to Bitcoin and the ability to traverse L402 APIs
Python
128
star
11

lightning-node-connect

Go
78
star
12

L402

lsat protocol specification
71
star
13

lightning-faucet

A faucet for the Lightning Network!
Go
71
star
14

lightning-coindesk

A tutorial news app exemplifying Lightning Network micropayments integration
Python
54
star
15

docs.lightning.engineering

Building lapps, running lnd, and more
Markdown
50
star
16

lndclient

Golang client library for lnd
Go
48
star
17

lnc-web

Lightning Node Connect npm module for web
TypeScript
48
star
18

lightning-api

JavaScript
35
star
19

falafel

Go tool to generate go APIs for gRPC services for use on mobile/WASM platforms.
Go
34
star
20

lndinit

cloud infra tooling for lnd provisioning/unlocking
Go
26
star
21

lightning-dev-site

Lightning Network Daemon Developer Site
CSS
25
star
22

builders-guide-sample-app

TypeScript
14
star
23

lightninglabs.github.io

CSS
13
star
24

pool-paper

Lightning Pool: A Non-Custodial Channel Lease Marketplace
TeX
11
star
25

chanleakcheck

A tool to check if your lnd node was targeted by CVE-2019-12999
Go
10
star
26

lnc-rn

Lightning Node Connect npm module for React Native
TypeScript
8
star
27

lnc-core

Type definitions and utilities for Lightning Node Connect, leveraged by lnc-web and lnc-rn
TypeScript
7
star
28

dust-tool

dust exposure tool
Go
6
star
29

lightning-api-ng

Automated API-documentation generation source code for Lightning Lab's FOSS software suite
Go
5
star
30

lnd-fuzz

Shell
3
star
31

gh-actions

Vendored GitHub Action scripts
TypeScript
3
star
32

aezeedcheck

A offline CLI that allows one to verify their aezeed mnemonic
Go
2
star