⊂_ヽ ＼＼ Λ＿Λ ＼( ˇωˇ) / ⌒ / へ＼ / / ＼＼ ﾚ ノ ヽ_つ / / So you are telling me I can use Lightning from Ruby now? ⚡️ ( (ヽ | |、 \ | 丿 ＼ | | ) / ノ ) Lﾉ
A Ruby library to talk to Lightning Nodes
gem install lightning_network
Now we need to configure environment variables for:
- admin.macaroons : ENV['lnd_macaroon']
- cert.tls : ENV['lnd_cert']
- Lightning Network Node : ENV['lnd_host']
require 'lightning_network' irb(main):002:0> ENV["lnd_host"] = "lightning:10009" => "lightning:10009" irb(main):006:0> ENV["lnd_cert"] = "./tls.cert" => "./tls.cert" irb(main):009:0> ENV["lnd_macaroon"] = "./admin.macaroon" => "./admin.macaroon" irb(main):012:0> Node.new.get_info => ⚡️
We curently fully support LND.
We use Macaroons and the certificate generated by lnd to authenticate. See Node.rb.
- Yard Documentation for:
We fully support lnd-cli with a Ruby like API. For example:
Node.new.get_info Node::Payments.new.list_invoices Node::Channels.new.list_channels Node::OnChain.new.send_coins(address, number) Node::Peers.new.list_peers Node::Wallet.new_address
The following is the help from ln-cli. We wrapped most of the commands below with a Ruby like syntax.
############ Legend ############ * DONE - WON'T DO p PENDING ------------ COMMANDS: * getinfo Returns basic information related to the active daemon. - debuglevel Set the debug level. - stop Stop and shutdown the daemon. - help, h Shows a list of commands or help for one command Startup: - create Initialize a wallet when starting lnd for the first time. - unlock Unlock an encrypted wallet at startup. Payments: p getchaninfo Get the state of a channel. p queryroutes Query a route to a destination. p fwdinghistory Query the history of all forwarded HTLCs. * payinvoice Pay an invoice over lightning. * sendpayment Send a payment over lightning. * addinvoice Add a new invoice. * lookupinvoice Lookup an existing invoice by its payment hash. * decodepayreq Decode a payment request. * listinvoices List all invoices currently stored. * listpayments List all outgoing payments. Channels: p openchannel Open a channel to a node or an existing peer. * closechannel Close an existing channel. * closeallchannels Close all existing channels. * channelbalance Returns the sum of the total available channel balance across all open chans * pendingchannels Display information pertaining to pending channels. * listchannels List all open channels. * getnetworkinfo Get statistical information about the current state of the network. * feereport Display the current fee policies of all active channels. - updatechanpolicy Update the channel policy for all channels, or a single channel. On-chain: * sendmany Send bitcoin on-chain to multiple addresses. * sendcoins Send bitcoin on-chain to an address. * listchaintxns List transactions from the wallet. * Peers: * connect Connect to a remote lnd peer. * disconnect Disconnect a remote lnd peer identified by public key. * listpeers List all active, currently connected peers. * describegraph Describe the network graph. * getnodeinfo Get information on a specific node. Wallet: * newaddress Generates a new address. * walletbalance Compute and display the wallet's current balance. * signmessage Sign a message with the node's private key. * verifymessage Verify a message signed with the signature.