Запуск полной ноды bitshares-core с минимальным потреблением RAM в пару гигабайт
Пока готовится праздничный стол, порадую себя и окружающих решением еще одной проблемы.
Что такое bitshares dex и какие они сулят бонусы своим пользователям, рассказывать наверное можно долго нудно и в другой раз, поговорю о насущном — об установке полной ноды себе на слабую машину.
В последнее время, официальные публичные ноды сильно лагают, так что клиент отключается от них и автоматически не подключается. Плюс проблема с глючными свечами (когда объем сделки сотые доли цента) решена в последней версии, а публичные еще не обновились, в общем есть потребность в установке своей ноды.
Официально, полная нода, с настройками по умолчанию для работы требует очень много оперативной памяти, на август 2017-го это порядка 40 гигабайтов, и требования растут примерно по 8 гигабайт раз в месяц. Что удивительно, ведь размер блокчейна всего 11 гигабайт. Если вы заверитель, или у вас публичная нода, к которой подключаются ваши пользователи, то у вас почти нет альтернативы — вам потребуется решать эту проблему, либо исправлением кода либо приобретением дорогого сервера.
Обычным же пользователям, у которых небольшое количество оперативной памяти и требуется работа с небольшим количеством аккаунтов, можно запустить ноду с ограниченным функционалом, которая не будет собирать информацию для всех аккаунтов в сети, а только для ваших.
Все очень просто, загрузите или скомпилируйте последнюю версию https://github.com/bitshares/bitshares-core и запустите со следующим ключами:
witness_node —data-dir data —rpc-endpoint «127.0.0.1:8090″ —plugins «witness market_history» —max-ops-per-account 100 —partial-operations true —track-account XXX —track-account YYY
Замените XXX и YYY на имена ваших аккаунтов.
—plugins ограничит список запускаемых плагинов, фактически отключит самый требовательный по оперативной памяти account_history, который загружает и хранит данные по всем аккаунтам в сети
—max-ops-per-account 100 ограничит сохранение количество операций на аккаунт 100 (можно смело поставить и 1000)
и самое главное, многократное указание —track-account позволяет перечислить список ваших аккаунтов (по одному), по которым все же будет собираться информация.
Нода запускается достаточно долго, при запуске в течении часа идет полное пересканирование уже загруженного блокчейна, а его полная загрузка с нуля — несколько часов (у меня загрузилось за ночь), зато в клиенте Settings -> Access можно добавить свою ноду ws://127.0.0.1:8090 и радоваться быстрому и не лагающему интерфейсу.
Источники: https://github.com/bitshares/bitshares-core/wiki/Memory-reduction-for-nodes и https://golos.io/bitshares/@rpman/likbez-zapusk-polnoij-nody-bitshares-core-s-minimalxnym-potrebleniem-ram-v-neskolxko-gigabaijt