Skip to content

Commit

Permalink
Open source
Browse files Browse the repository at this point in the history
  • Loading branch information
en committed May 21, 2020
1 parent f9eacfa commit fd7926c
Show file tree
Hide file tree
Showing 53 changed files with 13,403 additions and 1 deletion.
6 changes: 6 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Dockerfile
LICENSE
README.md
cloudbuild.yaml
compile-protos.sh
local-build.sh
15 changes: 14 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,14 @@
# siren
# siren
siren is a cryptocurrency exchange built using microservice architecture.

The main components are:
* grpc
* postgres
* redis
* kafka as message bus
* in-memory matching engine based on skiplist
* auth0 service for authentication

The design of this project borrows from [viabtc_exchange_server](https://github.com/viabtc/viabtc_exchange_server), and can work with a front-end SPA (not open sourced) that integrates tradingview.

This project only implemented core functions and has not been fully tested.
78 changes: 78 additions & 0 deletions cloudbuild.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-f', 'svc-match/Dockerfile', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/match:latest', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/match:$COMMIT_SHA', '.']
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-f', 'svc-memorystore/Dockerfile', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/memorystore:latest', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/memorystore:$COMMIT_SHA', '.']
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-f', 'svc-sql/Dockerfile', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/sql:latest', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/sql:$COMMIT_SHA', '.']
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-f', 'svc-wallet/Dockerfile', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/wallet:latest', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/wallet:$COMMIT_SHA', '.']
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-f', 'svc-ws/Dockerfile', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/ws:latest', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/ws:$COMMIT_SHA', '.']
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-f', 'svc-gateway/Dockerfile', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/gateway:latest', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/gateway:$COMMIT_SHA', '.']
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-f', 'svc-wallet/ethereum/Dockerfile', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/ethereum:latest', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/ethereum:$COMMIT_SHA', '.']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/match:latest']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/match:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/memorystore:latest']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/memorystore:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/sql:latest']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/sql:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/wallet:latest']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/wallet:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/ws:latest']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/ws:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/gateway:latest']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/gateway:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/ethereum:latest']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/ethereum:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/kubectl'
env:
- 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- 'CLOUDSDK_CONTAINER_CLUSTER=dev'
args: ['set', 'image', 'deployment', 'siren-match', 'siren-match=gcr.io/$PROJECT_ID/$REPO_NAME/match:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/kubectl'
env:
- 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- 'CLOUDSDK_CONTAINER_CLUSTER=dev'
args: ['set', 'image', 'deployment', 'siren-memorystore', 'siren-memorystore=gcr.io/$PROJECT_ID/$REPO_NAME/memorystore:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/kubectl'
env:
- 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- 'CLOUDSDK_CONTAINER_CLUSTER=dev'
args: ['set', 'image', 'deployment', 'siren-sql', 'siren-sql=gcr.io/$PROJECT_ID/$REPO_NAME/sql:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/kubectl'
env:
- 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- 'CLOUDSDK_CONTAINER_CLUSTER=dev'
args: ['set', 'image', 'deployment', 'siren-wallet', 'siren-wallet=gcr.io/$PROJECT_ID/$REPO_NAME/wallet:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/kubectl'
env:
- 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- 'CLOUDSDK_CONTAINER_CLUSTER=dev'
args: ['set', 'image', 'deployment', 'siren-ws', 'siren-ws=gcr.io/$PROJECT_ID/$REPO_NAME/ws:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/kubectl'
env:
- 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- 'CLOUDSDK_CONTAINER_CLUSTER=dev'
args: ['set', 'image', 'deployment', 'siren-gateway', 'siren-gateway=gcr.io/$PROJECT_ID/$REPO_NAME/gateway:$COMMIT_SHA']
- name: 'gcr.io/cloud-builders/kubectl'
env:
- 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- 'CLOUDSDK_CONTAINER_CLUSTER=dev'
args: ['set', 'image', 'deployment', 'siren-wallet', 'ethereum=gcr.io/$PROJECT_ID/$REPO_NAME/ethereum:$COMMIT_SHA']
6 changes: 6 additions & 0 deletions compile-protos.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#! /bin/sh

# $ protoc --version
# libprotoc 3.6.1

protoc --go_out=plugins=grpc,paths=source_relative:. protos/*.proto
43 changes: 43 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
module github.com/en/siren

go 1.14

require (
github.com/BurntSushi/toml v0.3.1 // indirect
github.com/allegro/bigcache v1.1.0 // indirect
github.com/aristanetworks/goarista v0.0.0-20181220211322-0ca71131d8f7 // indirect
github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7
github.com/btcsuite/btcd v0.0.0-20181130015935-7d2daa5bfef2 // indirect
github.com/codegangsta/negroni v1.0.0 // indirect
github.com/confluentinc/confluent-kafka-go v0.11.6
github.com/davecgh/go-spew v1.1.1
github.com/deckarep/golang-set v1.7.1 // indirect
github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/ethereum/go-ethereum v1.8.20
github.com/go-stack/stack v1.8.0 // indirect
github.com/gofrs/uuid v3.1.0+incompatible
github.com/golang/protobuf v1.2.0
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db // indirect
github.com/gomodule/redigo v2.0.0+incompatible
github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect
github.com/gorilla/context v1.1.1 // indirect
github.com/gorilla/mux v1.6.2
github.com/gorilla/websocket v1.4.0
github.com/jtolds/gls v4.2.1+incompatible // indirect
github.com/lib/pq v1.0.0
github.com/miguelmota/go-ethereum-hdwallet v0.0.0-20181004120025-8af197af5b28
github.com/onsi/ginkgo v1.7.0 // indirect
github.com/onsi/gomega v1.4.3 // indirect
github.com/rs/cors v1.6.0
github.com/rs/zerolog v1.11.0
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d // indirect
github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c // indirect
github.com/spf13/viper v1.3.1
github.com/syndtr/goleveldb v0.0.0-20181128100959-b001fa50d6b2 // indirect
github.com/tyler-smith/go-bip39 v1.0.0 // indirect
github.com/urfave/negroni v1.0.0
golang.org/x/net v0.0.0-20181217023233-e147a9138326
google.golang.org/grpc v1.17.0
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect
)
Loading

0 comments on commit fd7926c

Please sign in to comment.