This project is a bitcoin exchange based on Java (SpringCloud) | BTC exchange | ETH exchange | digital currency exchange | trading platform | matching trading engine. This project is based on the development of Spring Cloud microservices, which can be used to build and secondary development digital currency exchanges, and has a complete system component.
- Match trading engine.
- Background management (back-end + front-end)
- Frontend (transaction page, event page, personal center, etc.))
- Native Android APP source code
- Native Apple APP source code
- Currency wallet RPC source code
- Multi Language Support(Simple Chinese、English)
About Matchmaking Trading Engine
The system uses memory matching for the transaction queue, Kafka is used for matching order information transmission, MongoDB persists the order transaction details, and MySQL records the overall order transaction. Among them, the 01_Framework/Exchange project is mainly responsible for memory matching, and the 01_Framework/Market project is mainly responsible for order transaction persistence, market generation, market push and other services, including:
- K-line data, the intervals are: 1 minute, 5 minutes, 15 minutes, 30 minutes, 1 hour, 1 day, 1 week, 1 month
- Market depth data for all trading pairs
- The latest prices of all trading pairs
- Recently traded pairs
Modes supported by memory matching transactions
- Matching of limit order and limit order
- Matching market orders and limit orders
- Matching limit orders with market orders
- Matching market orders with market orders
Limit & Market Order Processing Logic
Other features supported by match engine
In addition to the ordinary matching functions of limit and market prices, the matching trading engine of this system also introduces an active transaction mode. By setting the trading start time, initial issuance volume, initial issuance price, and activity of trading pairs (such as BTC/USDT) Modes and other parameters can formulate a wealth of matching transaction modes to meet different matching modes.
for example
The exchange is expected to launch the trading pair AAA/USDT at 12:00:00 on August 8, 2020, but as a newly launched currency, how can it work without activity? The project party or the exchange decided to come up with 10,000 AAA at a price of 0.0001USDT (market price: 0.0005) for everyone to snap up. The system supports the setting of such activities.
In addition, if the project party or the exchange decides to take out 10,000 AAAs to issue at the price of 0.0001USDT, we want everyone to snap up, but hope that all users who recharge USDT can divide 10,000 AAAs on average. This system also supports the setting of this activity .
to sum up
in short, this system supports a highly customized matching mode. At the same time, you can also develop your own matching transaction mode, just by modifying the matching logic in the Exchange project.
About the technical composition
- Backend development:Spring、SpringMVC、SpringData、SpringCloud、SpringBoot
- DataBase:Mysql、Mongodb
- Other:redis、kafka、Ali OSS、Tencent Captcha
- Frontend:Vue、iView、less