Giter Club home page Giter Club logo

flash's Introduction

Galoy

Mattermost GitHub Repo stars Twitter Follow

๐Ÿ’ก Get help

Q&A or Mattermost ๐Ÿ’ฌ

TLDR

Galoy is an opinionated bitcoin banking platform.

This repo represents the main api that brings all functionality together. Take a look at the Quickstart if you want to take it for a spin.

Responsible disclosure

Found critical bugs/vulnerabilities? Please email them [email protected] Thanks!

Get Started

Want to try it out and contribute? Checkout the dev documentation to deploy locally with a docker compose script.

If you have questions, you can join our Workspace

For an overview of all relevant repository checkout awesome-galoy.

Galoy-Backend features

  • GraphqlAPI:
  • Authentication:
    • Code is sent via twillio to end users phone number which can be exchanged for jwt auth token
    • OAuth integration (in progress)
    • Account scoped API keys (in progress)
  • Internal ledger:
    • Records all account activity via double entry accounting
    • Support for integrating fiat currencies (in progress)
    • CSV based export of all accounting data
  • Contact list for frequent transaction partners
  • Price
    • Sub-second price data polled from largest exchanges to record USD value at settlement
    • Historical price data can be queried for display for different time frames
  • Send / Receive BTC payments
    • External settlement via OnChain or lightning
    • Automatic internal settlement when payer & payee are on the same galoy instance
    • Fees can be applied for sending / receiving for all settlement methods
    • Support for tipping via dedicated web-frontend
    • Include memo to payment
  • Lightning Network
    • Support for clearnet and TOR
    • Support for invoices with and without specified amount
    • Route probing to pre-display an accurate fee and mitigate attacks based on expensive routing
    • Channel data backup to dropbox and google cloud storage
  • Custodial storage of all user assets
    • Limited funds stored in hot-wallet (keys kept on servers)
    • Threshold based rebalancing to cold-storage (keys stored on offline hardware devices)
  • Security:
    • Velocity check based on user verification level
    • Spam protection for sharing memos
    • Configurable 2fa for payments (in progress)
    • DDos prevention
      • via rate limiting infront of critical APIs
      • via geetest CAPTCHA
  • Resilience
    • Databases (mongodb and redis) are run by default in high availability/resilience mode. If one pod/node goes down, there is an automatic failover on another pod/node.
  • Production ready
    • Supports horizontal scaling and highly available deployments via k8s
    • Client side load balancing across multiple LND nodes
    • Out-of-the-box dashboards for KPIs deployed to grafana showing metrics exported via prometheus
    • Quick response times thanks to pagination of large data sets
    • Returning error codes for full translation capability of the frontend
    • Instrumentation enabled for real-time insights into production runtime (opentelemetry / honeycomb)
  • User on-boarding (optional)
    • Gamification via user quiz that pays out sats
    • Map of in-network merchants
  • Notifications
    • Mobile clients can receive notifications of balance changes in real-time
    • Daily notification of balance for active end users

Tech Stack

  • GCP, Kubernetes, Terraform, Helm, Concourse, Docker
  • Opentelemetry, Prometheus
  • Bitcoind, LND, Specter, RideTheLightning, Loop, Lndmon, Pool
  • PostgreSQL, MongoDB, Redis
  • NodeJS
  • Typescript
  • GraphQL
  • React + React Native

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.