GithubHelp home page GithubHelp logo

cryp7's Introduction

Docker Compose Actions Workflow

Overview

Code for the cryptomarketdepth.com website.

This website tracks the liquidity of cryptocurrencies over time. Specifically, it can answer the question "how much of a given cryptocurrency can I buy/sell right now while not moving its price by more than some specified percentage?".

For further details see this paper.

Running

Services can be run using docker-compose. The following command builds service images and runs the services:

docker-compose up --build

The service liquidity-service-process service is highly scalable. You can run multiple instances of this service to increase processing throughput like so:

docker-compose up --scale liquidity-service-process=10

Testing

  1. Build and run all services using docker-compose up -d --build

  2. Run the command from the "run tests"-step in the GitHub Actions file.

Services

orderbook-service

Regularly fetches order books from multiple cryptocurrency exchanges and writes them to the database.

liquidity-service-create

Creates “jobs” which describe -- among other things -- the cryptocurrency for which to calculate liquidity, and the input data (order books) for the calculation.

liquidity-service-process

Atomically claims a job, performs the liquidity calculation described by the job, and writes the result to the database. This service is highly scalable, such that multiple instances of this service can run concurrently to process calculations in parallel.

liquidity-web-api

Website backend HTTP API. Reads data from the database written by liquidity-service-process and returns it as JSON.

Packages

frontend

Frontend code for the public website https://cryptomarketdepth.com/

crypto-orderbook-db-app

Contains orderbook-service executable.

order-graph

Implements the graph algorithm used to calculate cryptocurrency liquidity, as described in this paper.

orderbook

A library implementing a limit order book.

crypto-venues

A library for fetching order books from several different cryptocurrency exchanges. Includes request rate limiting (on a per-exchange basis), as well as retrying failed requests (e.g. due to HTTP "too many requests"-error).

crypto-orderbook-db

Database schema for orderbook-service.

bellman-ford

Translation of Sedgewick & Wayne's BellmanFordSP.java implementation into Haskell.

crypto-liquidity-db

Contains both schema and executables for the services liquidity-service-create, liquidity-service-process, and liquidity-web-api.

cryp7's People

Contributors

runeksvendsen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.