文/溫國兵
這是「區塊鏈技術指北」的第 34 篇文章。
如果對我感興趣,想和我交流,我的微訊號:Wentasy,加我時簡單介紹下自己,並註明來自「區塊鏈技術指北」。同時我會把你拉入微信群「區塊鏈技術指北」。BTW,李笑來老師也加入了我的知識星球,文末有加入方式。
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 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 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,李笑來老師也加入了。
「區塊鏈技術指北」相關資訊渠道:
- 「區塊鏈技術指北」同名知識星球,t.xiaomiquan.com/ZRbmaU3
- 官網,chainone.xyz
- 官方部落格,blog.chainone.xyz
- 官方社群,bcage.one
- Telegram Channel,t.me/BlockchainA…
- Telegram Group,t.me/bcage
- Twitter,twitter.com/bcageone
- Facebook,www.facebook.com/chainone.or…
- 新浪微博,weibo.com/BlockchainA…
同時,本系列文章會在以下渠道同步更新,歡迎關注:
- 「區塊鏈技術指北」同名微信公眾號(微訊號:BlockchainAge)
- 個人部落格,dbarobin.com
- 知乎,zhuanlan.zhihu.com/robinwen
- 簡書,www.jianshu.com/c/a37698a12…
- Steemit,steemit.com/@robinwen
- Medium,medium.com/@robinwan
- 掘金,robinwen@juejin.im
- EOS LIVE,eos.live/user/robin
- 幣乎,bihu.com/people/1210…
原創不易,讀者可以通過如下途徑打賞,虛擬貨幣、美元、法幣均支援。
- BTC: 3QboL2k5HfKjKDrEYtQAKubWCjx9CX7i8f
- ERC20 Token: 0x8907B2ed72A1E2D283c04613536Fac4270C9F0b3
- PayPal: www.paypal.me/robinwen
- 微信打賞二維碼
–EOF–