Free open-source digital currency exchange - the development of Java-based Bitcoin exchange | BTC Exchange | ETH Exchange | digital currency exchange

The project is based on the Java development Bitcoin Exchange | BTC Exchange | ETH Exchange | digital currency exchange | Trading Platform | dealmaking engine. This project is based on micro SpringCloud service development, can be used to build and secondary development of digital currency exchange, a complete deal-engine source, back office management (back-end + front-end), front (transaction page, event page individual centers, etc.), Andrews APP Source (for a fee), Apple APP Source (for a fee), currency wallet RPC source.

System Architecture Summary

Casually painted a sketch, make do and see. . Overall Description Framework

System Demonstration Video

PC front-end (end user Web): https://gitee.com/cexchange/CoinExchange/attach_files

End mobile phone APP: https://gitee.com/cexchange/CoinExchange/attach_files

Management background: https://gitee.com/cexchange/CoinExchange/attach_files

Development Reference

Open Source Address: https://gitee.com/cexchange/CoinExchange

Development of reference documentation: https://gitee.com/cexchange/CoinExchange/blob/master/DEVELOP.md

Screenshot management background: https://gitee.com/cexchange/CoinExchange/tree/master/09_DOC/ management background shots

System operating environment

  1. CentOS 6.8
  2. MySQL 5.5.16
  3. Redis-x64-3.2.100
  4. Mongodb 3.6.13
  5. kafka_2.11-2.2.1
  6. nginx-1.16.0
  7. JRE 8u241
  8. JDK 1.8
  9. View
  10. Zookeeper

File Directory Description

00_framework

└─ --- admin Admin API

└─ --- bitrade-job management tasks

└─ --- chat OTC chat

└─ --- cloud SpringCloud micro-management services

└─ --- core core

└─ --- exchange transactions brokered engine

└─ --- exchange-api API brokered deal

└─ --- exchange-core Core brokered deal

└─ --- jar third-party libraries

└─ --- market market API, K line generation

└─ --- otc-api OTC Transaction API (such as otc function without having time to start)

└─ --- otc-core OTC core

└─ --- sql SQL script

└─ --- ucenter-api API personal center

└─ --- wallet purse Asset Management, responsible for docking with RPC

01_wallet_rpc

└─———act

└─———bch

└─ --- bitcoin

└─———bsv

└─———btm

└─———ect

└─———eos

└─ --- ERC-eusdt

└─———erc-token

└─ --- eth

└─———eth-support

└─———lib

└─———ltc

└─———rpc-common

└─ --- usdt

└─ --- xmr

02_App_Android

03_App_IOS

04_Web_Admin

05_Web_Front

Tutorial

  1. Ready mysql database, create a name for "xxxx" in the database
  2. Ready redis cache database
  3. Preparation kafka streaming environment (first operating configuration zookper, then configured to run kafka)
  4. Mongodb ready database environment, create a user admin, xxxx, database creation bitrade
  5. Ali cloud ready OSS (where it is needed to modify the configuration of the project)
  6. Ready nginx, modify the configuration file (optional, to be formally launched configuration)
  7. Modify the framework code profile configuration parameters in preparation for the environment
  8. Compiled executable jar
  9. Run cloud.jar (micro service registry)
  10. Run exchange.jar (matching trading engine)
  11. Run market.jar (market center, to wait Exchange.jar fully activated)
  12. Run ucenter.jar (User Center)
  13. Operation of other modules (wallet.jar, chat.jar, otc-api.jar etc.)
  14. Open mysql, import the sql file folder framework code xxxxxxx.sql file, pay attention, if sql trigger the error, you need to add trigger table for the wallet
  15. Run the tip vue project
  16. Running back-end vue project
  17. RPC run wallet
  18. Run automated trading robot program (this part of the code is not uploaded, but does not affect)

Technical Support

This digital currency trading system for the Department of my company's Exchange development projects, the exchange has stopped operating due to team reasons, our company also was disbanded in February. Because I am involved in the project, responsible for the overall management of research and development, architectural design and customer docking, so have all the code.

The system has some areas that require special attention in the functional use, such as a new transaction to other operations later, improper operation can cause data errors disorders.

It can be paid to provide technical assistance and training in the use guide!

Contact QQ: 877070886

Precautions

When insufficient memory in linux java console input top can see the process taking up a lot of memory (a java process takes more than 1G), because there are many jar package needs to run, so it is necessary to control the use of certain memory jar package, you can choose several less resource-intensive projects, as follows:

java -jar -Xms128m -Xmx128m -Xmn200m -Xss256k admin-api.jar

java -jar -Xms512m -Xmx512m -Xmn200m -Xss256k cloud.jar

java -jar -Xms512m -Xmx512m -Xmn200m -Xss256k wallet.jar

About Mail & SMS

  1. The system supports e-mail, short message sending system operating status
  2. System notification / alarm support: user registration, user authentication, user deposit / withdraw cash, currency RPC running status, system resource usage monitoring and other 24 kinds of monitoring

The issue of database scripts

There are no friends in the complete SQL file, this is because a successful compilation Jar, after the first run will be automatically mapped to Entity database structure, the project just completed SQL database structures of some Springcloud can not be completed. Application.properties database automatically generated configuration profile is located:

#jpa

spring.jpa.show-sql=true

spring.data.jpa.repositories.enabled=true

spring.jpa.hibernate.ddl-auto=update

spring.jpa.hibernate.ddl-auto = update this configuration automatically updates the database structure.

Core Function (UE)

  1. Register / Login / Verified / audit (currently only supports phone, e-mail can be added to the second development, very simple)

  2. Banner / announcement / Help / custom page (Banner APP supports PC and set apart to help support a variety of classification mode)

  3. Fabi C2C trading / OTC trading legal tender (legal tender supports two modes, early projects undertaken by C2C platform currency exchange law, the latter can open OTC trading)

  4. Currency currency transactions (support limit order, market order, secondary development can be added to other commission mode)

  5. Invited Register / promotion partner (inviting people to support the promotion, the commission carried out on a daily, weekly, monthly ranking statistics)

  6. Innovation Lab (part of the large support, itemized explanation. The other, APP temporarily all support this feature)

6-1. Buying activity starting mode (such as when to issue new transactions, the transaction is set to be a certain amount of currency buying)

6-2. Starting sharing active mode (as previously issued BTC / USDT transactions, official 5BTC out to do activities, how many users recharge according to equally split BTC mortgage USDT)

6-3. Kongpan buying mode (such as prior to issuance ZZZ / USDT transaction, ZZZ currency price 5USDT, the official price of distribution activities 0.5USDT, you can use this mode)

6-4. Kongpan shared equally mode (such as 6-3, but the average distribution)

6-5. Minerals active mode (allows users to pledge a certain amount of currency, the official promised monthly return of a certain amount of currency)

  1. Red envelope function (supported platforms and issued a number of official currency of red envelopes, this feature is for users fission)

  2. Users asset management, water management, trust management, real-name management and other basic management

Core Function (management terminal)

  1. Summary (see the platform to run data including transactions, registration number, prepaid, etc.)

  2. Member Management (member information management, members of the audit real name, real name membership management, membership management balances, members of recharge / freeze balances)

  3. Invitation management (members of the invitation message, invite Member ranking management)

  4. CTC management (CTC order management, water management, vendor management acceptances)

  5. Content Management (PC advertising management, APP advertising management, bulletin management, to help manage)

  6. Financial Management (recharge to cash management, financial flow management, reconciliation management, currency management wallet balance)

  7. Coin money management (the new transaction, transaction management, the new trading robots, trading robots set parameters, set prices Engine / transaction engine, remove all commission)

  8. Event Management (new activities, mining machine subscribe, buy / to carve management)

  9. Red envelopes management (management platform red envelopes, red envelopes user management)

  10. System Management (role management, departmental management, user management, rights management, currency management, RPC management, version management)

  11. Margin management (taking into account, but did not actually use this feature during operations designed to)

  12. OTC management (advertising management, order management, OTC currency management, surrender management, this feature did not get the actual operational test)

About block chain wallet butt

When you get the code, during the commissioning of the project, may not be connected block chain node, this does not mean much; even if not connected to the block chain node, you can also have brokered a deal to deploy its function trading platform (users can not only recharge it by purse address).

When you are getting familiar with the entire system, while the block chain operating principles, build node, block chain browsers have some foundation reserve, you can begin to study the project 01_wallet_rpc folder. Each corresponding to a different denomination data access, most wallet program operation block chain is identical or very similar, such as BTC, LTC, BCH, BSV, BCD etc. Bitcoin derived coins, which mode of operation is almost API Like; ETH another example, when you master a contract currency operations, based on other operating mode ETH issued digital currency is almost the same. So, basically when you take the time to understand one, then you know a bunch of currency.

Purse operation of this project uses is different, as much as possible to show you the different uses:

  • Such as BTC, USDT, self-built all-nodes, and now almost need 300G hard disk space;
  • As ETH, using a self-built light node ( see the paper ), because the whole node requires hard-disk space;
  • The BCH, BSV the like, using a third party browser obtains the data block chains;
  • As XRP, the official has provided the interface to access the data section ( Ripple API GitHub address )

In general, when a small amount of money exchange dealings, you can find their own way, but when a large amount of money after the exchange, if you do not quite trust their own operations wallet, you can also use third-party wallet service, of course, this requires you to negotiate with service providers wallet, pay a annual fee or something.

Below is a brief description of FIG user recharge monitoring logic, simple look on the line:

Recharge logic

Display system (PC front-end)

Home

Currency currency trading

Currency trading law

log in

Events / Innovation Lab

Innovation Lab Details

Promotion Partner

announcement

help

Systems running show (APP front end)

Home

Price

K Line

transaction

Personal center

Personal Asset Management

Invitation management

End portion of the Web page phone

APP Download

Grab a red envelope

Events / Innovation Lab

Systems running show (back-end)

log in

Home

User Management

Invitation management

French currency trading Order Management

Banner Home Management

Transaction management

Event Management

Red envelopes management

Currency Management

OTC management, back-end development is complete, the front end is undocked

APP Download picture example

Enter Caption Enter Caption Enter Caption Enter Caption Enter Caption

Guess you like

Origin www.cnblogs.com/bizzan/p/12588418.html