filecoin-ruby

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.

Subvisual