文 / 温国兵
这是区块链技术指北的第 34 篇文章.
如果对我感兴趣, 想和我交流, 我的微信号: Wentasy, 加我时简单介绍下自己, 并注明来自区块链技术指北. 同时我会把你拉入微信群区块链技术指北.BTW, 李笑来老师也加入了我的知识星球, 文末有加入方式.
0x00 背景
在上一篇 文章 https://dbarobin.com/2018/07/06/eos-sql-db-plugin 中笔者讲解了如何将 EOS 链上数据实时异构到 MySQL 数据库. 数据既然有了, 就要有用武之地. 传统互联网获取数据的方式, 最底层是数据层, 然后有各种各种的 API,API 访问数据, 再供前端展示.
本文讲解如何使用开源的 EOSTracke-API https://github.com/EOSEssentials/EOSTracker-API.git 构建区块链浏览器 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 comsoer, 命令如下:
- $ 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 速度过慢问题
如果命令行交互输入错误, 我们可以编辑
app/config/parameters.yml
文件手动修改.
完成之后, 运行如下命令启动 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 Secure Nginx with Let's Encrypt on Ubuntu 16.04 https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04
0x03 小结
目前有较多的区块链浏览器, 具体可以访问由 SuperONE 团队整理的 https://github.com/superoneio/awesome-eos .EOSTracker 是较早开源的区块链浏览器, 后端使用 PHP, 前端使用 AngularJS, 读者感兴趣可以阅读源码.
来源: https://juejin.im/post/5b41d4106fb9a04f9e22f3b4