Core is a Kotlin based cryptocurrency exchange and matching engine from the OPEX project. This extendable and microservice project work as a vanilla core for running cryptocurrency exchanges.
You need to have Maven and Docker installed.
- Clone the repository
git clone https://github.com/opexdev/core.git
- Run
cd core
- Run
mvn clean install
command. - Run
docker-compose up --build
. - Run
docker ps
to see if every service is running.
Deployed at demo.opex.dev.
graph LR
USER_MANAGMENT(User Management)
KAFKA(Kafka)
ZOOKEEPER(Zookeeper)
REDIS[(Redis)]
ACCOUNTANT_POSTGRESQL[(PSQL)]
REFERRAL_POSTGRESQL[(PSQL)]
USER_MANAGMENT_POSTGRESQL[(PSQL)]
WALLET_POSTGRESQL[(PSQL)]
BC_GATEWAY_POSTGRESQL[(PSQL)]
EVENTLOG_POSTGRESQL[(PSQL)]
ACCOUNTANT(Accountant)
API(API)
WALLET(Wallet)
MATCHING_ENGINE(Matching Engine)
MATCHING_GATEWAY(Matching Gateway)
REFERRAL(Referral)
STORAGE(Storage)
BC_GATEWAY(Blockchain Gateway)
WEBSOCKET(Websocket)
ADMIN(Admin)
CAPTCHA(Captcha)
EVENTLOG(Event Log)
API-->MATCHING_GATEWAY
API-->WALLET
API-->REFERRAL
API-->STORAGE
API-->BC_GATEWAY
API-->ACCOUNTANT
MATCHING_ENGINE-->REDIS
USER_MANAGMENT-->USER_MANAGMENT_POSTGRESQL
BC_GATEWAY-->BC_GATEWAY_POSTGRESQL
REFERRAL-->REFERRAL_POSTGRESQL
WALLET-->WALLET_POSTGRESQL
ACCOUNTANT-->ACCOUNTANT_POSTGRESQL
EVENTLOG-->EVENTLOG_POSTGRESQL
subgraph MESSAGING
KAFKA
ZOOKEEPER
end
subgraph MATCHING DOMAIN
MATCHING_GATEWAY-->MATCHING_ENGINE
end
subgraph ACCOUNTANT DOMAIN
ACCOUNTANT-->WALLET
REFERRAL-->WALLET
end
subgraph DATA STORE
BC_GATEWAY_POSTGRESQL
REFERRAL_POSTGRESQL
ACCOUNTANT_POSTGRESQL
WALLET_POSTGRESQL
USER_MANAGMENT_POSTGRESQL
EVENTLOG_POSTGRESQL
REDIS
end
We want to make contributing to this project as easy and transparent as possible, and we are grateful to the developer for contributing bug fixes and improvements.
OPEX is MIT licensed.