您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 1.10 API接口子系统 - 申思维的技术站点
揭开数字货币交易的神秘面纱申思维2018.10讲师介绍申思维,05年华南理工毕业。曾经服务摩托罗拉,优酷,多家公司CTO,明创软件创始人。工作13年未脱离开发一线经手的项目近百,从桌面应用,网站,ERP,再到爬虫,到H5和App都接触过。四年的持续创业者。参与三个交易所的开发。上千篇技术博客和笔记前言区块链的最成熟应用是数字货币。数字货币的最终落地点是交易平台(俗称交易所)。很多人对于交易所总有一种神秘感。实际上这是由于传说中的鄙视链决定的。跟韭菜,发币方,搬砖者相比,交易所是整个生态链的顶端。所以交易所的一切细节,懂的人最喜欢隐而不谈。笔者曾经参与过3家交易所的开发。也参与安全和运营,所以对于交易所的每个细节都很清楚。要开发一个交易所,没有一个7年以上经验的老兵带队,是没法开始的。会遇到各种各样的问题。适合人群期望了解交易所开发的人群。发币方(想自行组建团队开发交易所,或者想深入了解交易所的奥秘的)量化交易人员(希望对交易所的交易机制有更深入了解)上币方高阶区块链爱好者技术层面的五个支柱两大门槛三大进阶四大辅助五大核心八大难点第一部分开发本节适合开发人员和产品经理.1.1交易所的本质概述本节讲述了交易所的本质。如果认不清,那么交易所的开发就会变成一团乱麻。只有认清本质,交易所的开发才能很快上手,少走弯路。1.2单点登陆子系统交易所是有很多个子系统构成的。单点登录是一种粘合剂,把所有的系统都整合到一起,非常重要。有了单点登录,我们的开发才会简洁明快,部署和维护都非常方便。这个技术既简单又重要,是处理复杂系统的基本元素。单点登录,位列“交易所五大核心”的首位。1.3主系统主系统是交易所的“五大核心”之二。交易所首先要有用户,所以主系统负责用户的注册,忘记密码,修改密码还包括:用户的资产,用户的手机绑定,邮箱绑定,google验证器的绑定,推荐码的生成。一切都是以它为基础,所以我们称之为“主系统”1.4币币交易界面子系统交易界面是五大核心之三。这里特指“币币交易界面”。标准的币币交易类型分成Market(市价交易)和Limit(限价交易)两种。可以认为限价交易是基础,市价交易更加简单。所以我们本章只着眼于限价交易即可。本章会涉及到:下单页面的展现和表单验证,交易所中某个交易对的挂单列表,挂单的成交情况,K线图,24小时交易量和涨跌幅的展现。1.5场外交易子系统(OTC)场外交易是交易所的五大核心之四,几乎是每个交易所的必备。在9.4政策之后,对于新人来说,如果没有数字币,就没法入场。所以场外交易就是用法币和数字币互相兑换的场所,特别适合小白和新韭菜,也极其适合传统的传销币人群的转换。本节适合开发人员、产品经理、运营人员,以及OTC的商家(或者叫搬砖者)和发币方.1.6管理员子系统每个交易所都要由自己的工作人员来管理。所以管理员子系统是交易所的五大核心的最终核心,也是运营系统。离开它,运营人员就无法管理币种、新增交易对(上币)、查看每天的收益、每日的新增用户、分析用户的行为,查看充币、审计提币和对用户进行资金的审核。本节适合开发人员、产品经理、上币方和运营人员1.7财务审核子系统交易所的四大辅助之首。每个交易所的安全,都要由它来守护。财务审核系统包括:币币交易、场外交易、糖果空投、站内的转账、新币种的打新收入等全部。必须每一笔账都对平才行。本节适合开发人员、产品经理、运营和老板。(敲黑板:交易所老板如果不想亏钱一定要看)1.8上币方子系统交易所的四大辅助之二。每个上币方在交易所上币后,都希望有一个管理后台,可以进行糖果空投,注册用户的管理,查看持币用户等。一个好的上币方管理系统可以大幅提高上币方的热情,也可以为交易所分辨出哪些币种是活跃币,哪些币种是冬眠币,及时告知发币方采取必要的措施。1.9后台服务程序交易所运行的各种依赖程序查询类脚本(币种价格,行情)统计类脚本(24H交易量)广播类脚本(websocket)功能性脚本(身份证,人脸识别)交易类脚本(撮合,OTC订单的取消)状态自查类脚本(心跳程序)1.10API接口子系统交易所三大进阶之一。API接口允许用户进行远程的量化操作。几乎是每个高级的交易所的必备功能。有了API,交易所的交易额度可以大幅提高上万倍。这个对于“手续费”的收入有极其重要的影响。另外,对于做市(MarketMaking)、画K线,API都是必要的组成部分。不过,接口系统对于技术的要求也是非常高的。国内一流的交易所(火币和币安)的接口都不太稳定,国外的Bitfinex口碑不错。如果要上API,一定要多关注系统的性能,解决瓶颈。本节适合开发人员、产品经理1.11内容管理系统交易所的三大进阶之二。可以让用户及时的了解到当前的公司状态、相关新闻、使用帮助、价格汇率、法律政策、上币公告等,可以说是宣传的灵魂。内容管理系统,虽然很多人使用zendesk,但是一个标准型产品,很多地方是不具备定制化的需求的。如果我们只是需要基本功能的话,可以。但是往往随着交易所的发展,大家个性化的需求越来越多。同时,zendesk在国内的打开速度非常慢。所以,对于初期小规模的交易所,有个自己的内容发布系统是非常重要的。本节适合开发人员、产品经理、运营人员1.12机器人子系统机器人是量化交易的表现形式。可以应用在很多场景:一个新币上币后,交易所会要求发币方护盘,发币方会希望控制K线的走向和成交量。没有机器人的市场冷冷清清,有机器人的市场红红火火,一片繁荣。所以机器人是交易所的三大进阶之三。本节适合开发人员、量化交易者和发币方的护盘人员。第二部分.技术细节交易所是我接触过的近百个项目中最有技术含金量的。所谓的技术难点,都是由一个个点构成的,它们有的可以在公开的资料中找到,有些是难以找到的,特别是中文资料奇缺,想了解一定要看英文官方文档。本章的读者受众:开发人员,团队CTO。2.1如何画K线K线就是不同时间点的市场价格和交易量的表现形式,是由成交的历史数据构成。差的K线几乎没有正面作用,好的K线图和工具则是操盘好手的最爱。TradingView是当前世界最先进的K线图显示软件,支持上百种画线方式,功能及其强大,几乎所有主流交易所都使用TradingView。这个软件不开源,中文几乎没有文档,或者残缺不全,读起来不知所云。而就算注册之后,英文原版的文档内容更是庞杂,跟微信的技术文档有一拼。所以这里往往会耗费开发者少则大半月,多则一两个月的时间,而且需要前端和后端一起研究才行。TradingView的使用,是交易所技术的八大难点之一。适合:开发人员,团队CTO,产品经理。2.2锚定大交易所对于刚创建的交易所,很多币种都要跟大交易所对标,也就是说,价格、交易量、K线等都应该跟大交易所一致,这样用户来了看起来才觉得像样子。否则用户进来发现冷冷清清,价格跟大交易所也不一致(例如偏差比较大的话),这个用户就会流失。锚定大交易所的主要手段,就是使用API来读取市场数据、或者进行对冲交易。技术人员,产品经理,团队CTO和量化做市人员。2.3从大所同步K线和交易量新生的交易所都是基本没用户和交易量的,所以K线图和交易量是重中之重。一个好的K线图和合理的交易量,是面子工程做足的表现,不管有多少用户,外人都是看不出来的,都会觉得:这个交易所好像人很多很繁荣的样子啊,留下玩一玩吧。技术人员,产品经理,团队CTO,做市人员。2.4自行设计K线走势这里是做市的外在表现。K线虽然是由各种点位组成,但是想要画出合理的K线可不容易。在TradingView强大的功能之下,就算是小白韭菜,都能看出来那个K线是真的,哪个是假的(机器人做的)。所以,这里很需要功夫来打磨。本节内容也是做市团队的不宣之秘,网上基本没有公开的中文材料。这里也是交易所的八大难点之二。做市人员,技术人员,团队CTO。2.5推荐码和渠道管理八大难点之三。好的推荐码可以为运营产生非常好的效果,一天拉来上千人不是梦。通过推荐码和相关的渠道管理,也可以知道运营的成果。同时,也可以根据渠道的流量来对上币方进行考核。2.6用户的KYC八大难点之四。KYC(Knowyourcustomer,等同于实名制)是交易所运营的基础。虽然区块链的本质之一是“匿名性”,但是交易所一定要实名,特别是“中心化交易所”,这样才方便管理。KYC的方式包括:护照,身份证正反面的识别,人脸的活体检测。这里绝对不能人工操作,一定要使用第三方提供的接口实现自动化。技术人员,产品经理。2.7拖拽验证码八大难点之五。网络攻击的最常见手法就是请求轰炸(HugRequestAttack)。如果不用验证码,竞争对手可以轻易的让我们的网站瘫痪,或者使用机器人堵塞某些进程。使用拖拽验证码可以有效的进行人机识别。2.8短信验证码短信验证码是非常好的通知手段,可以在用户做任何重要操作的时候发起通知,包括:登录、购买OTC订单、提币、KYC验证、修改密码等。总之,短信验证可以出现在一切重要的部分,作为用户密码的有效补充。2.9撮合系统的一种实现撮合系统是交易所的核心。这个策略对于不同的交易所有不同的实现策略。同样的策略,在不同的并发请求下表现也不一样。并且撮合并不是唯一功能,好的撮合系统还需要可以及时的保存数据,回滚,撤单等。本节会对此进行一些启发性的讲解。技术CTO匹配取消挂单撮合排序理想的撮合系统大并发下的撮合交易可恢复的撮合交易(具备快照功能)手续费:对于己方账户的识别和处理交易频率:对于己方账户的识别和处理2.10架构层面的用户账号的安全用户账号在数据库中往往是连续的id来排列的。对外的话就需要一套独立的id来表示。否则就会被黑客所猜测到。我们需要在不同的场景下使用不同的唯一字符串来指代用户。这样的话才能在实现需求的同时保证不被黑客攻击。2.11谷歌验证码谷歌验证码是八大难点之六。可以认为它是短信验证码的替代品,而且优势在于不需要短信费用,也不需要等待短信的时间,而且跟SIM无关,一次绑定后飞行模式下都可以使用。它是所有的交易所的标配,当用户绑定完手机号码之后,就应该做这个。2.12图片CDNCDN可以大幅提高网站的打开速度,减轻服务器的压力。建议所有可能的地方都使用CDN。本节会让你知道如何使用基本的CDN。非常简单又重要的内容2.13使用Redis进行性能优化当系统出现问题的时候,两种解决方案:直面性能瓶颈,改进算法。第一条不行的,使用缓存来改进性能。Redis是最广泛的缓存服务器,本节会根据一些实际的情况,来讲述交易所中的缓存使用场景和架构。开发人员,CTO。2.14MySQL的性能优化与大数据库的处理交易所每天的交易量非常巨大。往往一天的交易次数轻松达到十万笔。这样产生的关联数据也会很多,合计下来一个季度就会达到千万级的数据。对于这样大的数据库,无论是查询还是备份等操作,都比普通项目要难得多。所以也是八大难点之一。本节讲述大数据下的性能优化和相关问题的处理。2.15统计相关统计是交易所的必备功能,包含的内容有:涨跌幅、成交量、最高最低价格、以及相关报表等。开发特点是比较繁杂,充满了各种计算。八大难点之一2.16上新币和交易对的技术处理上新币的本质是在数据库中增加相关的币种和市场资料。本节会举例说明如何添加新币种,如何配置交易对。可以说,只要掌握了配置项,这里就可以完成的很好。2.17服务器的选择服务器是很重要的一环。距离产生延迟,所以我们要根据交易所的目标人群选择好服务器所在的区域和供应商。特别是祖国大陆的政策和支付方式都有不同,所以有必要了解这部分内容。开发人员,CTO第三部分钱包,充币和提币本章内容属于交易所的两大技术门槛之一。属于交易所的不宣之秘,网上没有任何文章,也没有交易所的CTO愿意站出来透露相关的技术方案。在ETH出现之前,每个币都存在于主链上,所以情况简单一些。当E
本文标题:1.10 API接口子系统 - 申思维的技术站点
链接地址:https://www.777doc.com/doc-3114485 .html