欢迎访问比特币_区块链-币链视界!

币链视界

基于Java开发的比特币区块链BTCETH数字货币交易所

发布时间:2021-02-23区块链开发评论
先转发后关注私信“交易所”即可下载源码开源数字货币交易所,基于Java开发的比特币交易所BTC交易所ETH交易所数字货币交易所交易平台撮合交易引擎。本项目基于SpringCloud微服务开发

先转发后关注私信“交易所”即可下载源码

开源数字货币交易所,基于Java开发的比特币交易所BTC交易所ETH交易所数字货币交易所交易平台撮合交易引擎。本项目基于SpringCloud微服务开发,可用来搭建和二次开发数字货币交易所,有完整的撮合交易引擎源码、后台管理(后端+前端)、前台(交易页面、活动页面、个人中心等)、安卓APP源码、苹果APP源码、币种钱包RPC源码。

简要介绍本项目是基于Java(SpringCloud)开发的比特币交易所BTC交易所ETH交易所数字货币交易所交易平台撮合交易引擎。本项目基于SpringCloud微服务开发,可用来搭建和二次开发数字货币交易所,有完整的系统组成部分。

撮合交易引擎(未开源)后台管理(后端+前端)前台(交易页面、活动页面、个人中心等)原生安卓APP源码(未开源)原生苹果APP源码(未开源)币种钱包RPC源码逻辑架构

依赖关系

文件目录说明00_framework

└─———admin后台管理API

└─———bitrade-job任务管理

└─———chatOTC聊天

└─———cloudSpringCloud微服务管理

└─———core核心

└─———exchange撮合交易引擎

└─———exchange-api撮合交易API

└─———exchange-core撮合交易核心

└─———jar第三方类库

└─———market市场行情API、K线生成

└─———otc-apiOTC交易API(如无需otc功能可不启动)

└─———otc-coreOTC核心

└─———sqlSQL脚本

└─———ucenter-api用户个人中心API

└─———wallet钱包资产管理,负责与RPC对接

01_wallet_rpc

└─———bitcoin

└─———bsv

└─———btm

└─———eos

└─———erc-eusdt

└─———erc-token(可对接各种ERC20币种)

└─———eth

└─———ltc

└─———usdt

02_App_Android

03_App_IOS

04_Web_Admin

05_Web_Front

使用教程准备mysql数据库,创建名称为“xxxx”的数据库准备redis缓存数据库准备kafka流式处理环境(先配置运行zookper,接着配置运行kafka)准备mongodb数据库环境,创建用户admin、xxxx,创建bitrade数据库准备阿里云OSS(修改项目中需要配置的地方)准备nginx,修改配置文件(可选,正式上线需配置)修改framework代码中的配置文件为准备环境配置参数编译生成jar可执行文件运行cloud.jar(微服务注册中心)运行exchange.jar(撮合交易引擎)运行market.jar(行情中心,需要等待Exchange.jar完全启动)运行ucenter.jar(用户中心)运行其他模块(wallet.jar、chat.jar、otc-api.jar等)打开mysql,导入framework代码中的sql文件夹中xxxxxxx.sql文件,注意,trigger的sql如果报错,需要针对wallet表添加trigger运行前端vue项目运行后端vue项目运行钱包RPC运行自动交易机器人程序(本部分代码未上传,但不影响)运行Admin项目(该服务并不依赖其他服务,因此也可只运行此项目,直接查看后台)技术支持本数字货币交易系统系我所在公司为交易所开发的项目,该交易所因团队原因已停止运营,我司也已于2月解散。因我参与项目时,负责整体研发管理、架构设计以及客户对接,所以掌握所有代码。

本系统在功能使用上有一些需要特别注意的地方,例如新建交易对以后的其他操作,操作不当会引起数据紊乱的错误出现。

本人可提供有偿技术帮助与使用培训指导!

注意事项当内存不足时,在linux控制台输入top可以查看java进程占用了大量内存(一个java进程占用1G以上),因为有很多jar包需要运行,所以需要控制某些jar包使用的内存,你可选择几个不怎么耗费资源的项目,如下:

java-jar-Xms128m-Xmx128m-Xmn200m-Xss256kadmin-api.jarjava-jar-Xms512m-Xmx512m-Xmn200m-Xss256kcloud.jarjava-jar-Xms512m-Xmx512m-Xmn200m-Xss256kwallet.jar关于邮件&短信本系统支持邮件、短信发送系统运营状态系统通知/报警支持:用户注册、用户认证、用户充值/提现、币种RPC运行状态、系统资源使用监控等24种监控关于数据库脚本的问题有朋友反映没有完整的SQL文件,这是因为编译成功的Jar,首次运行后会自动将Entity映射成数据库结构,项目中的SQL只是完成一些Springcloud无法完成的数据库结构。数据库自动生成配置位于application.properties配置文件:

#jpaspring.jpa.show-sql=truespring.data.jpa.repositories.enabled=truespring.jpa.hibernate.ddl-auto=update

spring.jpa.hibernate.ddl-auto=update这个配置会自动更新数据库结构。

核心功能说明(用户端)1.注册/登录/实名认证/审核(目前仅支持手机,二次开发可加入邮件,很简单)2.Banner/公告/帮助/定制页面(Banner支持PC与APP分开设置,帮助支持各种分类模式)3.法币C2C交易/法币OTC交易(支持两种法币模式,项目早期可由平台承担C2C法币兑换,后期可开放OTC交易)4.币币交易(支持限价委托、市价委托,二次开发可加入其它委托模式)5.邀请注册/推广合伙人(支持对邀请推广人数、佣金进行以日、周、月的排行统计)6.创新实验室(该部分支持功能较多,分项说明。另,APP暂不全部支持该功能)6-1.首发抢购活动模式(如发行新交易对时,可对交易对设置一定数量的币种进行抢购)6-2.首发分摊活动模式(如发行BTC/USDT交易对之前,官方拿出5BTC做活动,根据用户充值抵押的USDT多少进行均分BTC)6-3.控盘抢购模式(如发行ZZZ/USDT交易对之前,ZZZ币种价格为5USDT,官方发行活动价为0.5USDT,则可使用该模式)6-4.控盘均摊模式(如6-3,只不过平均分配)6-5.矿机活动模式(支持用户抵押一定数量的币种,由官方承诺每月返还一定数量的币种)

7.红包功能(支持平台及官方发放一定数量币种的红包,此功能适合用户裂变)8.用户资产管理、流水管理、委托管理、实名管理等各种基础管理核心功能说明(管理端)1.概要(查看平台运行数据,包含交易额、注册人数、充值等)2.会员管理(会员信息管理、会员实名审核、会员实名管理、会员余额管理、会员充值/冻结余额等)3.邀请管理(会员邀请信息、会员邀请排行管理)4.CTC管理(CTC订单管理、流水管理、承兑商管理)5.内容管理(PC广告管理、APP广告管理、公告管理、帮助管理)6.财务管理(充值提现管理、财务流水管理、对账管理、币种钱包余额管理)7.币币管理(新建交易对、管理交易对、新建交易机器人、设置交易机器人参数、设置行情引擎/交易引擎、撤销所有委托)8.活动管理(新建活动、矿机认购、抢购/瓜分管理)9.红包管理(平台红包管理、用户红包管理)10.系统管理(角色管理、部门管理、用户管理、权限管理、币种管理、RPC管理、版本管理)11.保证金管理(此功能设计时考虑到,但实际运营期间未使用到)12.OTC管理(广告管理、订单管理、OTC币种管理、退保管理等,此功能未获得实际运营检验)关于区块链钱包对接本项目提供两种钱包对接方式,一种是自建节点+区块链浏览器的方式,另一种是第三方钱包对接方式。如果你想使用自建节点或区块链浏览器,你直接使用00_framework中的代码进行编译即可。如果你想使用第三方钱包对接,你可以下载07_Uduncloud文件夹的优盾钱包的项目文件,把他们复制到00_framework中即可。

当你拿到代码以后,对本项目进行调试运行期间,可不连接区块链节点,这并不会有太大的影响;即使不连接区块链节点,你也可以部署其一个具有撮合交易功能的交易平台(只是用户无法通过钱包地址充值而已)。

当你渐渐熟悉整套系统,同时对区块链运行原理、节点搭建、区块链浏览器有一定基础储备后,就可以开始对01_wallet_rpc文件夹下的项目进行研究。每个币种对应不同的数据访问方式,大部分区块链项目的钱包操作方式是相同的或十分相似的,比如BTC、LTC、BCH、BSV、BCD等比特币衍生币,其API操作方式几乎一样;再比如ETH,当你掌握一个合约币种的操作,其他基于ETH发行的数字货币的操作方式几乎一样。所以,基本上当你花时间弄懂了一个,就懂了一堆币种。

本项目使用的钱包操作方案也是不同的,也尽可能的为大家展示了不同用法:

如BTC、USDT,使用的自建全节点,现在差不多需要300G硬盘空间;如ETH,使用的是自建轻节点(参考文章),因为全节点需要硬盘空间太大;如BCH、BSV等,使用的是第三方区块链浏览器获取数据;如XRP,官方就已经提供了访问区块数据的接口(RippleAPIGitHub地址)一般而言,当交易所来往资金量不大的时候,你可以自己摸索,但是当交易所资金量大了以后,如果你对自己操作钱包不太放心,你也可以使用第三方的钱包服务,当然,这需要你与钱包服务商进行谈判,付个年费什么的。

下图是用户充值监控逻辑的简要说明图,简单看看就行:系统运行展示(APP前端)

系统运行展示(后端)先转发后关注私信“交易所”即可下载源码

广告位

热心评论

评论列表