EOSIO MySQL 插件 issue 1

文/robin

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

如果对我感兴趣,想和我交流,我的微信号:​Wentasy​,加我时简单介绍下自己,并注明来自「区块链技术指北」,同时我会把你拉入微信群。

Image for post
Image for post

题图来自: © ChainONE / Original / chainon.io

文/温国兵

0x00 背景

链上数据如何转化为 API 友好的数据,这是一个很重要的话题。因为能够转化为 API 友好的数据,对于开发者而言,可以极大地提高效率。目前 EOS 生态有很多插件,比如 MySQL 插件、ES 插件、Kafka 插件等等。

笔者在测试环境部署了基于 kesar 写的 MySQL 插件,结果同步数据时发现有如下的异常。

Image for post
Image for post

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: https://github.com/NebulaProtocol/eos/pull/2

0x02 小结

MySQL 插件目前不太成熟,还有很多坑,谨慎入坑。

–EOF–

版权声明:自由转载-非商用-非衍生-保持署名(创意共享4.0许可证)

「区块链技术指北」同名 ​知识星球​,二维码如下,欢迎加入。

Image for post
Image for post

「区块链技术指北」相关资讯渠道:

同时,本系列文章会在以下渠道同步更新,欢迎关注:

原创不易,读者可以通过如下途径打赏,虚拟货币、美元、法币均支持。

  • BTC: 3QboL2k5HfKjKDrEYtQAKubWCjx9CX7i8f
  • ERC20 Token: 0x8907B2ed72A1E2D283c04613536Fac4270C9F0b3
  • PayPal: https://www.paypal.me/robinwen
  • 微信打赏二维码
Image for post
Image for post

–EOF–

版权声明:自由转载-非商用-非衍生-保持署名(创意共享4.0许可证)

Written by

Blogger of dbarobin.com, read more about me at robin.finance.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store