首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

构建 EOS 区块链浏览器 API

这是「区块链技术指北」的第 34 篇文章。

0x00 背景

在上一篇 文章 中笔者讲解了如何将 EOS 链上数据实时异构到 MySQL 数据库。数据既然有了,就要有用武之地。传统互联网获取数据的方式,最底层是数据层,然后有各种各种的 API,API 访问数据,再供前端展示。

本文讲解如何使用开源的 EOSTracke-API 构建区块链浏览器 API。

0x01 部署

EOSTracke-API 使用 PHP 编写,为了能让它正确地运行,我们需要安装 PHP 相关依赖,命令如下:

$ apt-get -y install php7.1 php7.1-common

$ apt-get -y install php7.1-curl php7.1-xml php7.1-zip php7.1-gd php7.1-mysql php7.1-mbstring

$ apt-get -y install php7.1-apcu

$ apt-get -y install php7.1-intl

$ apt-get -y install php7.1-redis

需要注意的是,PHP 需要 7.1 版本,所以按照如上的命令执行即可。

接着安装 PHP composer,命令如下:

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

$ php composer-setup.php

$ php -r "unlink('composer-setup.php');"

然后安装 EOSTracker-API。

$ git clone https://github.com/EOSEssentials/EOSTracker-API.git

$ cd EOSTracker-API

$ ./composer.phar install

安装过程中会输入如下的几个参数:

secret,建议随机生成

env(DB_URL) 输入 'mysql://YOURUSER:YOURPASS@127.0.0.1/YOURDB',其中 YOURUSER 表示连接 EOS 区块链数据库的用户名,YOURPASS 表示连接 EOS 区块链数据库的用户密码,YOURDB 表示 EOS 区块链数据库名字

env(REDIS_URL),目前暂未实现,推测作者想解决直接访问 MySQL 速度过慢问题

如果命令行交互输入错误,我们可以编辑 文件手动修改。

完成之后,运行如下命令启动 Server:

$ nohup php bin/console server:run 0.0.0.0:8000 > api.log 2>&1 &

0x02 测试

浏览器访问http://xxx.xxx.xxx.xxx:8000即可访问 API,在http://xxx.xxx.xxx.xxx:8000/_profiler/ac3944?panel=router即可看到所有的 router,读者可以访问如下的连接测试 API 是否能够正常读取 MySQL 数据。

http://xxx.xxx.xxx.xxx:8000/accounts/eosio.token

当然,可以给 API 配置 HTTPS 域名,参考如下的文章:

How To Install Nginx on Ubuntu 16.04

Configuring a Web Server

How To Secure Nginx with Let's Encrypt on Ubuntu 16.04

0x03 小结

目前有较多的区块链浏览器,具体可以访问由 SuperONE 团队整理的 awesome-eos。EOSTracker 是较早开源的区块链浏览器,后端使用 PHP,前端使用 AngularJS,读者感兴趣可以阅读源码。

「区块链技术指北」同名知识星球,二维码如下,欢迎加入。BTW,李笑来老师也加入了。

题图来自: © EOS / Block.one / eos.io

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180708G0ZD1N00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券