filecoin-ruby
Interface to the Filecoin network APIs in Ruby.
Installation
Add this line to your application's Gemfile:
gem "filecoin", "~> 0.3.0"
And then execute:
$ bundle install
Or install it yourself as:
$ gem install filecoin
Usage
# FILECOIN_URL="https://filecoin.example.com:1234"
# FILECOIN_TOKEN="asdfghjkl"
Filecoin.chain_head
Filecoin
exposes all the API methods for applications that prefer to load
configuration from environment variables. These methods are implemented by
Filecoin::Client
which is abstracted away in this case.
Client
Clients are initialized with the URI to the target API server. This URI can be
provided as a URI
object, or as a String
. If omitted, Filecoin::Client
defaults to the value of the FILECOIN_URL
environment variable.
# with a URI object
Filecoin::Client.new(uri: URI("https://filecoin.example.com:1234"))
# with a String
Filecoin::Client.new(uri: "https://filecoin.example.com:1234")
# from the FILECOIN_URL environment variable
Filecoin::Client.new
Some methods in the Filecoin Node API require special permissions. To use
any such method, you'll have to provide your authentication token to the
client, either on initialization or through the FILECOIN_TOKEN
environment
variable.
# with a token String
Filecoin::Client.new(token: "asdfghjkl")
# from the FILECOIN_TOKEN environment variable
Filecoin::Client.new
For each supported method of the Filecoin Node API there is a respective
method in Filecoin::Client
. For instance, to call Filecoin.ChainHead
use
Filecoin::Client#chain_head
.
Some methods require their parameters to follow a hard-to-describe structure. In such cases, use the respective type class to make things simpler.
All methods return the server's JSON parsed response as a plain Hash
.
Supported Filecoin Node API methods
- [x]
Filecoin.ChainHead
- [x]
Filecoin.ClientGetDealInfo
- [x]
Filecoin.ClientQueryAsk
- [x]
Filecoin.ClientStartDeal
- [x]
Filecoin.NetPeers
For more information on each supported method, check the wiki.
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run
rake
to run the linter and tests. You can also run bin/console
for an
interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To
release a new version, update the version number in version.rb
, and then run
bundle exec rake release
, which will create a git tag for the version, push
git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/subvisual/filecoin-ruby.
This project was created to provide a Ruby interface for projects we at Subvisual are actively working on. We are not aiming to provide an exaustive interface for the time being, and will focus our development efforts as needed.
We welcome anyone interested in helping the development of this project to contribute directly with a pull request. Otherwise, please feel free to request any features you feel are missing in an issue. We will do our best to comply, within reason and the limits of our own availability.
License
filecoin-ruby is copyright © 2020 Subvisual, Lda.
It is open-source, made available for free, and is subject to the terms in its license.
About
filecoin-ruby was created and is maintained with :heart: by Subvisual.