主页 > 下载imtoken钱包官网苹果版 > 专访火币CTO鞠建华:数字货币交易平台的基础设施与技术挑战

专访火币CTO鞠建华:数字货币交易平台的基础设施与技术挑战

在最近的“比特币产业峰会暨火币一周年庆典”期间比特币云挖矿ios,InfoQ 就数字货币交易平台的基础设施和技术挑战采访了火币 CTO 鞠建华。 他分享了他在行业中的宝贵经验和精彩观点。

InfoQ:首先,请自我介绍一下。

鞠建华:我先后毕业于电子科技大学和中国人民大学。 曾就职于海虹控股、中搜、大麦网、YOKA时尚网等知名IT公司。 多年来一直从事互联网电子商务、搜索和门户相关技术的研发工作。

在职期间,他成功搭建了国内最大的票务网站大麦网全国在线售票系统,并部署在数千个场馆节点,支撑了国内70%以上的演出和体育赛事的门票销售。国家; 5年互联网金融软件领域创业经验,主持开发了多款基于上交所二级高速行情数据的软件产品; 2013年进入医疗行业应用开发,推出基于知识库的Amokang智能处方评价系统,已应用于100多家大型医院,取得了很高的成绩。2014年加入火币网后比特币云挖矿ios,火币网的比特币交易系统全面重构,更加高速、稳定、开放。

InfoQ:与传统金融交易平台相比,火币比特币交易系统(以下简称火币)有何不同?

鞠建华:由于市场性质的不同,火币网与传统金融交易平台的业务运作有较大差异。 比特币是一种全球数字资产,其价格会受到全球市场的影响。 这种价格波动的影响在金融杠杆交易后被放大了数倍,导致交易系统必须满足全年24x7不间断的交易服务。 系统服务的中断意味着市场将出现剧烈波动,交易量增加,因此我们需要在系统设计上尽可能避免停机维护,从硬件到软件做到完全冗余和高可用。 每个系统都完全围绕高可用性和容错进行设计和实施。 我们做所有系统模块的高可用性和核心交易系统的快速故障转移。

与传统金融交易平台相比,火币在做数字加密货币金融业务的同时,也是一家互联网公司。 众所周知,互联网产品的创新迭代是非常快的。 在快速迭代的产品开发过程中,我们推出了大量不同的创新金融服务。 这也导致了非常复杂的资产结算逻辑。 当高峰期日交易量达到10亿人民币的时候,我们不能像传统证券交易所那样当天卖出证券资产,第二天再提现,因为比特币这个领域太新了。 在没有法律认可的第三方资金监管的情况下,用户希望自己的资产可以随时掌握在自己手中。 这给用户带来了法币和虚拟货币充值提现的实时结算需求。 我们的结算和风控系统的设计也变得非常复杂,结算和提现的实现加上比特币资产不可回收的特性,出现任何问题都是非常致命的。 所以我们在技术上比传统金融平台有更大的差距。 挑战。

比特币莱特币挖矿教程_比特币云挖矿ios_比特币挖矿软件

InfoQ:火币网的技术难点是什么? 如何解决?

鞠建华:火币网的技术难点主要在比特币撮合引擎和比特币数字资产管理两个方面。

与传统证券交易所同时进行数千种商品交易不同,火币网目前只有比特币和莱特币两种主流数字货币在交易,这意味着每天10亿的交易量到未来的交易量不断增长时,所有用户正在报价和交易这两种商品。 由于撮合交易的规则要求撮合交易完全遵循时间优先和价格优先的原则,这就导致了单个产品的日交易量较大。 在一定程度上,它超过了目前流通的大部分股票和证券交易。 它不能像传统证券交易所那样通过增加集群节点,将不同的商品放在不同的服务器上来增加交易系统的容量。 针对这个问题,我们通过选择单进程计算最占优势的硬件,对算法进行了大量改进,实现了单机匹配性能一个数量级的提升,保证了对未来交易业务增长的支持。

比特币本身是一个分布式网络。 普通用户只需下载安装钱包客户端,或使用在线钱包服务即可满足使用比特币的需求。 但是,由于比特币网络还处于早期发展阶段,并没有非常有效的开源软件能够支持比特币交易所等大量中心化比特币资产充值和提现的业务需求,所以我们需要按照比特币协议重新设计、量身定制的兑换钱包软件,高效、安全,满足了数十万用户的充值和提现需求。

InfoQ:火币的技术栈是怎样的?

比特币莱特币挖矿教程_比特币云挖矿ios_比特币挖矿软件

鞠建华:火币网最初是基于LNMP构建了一个交易平台,使用C++实现了密钥钱包和撮合引擎。 随着业务的发展,业务增长带来的经营压力加大,我们逐步针对业务特点开展。 相应的技术升级。

首先,我们升级到面向服务的架构。 原来的PHP作为web层实现与用户的交付,业务层转移到用Java开发的后端服务。 在这种架构下,我们可以保持一个非常高效的前端产品迭代周期。 ,保证整个服务平台的健壮性。

在服务框架方面,我们分别采用了Rest.li和Thrift,根据不同的应用场景灵活选择,通过ZooKeeper实现服务配置管理和集群管理。 和大多数互联网公司一样,我们在实际业务中大量使用Redis做持久化存储和数据缓存,使用Haproxy和LVS结合Keepalived实现关键系统的软件负载均衡。

在消息服务方面,我们分别使用RabbitMQ和Appolo来实现订单和行情数据的发布管理。 通过Node.js和QuickFix这两个开源项目,我们实现了实时行情推送,为用户提供可靠的交易API Serve。

Python承担部分运维管理和日常数据处理任务。

比特币云挖矿ios_比特币挖矿软件_比特币莱特币挖矿教程

在数据库层面,我们使用MongoDB来承担所有行情数据的存储和分发,通过MySQL和InnoDB实现业务数据的存储。 同时,我们的交易终端覆盖Windows/Mac OS X/Android/iOS,为用户提供更好的桌面端和移动端交易体验。

InfoQ:安全对于数字货币来说至关重要。 火币从技术角度如何保障安全?

鞠建华:安全对于交易所来说非常重要。 日本最大交易所MtGox因安全问题关闭,影响了全球比特币的价格走势,也为整个比特币交易领域敲响了警钟。

火币网在成立初期就设立了安全部门。 经验丰富的安全专家带领团队参与火币网开发运营的方方面面。 从代码安全到系统监控乃至社会攻击防护,处处都有安全部门的身影。 在火币网发展最快的时候,我们面临着大规模的DDOS攻击,高峰时攻击流量达到80多G。 在完善自身系统和系统的同时,我们还引入了物云、安安宝、加速等安全服务。 各领域公司的专业服务,这些工作让火币网从不存在安全隐患。 在解决自身安全问题的同时,我们也在风控系统中加入了对用户的安全监控。 例如,如果用户账号被盗用后出现异常的登录和退出行为,我们的客服系统会有相应的报警。 工作人员会在第一时间与用户进行电话验证。

InfoQ:对于7x24的服务承诺,火币在架构和运维方面是如何做的?

比特币挖矿软件_比特币云挖矿ios_比特币莱特币挖矿教程

鞠建华:我们在所有的系统架构上都做了很多高可用的设计,我们在前端的web层和后端的数据缓存、业务服务层都允许任意节点失效。 在数据库层面,我们通过复制和数据分区实现了主备层面的高可用。 发生故障后,查看对应的业务日志,通过IP漂移快速恢复数据库。

在运维方面,我们实现了从硬件层面的IDC机房线路到防火墙等网络设备的自动主备切换能力。 我们使用 Zibbix 改进了监控系统。 除了监控所有的服务器和网络设备,我们还提供了上百个监控点,让我们能够在第一时间得到系统的健康状态和问题报告。 我们的运维和客服在工作时间24小时待命,确保不会出现管理漏洞导致的意外故障,并随时为用户提供联系和报告故障的渠道,以便我们及时响应快速回答用户的问题。

InfoQ:对于火币网的重构过程,有哪些经验和收获可以和大家分享一下?

鞠建华:火币网的改造主要体现在技术平台的升级和技术团队的建设。 通过最初的问题分析、方案制定和人员招聘,我们只用了比较短的时间。 在这个过程中,管理团队的支持非常重要。 重构过程中最重要的部分是火币网重构完成的升级工作的主要挑战是过程中不能暂停业务。 因此,从重构初期到升级完成,我们都没有发布过停机服务的公告。 不停的重构和复杂的业务环境,让我们在重构升级的过程中常常面临一些困境和妥协的选择,一些问题也在这个过程中产生和遗留。 在这个过程中,我所学到的主要经验教训有以下几点:

InfoQ:火币下一步的发展路线图是什么?

比特币云挖矿ios_比特币挖矿软件_比特币莱特币挖矿教程

鞠建华:下一步,火币网将通过完成全产业链的布局,带动整个比特币产业和业务链的发展。 具体来说,在技术层面,我们将设计新一代的交易系统,使其具有更好的性能和自动容灾切换能力。 同时,加大在矿场、比特币钱包、比特币支付、虚拟货币基金、虚拟商品期货等金融衍生品领域的技术研发力度,为完善比特币应用提供有力的技术支持。在金融领域和现实世界中。

InfoQ:目前互联网金融很火,很多IT人员都想进入这个领域。 从您的职业生涯角度,您有什么建议?

鞠建华:目前互联网行业普遍缺乏高级IT人才,尤其是在互联网金融领域。 但与社区门户、搜索、电商等领域不同,互联网金融领域对安全性和稳定性的要求非比寻常。 掌握要求更深入。

比如很多人都非常熟悉MySQL数据库。 在传统的互联网领域,他们只需要了解一般的主从复制和sql语句的编写和调优。 但是,当使用MySQL存储用户资产,时刻进行高并发事务时,需要对数据库事务有深刻的理解,才能在保证数据的准确性和一致性的前提下,保证计算的准确性和性能。 在金融领域,主从复制成功的数据库还需要校验数据的正确性,这在其他领域并不多见。 由于成本原因,大部分中小互联网金融公司大量使用MySQL数据库,而不是Oracle解决方案。 因此,对于想进入互联网金融领域的人来说,值得深入学习。 但是,当它们发展到一定规模的时候,Oracle和DB2都会在一定程度上成为主流,这也是需要掌握的。

Java平台是互联网金融领域技术平台的主力军。 几乎所有的主流金融平台都是使用Java开发的。 对于想进入互联网金融领域的IT人员来说,最好能够系统掌握Java平台的开发设计。

金融知识的掌握也是进入互联网金融领域的一大挑战。 如果不了解金融产品的基础知识,就无法理解复杂的业务逻辑,也很难胜任高级系统架构师和开发人员的职位。 这些都是同时存在的挑战。 这也是一个机会。

在10月举行的QCon上海2014大会上,鞠建华将作为“互联网思维对金融的挑战”这一主题的特邀讲师,分享“火币比特币交易系统的建设实践”的演讲。