less-account-history-17
Привет,
подготавливаясь к 0.17.0 хардфорку, обновил плагин account_history, что бы жрал поменьше shared_memory. Мои скриптам не нужна полная история, они получают блоки от ноды, обрабатывают операции и складывают все в свою базу данных. Единственное, что требуется от ноды, так это виртуальные операции, которые без account_history плагина не получишь.
В 16.4 я для этого переделал плагин, что бы он только виртуальные операции сохранял в истории, а в 17.0 я решил портировать плагин из стимита.
Исходники можно взять от сюда https://github.com/gropox/golos/tree/less-account-history-17
Теперь в конфигурационном плагине можно задать три параметра
history-whitelist-ops - через пробел можно задать список операций, которые интересуют. Только эти операции будут сохраняться в истории. К примеру
history-whitelist-ops = author_reward_operation curation_reward_operation
history-blacklist-ops - черный список. Операции данного списка будут игнорироваться. Параметры history-whitelist-ops и history-blacklist-ops взаимоисключающие. То-есть активным будет только один из них (вероятно последний, черный список)
history-start-block - задает стартовый блок, с которого нужно начать сохранять историю. Таким образомможно отсечь историю до запуска вашего приложения. Это поможет еще сэкономить пару гигабайт и к примеру ускорить синхронизацию.
Список названий операций можно взять от сюда
Таким образом, нода скомпилированная с LOW_MEM = OFF и тремя плагинами witness, database_api и account_history, и сконфигурированная только на сохранение виртуальных операций потребляет порядка 18G. Если историю начать сохранять с 15000000 блока, то получается 14-15G.
У меня скрипты получают виртуальные операции вроде author_reward методом get_ops_in_block, а нормальные, пользовательские операции методом get_block.
Успехов