EOSIO MySQL 外掛 issue 1

robinwen發表於2018-12-23

文/溫國兵

這是「區塊鏈技術指北」的第 40 篇文章。

如果對我感興趣,想和我交流,我的微訊號:Wentasy,加我時簡單介紹下自己,並註明來自「區塊鏈技術指北」,同時我會把你拉入微信群。

EOSIO MySQL 外掛 issue 1

題圖來自: © ChainONE / Original / chainon.io

文/溫國兵

0x00 背景


鏈上資料如何轉化為 API 友好的資料,這是一個很重要的話題。因為能夠轉化為 API 友好的資料,對於開發者而言,可以極大地提高效率。目前 EOS 生態有很多外掛,比如 MySQL 外掛、ES 外掛、Kafka 外掛等等。

筆者在測試環境部署了基於 kesar 寫的 MySQL 外掛,結果同步資料時發現有如下的異常。

EOSIO MySQL 外掛 issue 1

0x01 解決

檢視 nodeos 日誌,可以發現如下異常。

When sync to zhengjinhua1, and nodoes exit. The log as follows:

terminate called after throwing an instance of 'soci::mysql_soci_error'
  what():  Out of range value for column 'amount' at row 1 while executing "INSERT INTO tokens(account, amount, symbol) VALUES (:ac, :am, :as) " with :ac="zhengjinhua1", :am=1e+10, :as="UXB".
複製程式碼

我們從日誌中分析得出如下結論:

The amount filed of tokens table defines double(14,4), but 1e+10 means 10 billion, it exceed the maximum. It should change to double(64,4), the command as follows:

ALTER TABLE tokens CHANGE amount amount double(64,4) DEFAULT NULL;
複製程式碼

In addition, I sync the data of maninnet using this sql_db_plugin.

Submit a pr, see at: github.com/NebulaProto…

0x02 小結


MySQL 外掛目前不太成熟,還有很多坑,謹慎入坑。

–EOF–

版權宣告:自由轉載-非商用-非衍生-保持署名(創意共享4.0許可證)

「區塊鏈技術指北」同名 知識星球,二維碼如下,歡迎加入。

區塊鏈技術指北

「區塊鏈技術指北」相關資訊渠道:

同時,本系列文章會在以下渠道同步更新,歡迎關注:

原創不易,讀者可以通過如下途徑打賞,虛擬貨幣、美元、法幣均支援。

  • BTC: 3QboL2k5HfKjKDrEYtQAKubWCjx9CX7i8f
  • ERC20 Token: 0x8907B2ed72A1E2D283c04613536Fac4270C9F0b3
  • PayPal: www.paypal.me/robinwen
  • 微信打賞二維碼

Wechat

–EOF–

版權宣告:自由轉載-非商用-非衍生-保持署名(創意共享4.0許可證)

相關文章