LightningPeach / lpd

Licence: Apache-2.0 license
Lightning Peach Node in rust

Programming Languages

rust
11053 projects
Roff
2310 projects

Projects that are alternatives of or similar to lpd

lntop
⚡ LN terminal dashboard 📊
Stars: ✭ 170 (+608.33%)
Mutual labels:  lightning-network
spec
[OLD!] RGB Protocol specifications for Bitcoin-based digital assets
Stars: ✭ 149 (+520.83%)
Mutual labels:  lightning-network
lnchannels
lightning network browser with history and some stupid heuristics
Stars: ✭ 23 (-4.17%)
Mutual labels:  lightning-network
balanceofsatoshis
Tool for working with the balance of your satoshis on LND
Stars: ✭ 447 (+1762.5%)
Mutual labels:  lightning-network
lightningtip
Get tips via the Lightning Network
Stars: ✭ 91 (+279.17%)
Mutual labels:  lightning-network
flash-demo
IOTA Flash channels demo using webRTC for communication.
Stars: ✭ 21 (-12.5%)
Mutual labels:  lightning-network
LNPBPs
LNP/BP standards for bitcoin layer 2 & 3 protocols
Stars: ✭ 158 (+558.33%)
Mutual labels:  lightning-network
lnregtest
Regtest Lightning Networks for (python) integration testing
Stars: ✭ 17 (-29.17%)
Mutual labels:  lightning-network
lightning-network-node-operator
Resources and guides for lightning network operators
Stars: ✭ 48 (+100%)
Mutual labels:  lightning-network
shango-lightning-wallet
Shango Lightning Wallet
Stars: ✭ 65 (+170.83%)
Mutual labels:  lightning-network
lightningj
Core implementation of the lightningj API implementations.
Stars: ✭ 41 (+70.83%)
Mutual labels:  lightning-network
perfectly-balanced
Script to make your LND node pefectly balanced as all things should be
Stars: ✭ 26 (+8.33%)
Mutual labels:  lightning-network
lightning-jet
Lightning Jet is a fully automated rebalancer for Lightning nodes. Jet optimizes channel liquidity allocation based on routing volume, missed routing opportunities (htlcs), and other variables.
Stars: ✭ 33 (+37.5%)
Mutual labels:  lightning-network
umbrel-middleware
RESTful Bitcoin and Lightning API for Umbrel
Stars: ✭ 21 (-12.5%)
Mutual labels:  lightning-network
lightning-qt
bitcoin-qt for lightningd
Stars: ✭ 36 (+50%)
Mutual labels:  lightning-network
fair
Fairlayer node in JS
Stars: ✭ 80 (+233.33%)
Mutual labels:  lightning-network
p2plnbot
Peer-to-peer lightning network telegram bot
Stars: ✭ 111 (+362.5%)
Mutual labels:  lightning-network
rgb-core
RGB Core Library: consensus validation for private & scalable client-validated smart contracts on Bitcoin & Lightning
Stars: ✭ 99 (+312.5%)
Mutual labels:  lightning-network
pi-factory
Bootstrap a bitcoin lightning box for Raspberry Pi 3 based on Alpine Linux
Stars: ✭ 17 (-29.17%)
Mutual labels:  lightning-network
zapread.com
Website for zapread.com
Stars: ✭ 19 (-20.83%)
Mutual labels:  lightning-network

Lightning Peach Daemon

The Lightning Peach Daemon (lpd) - is a partial implementation of a Lightning Network node in Rust.

Work is still in early stages. Currently near 20% towards usable production ready system.

The goal is to provide a full-featured implementation of Lightning with enhanced security (due to a Rust usage) which potentially can be run on many platforms including WASM.

As a reference implementation [lnd] (https://github.com/lightningnetwork/lnd) was used.

Lightning Network Specification Compliance

lpd partially implements the Lightning Network specification (BOLTs). BOLT stands for: Basic of Lightning Technologies.

  • [partial] BOLT 1: Base Protocol
  • [partial] BOLT 2: Peer Protocol for Channel Management
  • [partial] BOLT 3: Bitcoin Transaction and Script Formats
  • [full] BOLT 4: Onion Routing Protocol
  • [not implemented] BOLT 5: Recommendations for On-chain Transaction Handling
  • [partial] BOLT 7: P2P Node and Channel Discovery
  • [full] BOLT 8: Encrypted and Authenticated Transport
  • [partial] BOLT 9: Assigned Feature Flags
  • [not implemented] BOLT 10: DNS Bootstrap and Assisted Node Location
  • [not implemented] BOLT 11: Invoice Protocol for Lightning Payments

See rpc/interface/*.proto for rpc interface.

Bitcoin daemon and Electrum Server should be running before run lpd server.

Install electrs with:

git clone https://github.com/romanz/electrs &&
cd electrs &&
git checkout bb62df8793948b88cb2bc61580ca727cbbae9d31 &&
cargo install --debug --path .

Run bitcoind:

bitcoind -txindex -regtest -rpcport=18443 -rpcuser=devuser -rpcpassword=devpass -zmqpubrawblock=tcp://127.0.0.1:18501 -zmqpubrawtx=tcp://127.0.0.1:18502

Run electrs:

electrs --network=regtest --jsonrpc-import --cookie=devuser:devpass --daemon-rpc-addr=127.0.0.1:18443

Generate some blocks:

bitcoin-cli -rpcport=18443 -rpcuser=devuser -rpcpassword=devpass generate 1

The command for running the rpc server is:

cargo run --package server

or

cargo run --package server --release

for release configuration. Cli parameters are following:

  • --rpclisten=0.0.0.0:1234 ip and port to listen RPC on. Default is 127.0.0.1:10009.
  • --listen=0.0.0.0:1234 ip and port to listen peers on. Default is 127.0.0.1:9735.
  • --db-path=path/to/database path to database directory. Default is target/db.

CLI parameters are passed through --, for example

cargo run --package server -- --db-path=tmp/somedb --listen=1.2.3.4:1234

We firmly believe in the share early, share often approach. The basic premise of the approach is to announce your plans before you start work, and once you have started working share your work when any progress is made. Do not wait for a one large pull request.

Communication is done using github issues. If you have an idea, issue with code or want to contribute create an issue on github.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].