All Projects → fiatjaf → lnchannels

fiatjaf / lnchannels

Licence: other
lightning network browser with history and some stupid heuristics

Programming Languages

HTML
75241 projects
python
139335 projects - #7 most used programming language
PLpgSQL
1095 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to lnchannels

Eclair Mobile
An Android wallet for the Lightning Network
Stars: ✭ 231 (+904.35%)
Mutual labels:  lightning-network
lightningj
Core implementation of the lightningj API implementations.
Stars: ✭ 41 (+78.26%)
Mutual labels:  lightning-network
p2plnbot
Peer-to-peer lightning network telegram bot
Stars: ✭ 111 (+382.61%)
Mutual labels:  lightning-network
lnurl
LNURL implementation for Python.
Stars: ✭ 51 (+121.74%)
Mutual labels:  lightning-network
umbrel-middleware
RESTful Bitcoin and Lightning API for Umbrel
Stars: ✭ 21 (-8.7%)
Mutual labels:  lightning-network
perfectly-balanced
Script to make your LND node pefectly balanced as all things should be
Stars: ✭ 26 (+13.04%)
Mutual labels:  lightning-network
Spark Wallet
⚡️ A minimalistic wallet GUI for c-lightning, accessible over the web or through mobile and desktop apps.
Stars: ✭ 215 (+834.78%)
Mutual labels:  lightning-network
zapread.com
Website for zapread.com
Stars: ✭ 19 (-17.39%)
Mutual labels:  lightning-network
balanceofsatoshis
Tool for working with the balance of your satoshis on LND
Stars: ✭ 447 (+1843.48%)
Mutual labels:  lightning-network
spec
[OLD!] RGB Protocol specifications for Bitcoin-based digital assets
Stars: ✭ 149 (+547.83%)
Mutual labels:  lightning-network
LNPBPs
LNP/BP standards for bitcoin layer 2 & 3 protocols
Stars: ✭ 158 (+586.96%)
Mutual labels:  lightning-network
lntop
⚡ LN terminal dashboard 📊
Stars: ✭ 170 (+639.13%)
Mutual labels:  lightning-network
lightningtip
Get tips via the Lightning Network
Stars: ✭ 91 (+295.65%)
Mutual labels:  lightning-network
suez
Tool for pretty printing and optimizing Lightning Network channels.
Stars: ✭ 72 (+213.04%)
Mutual labels:  lightning-network
flash-demo
IOTA Flash channels demo using webRTC for communication.
Stars: ✭ 21 (-8.7%)
Mutual labels:  lightning-network
Breezmobile
Lightning Network mobile client
Stars: ✭ 225 (+878.26%)
Mutual labels:  lightning-network
DotNetLightning
Utility to work with Lightning network with .NET
Stars: ✭ 34 (+47.83%)
Mutual labels:  lightning-network
shango-lightning-wallet
Shango Lightning Wallet
Stars: ✭ 65 (+182.61%)
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 (+43.48%)
Mutual labels:  lightning-network
lightning-network-node-operator
Resources and guides for lightning network operators
Stars: ✭ 48 (+108.7%)
Mutual labels:  lightning-network

How to run

  1. Create a PostgreSQL database;
  2. Either download a database dump from the current website to fill the initial values or use the files under postgres/ to generate the initial schema.

Running the website

  1. Serve the data directly from the database using PostgREST and the following configuration:
db-uri = "postgres://yourpostgresdatabaseuri"
db-schema = "public"
db-anon-role = "web_anon"
db-pool = 7
server-host = "127.0.0.1"
server-port = 11936
max-rows = 10000
  1. Run npm install && make to build the client-side JavaScript. All files will be in the static/ directory.
  2. Now you need an HTTP server proxy to serve the PostgREST API and the static site under the same domain. This at the naked path and that under the /api/ path. Nginx will do it, but I use Caddy with the following Caddyfile:
ln.bigsun.xyz {
  handle /api/* {
    uri strip_prefix /api
    reverse_proxy localhost:11936 {
      header_up Accept application/json
      header_up Content-Type application/json
    }
  }
  handle {
    root * /home/fiatjaf/lnchannels/static
    try_files {path} /index.html
    file_server
  }
}

Updating the data

  1. Run sparko and generate a key for it with at least the permissions to call listchannels and listnodes.
  2. Run bitcoind with txindex=1.
  3. Somehow set the following environment variables:
POSTGRES_URL=postgres://yourpostgresdatabaseuri
SPARK_URL=http://yoursparkoaddress:port/rpc
SPARK_TOKEN=accesskeygeneratedonstep1
BITCOIN_RPC_ADDRESS=http://localhost:8332
BITCOIN_RPC_USER=bitcoinrpcuser
BITCOIN_RPC_PASSWORD=bitcoinrpcpass
  1. You can place all of the above in a file called .env and later user a program like godotenv to run things while setting them.
  2. Install Python (must be python3.8 or greater I believe) dependencies from requirements.txt using any method you like (I do virtualenv venv && venv/bin/pip install -r requirements.txt).
  3. Run python -m getdata (or godotenv python -m getdata if you're using an .env file or godotenv venv/bin/python -m getdata if you're using a virtualenv) once every day or hour or week, depending on how often you want to fetch new data -- the greater the interval between runs the more you'll miss shortlived channels, the smaller the interval more you'll clog your database with useless fee changes, also the process takes a long time to finish so I only run it once a day.

Screenshots (outdated)

home channel node

License

Public domain, except you can't use for shitcoins.

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