im钱包安卓版下载
数字资产服务平台

im钱包安卓版下载是全球著名的数字资产交易平台之一,主要面向全球用户提供比特币、莱特币、以太币等数字资产的币币和衍生品交易服务。

imtoken冷钱包下载|虚拟币交易所开发

时间:2024-03-10 23:41:24

CoinExchange: 开源数字货币合约交易所,基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(后端+前端)、前台(交易页面、活动页面、个人中心等)、安卓APP源码、苹果APP源码、币种钱包RPC源码。开源项目仅供学习参考,请勿用于非法用途。

CoinExchange: 开源数字货币合约交易所,基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(后端+前端)、前台(交易页面、活动页面、个人中心等)、安卓APP源码、苹果APP源码、币种钱包RPC源码。开源项目仅供学习参考,请勿用于非法用途。

登录

注册

开源

企业版

高校版

搜索

帮助中心

使用条款

关于我们

开源

企业版

高校版

私有云

Gitee AI

NEW

我知道了

查看详情

登录

注册

代码拉取完成,页面将自动刷新

开源项目

>

区块链

>

数字货币

&&

捐赠

捐赠前请先登录

取消

前往登录

扫描微信二维码支付

取消

支付完成

支付提示

将跳转至支付宝完成支付

确定

取消

Watch

不关注

关注所有动态

仅关注版本发行动态

关注但不提醒动态

352

Star

2.1K

Fork

1.4K

Jammy / CoinExchange

代码

统计

流水线

服务

Gitee Pages

JavaDoc

质量分析

Jenkins for Gitee

腾讯云托管

腾讯云 Serverless

悬镜安全

阿里云 SAE

Codeblitz

我知道了,不再自动展开

加入 Gitee

与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)

免费加入

已有帐号?

立即登录

返回

master

管理

管理

分支 (1)

master

克隆/下载

克隆/下载

HTTPS

SSH

SVN

SVN+SSH

下载ZIP

登录提示

该操作需登录 Gitee 帐号,请先登录后再操作。

立即登录

没有帐号,去注册

提示

下载代码请复制以下命令到终端执行

为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置

git config --global user.name userName

git config --global user.email userEmail

初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置

1

生成 RSA 密钥

2

获取 RSA 公钥内容,并配置到 SSH公钥 中

在 Gitee 上使用 SVN,请访问 使用指南

使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作

Username for 'https://gitee.com': userName

Password for 'https://userName@gitee.com':

#

私人令牌

新建文件

新建子模块

上传文件

分支 1

标签 0

贡献代码

同步代码

创建 Pull Request

了解更多

对比差异

通过 Pull Request 同步

同步更新到分支

通过 Pull Request 同步

将会在向当前分支创建一个 Pull Request,合入后将完成同步

Jammy

update README.md.

021d14c

216 次提交

提交

取消

提示:

由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件

00_framework

保存

取消

01_wallet_rpc

保存

取消

02_App_Android

保存

取消

03_APP_IOS

保存

取消

04_Web_Admin

保存

取消

05_Web_Front

保存

取消

06_ExchangeRobot

保存

取消

09_DOC

保存

取消

COURSE.md

保存

取消

DEVELOP.md

保存

取消

LICENSE

保存

取消

README.md

保存

取消

管理后台截图.md

保存

取消

Loading...

README

Apache-2.0

Crypto-Exchange / Coin-Exchange

开源代码仅供参考学习,请勿用于非法用途;

运行演示

http://16.162.252.129:81/

后端 & 代理商后台 等演示

添加本人 QQ:877070886 获取。

虽然说是演示的,但其实并不是专门用来给大家演示的,而是给我自己开发用的。所以请不要乱动数据,这样会导致脏数据,我开发的最新成果一般都会反应到这个站上。你本周看到的页面,可能下周就不一样了,一直在优化,一直在开发新功能。

基于ETH发行ERC20代币可参考:

https://gitee.com/ethergo/ether-erc20-token

收集了431个基于以太坊发行的ERC20代币源码,基本上能找到各种业务模型的ERC20代币业务模型

下一阶段工作重点:

系统性能提升(基础软件优化)

系统稳定性提升(完善服务治理、链路监控、网关路由、负载均衡等)

撮合引擎升级,支持横向扩展(当前系统唯一性能瓶颈所在)

基础软件版本升级(SpringCloud、MySQL、Kafka、Redis以及Maven依赖等)

统一配置中心,降低配置难度(计划将Eureka变更为Nacos)

支持Docker及K8S容器编排部署方式

支持Jekins持续集成

设计全新交易所UI,提升用户体验&避免撞脸

2020/11/07 稳定版更新公示

新增 期权合约 Android App

新增 阿里云&赛邮(短信&邮件)支持

新增 Link & YFI钱包RPC支持

新增 Api模块(进度:80%)

新增 超机器人增加跟随型趋势设置

新增 PC端白蓝版

新增 基础版手机端H5页面支持

新增 Android App去除第三方K线插件(改为自研K线模块)

新增 永续合约 IOS App(感谢nomo)

新增 双端APP多语言(中英)支持

修复 币币交易Websocket行情推送卡顿

修复 IOS App兼容IOS 13颜色设置

修复 升级OmniUSDT版本至0.8.0,解决部分节点接口过时问题

更新 安装部署文档新增2节

2020/09/08 稳定版更新公示

新增 永续合约后端

新增 永续合约PC用户端

新增 永续合约PC管理端

新增 永续合约 Android App

新增 预测合约后端

新增 预测/期权合约PC用户端

新增 预测/期权合约PC管理端

新增 Android APP白色版

新增 IOS App白色版

修复 12个BUG(非重大)

优化 33个UI细节

优化 安装部署文档新增3节

白色版截图预览:

下载体验请联系QQ:877070886

特色

特色1: 基于内存撮合引擎,与传统基于数据库撮合更快

特色2: 前后端分离,基于Token的Api授权机制

特色3: 基于SpringCloud微服务架构,扩展更容易

特色4: MySQL、MongoDB、Redis多种数据存储方式,只为更快

特色5: Kafka发布订阅消息队列,让订单更快流转

特色6: 主流币种对接区块链接口齐全,开箱即用

特色7: 冷热钱包分离,两种提现方式,保证安全

特色8: 机器人系统,同步行情,维护深度,防止搬砖

特色9: 原生App,Java和ObjectC提供原生体验

特色10: 交易所设计者提供技术支持,部署+二开无忧

特色11: 支持添加自定义平台币及其他币种

声明一:我已在新公司上班,一些说明性的东西我会抽空在这里更新,以方便大家编译、搭建、开发

声明二:APP源码及交易机器人源码未开源,有需要的添加QQ:877070886

声明四:请不要用本开源代码直接搭建交易所!本源码尚有一些隐藏BUG,仅供学习!否则后果自负!

声明五:本交易所完整源码仅向有技术团队或技术实力的人提供,小白或不同技术的请勿咨询!

新功能持续开发中,敬请期待

代理商系统(100%,5月已完成,未开源)

极速兑换(100%,6月已完成,未开源)

IEO首发活动(100%,6月已完成,未开源)

永续合约(100%,8月完成,不开源)

期权合约(100%,9月完成,不开源)

秒合约(0%,11月完成,不开源)

指数合约(0%,12月完成,不开源)

差价合约(0%,1月完成,不开源)

交割合约(0%,2月完成,不开源)

智能客服系统(0%,1月完成,不开源)

部分新功能预览

永续合约

二元期权/预测合约

本人仅业余时间开发,进度延迟可能性大,已尽最大可能赶进度。有兴趣一起开发的小伙伴,欢迎一起。

简要介绍

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

撮合交易引擎

后台管理(后端+前端)

前台(交易页面、活动页面、个人中心等)

原生安卓APP源码

原生苹果APP源码

币种钱包RPC源码

部署文档(超详细版)

仅限客户使用

系统架构概要

随便画的几个草图,凑合看吧。。。

整体架构

逻辑架构

部署架构

依赖关系

联系方式

QQ:877070886

系统演示视频

PC前端(用户Web端):https://gitee.com/cexchange/CoinExchange/attach_files

手机APP端:https://gitee.com/cexchange/CoinExchange/attach_files

管理后台:https://gitee.com/cexchange/CoinExchange/attach_files

开发参考

开发参考文档:https://gitee.com/cexchange/CoinExchange/blob/master/DEVELOP.md

管理后台截图:https://gitee.com/cexchange/CoinExchange/tree/master/09_DOC/管理后台截图

关于SpringCloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

一般而言,一个完整的SpringCloud框架应该如下图所示:

如果对SpringCloud尚不熟悉,可以先简单学习一下SpringCloud的相关教程,这样再回来看本项目,会更加容易上手。

提醒一下,因为Springcloud框架图中是完整的架构,在开发的时候,我们会适当的裁剪一些内容,从而让开发和部署更加快速,所以有一些出入的地方。

关于撮合交易引擎

本系统对交易队列采用内存撮合的方式进行,以Kafka做撮合订单信息传输,MongoDB持久化订单成交明细,MySQL记录订单总体成交。

其中01_Framework/Exchange项目主要负责内存撮合,01_Framework/Market项目主要负责订单成交持久化、行情生成、行情推送等服务,包括:

K线数据,间隔分别为:1分钟、5分钟、15分钟、30分钟、1小时、1天、1周、1月

所有交易对的市场深度(market depth)数据

所有交易对的最新价格

最近成交的交易对

内存撮合交易支持的模式

限价订单与限价订单撮合

市价订单与限价订单撮合

限价订单与市价订单撮合

市价订单与市价订单撮合

限价&市价订单处理逻辑

注意:这个图很久以前的了,最新代码中的逻辑更复杂了

撮合引擎支持的其他功能

除了普通的限价与市价撮合交易功能外,本系统的撮合交易引擎还引入了活动成交模式,通过设置交易对(如:BTC/USDT)的开始交易时间、初始发行量、初始发行价、活动模式等参数,可以制定出丰富的撮合交易模式,从而满足不同的撮合模式。

举例说明

交易所预计在2020年8月8日 12时00分00秒上线交易对AAA/USDT,但是作为一个新上线的币种,没有活动怎么能行呢?项目方或交易所决定拿出10000个AAA以0.0001USDT(市场行情价:0.0005)的价格让大家抢购。本系统支持对这种活动的设置。

另外,如果项目方或交易所决定拿出10000个AAA以0.0001USDT的价格发行,不希望大家抢购,而是希望所有充值USDT的用户能够平均瓜分10000个AAA,本系统也支持这种活动的设置。

总结

总之,本系统支持高度自定义的撮合模式,同时你也可以开发出你自己想要的撮合交易模式,只需要通过修改Exchange项目中的撮合逻辑就可以。

关于技术构成

后端:Spring、SpringMVC、SpringData、SpringCloud、SpringBoot

数据库:Mysql、Mongodb

其他:redis、kafka、阿里云OSS、腾讯防水校验

前端:Vue、iView、less

实际演示网站

https://www.bizzan.com

这个是给客户做的,但是后来客户不运营了,所以遗留了这个网站,因为我没有服务器权限,所以这个网站随时可能无法访问。

搭建起来一个测试站点需要购买好几台云服务器,成本较大,所以我自己没有搭建测试站,但是系统是完整的,经过了将近一年的商用及实际运营考验。

关于交易机器人

交易机器人是自动交易的程序,可以根据外部行情,自动进行交易,让本交易所的交易对价格与外部保持一致,防止因部分用户“搬砖”导致的损失。

关于搬砖

例如A交易所BTC价格是10000USDT,而B交易所的BTC价格是9500USDT,搬砖就是在B交易所通过9500USDT的价格买入BTC,然后转账到A交易所,赚取差价(500USDT)。

如果交易所没有交易机器人,就会导致本交易所的币种价格与其他主流交易所相比有差价,从而让用户“搬砖”,导致交易所损失。

另外,交易机器人还有一个功能,就是在交易所初期运营的时候,形成一个初期的交易深度,不会让用户觉得交易所冷清,没有用户。

我本人是Java程序员,对移动端开发不太了解,所以包调试安装实际上也是我付费请别人帮忙的。

如果你没有技术人员,我可以帮助你搭建一套完整的交易所系统,但是需要你请一到两名维护人员,因为系统的稳定运行少不了运维人员。

联系QQ:877070886

==============================================

系统运行环境

Centos 6.8

MySQL 5.5.16

Redis-x64-3.2.100

Mongodb 3.6.13

kafka_2.11-2.2.1

nginx-1.16.0

JRE 8u241

JDK 1.8

Vue

Zookeeper

生产环境建议配置

文件目录说明

00_framework

└─———admin 后台管理API

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

└─———chat OTC聊天

└─———cloud SpringCloud微服务管理

└─———core 核心

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

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

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

└─———jar 第三方类库

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

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

└─———otc-core OTC核心

└─———sql SQL脚本

└─———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月解散。因我参与项目时,负责整体研发管理、架构设计以及客户对接,所以掌握所有代码。

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

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

联系QQ:877070886

注意事项

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

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

关于邮件&短信

本系统支持邮件、短信发送系统运营状态

系统通知/报警支持:用户注册、用户认证、用户充值/提现、币种RPC运行状态、系统资源使用监控等24种监控

关于数据库脚本的问题

有朋友反映没有完整的SQL文件,这是因为编译成功的Jar,首次运行后会自动将Entity映射成数据库结构,项目中的SQL只是完成一些Springcloud无法完成的数据库结构。

数据库自动生成配置位于application.properties配置文件:

#jpa

spring.jpa.show-sql=true

spring.data.jpa.repositories.enabled=true

spring.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,官方就已经提供了访问区块数据的接口(Ripple API GitHub地址)

一般而言,当交易所来往资金量不大的时候,你可以自己摸索,但是当交易所资金量大了以后,如果你对自己操作钱包不太放心,你也可以使用第三方的钱包服务,当然,这需要你与钱包服务商进行谈判,付个年费什么的。

下图是用户充值监控逻辑的简要说明图,简单看看就行:

系统展示(PC前端)

系统运行展示(APP前端)

手机Web端部分页面

系统运行展示(后端)

APP下载图片示例

特别注意

任何使用本源码从事商业活动,对别人和自己造成损失的,本人概不负责!

Apache License

Version 2.0, January 2004

http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,

and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by

the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all

other entities that control, are controlled by, or are under common

control with that entity. For the purposes of this definition,

"control" means (i) the power, direct or indirect, to cause the

direction or management of such entity, whether by contract or

otherwise, or (ii) ownership of fifty percent (50%) or more of the

outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity

exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,

including but not limited to software source code, documentation

source, and configuration files.

"Object" form shall mean any form resulting from mechanical

transformation or translation of a Source form, including but

not limited to compiled object code, generated documentation,

and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or

Object form, made available under the License, as indicated by a

copyright notice that is included in or attached to the work

(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object

form, that is based on (or derived from) the Work and for which the

editorial revisions, annotations, elaborations, or other modifications

represent, as a whole, an original work of authorship. For the purposes

of this License, Derivative Works shall not include works that remain

separable from, or merely link (or bind by name) to the interfaces of,

the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including

the original version of the Work and any modifications or additions

to that Work or Derivative Works thereof, that is intentionally

submitted to Licensor for inclusion in the Work by the copyright owner

or by an individual or Legal Entity authorized to submit on behalf of

the copyright owner. For the purposes of this definition, "submitted"

means any form of electronic, verbal, or written communication sent

to the Licensor or its representatives, including but not limited to

communication on electronic mailing lists, source code control systems,

and issue tracking systems that are managed by, or on behalf of, the

Licensor for the purpose of discussing and improving the Work, but

excluding communication that is conspicuously marked or otherwise

designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity

on behalf of whom a Contribution has been received by Licensor and

subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of

this License, each Contributor hereby grants to You a perpetual,

worldwide, non-exclusive, no-charge, royalty-free, irrevocable

copyright license to reproduce, prepare Derivative Works of,

publicly display, publicly perform, sublicense, and distribute the

Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of

this License, each Contributor hereby grants to You a perpetual,

worldwide, non-exclusive, no-charge, royalty-free, irrevocable

(except as stated in this section) patent license to make, have made,

use, offer to sell, sell, import, and otherwise transfer the Work,

where such license applies only to those patent claims licensable

by such Contributor that are necessarily infringed by their

Contribution(s) alone or by combination of their Contribution(s)

with the Work to which such Contribution(s) was submitted. If You

institute patent litigation against any entity (including a

cross-claim or counterclaim in a lawsuit) alleging that the Work

or a Contribution incorporated within the Work constitutes direct

or contributory patent infringement, then any patent licenses

granted to You under this License for that Work shall terminate

as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the

Work or Derivative Works thereof in any medium, with or without

modifications, and in Source or Object form, provided that You

meet the following conditions:

(a) You must give any other recipients of the Work or

Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices

stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works

that You distribute, all copyright, patent, trademark, and

attribution notices from the Source form of the Work,

excluding those notices that do not pertain to any part of

the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its

distribution, then any Derivative Works that You distribute must

include a readable copy of the attribution notices contained

within such NOTICE file, excluding those notices that do not

pertain to any part of the Derivative Works, in at least one

of the following places: within a NOTICE text file distributed

as part of the Derivative Works; within the Source form or

documentation, if provided along with the Derivative Works; or,

within a display generated by the Derivative Works, if and

wherever such third-party notices normally appear. The contents

of the NOTICE file are for informational purposes only and

do not modify the License. You may add Your own attribution

notices within Derivative Works that You distribute, alongside

or as an addendum to the NOTICE text from the Work, provided

that such additional attribution notices cannot be construed

as modifying the License.

You may add Your own copyright statement to Your modifications and

may provide additional or different license terms and conditions

for use, reproduction, or distribution of Your modifications, or

for any such Derivative Works as a whole, provided Your use,

reproduction, and distribution of the Work otherwise complies with

the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,

any Contribution intentionally submitted for inclusion in the Work

by You to the Licensor shall be under the terms and conditions of

this License, without any additional terms or conditions.

Notwithstanding the above, nothing herein shall supersede or modify

the terms of any separate license agreement you may have executed

with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade

names, trademarks, service marks, or product names of the Licensor,

except as required for reasonable and customary use in describing the

origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or

agreed to in writing, Licensor provides the Work (and each

Contributor provides its Contributions) on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or

implied, including, without limitation, any warranties or conditions

of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A

PARTICULAR PURPOSE. You are solely responsible for determining the

appropriateness of using or redistributing the Work and assume any

risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,

whether in tort (including negligence), contract, or otherwise,

unless required by applicable law (such as deliberate and grossly

negligent acts) or agreed to in writing, shall any Contributor be

liable to You for damages, including any direct, indirect, special,

incidental, or consequential damages of any character arising as a

result of this License or out of the use or inability to use the

Work (including but not limited to damages for loss of goodwill,

work stoppage, computer failure or malfunction, or any and all

other commercial damages or losses), even if such Contributor

has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing

the Work or Derivative Works thereof, You may choose to offer,

and charge a fee for, acceptance of support, warranty, indemnity,

or other liability obligations and/or rights consistent with this

License. However, in accepting such obligations, You may act only

on Your own behalf and on Your sole responsibility, not on behalf

of any other Contributor, and only if You agree to indemnify,

defend, and hold each Contributor harmless for any liability

incurred by, or claims asserted against, such Contributor by reason

of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following

boilerplate notice, with the fields enclosed by brackets "[]"

replaced with your own identifying information. (Don't include

the brackets!) The text should be enclosed in the appropriate

comment syntax for the file format. We also recommend that a

file or class name and description of purpose be included on the

same "printed page" as the copyright notice for easier

identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

Starred

2.1K

Star

2.1K

Fork

1.4K

捐赠

0 人次

举报

举报成功

我们将于2个工作日内通过站内信反馈结果给你!

请认真填写举报原因,尽可能描述详细。

举报类型

请选择举报类型

举报原因

取消

发送

误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消

提交

简介

开源数字货币合约交易所,基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(后端+前端)、前台(交易页面、活动页面、个人中心等)、安卓APP源码、苹果APP源码、币种钱包RPC源码。开源项目仅供学习参考,请勿用于非法用途。

展开

收起

暂无标签

Java

等 6 种语言

Java

50.8%

Vue

31.9%

CSS

9.2%

JavaScript

7.0%

Less

0.5%

Other

0.6%

Apache-2.0

使用 Apache-2.0 开源许可协议

保存更改

取消

发行版

暂无发行版

开源评估指数源自 OSS-Compass 评估体系,评估体系围绕以下三个维度对项目展开评估:

1. 开源生态

生产力:来评估开源项目输出软件制品和开源价值的能力。

创新力:用于评估开源软件及其生态系统的多样化程度。

稳健性:用于评估开源项目面对多变的发展环境,抵御内外干扰并自我恢复的能力。

2. 协作、人、软件

协作:代表了开源开发行为中协作的程度和深度。

人:观察开源项目核心人员在开源项目中的影响力,并通过第三方视角考察用户和开发者对开源项目的评价。

软件:从开源项目对外输出的制品评估其价值最终落脚点。也是开源评估最“古老”的主流方向之一“开源软件” 的具体表现。

3. 评估模型

基于“开源生态”与“协作、人、软件”的维度,找到与该目标直接或间接相关的可量化指标,对开源项目健康与生态进行量化评估,最终形成开源评估指数。

贡献者

全部

近期动态

加载更多

不能加载更多了

编辑仓库简介

简介内容

开源数字货币合约交易所,基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(后端+前端)、前台(交易页面、活动页面、个人中心等)、安卓APP源码、苹果APP源码、币种钱包RPC源码。开源项目仅供学习参考,请勿用于非法用途。

主页

取消

保存更改

Java

1

https://gitee.com/cexchange/CoinExchange.git

git@gitee.com:cexchange/CoinExchange.git

cexchange

CoinExchange

CoinExchange

master

深圳市奥思网络科技有限公司版权所有

Git 大全

Git 命令学习

CopyCat 代码克隆检测

APP与插件下载

Gitee Reward

Gitee 封面人物

GVP 项目

Gitee 博客

Gitee 公益计划

Gitee 持续集成

OpenAPI

帮助文档

在线自助服务

更新日志

关于我们

加入我们

使用条款

意见建议

合作伙伴

售前咨询客服

技术交流QQ群

微信服务号

client#oschina.cn

企业版在线使用:400-606-0201

专业版私有部署:

13670252304

13352947997

开放原子开源基金会

合作代码托管平台

违法和不良信息举报中心

粤ICP备12009483号

简 体

/

繁 體

/

English

点此查找更多帮助

搜索帮助

Git 命令在线学习

如何在 Gitee 导入 GitHub 仓库

Git 仓库基础操作

企业版和社区版功能对比

SSH 公钥设置

如何处理代码冲突

仓库体积过大,如何减小?

如何找回被删除的仓库数据

Gitee 产品配额说明

GitHub仓库快速导入Gitee及同步更新

什么是 Release(发行版)

将 PHP 项目自动发布到 packagist.org

仓库举报

回到顶部

登录提示

该操作需登录 Gitee 帐号,请先登录后再操作。

立即登录

没有帐号,去注册

搭建一个数字货币交易所需要多少钱? - 知乎

搭建一个数字货币交易所需要多少钱? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册区块链(Blockchain)数字货币钱包搭建一个数字货币交易所需要多少钱?想要了解这方面,有没有人知道的?显示全部 ​关注者53被浏览45,544关注问题​写回答​邀请回答​好问题​1 条评论​分享​19 个回答默认排序火眼查车(公众号)交易所产品设计开发、Dapp产品玩法设计&开发​ 关注总结一下这两年参与交易所产品设计开发所躺过的枪吧:虽说交易所是一个相对标准化的产品,从主功能框架来看并没有太多需要创新的功能,比如钱包管理、账户体系、撮合引擎、上币管理、充值提现、订单管理、管理后台、财务管理、KYC、行情管理(K线、深度)、资产管理等,而交易类型也有币币交易、OTC交易、C2C交易、杠杆交易等不同。虚拟币交易系统主要由:撮合引擎、前端、钱包以及后台组成。 前端是这些里面相对简单的部分。首先前端界面的UI设计要符合受众用户的喜好,如果是放在海外运作,分销系统,要符合其他国家的用户使用习惯和审美。毕竟前端界面是交易所的门面,就跟看人一样,第一眼看颜值。撮合引擎:这部分是撮合交易系统的重点,买卖单的撮合都是靠它。 撮合交易按照“价格优先、同价格下时间优先”的原则的交易。数据库撮合的性能有点低,对于虚拟币交易系统,内存撮合结合多机热备份是目前各大交易所都在使用的技钱包:基本上都是冷热钱包存储,把用户放在平台的币达到一定数量后就直接转入冷钱包中。钱包是交易系统最在乎安全的地方。安全性更强的钱包解决方案,将有助于发展用户与加密货币交易所之间的信任。后台:是为了方便交易方运营管理的,后台的功能可以根据具体的业务需求进行定制,但一般来说包含,币种管里设置、用户管理、订单管理、运营统计、风控管理、财务管理、交易管理等方面。后台也要尽量做到简单操作,太复杂对于管理人员也是个问题。公司研发团队20+人,历时2年多时间完成的版本,中间躺过无数的坑,耗费成本之大。如果一定要折算一个数字,我想至少20多人团队一年薪资成本:30万/月*12个月*2年=720万 这个还是保守估计了,还没算上场地及其他运营成本。如果外面能找到的几万块,几十万的代码即使跑的起来,也是各种隐患。劝各位想办交易所的老板,如果正儿八经做 还是拉个小团队慢慢搞吧,直接买现成的源码风险太大了。以上 完。另外如果有关交易所搭建、设计开发、源码交易等相关问题可以进一步私信我。编辑于 2019-12-20 17:43​赞同 50​​54 条评论​分享​收藏​喜欢收起​卓志企业管理咨询有限公司专注于义乌个贸结汇账户,离岸注册开账户,金融牌照等海外服务​ 关注搭建交易所看你想搭建什么样的,正常来说价格一般在50W~100W左右。区块链数字资产流通平台技术服务一般有1. 公司合规化2. 网站和内容管理3. 平台软件支持4. 分布式区块链底层交易系统5. 冷热数字钱包技术6. 量化机器人7. 一键TOKEN技术8. 风险管理建议9. 客户管理系统搭建交易所就跟买车一样就看想选配什么样的一个配置,比如一些交易所的增值服务做市自主研发的量化做市智能策略,为数币项目方提供主动灵活的方案,自然的孕育市场深度与流动性场外(c2c)交易在全球的联盟交易所下为客户寻找最优的交易对手,在保证实时和最小市场影响的前提下为客户完成最优成本的交易方案运维更新后续的更新维护统一管理,持续迭代更新。使用区块链底层搭建,客户量数据、币资产数据等安心储存,放心维护。上线新币种方便快捷定制提供广泛的基于区块链的产品和相关服务。 定制平台专属积分经纪商提出完整定制化方案,为经纪商定制专属与它的独立特有模块。希望此回答对你有所帮助。卓志专注区块链交易所.项目海外孵化与架构搭建服务,打开通证之门!编辑于 2019-08-23 11:05​赞同 2​​2 条评论​分享​收藏​喜欢

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

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

Skip to content

Toggle navigation

Sign in

Product

Actions

Automate any workflow

Packages

Host and manage packages

Security

Find and fix vulnerabilities

Codespaces

Instant dev environments

Copilot

Write better code with AI

Code review

Manage code changes

Issues

Plan and track work

Discussions

Collaborate outside of code

Explore

All features

Documentation

GitHub Skills

Blog

Solutions

For

Enterprise

Teams

Startups

Education

By Solution

CI/CD & Automation

DevOps

DevSecOps

Resources

Learning Pathways

White papers, Ebooks, Webinars

Customer Stories

Partners

Open Source

GitHub Sponsors

Fund open source developers

The ReadME Project

GitHub community articles

Repositories

Topics

Trending

Collections

Pricing

Search or jump to...

Search code, repositories, users, issues, pull requests...

Search

Clear

Search syntax tips

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

Sign up

You signed in with another tab or window. Reload to refresh your session.

You signed out in another tab or window. Reload to refresh your session.

You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

braveMind

/

CoinExchange

Public

forked from jammy928/CoinExchange_CryptoExchange_Java

Notifications

Fork

77

Star

122

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

License

Apache-2.0 license

122

stars

1k

forks

Branches

Tags

Activity

Star

Notifications

Code

Pull requests

0

Actions

Projects

0

Security

Insights

Additional navigation options

Code

Pull requests

Actions

Projects

Security

Insights

braveMind/CoinExchange

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

 masterBranchesTagsGo to fileCode  Folders and filesNameNameLast commit messageLast commit dateLatest commit History5 Commits00_framework00_framework  01_wallet_rpc01_wallet_rpc  02_App_Android02_App_Android  03_APP_IOS03_APP_IOS  04_Web_Admin04_Web_Admin  05_Web_Front05_Web_Front  06_ExchangeRobot06_ExchangeRobot  09_DOC09_DOC  DEVELOP.mdDEVELOP.md  LICENSELICENSE  README.mdREADME.md  管理后台截图.md管理后台截图.md  View all filesRepository files navigationREADMEApache-2.0 licenseCrypto-Exchange / Coin-Exchange

全网唯一开源核心代码的交易所,架构/代码质量看得见

我想这可能是你搭建交易所,或者二次开发的最好选择

声明一:我已在新公司上班,一些说明性的东西我会抽空在这里更新,以方便大家编译、搭建、开发

声明二:APP源码及交易机器人源码未开源(有偿提供),有需要的添加QQ:877070886

声明三:请注意,本源码唯一交易渠道为QQ:877070886,没有其他QQ或微信

简要介绍

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

撮合交易引擎

后台管理(后端+前端)

前台(交易页面、活动页面、个人中心等)

原生安卓APP源码

原生苹果APP源码

币种钱包RPC源码

系统架构概要

随便画的几个草图,凑合看吧。。。

整体架构

逻辑架构

部署架构

依赖关系

系统演示视频

PC前端(用户Web端):https://gitee.com/cexchange/CoinExchange/attach_files

手机APP端:https://gitee.com/cexchange/CoinExchange/attach_files

管理后台:https://gitee.com/cexchange/CoinExchange/attach_files

开发参考

开发参考文档:https://gitee.com/cexchange/CoinExchange/blob/master/DEVELOP.md

管理后台截图:https://gitee.com/cexchange/CoinExchange/tree/master/09_DOC/管理后台截图

关于服务器配置与部署

如果你想在自己的电脑或云服务器上搭建一套交易所系统,我这里准备了一些基本的部署手册,当然,在linux/unix上安装软件并不是一件简单的事,你需要有一定的linux基础和命令行功底,同时还要有遇到问题解决问题的勇气和耐心,祝你顺利!

服务器配置参考手册

安装基础环境手册

服务部署脚本

安装MySql手册

安装Redis手册

安装Zookeeper手册

安装Kafka手册

安装Mongodb手册

搭建BTC钱包节点手册

搭建ETH钱包节点手册

搭建USDT钱包节点手册

关于SpringCloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

一般而言,一个完整的SpringCloud框架应该如下图所示:

如果对SpringCloud尚不熟悉,可以先简单学习一下SpringCloud的相关教程,这样再回来看本项目,会更加容易上手。

提醒一下,因为Springcloud框架图中是完整的架构,在开发的时候,我们会适当的裁剪一些内容,从而让开发和部署更加快速,所以有一些出入的地方。

关于撮合交易引擎

本系统对交易队列采用内存撮合的方式进行,以Kafka做撮合订单信息传输,MongoDB持久化订单成交明细,MySQL记录订单总体成交。

其中01_Framework/Exchange项目主要负责内存撮合,01_Framework/Market项目主要负责订单成交持久化、行情生成、行情推送等服务,包括:

K线数据,间隔分别为:1分钟、5分钟、15分钟、30分钟、1小时、1天、1周、1月

所有交易对的市场深度(market depth)数据

所有交易对的最新价格

最近成交的交易对

内存撮合交易支持的模式

限价订单与限价订单撮合

市价订单与限价订单撮合

限价订单与市价订单撮合

市价订单与市价订单撮合

限价&市价订单处理逻辑

注意:这个图很久以前的了,最新代码中的逻辑更复杂了

撮合引擎支持的其他功能

除了普通的限价与市价撮合交易功能外,本系统的撮合交易引擎还引入了活动成交模式,通过设置交易对(如:BTC/USDT)的开始交易时间、初始发行量、初始发行价、活动模式等参数,可以制定出丰富的撮合交易模式,从而满足不同的撮合模式。

举例说明

交易所预计在2020年8月8日 12时00分00秒上线交易对AAA/USDT,但是作为一个新上线的币种,没有活动怎么能行呢?项目方或交易所决定拿出10000个AAA以0.0001USDT(市场行情价:0.0005)的价格让大家抢购。本系统支持对这种活动的设置。

另外,如果项目方或交易所决定拿出10000个AAA以0.0001USDT的价格发行,不希望大家抢购,而是希望所有充值USDT的用户能够平均瓜分10000个AAA,本系统也支持这种活动的设置。

总结

总之,本系统支持高度自定义的撮合模式,同时你也可以开发出你自己想要的撮合交易模式,只需要通过修改Exchange项目中的撮合逻辑就可以。

关于技术构成

后端:Spring、SpringMVC、SpringData、SpringCloud、SpringBoot

数据库:Mysql、Mongodb

其他:redis、kafka、阿里云OSS、腾讯防水校验

前端:Vue、iView、less

实际演示网站

https://www.bizzan.com

这个是给客户做的,但是后来客户不运营了,所以遗留了这个网站,因为我没有服务器权限,所以这个网站随时可能无法访问。

搭建起来一个测试站点需要购买好几台云服务器,成本较大,所以我自己没有搭建测试站,但是系统是完整的,经过了将近一年的商用及实际运营考验。

关于交易机器人

交易机器人是自动交易的程序,可以根据外部行情,自动进行交易,让本交易所的交易对价格与外部保持一致,防止因部分用户“搬砖”导致的损失。

关于搬砖

例如A交易所BTC价格是10000USDT,而B交易所的BTC价格是9500USDT,搬砖就是在B交易所通过9500USDT的价格买入BTC,然后转账到A交易所,赚取差价(500USDT)。

如果交易所没有交易机器人,就会导致本交易所的币种价格与其他主流交易所相比有差价,从而让用户“搬砖”,导致交易所损失。

另外,交易机器人还有一个功能,就是在交易所初期运营的时候,形成一个初期的交易深度,不会让用户觉得交易所冷清,没有用户。

我本人是Java程序员,对移动端开发不太了解,所以包调试安装实际上也是我付费请别人帮忙的。

如果你没有技术人员,我可以帮助你搭建一套完整的交易所系统,但是需要你请一到两名维护人员,因为系统的稳定运行少不了运维人员。

联系QQ:877070886

==============================================

系统运行环境

Centos 6.8

MySQL 5.5.16

Redis-x64-3.2.100

Mongodb 3.6.13

kafka_2.11-2.2.1

nginx-1.16.0

JRE 8u241

JDK 1.8

Vue

Zookeeper

生产环境建议配置

文件目录说明

00_framework

└─———admin 后台管理API

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

└─———chat OTC聊天

└─———cloud SpringCloud微服务管理

└─———core 核心

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

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

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

└─———jar 第三方类库

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

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

└─———otc-core OTC核心

└─———sql SQL脚本

└─———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月解散。因我参与项目时,负责整体研发管理、架构设计以及客户对接,所以掌握所有代码。

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

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

联系QQ:877070886

注意事项

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

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

关于邮件&短信

本系统支持邮件、短信发送系统运营状态

系统通知/报警支持:用户注册、用户认证、用户充值/提现、币种RPC运行状态、系统资源使用监控等24种监控

关于数据库脚本的问题

有朋友反映没有完整的SQL文件,这是因为编译成功的Jar,首次运行后会自动将Entity映射成数据库结构,项目中的SQL只是完成一些Springcloud无法完成的数据库结构。

数据库自动生成配置位于application.properties配置文件:

#jpa

spring.jpa.show-sql=true

spring.data.jpa.repositories.enabled=true

spring.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,官方就已经提供了访问区块数据的接口(Ripple API GitHub地址)

一般而言,当交易所来往资金量不大的时候,你可以自己摸索,但是当交易所资金量大了以后,如果你对自己操作钱包不太放心,你也可以使用第三方的钱包服务,当然,这需要你与钱包服务商进行谈判,付个年费什么的。

下图是用户充值监控逻辑的简要说明图,简单看看就行:

系统展示(PC前端)

系统运行展示(APP前端)

手机Web端部分页面

系统运行展示(后端)

APP下载图片示例

特别注意

任何使用本源码从事商业活动,对别人和自己造成损失的,本人概不负责!

About

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

Resources

Readme

License

Apache-2.0 license

Activity

Stars

122

stars

Watchers

6

watching

Forks

77

forks

Report repository

Releases

No releases published

Packages

0

No packages published

Languages

Java

49.9%

Vue

33.3%

CSS

9.5%

JavaScript

6.9%

HTML

0.2%

FreeMarker

0.2%

Footer

© 2024 GitHub, Inc.

Footer navigation

Terms

Privacy

Security

Status

Docs

Contact

Manage cookies

Do not share my personal information

You can’t perform that action at this time.

关于撮合交易系统的完整架构设计? - 知乎

关于撮合交易系统的完整架构设计? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册架构软件架构交易系统关于撮合交易系统的完整架构设计?不知道思问有哪位大神开发过撮合交易系统,可以给点设计思路吗?最好详细点的,我需要的是虚拟货币交易平台的撮合交易,例如比特币,当然更好的需求是支持多边交…显示全部 ​关注者249被浏览106,271关注问题​写回答​邀请回答​好问题 3​添加评论​分享​8 个回答默认排序撸代码的乡下人开源作者 openmix.org & connmix.com​ 关注分布式高可用交易撮合系统架构设计交易与撮合系统可以说是中心化加密货币交易所核心系统中的核心,具有高并发、低延迟、分布式、高可用、海量数据、公式复杂的特点,需要组建一支非常有经验的队伍才能真正落地,当时在A公司投入了巨资组建了一个规模空前的团队,大家都寄予厚望,奈何遇上FTX事件导致夭折。架构设计方案以下是我设计的最新的系统架构,参考了H,A,D三家公司的经验和教训而设计,是对标一线大所的设计方案。交易网关:他存在的主要目的是因为交易服务分片了,需要服务发现才能正确路由到对应的分片。交易服务:包含下单、撤单、成交的所有业务逻辑处理。撮合服务:只根据订单类型做高效订单匹配,匹配成功后通知到交易服务,由交易服务执行业务逻辑。行情系统:消费交易、撮合系统的行情消息(包含用户资产订单持仓变化等)转发给对应的订阅用户。服务的整合与拆分交易与撮合系统是紧密结合的两个系统,可以分开做,也可以做到一起:做到一个服务:在D公司时我是把他们设计在一起优点:显而易见的最大程序降低了io交互,并且有着强一致性的特点,运维简单高效。相反在A公司的旧系统中由于拆分过多服务,错综复杂,运维陷入无限痛苦之中,导致每次系统维护都是10h起步。缺点:当实施分站点,要多个站点使用同一个orderbook时,就很难实现了,在D公司采用了代理下单这种比较绕的方式来解决。分开两个服务:在A,H公司一直是采用分开的设计优点:由于oderbook的独立设计,任意站点或做市商可以在同一个book上交易,而资产又是分离的。缺点:交易系统和撮合系统交互非常频繁,又只能是io交互,latency必然变大,同时两个系统之间的数据一致性也需要处理更多的细节,如果程序员经验不足,将会陷入无尽的bug之中,特别是用户资产老是会对不上,当时在A公司的旧系统就是这种情况。当时在A公司新系统设计时,SZ和SG两个团队对该问题也有过激烈的讨论,不过确实分开方案综合更优。分布式设计其实交易与撮合系统做到一起或者分开,还和分片方案是关联的:做到一个服务:由于orderbook的强顺序匹配,导致撮合系统只能按symbol分片(可多个symbol分为1片),这导致交易系统也只能和撮合一起,也按symbol分片,我在D公司就是这样做的。分开两个服务:由于服务的拆分,撮合可以按symbol分片,而交易系统的瓶颈是在用户资产的CURD,因此按uid分片更优。当然如果硬要掰扯,交易与撮合做到一个服务,然后根据symbol分片,按交易对可以分出几百个片,大部分都是量小的,只有BTC,ETH等热门币量大,独立分配一个32核机器给量大的交易对,也是问题不大。内存化处理全内存化处理能将io降到最低,涉及范围有资产、订单、持仓,而我在D公司的设计其实最大的问题是虽然撮合系统做了全内存化,但是交易系统没有内存化。由于交易和撮合系统设计在同一个服务,并且是按symbol分片,导致进一步改造资产内存化实际上将无法实施,这导致单账户单交易对性能瓶颈在数据库行锁的性能,表现就是数据库CPU还没满,但是单用户TPS就压不上去了。如果把资产CURD的io移除,变成内存里面的CURD,TPS将达到极致,因为撮合和交易的整个过程没有io,但设计总是无法完美的,只能取舍。方案1:交易与撮合系统做到同一个服务,只能按symbol分片,下单成交减少了相互操作的io,但是资产无法内存化处理,资产CURD就有io。方案2:交易与撮合系统拆分到两个服务,撮合按symbol分片,交易按uid分片,下单成交避免不了io操作,但是资产可以内存化到分片中。看上面的最新架构图就知道,方案2天花板更高一些,当然也更贵,需要更多的资深程序员才能搞定。数据落盘内存化必然带来新的问题,就是数据落盘。关系型数据库使用传统关系型数据库,为了极致性能固然我们不能同步落盘只能采用异步,而异步落盘就带来了数据一致性,数据库数据延后的问题。当撮合服务Crash:重启需要加载该symbol的全部OpenOrders才能恢复之前的OrderBook,而因为交易服务做了uid分片,所以从交易网关那里直接读取全部分片的订单信息。当交易服务Crash:订单丢失:创建订单、订单修改的同时记录topic消息,Crash时回放解决一致性。资产丢失:资产的每一次变更同时记录topic消息,Crash时回放解决一致性。成交丢失:通过回放撮合成交topic的消息来解决一致性。这里的一致性处理细节非常多,可以说有些难度,处理不好就会陷入无尽的bug之中。嵌入式数据库有更简洁的方法,借助rocksdb的一致性,就可以在内存化的同时免去异步落盘。当然任何方案都有优缺点,rocksdb写放大会让磁盘更加容易故障,为了高可用,我们不得不使用raft协议来提交到多个处于不同机器的分片中,实现leader、follower数据同步,显然这复杂度又上来了,因此也需要有实力的资深程序员才能落地。raft 开源库:java sofastack/sofa-jraftgo hashicorp/raft用户资产设计当每个部位理论上最优时,瓶颈永远在用户资产这里,因此我经历和参与过以下这些方案:D公司现货:只记录散户的资产,量大的做市商直接不记录资产,这样等于90%以上的订单都不处理资产了,自然快速,缺点是给对账带来很多问题。合约:交易系统没有内存化,直接io操作数据库(异步),优点是一致性强,缺点是单账户单交易对性能瓶颈。A公司旧系统:内存化后异步落盘,由于复杂度高,系统bug比较多。H公司现货:和D公司合约一样直接使用数据库保存资产。合约:采用redis来保存资产,对资产做revison标记,同时使用lua来做分布式锁。缺点也是容易出bug。哪个方案比较好?看我设计的架构图就知道,使用rocksdb的方案显然更优,当然每个公司需要根据团队的实力来选择,适合的才是最好的。撮合引擎服务架构设计中的撮合引擎只负责订单的高效匹配,不处理资产、持仓等业务逻辑。如果程序crash怎么办?需要设计一个recovery机制,因此我们需要落盘到数据库。但是由于交易和撮合系统的拆分,两边都各自保存一份订单数据,就一定会有一致性问题发生,因此我最新的架构中没有给撮合设计落盘,而是重启时直接从交易系统中读取symbol的所有OpenOrders来恢复到之前的orderbook状态。部署方案从架构图中可知,带分片的交易、撮合系统,已经是一个和kafka类似的分布式存储系统,是不适合采用k8s部署的,因此只能使用aliyun ecs,aws ec2来部署,而其他服务都可以采用k8s来部署服务。技术咨询有需要付费技术咨询或者定制交易系统、撮合引擎、MPC区块链钱包的可以私信我。推荐阅读Star CryptocurrencyExchangeTechnology 了解更多加密货币交易所核心模块的架构设计与技术细节(交易系统、撮合引擎系统、行情系统、做市系统、MPC钱包系统、网络安全基础设施)版权声明本文章版权归 https://github.com/onanying 所有,任何单位和个人不得转发。编辑于 2023-03-02 16:32​赞同 60​​7 条评论​分享​收藏​喜欢收起​Jim Jin​​编程等 2 个话题下的优秀答主​ 关注国内形形色色的数字货币交易所多如牛毛,但是说实话很多都是“路边摊”的技术团队开发或者一些交易所内部人员泄露出来的源码搭建的,无论从技术架构、代码质量、还是从性能和安全方面都毫无保障,优势主要是上线快,跟其他一窝蜂兴起的其他互联网业态一样。 有幸参与过一家中型数字货币交易所平台的架构设计和开发,从平台产品设计、架构选型、系统设计和开发,用了半年多的时间,过程踩了不少坑,也学到了不少知识,这里把当时架构设计、技术选型过程和经验教训分享一下给大家。 先说业务架构设计,一个数字货币交易所平台一般包含门户网站、会员端交易系统(PC网页版+手机APP版)和运营平台三个子系统。门户网站主要是品牌展示的简单内容,核心内容是实时行情的展示,对性能要求不高,所以不涉及太多的技术:会员端一般包括网页版和手机版,根据不同的需求可以选其一,核心模块主要是登录注册、行情查看、交易下单、账户管理、充提币等功能、交易品种可以配置删减,根据交易所所在地的法律规定进行配置,一般情况下包括币币交易、法币交易、衍生交易等,详细功能设置如下:运营平台供交易平台日常运营使用,一般包括产品管理、交易管理、资产管理、会员管理的光模块,一些基础性的用户、权限、数据字典功能以及辅助运营的报表分析系统等:再说技术架构设计,一个交易所平台的技术架构主要考虑安全性、分布式、易扩展、容错性、低延时、高并发等特性,我们考察了比较主流的分布式微服务架构,熔断机制、服务注册和发现、消息服务、服务网关、安全认证、内存数据库、关系型数据库等各种选项,最终形成了如下技术选型:1. 分布式基础进行架构SpringCloud与Dubbo之间二选一,由于团队使用SpringCloud经验较多,SpringCloud的程序员更好招聘,有利于系统的长期运维升级,而且SpringCloud是基于SpringBoot开发,比较有亲切感,所以选择了SpringCloud, 其实由于阿里系的强大影响,国内Dubbo使用更加广泛,不同的团队可以根据自己的情况选择。2. 引入Hystrix断路器作为容错保护模块,防止单个服务的故障,耗尽整个撮合系统容器的线程资源,避免分布式环境里大量级联失败。对通过第三方客户端访问依赖服务出现失败、拒绝、超时或短路时执行回退逻辑。3. 采用Eureka作为服务注册与发现中心,实现中间层服务,以达到负载均衡和中间层服务故障转移的目的。4. 服务网关Spring Cloud Gateway 与 Zuul 的选型,选择了Zuul,因为名字短一些。5. 引入SpringCloud Security安全认证模块用于构建安全的应用程序和服务,SpringCloud Security在Spring Boot和Spring Security OAuth2的基础上,可以快速创建和实现常见的安全认证方式,如单点登录,令牌中继和令牌交换等。6. 引入Redis作为内存数据库,兼做系统数据缓存和内存计算。7. 使用Oracle作为关系数据库,这个是因为合作伙伴刚好是Oracle合作伙伴,其实当时关系型数据库的选型也考虑了阿里云的POLARDB, 性能测试非常过关,而且对熟悉MYSQL的程序员非常友好,但是因为考虑POLARDB 2018年才投入商用,为了降低选型风险,最终放弃。8. 消息队列中间件MQ采用了RabbitMQ, 也是因为团队有使用经验。 综上,通过几次选型会议讨论,最终形成的应用技术架构如下图所示:最后是撮合模块,我们的撮合和回报流程选用了netty websocket进行推送,分布式异步无阻塞处理,内存撮合,写操作采用交易日志同步写,数据库持久化采用异步线程操作的方式,总体性能还可以,吞吐量可以达到每秒2W笔左右,单笔延迟100ms左右,详细的性能指标在性能报告里面,记不太清楚了,具体撮合流程如下:对于撮合交易系统,交易吞吐量和延时永远都是最核心的指标,根据公开的资料(参考这里:http://www.ebioe.com/index.php/2019/12/18/2632/),目前业界做得最好的应该是OKEx(https://www.okex.me/)平台的Lightning 2.0撮合系统,它的系统消息传输采用了类似Dubbo的二进制消息格式,带宽占用更少,解析速度和运行效率相比较传统的文本格式的HTTP协议更高,据他们自己基于香港服务器进行实盘测试与系统数据统计,ACK平均延迟25ms,Live平均延迟63ms,Cancel平均延迟180ms,峰值订单处理能力10w笔/秒,已经媲美全球证券市场上的主流交易系统了,不过人家毕竟是全球交易量第一的区块链数字资产交易平台,跟我参与的这个平台没有多大可比性。我们的合作伙伴没有这么大的交易量预期、也没有这么高的性能要求。下面是Lightning 2.0的性能指标:编辑于 2020-04-03 11:44​赞同 46​​8 条评论​分享​收藏​喜欢

数字货币 - 数字货币/比特币工具 - 开源软件 - Gitee.com

数字货币 - 数字货币/比特币工具 - 开源软件 - Gitee.com

登录

注册

开源

企业版

高校版

搜索

帮助中心

使用条款

关于我们

开源

企业版

高校版

私有云

Gitee AI

NEW

我知道了

查看详情

登录

注册

全部推荐项目

前沿技术

智能硬件

IOT/物联网/边缘计算

车载应用

智能家居

自动驾驶/无人机

机器人

5G/通讯

低代码

科研论文

量子计算

芯片开发

Web 3.0

隐私计算

云原生

OpenHarmony

按钮(Button)

文本框(EditText)

布局(Layout)

图形图像(Image)

进度条(Progress)

菜单(Menu)

弹窗(Popup)

选择器(Selector)

文本组件(TextView)

列表组件(ListView)

加载器(Loading)

提醒(Notification)

视图切换(View Transition)

滑杆(Slider)

图表(Chart)

绘图组件(Draw)

计数器(Counter)

动画(Animate)

验证码(Captcha)

多媒体(Multimedia)

条形码(Barcode)

高级UI组件

地图(Map)

OpenHarmony 游戏(Gaming)

网络(Networking)

通讯(Communication)

支付(Payment)

数据库(Database)

硬件驱动(Drivers)

OpenHarmony 教程指南

OpenHarmony工具集

OpenHarmony 应用

华为移动服务(HMS)

权限(Permissions)

工具包(Toolkit)

底层组件

手势控制(Gesture)

程序开发

中英文分词

支付开发包

安全开发相关

常用工具包

Excel工具包

条形码/二维码

模板引擎

桌面UI组件/框架

网络开发包

语音处理

网络工具

网络服务

数据挖掘

作业/任务调度

编程语言/脚本语言

缓存组件

Markdown工具包

搜索引擎

微服务

工作流

图表组件

权限管理

报表工具

代码生成器

IoC/AOP框架

图像处理

规则引擎

JSON工具

日志工具包

Spring Boot 扩展

验证码

算法/数学计算

Node 扩展

流程引擎/工具

动画开发

移动通信

人工智能

AI-人工智能

VR/AR

机器学习/深度学习

计算机视觉/人脸识别

自然语言处理

大模型

区块链

数字货币

NFT

微信开发

微信开发包

微信小程序/小游戏

微信应用

微信小游戏

企业应用

任务/项目管理

企业应用系统

BI-商业智能

金融/股票证券

GIS/地图/导航/定位

建站系统

CMS建站系统

新零售/网店/商城

BBS论坛/问答

博客系统

问卷调查/表单系统

SNS社交系统

学校/教学管理

相册/画廊/照片

RSS/Atom工具

应用工具

文件管理工具

多媒体

文本编辑

IM即时通讯/聊天

应用软件

RPA-机器人过程自动化

WEB应用开发

Web开发框架

jQuery插件

WebUI组件/框架

JavaScript工具包

RESTful项目

后台管理框架

网站主题

Vue扩展组件

Web爬虫

OAuth/单点登录/统一认证

Angular扩展

Bootstrap扩展插件

React 组件

RPC开发框架

API 网关/接口管理

短网址

layui 组件

DevOps/运维/网管

网管工具

监控系统

DevOps工具

手机/移动开发

Android组件/项目

iOS组件

移动App

支付宝小程序

百度小程序

PhoneGap/Cordova 插件

跨平台移动开发

快应用

TV/电视开发

uniapp 开源组件

开发工具

版本管理系统

开发/调试

Wiki/文档工具

编译/构建/部署

Maven 插件

Gulp 扩展

测试工具

代码扫描分析

服务器应用

分布式服务/框架

消息服务器/消息队列

Docker相关

容器/虚拟机

Nginx扩展模块

大数据

云计算

一键安装包

OpenResty 扩展

系统性能优化

Serverless

分布式存储系统

数据库相关

数据库开发包

数据库服务

数据库管理/监控

游戏/娱乐

游戏

游戏开发

3D引擎

插件和扩展

Chrome扩展

WordPress 扩展

Eclipse插件

IDEA 插件

Firefox扩展

Safari 插件

Visual Studio Code 扩展

Jenkins 插件

其他开源

高仿项目

图书/手册/教程

ACM/OJ 项目

操作系统

教学管理

教程配套代码

RISC-V 开发

生物/医疗/健康

2020公益黑客马拉松

新冠病毒相关开源

区块链

/

数字货币

开源许可

MulanPSL-2.0

0BSD

AFL-3.0

AGPL-3.0

Apache-2.0

Artistic-2.0

BSD-2-Clause

BSD-3-Clause

BSD-3-Clause-Clear

BSL-1.0

CC-BY-4.0

CC-BY-SA-4.0

CC0-1.0

ECL-2.0

EPL-1.0

EPL-2.0

EUPL-1.1

EUPL-1.2

GPL-2.0

GPL-3.0

ISC

LGPL-2.1

LGPL-3.0

LPPL-1.3c

MIT

MPL-2.0

MS-PL

MS-RL

MulanPSL-1.0

MulanPubL-1.0

MulanPubL-2.0

NCSA

OFL-1.1

OSL-3.0

PostgreSQL

UPL-1.0

Unlicense

WTFPL

Zlib

全部语言

Java

JavaScript

HTML

CSS

Python

Shell

C

C++

PHP

C#

TypeScript

Go

Objective-C

Android

Kotlin

Ruby

Assembly

Swift

NodeJS

Perl

Dart

Lua

Matlab

其他

Rust

PowerShell

HTML/CSS

微信

Scala

Groovy

C/C++

XSLT

Verilog

R

Docker

QML

Pascal

CoffeeScript

FORTRAN

Erlang

ActionScript

Emacs Lisp

Smalltalk

SQL

Delphi

TeX/LaTeX

ASP

VHDL

Visual Basic

M

Clojure

Common Lisp

Haskell

Awk

LiveScript

Elixir

Scheme

易语言

Julia

OCaml

Puppet

AutoHotkey

YAML

Ada

Pawn

D

Standard ML

XML

Arduino

Logos

VimL

Prolog

汇编

Haxe

ColdFusion

Vala

Crystal

Scilab

Racket

Coq

Lisp

Slash

Eiffel

eC

DOT

Zephir

Nemerle

Stars

Stars

最新推荐

最近更新

Jammy/CoinExchange

2.1K

开源数字货币合约交易所,基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(后端+前端)、前台(交易页面、活动页面、个人中心等)、安卓APP源码、苹果APP源码、币种钱包RPC源码。开源项目仅供学习参考,请勿用于非法用途。

Java

数字货币

|

2年前

Fexcoin/exchange-app

549

数字货币交易系统移动端UI , 交易系统后台开源正在筹备中

JavaScript

数字货币

|

5个月前

Fexcoin/fex-wallet-app

405

加密货币钱包, 数字货币交易所, 区块链数字资产管理工具

Java

数字货币

|

1个月前

EtherGo/基于以太坊发行的ERC20智能合约代币源码合集

393

收集了431个基于以太坊发行的ERC20代币源码,基本上能找到各种业务模型的ERC20代币业务模型

数字货币

|

3年多前

币严数字货币交易所/CoinExchange

281

币严BIZZAN全新升级,修复重大bug,优化冗余代码

Java

数字货币

|

3个月前

码牛/quantRobot

236

基于微信小程序的数字货币量化交易机器人

数字货币

微信小程序/小游戏

|

3年多前

fexdev/fex-wallet

178

区块链, 数字货币交易所, 区块链钱包开源项目

JavaScript

数字货币

|

2年多前

开源社/kcoin

76

KCoin 是开源社推出的基于区块链的社区贡献激励方案

Ruby

数字货币

|

3年多前

devteam/ChiaTools

64

Chia官方钱包P图功能的替代品,实现了比官方钱包更简单更方便更实用的P图功能。同时集成了HPool和火币矿池挖矿功能

Python

数字货币

|

2年多前

Thoughtworks/TWallet

57

TWallet 是一个企业级数字钱包解决方案,基于非对称密码技术与区块链基础设施打造的可信身份(DID),可验证声明(Verifiable Claim),触碰授权与点对点安全传输,以及硬件安全模块支持的秘钥托管(HSM supported secret custodian)等技术,提供更加隐私、可信、安全的钱包支付与数字资产管理解决方案。

Dart

数字货币

|

1年多前

xiaobin/netty-quotation

52

数字货币交易所第三方行情数据接入

数字货币

|

1年多前

alan_viky/blockchain_btc

49

PHP实现的BTC比特币充值,区块高度同步

PHP

数字货币

|

4年前

神经猫/tron-rpc

45

波场钱包rpc代理

Go

RPC开发框架

数字货币

|

1个月前

币严数字货币交易所/ZTuoExchange_ios

26

开源交易所IOS端

数字货币

iOS组件

|

3年多前

Gitee 极速下载/cointop

19

cointop 是一个快速而且轻量级的交互式终端应用,用来实时跟踪和监控加密货币行情

Go

数字货币

|

3年多前

1

2

3

今日热门

本周热门

Jammy/CoinExchange

2.1K

开源数字货币合约交易所,基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(后端+前端)、前台(交易页面、活动页面、个人中心等)、安卓APP源码、苹果APP源码、币种钱包RPC源码。开源项目仅供学习参考,请勿用于非法用途。

Jammy/CoinExchange

2.1K

开源数字货币合约交易所,基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(后端+前端)、前台(交易页面、活动页面、个人中心等)、安卓APP源码、苹果APP源码、币种钱包RPC源码。开源项目仅供学习参考,请勿用于非法用途。

shengjian-tech/opennft-front

15

开源 NFT 交易平台

Fexcoin/exchange-app

549

数字货币交易系统移动端UI , 交易系统后台开源正在筹备中

深圳市奥思网络科技有限公司版权所有

Git 大全

Git 命令学习

CopyCat 代码克隆检测

APP与插件下载

Gitee Reward

Gitee 封面人物

GVP 项目

Gitee 博客

Gitee 公益计划

Gitee 持续集成

OpenAPI

帮助文档

在线自助服务

更新日志

关于我们

加入我们

使用条款

意见建议

合作伙伴

售前咨询客服

技术交流QQ群

微信服务号

client#oschina.cn

企业版在线使用:400-606-0201

专业版私有部署:

13670252304

13352947997

开放原子开源基金会

合作代码托管平台

违法和不良信息举报中心

粤ICP备12009483号

简 体

/

繁 體

/

English

点此查找更多帮助

搜索帮助

Git 命令在线学习

如何在 Gitee 导入 GitHub 仓库

Git 仓库基础操作

企业版和社区版功能对比

SSH 公钥设置

如何处理代码冲突

仓库体积过大,如何减小?

如何找回被删除的仓库数据

Gitee 产品配额说明

GitHub仓库快速导入Gitee及同步更新

什么是 Release(发行版)

将 PHP 项目自动发布到 packagist.org

回到顶部

虚拟币交易平台开发,交易所APP开发技术 - 知乎

虚拟币交易平台开发,交易所APP开发技术 - 知乎切换模式写文章登录/注册虚拟币交易平台开发,交易所APP开发技术亿博网络开发区块链量化|软件开发|app二开|bug修复虚拟币交易平台和交易所APP的开发涉及多个技术层面,以下是一些主要的技术考虑:1. 区块链技术: 虚拟币交易平台的核心是基于区块链技术的数字资产。你需要选择合适的区块链平台,或者考虑自己搭建区块链。2. 智能合约: 使用智能合约来实现虚拟币的发行、转账和交易逻辑。3. 安全性: 由于涉及到资金交易,安全性是首要考虑。采用最佳实践,使用协议来保护通信,实施多重身份验证等。4. 用户认证和授权: 实现安全的用户认证系统,确保用户的身份安全。5. 支付集成: 集成虚拟币和法定货币的支付系统,包括传统的支付,以及虚拟币的转账支付。6. 用户界面: 开发直观且易用的用户界面,包括交易图表、订单薄、账户余额等功能,以提供良好的用户体验。7. 行情数据: 集成实时的行情数据,确保交易平台上的价格信息是准确和及时的。8. 后端架构: 设计弹性且可扩展的后端架构,考虑使用云服务9. 合规性: 考虑法规和合规性要求,确保你的交易平台符合当地和国际的法规标准。10. 监控和报警: 实现实时监控系统,用于检测异常活动,保障平台的安全性。11. 持续集成和部署: 实施持续集成和自动化部署流程,以便及时部署新的功能和修复漏洞。请注意,虚拟币交易平台的开发是一个复杂的过程,可能需要搭建一个强大的开发团队,包括区块链开发人员、前端和后端工程师、安全专家等。确保在开发过程中注重安全性和用户隐私。发布于 2024-03-04 13:39・IP 属地广东区块链(Blockchain)虚拟货币虚拟币​赞同​​添加评论​分享​喜欢​收藏​申请

虚拟币交易所系统开发-腾讯云开发者社区-腾讯云

易所系统开发-腾讯云开发者社区-腾讯云用户1408045虚拟币交易所系统开发关注作者腾讯云开发者社区文档建议反馈控制台首页学习活动专区工具TVP最新优惠活动文章/答案/技术大牛搜索搜索关闭发布登录/注册首页学习活动专区工具TVP最新优惠活动返回腾讯云官网用户1408045首页学习活动专区工具TVP最新优惠活动返回腾讯云官网社区首页 >专栏 >虚拟币交易所系统开发虚拟币交易所系统开发用户1408045关注发布于 2018-06-11 15:42:263.1K0发布于 2018-06-11 15:42:26举报文章被收录于专栏:汇智网教程汇智网教程据统计市场上有超过1500种活跃的虚拟币,巨大数量的虚拟币种类为加密货币交易所 应用提供了前所未有的机遇。 本文将介绍虚拟币交易系统的核心组件、主要功能和开发思路。事实上,由于以太坊平台的出现,极大地加快了新的虚拟币的推出速度,以太坊平台的智能合约 提供了简单、快速发行新币的能力,如果你希望学习以太坊开发,推荐访问汇智网出色的互动教程: 以太坊DApp实战开发入门去中心化电商DApp实战开发总体结构输入图片说明虚拟币交换所应用应当快速、直观并且功能强大。 为了实现这些目标,交易所应用程序应该包含以下组件:交易引擎前端用户界面虚拟币钱包管理控制台除了这些基本功能之外,每一个虚拟币交换系统都应该有额外的功能,可以在收集用户反馈或分析全球顶级交换所应用后开发。下面我们来看看应用程序的关键组件。交易引擎交易引擎是交易所应用的核心,它对于交易执行、余额计算、订单记录访问和买/卖交易的匹配都至关重要。开发加密货币应用程序时,应当优先考虑交易引擎的建设。 如果没有功能强大的引擎,加密货币应用只能是 一个没有任何价值的空壳。前端用户界面用户界面是交易所的脸面,在很大程度上也决定了用户如何看待交易所。 确保以简约的方式构建用户友好且 直观的界面,以提供令人惊喜的交易体验,使用户更容易执行交易订单。 构建此组件时确保它具有以下功能:用户注册和登录资金存入/取出订单、交易、余额的查询与统计买进/卖出订单客户支持功能加密货币钱包嵌入对加密货币钱包的支持对于交易所应用是非常重要的。 所有加密代币/货币将存储在用户的钱包中。 安全性更强的钱包解决方案,将有助于发展用户与加密货币交易所之间的信任。钱包可以作为一个守护进程运行在交易所服务器上,使用脚本或API集成到加密货币交易所应用中。管理控制台管理控制台将帮助交易所运营商或持有者管理加密货币交换的不同操作方面。 控制台的功能可以根据具体 的业务需求进行定制,但一般来说,管理控制台必须包含以下功能:设置交易费用管理加密货币列表添加新货币向钱包记入/借记资金解决支持问题原文链接:如何开发加密货币交易所本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。如有侵权请联系 cloudcommunity@tencent.com 删除前往查看其他本文分享自 作者个人站点/博客 前往查看如有侵权,请联系 cloudcommunity@tencent.com 删除。本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!其他评论登录后参与评论0 条评论热度最新登录 后参与评论推荐阅读LV.关注文章0获赞0目录总体结构交易引擎前端用户界面加密货币钱包管理控制台领券社区专栏文章阅读清单互动问答技术沙龙技术视频团队主页腾讯云TI平台活动自媒体分享计划邀请作者入驻自荐上首页技术竞赛资源技术周刊社区标签开发者手册开发者实验室关于社区规范免责声明联系我们友情链接腾讯云开发者扫码关注腾讯云开发者领取腾讯云代金券热门产品域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL 数据库SSL 证书语音识别更多推荐数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有 深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569腾讯云计算(北京)有限责任公司 京ICP证150476号 |  京ICP备11018762号 | 京公网安备号11010802020287问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档Copyright © 2013 - 2024 Tencent Cloud.All Rights Reserved. 腾讯云 版权所有登录 后参与评论00

数字货币交易所:微服务架构设计 -腾讯云开发者社区-腾讯云

交易所:微服务架构设计

-腾讯云开发者社区-腾讯云用户1408045数字货币交易所:微服务架构设计

关注作者腾讯云开发者社区文档建议反馈控制台首页学习活动专区工具TVP最新优惠活动文章/答案/技术大牛搜索搜索关闭发布登录/注册首页学习活动专区工具TVP最新优惠活动返回腾讯云官网用户1408045首页学习活动专区工具TVP最新优惠活动返回腾讯云官网社区首页 >专栏 >数字货币交易所:微服务架构设计

数字货币交易所:微服务架构设计

用户1408045关注发布于 2019-07-31 10:24:143.2K1发布于 2019-07-31 10:24:14举报文章被收录于专栏:汇智网教程汇智网教程挑战A.I.,赢百万奖金......了解更多详情>>> 本文介绍一个实际开发并上线的加密货币交易所项目的逻辑架构设计,其中包括撮合服务、做市服务、用户服务、市场数据服务、钱包服务、报表服务等核心组件,并采用了基于AKKA集群的微服务架构。加密交易所的逻辑架构图如下所示: 如果希望快速掌握区块链应用的开发,推荐汇智网的区块链应用开发系列教程,内容涵盖比特币、以太坊、eos、Hyperledger fabric和tendermint等多种区块链,以及java、c#、go、nodejs、python、php、dart等多种开发语言。

1、订单服务订单服务(Order Service)包含了负责匹配委托单并生成市场数据的撮合引擎(matching engine)。在加密货币交易所中,委托单按交易对进行撮合匹配,因此一个ETH/BTC的买单永远不会匹配到一个ETH/USDT的卖单。通常认为每一个交易对的订单匹配是依次进行的,例如,撮合进程必须是单线程的(每个交易对一个线程)。不过实际上还是有办法让这个流程中的某些环节实现并行化以便提高系统的吞吐量。订单处理过程包括以下步骤:订单验证。这包括确认交易对处于可交易状态、校验订单的价格与数量等符合最低要求等等。资金检查。目的是确保用户的账户中有足额资金用于下单。风险检查,以避免异常的交易行为确定该委托单的挂单(Maker)费率和吃单(Taker)费率,所依据的规则可能设计交易对、订单数量、用户等级等等。创建用于撮合处理的订单对象,冻结下单用户账户中可能会用到的最大数量的资金。在交易委托账本中匹配该新订单,匹配的结果可能是:无匹配、部分成交或全部成交。当 部分成交或全部成交时,可能在交易委托账本中存在一个或多个匹配的订单。更新并持久化成交订单用户的账户余额,更新交易委托账本。持久化由订单撮合成功而触发的其他数据,例如:订单执行记录、资金交易日志等等。生成市场数据,并将更新的数据发布到前台服务器(Front Server)假设从第1步到第5步需要5ms,第6步到第7步需要2ms,第8步需要2ms,第9步需要2ms。如果系统 几乎同时接收到9个委托订单,使用单线程来执行上述全部步骤需要 9 x (5 + 2 + 2 + 2) = 99ms。然而,在上面的步骤中,其实只有第6步和第7步是真正需要单线程的。如果我们为第1步到第5步使用3个Actor,第6步到第7步使用1个actor以确保这两个步骤单线程执行,第8步和第9步使用1个actor,那么处理流程就变成了这样:在这里插入图片描述现在全部9个订单的总处理时间就缩短到了25ms,相对于前面的全串行处理所需的99ms,这是不小的改善。订单服务(Order Service)是一个使用Akka和Spring框架开发的独立应用。它作为一个节点加入Akka集群,然后集群中的前台服务器(Front Server)节点就可以发现它。当启动订单服务实例时, 我们可以在命令行参数中指定需要处理哪些交易对。我们可以使用单一的订单服务节点来处理所有的交易对,也可以使用多个订单服务节点分别处理不同的交易对集合。这意味着订单服务支持按交易对进行分片(sharding)。由于Akka系统actor的位置透明特性,前台服务节点并不需要关心订单服务是运行在一个节点还是多个节点上,这使得撮合引擎具备了水平扩展(Scale Out)的能力。如果在集群中针对一个交易对(Trading Pair)存在多个订单服务节点,前台服务节点将始终访问最近加入集群的节点。我们可以启动一个订单服务节点A来处理BTC/USDT交易对,然后启动第二个订单服务节点B也来处理BTC/USDT交易对。前台服务器会始终将消息发送给最后加入集群的订单服务节点,因此集群中所有的前台服务节点都会发送BTC/USDT订单消息给节点B。如果之后的某个时间,节点B从集群中被移除,那么所有的前台服务节点将会得到Akka集群的通知,之后就会将BTC/USDT订单消息发送给节点A了。我们使用这个用于前台服务节点和订单服务节点之间的简单的服务发现及路由协议,来实现订单服务的热备份(Hot Standby)高可用性。这个简单协议使得订单服务的水平扩展和升级非常容易。 例如,当有一个新的订单服务需要部署时,我们可以先让老版本节点继续运行,然后启动新版本的节点。一旦新版本上线,前台服务节点将自动使用最新加入的节点而非之前的老版本节点,接下来我们只需要关掉老版本节点就可以了。为了尽可能缩短订单匹配的时间,订单服务需要在内存中缓存(Cache)整个交易委托账本。当系统中存在多个处理相同交易对的订单服务节点时,就会在不同的节点上缓存交易委托账本的完全一致的多个拷贝。我们设计了一个简单但有效的方法来校验并同步多个节点上的内存委托账本。订单服务还负责生成以下市场数据:K线数据,间隔分别为:1分钟、5分钟、15分钟、30分钟、1小时、2小时、4小时、6小时、12小时、 1天、1周、1月所有交易对的市场深度(market depth)数据所有交易对的最新出价最近成交的交易对订单服务将这些市场数据存入Redis服务中,并通过Redis的复制机制同步到前台集群中的redis服务器上,然后由前台服务器载入并推送给订阅该数据的用户。2、做市服务做市(Market making)对于加密货币交易所 —— 尤其是对于一个新创办的加密交易所 —— 的成功至关重要。如果交易所没有足够的交易人,那么买卖价差(bid-ask spread)通常要大于那些具有较好流动性的加密货币交易所。做市商(Market maker)为交易所增加了流动性,缩小了买卖价差,同时也为交易委托账本增加了深度,这些因素同时也会更加吸引交易人的加入。做市商可以来自交易所的外部,他们使用交易所提供的API向交易委托账本中挂买单(Bid)和卖单(Ask)。对于一个刚创立的加密交易所而言,其本身也需要为某些交易对提供流动性,从而承担了做市商的角色。一个基本的做市策略包括同时挂买单和卖单,这样当两方的订单都被市场吃掉后就挣到了买卖价差。由于加密货币的价格剧烈不稳定性,当市场价格向一个方向持续运动时,使用这种策略的做市商有可 能损失惨重。例如,做市商挂买单以300 USDT的价格买1 ETH,同时挂另一个卖单以301 USDT的价格卖1 ETH。如果这两个订单都成交了,那么做市商就赚了1 USDT。如果卖单成交,价格继续上涨至310USDT,那么做市商的买单就没有机会在短期内成交,这导致做市商面临一个潜在的9 USDT的亏损。做市模块使用订单服务以及外部交易所的交易委托账本、做市商的有效资金等作为输入,生成一系列 不同价位的卖单和卖单。当任何输入发生变化,输出的做市委托单也会相应地变化,从而引起交易委托账本的相应变化。出于性能方面的考虑,订单服务内置了做市支持能力。订单服务将区别对待来自 普通用户的委托单以及来自做市模块的委托单 —— 这些做市委托单只需要很少的资源,因此更加具有动态性。它们可以作为一个整体加入交易委托账本,或者进行一些调整,乃至从账本中整体移除,而不需要像普通用户的委托单那样必须逐一对待。同时,这些做市委托单也可以与用户单成交,如果任何用户的委托能够匹配这些做市单,那么接下来的执行和普通委托单是一致的。除了向交易委托账本中添加订单,做市模块还能够向外部交易所下单,并且监视外部交易所中的订单执行状态,以实现自动化的对冲(Hedging)。做市模块是使用Akka和Spring框架开发的一个独立应用。它连接到集群中的订单服务节点,看起来像订单服务的扩展模块 —— 订单服务的运行不需要做市模块。3、用户服务用户服务是一个用Akka和spring框架开发的独立应用,它为前台服务器提供用户相关的服务,例如 用户注册、用户身份验证、KYC提交、密码管理、API密钥管理、充值地址管理等等。当用户服务实例启动时,它会加入Akka集群,前台服务节点将会自动发现用户服务。我们可以在集群中启动多个用户服务节点。在这种情况下,前台服务器以轮询调度方式(round robin)将消息发送给所有的存活用户服务节点,从而保证了用户服务模块的可扩展性及高可用性。用户服务可以直接访问核心数据库以及redis集群。它使用钱包服务节点提供的服务来创建新的区块链 地址。4、钱包服务与逻辑架构图中的其他模块不同,钱包服务不是一个单一的独立应用,而是由多个应用组成。这主要 是基于安全方面的考虑。作为一个整理,钱包服务:为用户账户生成新的区块链地址以用于接收充值管理交易所持有的热钱包地址私钥创建提币交易,签名并提交到区块链网络连接到多个区块链网络,搜索处理充值交易,跟踪提币交易的执行状态在某些情况下,归集散落在众多用户地址中的加密货币到交易所的中心热/冷钱包。校验交易所数据库中的资金数目,确保与区块链上的数据一致。上述这些功能,有些是由用户服务模块通过REST接口调用,有些则需要接入区块链网络,而另一些 则不需要接入区块链网络或其他模块,甚至不需要网络接入。我们将钱包服务基于其连接性与安全需求等拆分为多个应用。5、Maria DB及ETL在核心站点中包含一个Maria DB Galera集群。集群中的主(Master)数据库实例由应用直接使用,同时在集群中创建了两级从(Slave)数据库:在这里插入图片描述一个从集群中直接复制的数据库是复制中转库(replication staging database)。它作为边缘站点中的主库提供服务。当从核心数据库集群中复制时,它会过滤掉前台服务和web服务不使用的数据表,这可以避免泄漏敏感数据,同时减少了需要复制到边缘站点的数据量。另一个直接从集群中复制的数据库是报表库实例。在这个MariaDB从库实例上创建有两个库,一个用于从核心集群中复制,另一个服务于管理服务器的报表功能。我们使用多维数据模型,并且在报表数据库中实现分析报表的生成。新的数据每个几秒钟就从复制库中抽取、转换并载入,以便保证管理服务器的数据时效。出于安全及报表目的,每个30分钟或1个小时,系统制作一个所有用户状态的快照,包括账户余额、订单、交易执行等等。快照是活的,因为所有的历史快照都可以直接从报表数据库中查询并加以利用。当制作快照时,ETL流程将临时停止复制过程,以确保复制库处于静止状态。6、REdis核心站点中的Redis用于保存订单服务生成的市场数据,并通过复制机制推送到前端站点。我们之前在Part 2中已经详细介绍了redis的复制机制。7、管理服务器和ETL管理服务器是一个J2EE web应用,使用spring框架和spring mvc开发。Tomcat作为管理服务模块的应用服务器。Nginx置于Tomcat之前以启用HTTPS以及内容缓存。管理服务器为交易所内部员工提供后台管理系统。采用基于角色的权限分配机制,用户可以分配不同的角色,而不同的角色则可以访问系统中的不同功能。管理服务器可以对每个用户的每个操作都生成审计日志。我们使用ELK栈作为准实时分析子系统的基础。Logstash负责从各种来源(例如前台服务器和web服务器)采集日志并存入Elasticsearch数据库。验证过身份的交易所员工可以使用Kibana来查看预定义的报表,或者在ElasticSearch上执行任意的查询。我们也在管理服务器上构建了一些查询Elasticsearch数据的报表,这样大部分员工就不用同时访问管理服务器和Kibana了。原文链接:加密货币交易所微服务架构设计 —— 汇智网 (adsbygoogle = window.adsbygoogle || []).push({}); 本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。如有侵权请联系 cloudcommunity@tencent.com 删除前往查看微服务数据库sql本文分享自 作者个人站点/博客 前往查看如有侵权,请联系 cloudcommunity@tencent.com 删除。本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!微服务数据库sql评论登录后参与评论0 条评论热度最新登录 后参与评论推荐阅读LV.关注文章0获赞0目录1、订单服务2、做市服务3、用户服务4、钱包服务5、Maria DB及ETL6、REdis7、管理服务器和ETL相关产品与服务数据库云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!产品介绍2024新春采购节领券社区专栏文章阅读清单互动问答技术沙龙技术视频团队主页腾讯云TI平台活动自媒体分享计划邀请作者入驻自荐上首页技术竞赛资源技术周刊社区标签开发者手册开发者实验室关于社区规范免责声明联系我们友情链接腾讯云开发者扫码关注腾讯云开发者领取腾讯云代金券热门产品域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL 数据库SSL 证书语音识别更多推荐数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有 深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569腾讯云计算(北京)有限责任公司 京ICP证150476号 |  京ICP备11018762号 | 京公网安备号11010802020287问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档Copyright © 2013 - 2024 Tencent Cloud.All Rights Reserved. 腾讯云 版权所有登录 后参与评论100

GitHub - BKhouse/BKExchange: 数字货币合约交易所,虚拟货币(BTC、ETH,BNB等)交易所项目。基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(前后端完整)

GitHub - BKhouse/BKExchange: 数字货币合约交易所,虚拟货币(BTC、ETH,BNB等)交易所项目。基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(前后端完整)

Skip to content

Toggle navigation

Sign in

Product

Actions

Automate any workflow

Packages

Host and manage packages

Security

Find and fix vulnerabilities

Codespaces

Instant dev environments

Copilot

Write better code with AI

Code review

Manage code changes

Issues

Plan and track work

Discussions

Collaborate outside of code

Explore

All features

Documentation

GitHub Skills

Blog

Solutions

For

Enterprise

Teams

Startups

Education

By Solution

CI/CD & Automation

DevOps

DevSecOps

Resources

Learning Pathways

White papers, Ebooks, Webinars

Customer Stories

Partners

Open Source

GitHub Sponsors

Fund open source developers

The ReadME Project

GitHub community articles

Repositories

Topics

Trending

Collections

Pricing

Search or jump to...

Search code, repositories, users, issues, pull requests...

Search

Clear

Search syntax tips

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

Sign up

You signed in with another tab or window. Reload to refresh your session.

You signed out in another tab or window. Reload to refresh your session.

You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

BKhouse

/

BKExchange

Public

Notifications

Fork

0

Star

1

数字货币合约交易所,虚拟货币(BTC、ETH,BNB等)交易所项目。基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(前后端完整)

1

star

0

forks

Branches

Tags

Activity

Star

Notifications

Code

Issues

0

Pull requests

0

Actions

Projects

0

Security

Insights

Additional navigation options

Code

Issues

Pull requests

Actions

Projects

Security

Insights

BKhouse/BKExchange

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

 mainBranchesTagsGo to fileCodeFolders and filesNameNameLast commit messageLast commit dateLatest commit History9 Commitsimgimg  README.mdREADME.md  View all filesRepository files navigationREADME开源代码仅供参考学习,请勿用于非法用途;

数字货币合约交易所,虚拟货币(BTC、ETH,BNB等)交易所项目。基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(前后端完整)

运行演示

添加 TG:Maidensr 获取

后端 & 代理商后台 等演示

添加 TG:Maidensr 获取

基于ETH发行ERC20代币可参考:

https://gitee.com/ethergo/ether-erc20-token

收集了431个基于以太坊发行的ERC20代币源码,基本上能找到各种业务模型的ERC20代币业务模型

添加 TG:Maidensr 获取

币币现货交易(完整度100%,不开源)

法币交易(完整度100%,不开源)

合约杠杆交易(完整度100%,不开源)

极速兑换(完整度100%,未开源)

新币首发活动(完整度100%,未开源)

永续合约(完整度100%,不开源)

期权合约(完整度100%,不开源)

代理商系统(完整度100%,不开源)

声明:本开源代码仅开源前端,小伙伴可体验,本交易所完整源码仅向有技术团队或技术实力的人提供,小白或不同技术的请勿咨询!

如有Android/IOS开发需求,我们也可以承接

简要介绍

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

撮合交易引擎

后台管理(后端+前端)

前台(交易页面、活动页面、个人中心等)

uniapp前端源码

部署文档

仅限客户使用

关于技术构成

后端:Spring、SpringMVC、SpringData、SpringBoot

数据库:Mysql

其他:redis、kafka

前端:uniapp、Vue、iView、less

如果你没有技术人员,我可以帮助你搭建一套完整的交易所系统,但是需要你请一到两名维护人员,因为系统的稳定运行少不了运维人员。

系统运行环境

Centos 6.8

MySQL 5.5.16

Redis-x64-3.2.100

nginx-1.16.0

kafka_2.11-2.2.1

Vue

Hbuilder X 3.6.15

JDK 1.8

生产环境建议配置

一台4核16G服务器搞定,带宽根据需求确定

前后端源码购买

预算太低请绕道

添加 TG:Maidensr 查看演示

PC页面展示

首页

行情

币币交易

期权交易

新币认购

邀请好友

合约交易

APP/H5页面展示

特别注意

任何使用本源码从事商业活动,对别人和自己造成损失的,本人概不负责!

About

数字货币合约交易所,虚拟货币(BTC、ETH,BNB等)交易所项目。基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(前后端完整)

Resources

Readme

Activity

Stars

1

star

Watchers

1

watching

Forks

0

forks

Report repository

Releases

No releases published

Packages

0

No packages published

Footer

© 2024 GitHub, Inc.

Footer navigation

Terms

Privacy

Security

Status

Docs

Contact

Manage cookies

Do not share my personal information

You can’t perform that action at this time.

虚拟币交易所开发-币币交易平台开发 - 知乎

虚拟币交易所开发-币币交易平台开发 - 知乎切换模式写文章登录/注册虚拟币交易所开发-币币交易平台开发币圈扛把子​区块链软件开发者 喜欢感兴趣的随时知乎私信我哈虚拟货币交易所,币币交易平台开发起源于17年,狭义的定义区块链币币交易系统开发:按照时间顺序将数据区块以链条的方式组合成特定数据结构,能够安全存储简单的、有先后关系的、能在系统内验证的数据。广义的区块链币币交易系统开发:使用加密技术来验证与存储数据、使用分布式共识算法来新增和更新数据、运行在区块链上的代码,来保证业务逻辑的自动强制执行的一种全新的多中心化基础架构与分布式计算范式。币币交易平台开发优势: 一、更具灵活,只需要注册平台账号即可进行交易,对于买家而言过程简洁方便。 二、隐私保护强。不会有交易资金信息保留在平台上,因为线上线下一对一交易。 三、交易量可以非常大,例如要买一千个币,短期内是收不到的,平台币的价格也会被拉的非常高。但点对点交易可以锁定价格,一次性成交。 其中虚拟货币交易所除币币交易之外还有C2C/OTC场外交易。 C2C/OTC场外交易平台:用户可以自由买卖虚拟货币,快速智能匹配订单,快速成交,无须等待撮合,平台担保,用户场外交易更安全可靠。发布于 2022-04-06 16:44虚拟币交易所​赞同 1​​添加评论​分享​喜欢​收藏​申请