Пока готовится праздничный стол, порадую себя и окружающих решением еще одной проблемы.
Что такое bitshares dex и какие они сулят бонусы своим пользователям, рассказывать наверное можно долго нудно и в другой раз, поговорю о насущном - об установке полной ноды себе на слабую машину.
В последнее время, официальные публичные ноды сильно лагают, так что клиент отключается от них и автоматически не подключается. Плюс проблема с глючными свечами (когда объем сделки сотые доли цента) решена в последней версии, а публичные еще не обновились, в общем есть потребность в установке своей ноды.
Официально, полная нода, с настройками по умолчанию для работы требует очень много оперативной памяти, на август 2017-го это порядка 40 гигабайтов, и требования растут примерно по 8 гигабайт раз в месяц. Что удивительно, ведь размер блокчейна всего 11 гигабайт. Если вы заверитель, или у вас публичная нода, к которой подключаются ваши пользователи, то у вас почти нет альтернативы - вам потребуется решать эту проблему, либо исправлением кода либо приобретением дорогого сервера.
Обычным же пользователям, у которых небольшое количество оперативной памяти и требуется работа с небольшим количеством аккаунтов, можно запустить ноду с ограниченным функционалом, которая не будет собирать информацию для всех аккаунтов в сети, а только для ваших.
Все очень просто, загрузите или скомпилируйте последнюю версию https://github.com/bitshares/bitshares-core и запустите со следующим ключами:
witness_node --data-dir data --rpc-endpoint "127.0.0.1:8090" --max-ops-per-account 100 --partial-operations true --track-account XXX --track-account YYY
Замените XXX и YYY на идентификаторы ваших аккаунтов в ковычках, сами идентификаторы смотреть в эксплорере прямо в клиенте, например:
--track-account ""1.2.xxxxxxxx""
или как рекомендуют в вики:
--track-account "\"1.2.282\"" "\"1.2.24484\"" "\"1.2.2058\""
p.s. спасибо за замечание @kfil в комментариях по поводу удаления --plugins
- --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
С новым годом вас, с новыми профитами.
Спасибо, реально полезно.
я попробовал, нода поднялась, занимает на жестком 23 гб и потихоньку увеличивается, смущает одно - нет отслеживания моих аккаунтов, хотя их указывал в ключах.
аналогично, историю своих аккаунтов не отображает..
убрал параметр --plugins и история стала отображаться, при этом памяти потребляет также как и с ним (примерно 1.5 гига)
вот что в конечном итоге получилось:
witness_node --data-dir data --rpc-endpoint "127.0.0.1:8090" --max-ops-per-account 1000 --partial-operations true --track-account ""1.2.xxxxxx""
где 1.2.xxxxxx - ID аккаунта
PS
может кто нибудь подсказать как улучшить детализацию графиков..
огромное спасибо, сам не проверил, мне нужна была только торговля, и другим с ошибкой насоветовал, поправил пост.
в моем случае параметры строки не нужны совсем, они берутся из config.ini в папке с базой.
Вот конфиг на винде7, все работет и память берет ~1.4g
Завел службой через nssm
max-ops-per-account - главный параметр, который нужно менять под себя.
rpc-endpoint = 127.0.0.1:8090
plugins = account_history market_history
enable-stale-production = false
required-participation = false
max-ops-per-account = 20
bucket-size = [300,900,1800,3600]
history-per-size = 600
max-order-his-records-per-market = 60
max-order-his-seconds-per-market = 259200
[log.console_appender.stderr]
stream=std_error
[log.file_appender.p2p]
filename=logs/p2p.log
[logger.default]
level=info
appenders=stderr
[logger.p2p]
level=error
appenders=p2p
Такой вот вопрос, для чего вообще запускать свою ноду, что это дает? Для своей скорости, чтобы задержек не было, или какой-то профит есть?
В некоторых случаях, чтобы можно было торговать, не перегружая страницу или не залезая в настройки чтобы сменить ноду из списка по умолчанию, потому что во время сильной нагрузки у меня даже ордера не выставлялись, по таймауту отменялись.
А еще, своя нода выдает информацию с минимальной задержкой - сотня миллисекунд, когда как офф вечно нагружены дают лаг в полторы секунды, мелочь но приятная.
Спасибо за разъяснение.
Спасибо за подсказку, давно такой, я бы сказал рассово верный, способ работать с DEX. Это похоже как в Ardor запустить локальный кошелек, а не юзать оналайн. Они (Ardor) постепенно уходят от он-лайн кошелка.
Только это ведь такая нода не может считаться полной, когда ограничены плагины, API, отслеживаемые акки.
Это личная нода с ограниченным функционалом, суть ограничения - полноценно с ней могут работать только аккаунты, прописанные в --track-account
Не вижу смысла запускать локально только для себя полную ноду, зря расходуя драгоценные ресурсы
И публичные ноды разгрузить - вот это польза для новичков.
Интересно что с масштабированием и децентрализацией, раз такие требования и они растут. Оперативку же невозможно бесконечно наращивать.
Сама сеть никакой нагрузки не испытывает! Проблема в том, что к публичным годам стало подключаться слишком много народа, и эти ноды стали лагать.
По поводу заверителей, я пролагаю им тем более не нужно использовать этот плагин.
Вот наверняка, когда это станет действительно важно, плагин сбора данных аккаунтов перепишут на хранение в базе на диске и все.
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
vika-teplo, virt, vealis
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас: