-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
53 changed files
with
13,403 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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'] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
) |
Oops, something went wrong.