Заметила одну особенность:
При некорректном завершении работы ноды, развернутой в Докере, нода всегда ломается. Без исключений. Однозначно выходит из строя shared_memory.bin и через раз выходит из строя block_log.index (как повезёт), то есть после перезапуска некорректно завершившей работу такой ноды, она начинает сыпать ошибками "checksum error" и не работает. Для исправления ситуации возможен только один путь - полное удаление shared_memory.bin и block_log.index с последующим автореплеем после перезапуска. Реплей занимает от 4 часов до 4 суток в зависимости от типа ноды и производительности железа, на котором она развернута. Ну или еще можно восстановить все три файла блокчейна из бэкапа если он свежий.
Причина проблемы скорее всего лежит в способе монтирования образов Докером, при котором некоторая часть данных shared_memory дописывается не сразу, а остается в кэширующей прослойке в ОЗУ, ну и при сбое, конечно же теряется, что приводит к несоответствию контрольной суммы. Но это только мои догадки, a что там реально происходит - я понятия не имею.
А вот при некорректном завершении работы голой ноды, собранной из исходников (то есть без докера), после перезапуска нода как ни в чем не бывало продолжает работать дальше с того места, на котором она остановилась.
Под некорректным завершением работы, я подразумеваю, например, сбой питания.
Прошу обратить внимание на этот момент держателям нод, развернутых на физических серверах @ecurrex-ru, @jackvote, @retroscope (может кого забыла, im sorry). Конечно же, сбои иногда бывают и на VPS/VDS, особенно дешевых, но на физических риск больше, даже при наличии бесперебойников, потому что дома круглосуточно сидеть не будешь, а заряд батареи не вечен. Лично я, поскольку тоже работаю с физическими серверами, на некоторых из них использую Докер и время от времени сталкиваюсь с перебоями напряжения в сети, решила эту проблему для себя так: подключила к серверам бесперебойники по USB, установила службу apcupsd (гайд по ссылке ниже)
https://habr.com/ru/articles/132099/
и выставила в конфиге таймер отключения на 5 минут. Ну то есть, если свет просто мигнул - бесперебойник не дал компу перезагрузиться и нода работает дальше. Если свет пропал надолго и не появился за 5 минут - служба apcupsd корректно отмонтирует все накопители и докеры, корректно завершает все службы и корректно выключает компьютер. У меня стоят бесперебойники от APC. Если у вас другая модель - посмотрите в интернете, наверняка для них тоже есть похожие системные службы или утилиты. Ну и думаю, не нужно напоминать, что если батареи в вашем бесперебойнике слабые - таймер надо ставить поменьше, чтобы батерейки хватило на время, необходимое для корректного завершения работы.
Я просто подметила особенность, а вам уже решать, что с этим делать, как настраивать свои серверы и бесперебойники, чтобы вам было удобно и система была максимально защищена от выхода из строя. Кому-то удобнее через бесперебойник, может для кого-то есть смысл отказаться от Докера итд.
Если у кого-то есть свои способы защиты - буду рада если поделитесь ими в комментах.
Голосовать за меня как за делегата, можно здесь (lindsay и lindsay-golos):
https://wallet.golos.id/~witnesses
@lindsay, от докера ушел. две ноды одна рабочая (дебиан 11), вторая "запасная" (убунту 18.04, на ней же все и собирается). все работает как чистое приложение (не демон, под системд, как другие ноды не стартануть, но что имеем, то и имеем). все крутится под виртулками под proxmoх ve 8-й версии. стоит ups на 2 кВт + маленький сервер на одноплатнике, который за этим и следит. и настроено все что при пропадании питания бродкаст по всем серверам - "гасимся посоны, щас свет вырубят". так что пока все ровно, еще раз ттт чтобы и дальше так было.
@ecurrex-ru, У меня под Дебиан-11 как раз именно в Докере две ноды крутятся (Голос и Виз). Наголо не смогла установить, ибо сборка заточена под убунту 16 или 18 (вроде, говорят еще и 20 но это не точно). Долбилась сутки с библиотеками и все равно не получилось, так что плюнула и развернула в Докере. Убунту именно на этом компе поставить не получается, есть проблема с драйверами.
А на втором как раз Убунта-18 и там все сборки работают как приложения, без всяких докеров и виртуалок.
Остался вопрос, как гасить ноды в самом блокчейне после отключения серверов, потому что при пропадании света в доме, пропадает и интернет (коммутатор на чердаке под замком и питается он тоже от 220). Разве что все же придется брать какую-то маленькую VPS-ку дешевую (в идеале бесплатную) и на ней развернуть скрипт.
Кстати буду признательна, если кто подскажет где есть халявные VPS.
@lindsay, так, смотри :)
собираешь все под 18-й убунтой, далее переносишь приложение на 11 дебиан (или любой другой линух с библиотеками выше чем у 18-й убунты) и все работает. (я и под 11-м дебианом собирал, но с помощью бубна, тк. там надо версию booster определенную (не ниже и не выше "нужных версий". на 12-м даже бубен не помог, там уже на секурность питоновских скриптов ругань). наверное все-таки придется написать пост по установке голоса "без докера". (без картинок и тп, просто набор команд "от и до"). давно хотел, "но что-то его держало" (с). и да, как "демона", через системд, все-таки запускать можно, но нужна прокладка в виде sv
по поводу как "гасить ноды в блокчейне". если я правильно понял, то это "деактивация витнеса", чтобы не было пропусков блоков. тут на помощь приходит телефон на андроиде (на яблоке наверное никак) + приложение termux (устанавливаешь через F-Droid). это дает возможность запуска линикусовых консольных приложений (в разумном пределе). те. ставишь termux, под ним ставишь nodejs, а также библиотеку golos-lib-js и пишешь простой скрипт. у меня так работает эта связка для печати YMRUB, когда я не дома у компа и мне в телегу пишут (и/или приходит пуш из банка (не всегда, поэтому лучше еще и в телегу дублировать), о том что задепонировали рубли на счет.
если есть вопросы, то задавай - все расскажу
@ecurrex-ru,
собираешь все под 18-й убунтой, далее переносишь приложение на 11 дебиан...
То есть бубны не нужны, просто скопировать и заработает?
termux (устанавливаешь через F-Droid). это дает возможность запуска линикусовых консольных приложений
Эту фишку я знаю, мало того, можно даже без терминала просто через сайт golos.id погасить в настройках делегата. Тут проблема что именно у меня так не получится. Когда пропадает свет на районе - пропадает и мобильный интернет, провайдер его вырубает и оставляет только звонки и смс чтобы дольше продержались бесперебойники на ретрансляторах. Так что мой вариант - только где-то искать халявный сервак на котором развернуть скрипт, следящий за пропусками блоков. 4-5 пропусков подряд - автоматическая деактивация.
Конечно наши мажоры сейчас почитают и скажут, мол, не занимайся извращениями, пойди на Ионос или Контабу и арендуй себе нормальный сервер под ноду, но это не мой путь. Моя основная цель нахождения на голосе - заработать. Ну далее, получается что если арендовать дешевый сервер - он точно также будет постоянно глючить и вылетать, а дорогой и качественный не окупится в виду низкого курса токена. А в минус я больше не готова что-то делать на Голосе.
@lindsay, P.S. Кстати, на VIZ такая фишка уже изначально заложена в код блокчейна: 10 пропусков подряд и деактивация. У нас такое тоже есть, но пропуски идут почти сутки пока деактивируется. Наверное 1000 непрерывных пропусков ждет пока выключится или около того
Я прекрасно понимаю разницу, но если чуток растянуть понятие "халявы", то я плачу 1gb.ru 3600 рублей в год за вот такое:
Самый дешёвый (1гб/1ядро/20гб) выйдет 174 в месяц при оплате за два года (около $40 в общей сложности). Этого наверняка хватит, чтобы кроме скрипта поставить прокси и ходить через него на российские ресурсы, которые иначе блокируют заграничные ip. Это я к тому, что отбить даже эти копейки на ноде голоса не получится, но можно успокоить себя тем, что вот хотя бы прокси. Какие-то промокоды ещё обещают по 250 рублей дать, может, где можно и получше скидку найти, но если что, то вот: "607534C1DB15BF6F".
@shuler, Ну и я не стала бы пользоваться российским хостингом еще и по ряду других причин, думаю не нужно перечислять.
@lindsay, так я потому и прокси вспомнил — в качестве шпионского инструментария можно поступиться рядом причин. Мне так просто необходимо, меня любой какой-нибудь мосэнергосбыт без прокси не пускает, даже счета не оплатишь толком.
@shuler, Это тоже одна из причин (кстати сейчас пинганула его, из Евросоюза не пингуется, а через VPN румынский кое-как пингуется но на доменное имя все равно не отвечает).
Но основная причина - принципиальная.
@shuler, Если бы это был конец 2017 года когда делегаты получали с каждой ноды 200-250$ в сутки и при этом ныли что им мало, ибо организационная работа, накладные расходы итд, то я бы вообще не заморачивалась, деньги тогда никто не считал, но вот сейчас взять и отдать $40 уйдя по Голосу в еще больший минус - чисто болевой порог не позволяет, так что не подойдет.
Подойдет либо бесплатный триал на пару месяцев со слабым контролем мультиреги, либо что-то, что стоит в месяц меньше $1. Как раньше было на Гугл-клауд всем владельцам аккаунта в гугле/ютубе бесплатно дарили 512 Мб/1 ядро Skylake/5 Гб SSD. Мне бы с головой хватило, но сейчас эту лавочку прикрыли и оно уже стоит денег. Мало того, до 2020 года можна было полугодовой триал полноценного сервака для ноды там взять, но теперь тоже накрылось, набежало много халявщиков и гугл стал требовать полную верификацию, включая привязку банковской карты.
@lindsay, ну, когда-то и Amazon AWS чуть не на год раздавал халявный сервак. Этот хостинг я брал в марте 2022 и могу ответственно заявить, что на тот момент с такими параметрами ничего дешевле не было (я чемпион страны по поиску хороших цен). Сейчас уже продолжаю по инерции платить, потому как всё устраивает, но да, чуть больше доллара в месяц выйдет.
@shuler, Когда-то я его тоже пробовала взять, тоже в году 2020 +/- уже не помню что, но что-то там у меня не получилось.