从 0 到 1 构建加密货币价格走势图

【汇新云】为大家定期更新文章,【汇新云】IT人的产业链平台


最近看到一篇文章 Build a Cryptocurrency Price Tracker in 5 Minutes,笔者对加密数字货币价格走势不是特别关心,但这篇文章非常有趣,本文想从技术的角度分析下实现思路。

从 0 到 1 构建加密货币价格走势图_第1张图片

题图来自: © Mr. Crowd / Tether Claims US$30 Million Worth of Token Stolen / mrcrowd.com

Joe Hanson 实现此功能使用了如下的 技术栈

PubNub JavaScript SDK,消息接口

EON SDK,图表框架

CryptoCompare,加密数字货币价格 API 接口

实现原理 如下:

采用发布订阅的功能,使用 PubNub 做消息发布

发布器根据设定的规则调用 CryptoCompare API 接口,这个可以理解成服务端

订阅器接收发布器采集到的数据,然后用图表框架 EON 展示

具体来说,发布器的构建需要 PubNub 账号。发布器使用 JavaScript 实现,需要使用 PubNub 账号提供的 Publish Key 和 Subscribe Key 构建 PubNub 和 XMLHttpRequest 对象。

接下来创建 processRequest 函数,这个函数的功能是接收 CryptoCompare 接口的返回结果,然后发布不同币种的加密货币价格走势数据到不同的 Channel。接着需要创建 main 函数入口,这个函数的功能是定时调用 CryptoCompare 接口。比如如下接口的含义表示同时获取 BTC、ETH、EOS 的实时价格,并且以人民币 CNY 展示:

https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,EOS&tsyms=CNY

接下来我们再看下订阅器。发布器可以取到实时数据,我们需要订阅器来接收这些数据,并且用图表展示出来,此时就需要 EON 框架了。EOS 框架我们需要引入 eon.js 和 eon.css。然后我们创建 N 个 div 样式,接着我们仍然需要构建 PubNub 对象,不过此时只需要填写 Subscribe Key。接下来为了表格更加美观,我们需要设置一系列的参数。然后我们初始化 N 个 EON 图表,这些 EON 图表会接收来自发布器的不同 channel 的数据并展示给用户。

我们在浏览器同时打开发布器(cryptoPublisher.html)和订阅器(cryptoSubscriber.html),就可以在订阅器中看到实时展示的图表了。效果如图:

当然,生产环境我们还需要 Access Manager 来做安全控制。

这只是一个最小化的例子,CryptoCompare API 还有很多功能,订阅器也可以做美观优化,感兴趣的读者不妨试试。笔者根据原作者项目修改的源码已经上传到 GitHub。

94 之前,云币网是一个明星交易所,云币是基于开源的 peatio 构建的。peatio 是用 Ruby 实现的,对交易所感兴趣的读者不妨去读下 peatio 的源码。总之看了 peatio 提供的 feature,非常强大。

加密数字货币价格走势曲线图是交易所的核心功能之一。当然,线上业务比这复杂得多,本文只是提供了一个雏形供读者参考。


学好区块链,拥抱新未来:

区块链产品经理(点击入驻),和圈内人士混个脸熟

你可能感兴趣的:(从 0 到 1 构建加密货币价格走势图)