Советы по настройке ноды делегата
На нелегком пути к делегату голоса, выявил много ньюансов которыми спешу поделиться с другими.
Сборка ноды
Не пытайтесь собирать ноду, если у вас меньше 6Gb оперативки. Нет, попробовать конечно можно, но только если вам нежалко своего времени.
Те у кого финансы позволяют - складывают block_log и shared_memory.bin в оперативку и бед не знают. Первый весит около 15 гб на момент 16кк блоков, а последний минимум 6,5 гб, если будут включены все апи, то около 50гб.
Еще если хотите собрать ноду и для майнинга тоже, то перед сборкой не забудьте исправить файлик как описано тут
Синхронизация ноды
В целом этот процесс включает в себя и реплей. с одной стороны идет скачка block_log и с другой наполняется shared_memory.bin.
рекомендую для синхронизации использовать не менее 6гб оперативки в системе. Вся тонкость в том, что во время синка идут частые обращения к венику и слабым местом является скорость чтения с диска.
Чем больше оперативки, тем больше кэш и реже обращения к венику. Как и писал выше - в идеале чб 2 файла лежади в оперативке, для максимальной скорости синхронизации.
Если оперативки будет меньше 4 гб, то синхронизации дождуться только ваши внуки
Реплей
Это просто переделывание Файла shared_memory.bin под конфигурацию другого конфига, при этом у нас уже имеется скачаный block_log.
Слабым местом является число операций чтения, и для оптимальной работы нужно не менее опять таки 6гб оперативки.
Работа ноды
По нодам с публичным апи ничего сказать не могу, но вот для работы делегатской ноды в минимальной комплектации хватит 1.7 оперативки и HDD, вместо SSD веника.
вот графики работы с гуглклауд
Т.е. отсюда видно что самое слабое место в работе ноды это веник. И чем больше памяти тем меньше напрягается веник.
Советы
- как правило у всех уже нормальные домащние компы которые имеют 4-12 гб оперативки, потому куда быстрее собрирать(только для докера)/синхронизировать/реплеить ноду именно локально, а потом копировать файлы на сервер, нежели делать все на сервере. Если все сделать локально, то вам хватит слабенького сервачка с 30+гб HDD
- Не используйте google cloud, редкосное Г в плане системных дисков. Скорость записи и число операций зависят от размера диска, и при этом дорого. Digital Ocean имеет куда более лучшие SSD что ускоряет работу и экономит оперативку (кстати моя рефералка https://m.do.co/c/bb6a2888915f, все кто зарегается получит 10$) и стоимость, но гуглоклауд дает 300$ на год.
- используйте докер образы и контейнеры, экономит время. Я создал докер содержащий все необходимые для работы файлы в минимальной конфигурации до блока 15736579. весит 31гб, на Digital Ocean скачался за 3 минуты.
- нельзя останавливать реплей, все начнется заново. Смело можно останавливать синхронизацию, продолжится с места остановки.
Docker
В процессе для удобства создал докер контейнеры, буду добавлять со временем новые
- t3ran13/golosd:latest и t3ran13/golosd:0.17.2rc1-lw собранный образ ноды с параметром лоу мем, весит 1,5гб
- t3ran13/golosd:0.17.2RC1-lm-miner собранный образ ноды с параметром лоу мем и патчем для майнинга, весит 1,5гб
- t3ran13/golosd:0.17.2RC1-lm-miner-bl15736579 образ как выше + блок лог до блока 15736579, весит 22гб
- t3ran13/golosd:0.17.2RC1-lm-miner-bl15736579sm образ как выше + шаред мемори + конфиг, весит 31гб
инструкция для установки ноды без данных бч
- нужно свободного места на диске не меньше 30Gb
- создаем папку в которой все будет лежать и переходим туда
sudo mkdir -p /home/user/golos-witness
cd /home/user/golos-witness
- скачиваем в папку нужный конфиг из репозитория ноды 0.17.2RC1, скорее всего config_witness.ini, и переименовываем в config.ini. Редактируем конфиг как нам нужно.
- запускаем докер контейнер с нодой (вынос конфига и базы блокчейна во внешнюю папку)
sudo docker run -d \
-p 4243:4243 -p 8090:8090 -p 8091:8091 \
-v ./config.ini:/etc/golosd/config.ini \
-v ./blockchain/:/var/lib/golosd/blockchain/ \
--name golosd \
t3ran13/golosd:0.17.2RC1-lm-miner
- ждем полной синхронизации. За ходом синхронизации можно следить командой
sudo docker logs --tail=100 -f golosd
остановить контейнер можно командой
sudo docker stop golosd
стартануть контейнер можно командой
sudo docker start golosd
инструкция для установки ноды c блокчейном
- нужно свободного места на диске не меньше 80Gb
- создаем папку в которой все будет лежать и переходим туда
sudo mkdir -p /home/user/golos-witness
cd /home/user/golos-witness
- запускаем докер контейнер с нодой (вынос конфига и базы блокчейна во внешнюю папку)
sudo docker run -d \
-p 4243:4243 -p 8090:8090 -p 8091:8091 \
--name golosd \
t3ran13/golosd:0.17.2RC1-lm-miner-bl15736579sm
- ждем полной синхронизации. За ходом синхронизации можно следить командой
sudo docker logs --tail=100 -f golosd
- после синхронизации останавливаем контейнер
sudo docker stop golosd
- копируем блокчейн и конфиг из контейнера в папку проекта (будет долго копировать)
sudo docker cp golosd:/etc/golosd/config.ini ./config.ini
sudo docker cp golosd:/var/lib/golosd/blockchain/ ./blockchain/
- редактируем конфиг как нам нужно
- удаляем контейнер и создаем новый
sudo docker rm golosd
sudo docker run -d \
-p 4243:4243 -p 8090:8090 -p 8091:8091 \
-v ./config.ini:/etc/golosd/config.ini \
-v ./blockchain/:/var/lib/golosd/blockchain/ \
--name golosd \
t3ran13/golosd:0.17.2RC1-lm-miner
- удаляем образ с данными
sudo docker rmi t3ran13/golosd:0.17.2RC1-lm-miner-bl15736579sm
P/S
Я стал делегатом и за меня можно проголосовать здесь, а с моим видением ознакомится тут
!!Ваш голос может повлиять на развитие блокчейна Голос или его приложений, не оставайтесь равнодушными!!!