Open cryptcoin-junkey opened 2 years ago
https://twitter.com/jung2neko/status/1437410314895519749
■MpchainやMpurseではXMP残高があるように表示される。 mpchain.info/address/MN9V3VjdU6iM77DzoGcKXkpezgRDVqjung ■すなぎもさんに相談したところ、モナパレットではget_normalized_balancesを使用しており、アドレス内に保持しているトー> クンの種類が多くなりすぎると、 全件取得できなくなるとのこと。
https://twitter.com/jung2neko/status/1437410474274951168
■トークンの種類を 896 → 471 まで減らしたが、XMPは0のまま。 ■Mpurseを使って、該当アドレスのXMPの出し入れをしたが、モナパレットの残高は0XMPのまま。
https://twitter.com/jung2neko/status/1437410621104947204
■オーナートークンが上限超過した可能性を考慮し、該当アドレスがオーナーとなっているトークンのオーナー権限を他アドレスに移譲するも、0XMPのまま。
https://github.com/monaparty/counterblock/blob/0b94e65f1d311325ed5b757e7ffffd925447ef1d/counterblock/lib/modules/assets.py#L147-L149 get_normalized_balancesの処理において、ページング指定なしでget_balancesしています。
balancesテーブルにはquantityが0になったレコードも残り続けるため、ひとたび1ページ目からあふれてしまったレコードはその後アドレスの中身を整理しても1ページ目に戻ってきません。 利用頻度の多いアドレスにおいてXMPを含む一部アセットの情報がget_normalized_balancesで恒久的に取得できなくなったのは、これが理由と思われます。
@anipopina ちょうどいま、その辺りを眺めていたところでした。 現象はご指摘の通りと思いますが、そもそも counterparty server に問い合わせているのが設計として不適切(高負荷の元)という感もあり、dispenser 周りも含め見直しが必要かと思っています。
https://twitter.com/jung2neko/status/1437410136000110596