Open Sourcing The Bitfinex Reporting Tools

Reports now fully open-sourced for community collaboration

Ezequiel Wernicke
Bitfinex
3 min readFeb 1, 2019

--

At Bitfinex we strongly support the open source community and the manner in which it drives innovation through transparency and collaboration.

In line with this, we are happy to announce the release of a new open-source project at Bitfinex: Our reporting tools.

Quick View

Our reporting tool is comprised of two main components:

  1. The back-end — A grenache service written in Nodejs, connecting to our servers using the bitfinex api node, processing and providing the information to the users interface.
  2. The user interface — A React app using Blueprintjs framework with Redux-saga as the core architecture.

Repositories

The installation guides can be found on the following github repositories:

  1. Backend: github.com/bitfinexcom/bfx-report
  2. UI: github.com/bitfinexcom/bfx-report-ui

Back-end

The back-end is a grenache service written in Nodejs using express to create the http server which connects with the user interface.

Main folders:

  • /config: Contains the configuration files. The service options to be configured are on service.report.json, default options include: sync mode on, using sqlite as the data base.
  • /db: Where the sqlite database file is store.
  • /src: Contains the controllers, middlewares, routers and services as to connect express with the grenache client
  • /workers: Contains the main logic components.

workers/loc.api/service.report.js has the main functions of the service.

workers/loc.api/service.report.sqlite.js has the main functions of the service when sync mode is on.

User Interface

A complete walkthrough of the user interface and its various components can be found here:

Electronjs

Electronjs makes it possible to build cross-platform desktop apps usingJavaScript, HTML, and CSS.

Using this you can download the standalone version of the reporting tool on github.com/bitfinexcom/bfx-report-electron/releases.

Alternatively, follow the instructions found on the Electronjs repository to create releases:

Sync benefits

A key highlight of the software is the fact that all data is synced locally, automatically.

The sync experience has been developed in a manner which is as smooth and simple as possible, and which allows you to remain up to date with account developments at all times.

Data Sync requests occur via the cloud as done previously and show up locally when completed.

New features allow you to active, deactivate and refresh the data sync intuitively with just one click.

Moving Forwards

We have a number of development plans for our reporting tools moving forward but what matters most to us is what our users seek. As stated above, please reach out to us if you’d like to make a suggestion. Below are a number of the plans that we have for the reporting tool:

  • Audited reports.
  • Funding earnings sector.
  • New site for downloading public data fast.
  • Framework for advanced reporting: portfolio performance, PNL Statement, Risk management and tax management.
  • Improved sorting and filtering in tables.
  • Special framework allowing for sharing of data between users.
  • Mobile app integration.

If you have additional feedback on how we can continue to improve our reporting tools, don’t hesitate to reach out to us! Our team can be found across Telegram, Reddit as well as via feedback-dev@bitfinex.com and support@bitfinex.com; we encourage you to get in touch!

Alternatively, apply for one of our openings at Bitfinex.com/careers if you would like to contribute to our development.

We’re a globally distributed team consisting of 100+ passionate developers, support agents, and passionate cryptocurrency enthusiasts. If you get excited about being in an industry that is breaking new ground and if you have a disposition of confidence towards challenging technical feats, we want to talk to you.

--

--