Ruby gem to interact with the Blockstream Satellite API.
To learn more about the Blockstream Satellite check their website and API documentation.
Add this line to your application's Gemfile:
gem 'blockstream_satellite'
Or install it yourself as:
$ gem install blockstream_satellite
Because of an protobuf issue with Ruby 2.6 a ruby version < 2.6 is required
require "blockstream_satellite"
order = BlockstreamSatellite::Order.create(path: '/path/to/file')
puts order.status # pending
order.pay # sends the lightning payment using the configured lnd client; request is synchronous
puts order.status # transmitting
order.refresh
puts order.status # sent
In order to be able to pay for the lightninig invoice you need to connect to you lightning node.
(By default the testnet cert and macaroon files are loaded from ~/.lnd
and localhost:10009
is used)
lnd_client = Lnrpc::Client.new({
credentials_path: '/path/to/tls.cert',
macaroon_path: '/path/to/admin.macaroon',
address: 'localhost:10009'
})
BlockstreamSatellite.lnd_client = lnd_client
BlockstreamSatellite::Order.create
accepts the following parameters:
path
: path to the file to transmitmessage
: message to transmit; can be used as an alternativepath
bid
: bid for the order. defaults to file size * 51
order = BlockstreamSatellite::Order.create(path: '/path/to/file')
order = BlockstreamSatellite::Order.get(uuid: 'uuid', auth_token: 'auth_token')
order = BlockstreamSatellite::Order.get(uuid: 'uuid', auth_token: 'auth_token')
order.bump(1000)
order = BlockstreamSatellite::Order.get(uuid: 'uuid', auth_token: 'auth_token')
# or
order = BlockstreamSatellite::Order.create(path: '/path/to/file')
order.pay
puts order.status
- DELETE /order/:uuid
- GET /orders/queued
- GET /orders/sent
- GET /subscribe/:channels
Currently I consider this gem experimental and the codes needs cleanup and tests and docs are missing at this moment. Will try to get is stable soon!
Bug reports and pull requests are welcome on GitHub at https://github.com/bumi/blockstream_satellite.
The gem is available as open source under the terms of the MIT License.