Gera
Multiple rates generator for crypto changers and markets.
Осуществляет
- Регулярный (ежесекундный) сбор и хранение курсов (
ExternalRate
) из внешних источников (RateSource
) - Построение и хранение матрицы базовых курсов (
CurrencyRate
) для поддерживаемых валют из курсов внешних истичников (ExternalRate
) на основе установленного метода расчета (CurrencyRateMode
) автоматически или через кросс-курсы. - Построение и хранение матрицы конечных курсов (
DirectionRate
) для поддерживаемых платежных сервисов (PaymentSystem
) с установленной комиссией (ExchangeRate
) - Регулярная группировка базовых и конечных курсов в N-минутные отрезки со свечками для истории (
CurrencyRateHistoryInterval
иDirectionRateHistoryInterval
) - Регулярная очистка матриц ежесекундных курсов (за сутки накапливается несколько гигабайт)
Installation
Add this line to your application's Gemfile:
gem 'gera'
And then execute:
$ bundle
Or install it yourself as:
$ gem install gera
rake gera:install:migrations
Configuration
Add ./config/initializers/gera.rb
with this content:
Gera.configure do |config|
config.cross_pairs = { kzt: :rub, eur: :rub }
end
Supported external sources of basic rates
- EXMO, Russian Central Bank, Bitfinex, Manual
Supported currencies
- RUB, USD, BTC, LTC, ETH, DSH, KZT, XRP, ETC, XMR, BCH, EUR, NEO, ZEC
Database
SQL tables diagram - https://github.com/finfex/gera/blob/master/doc/erd.pdf
TODO
- move Authority to application level
- Remove STI from RateSource
Contributing
- Fork
- Create Pull Request
License
The gem is available as open source under the terms of the GPLv3.