Test
Готовый snap пакет для Viz
Хотите запустить ноду Viz ? Нет ничего проще!
Здравствуйте. Хочу поделиться с вами хорошей новостью. Установка ноды Viz стала как никогда проще. Теперь установить ноду можно на любой Linux, который поддерживает Snappy, а это практически все ведущие дистрибутивы.
Если коротко то Snappy - система развёртки и управления пакетами, разработанная Canonical.
Узнать, установлен ли у вас Snappy, можно простой командой:
$ snap version
snap 2.36.3
snapd 2.36.3
series 16
neon 18.04
kernel 4.15.0-33-generic
Если Snappy не установлен, то нужно его установить (на примере ubuntu):
$ sudo add-apt-repository ppa:snappy-dev/tools
$ sudo apt-get install snapcraft
Ищем пакет vizd в магазине приложений SnapStore:
$ snap find vizd
Name Version Publisher Notes Summary
vizd 2.0.2.1 mad-max-traveller - Full node for VIZ network
Устанавливаем пакет vizd:
$ snap install vizd
Download snap "vizd" (1) from channel "stable" vizd 2.0.2.1 from (mad-max-traveller) installed
Запускаем vizd и после появления нижеследующего текста прерываем работу программы нажав Ctrl+C:
$ vizd
1313198ms th_0 plugin.cpp:379 plugin_initialize ] json_rpc plugin: plugin_initialize() begin
1313198ms th_0 plugin.cpp:382 plugin_initialize ] json_rpc plugin: plugin_initialize() end
1313224ms th_0 webserver_plugin.cpp:269 plugin_initialize ] configured with 256 thread pool size
------------------------------------------------------
STARTING VIZ NETWORK
------------------------------------------------------
initiator public key: VIZ6MyX5QiXAXRZk7SYCiqpi6Mtm8UbHWDFSV8HPpt7FJyahCnc2T
committee public key: VIZ6Yt7d6LsngBoXQr47aLv97bJVs7jyr7esZTM4UUSpLUf3nbRKS
chain id: 2040effda178d4fffff5eab7a915d4019879f5205cc5392e4bcced2b6edda0cd
blockchain version: 2.0.2
------------------------------------------------------
1313254ms th_0 main.cpp:132 main ] Error parsing logging config
1313254ms th_0 plugin.cpp:386 plugin_startup ] json_rpc plugin: plugin_startup() begin
1313254ms th_0 plugin.cpp:388 plugin_startup ] json_rpc plugin: plugin_startup() end
1313254ms th_0 plugin.cpp:317 plugin_startup ] Starting chain with shared_file_size: 2147483648 bytes
1313254ms th_0 plugin.cpp:322 plugin_startup ] resync requested: deleting block log and shared memory
1313257ms th_0 plugin.cpp:349 plugin_startup ] Opening shared memory from /home/mad_max/snap/vizd/1/witness_node_data_dir/blockchain
1313262ms th_0 database.cpp:207 open ] Start opening database. Please wait, don't break application...
1313277ms th_0 database.cpp:216 open ] Done opening database, elapsed time 0.01601200000000000 sec
1313277ms th_0 database.cpp:220 open ] Start opening block log. Please wait, don't break application...
1313323ms th_0 database.cpp:257 open ] Done opening block log, elapsed time 0.04607900000000000 sec
1313323ms th_0 plugin.cpp:388 plugin_startup ] Started on blockchain with 0 blocks
^C
Это необходимо для создания в домашнем каталоге папки witness_node_data_dir
в которой будут хранится конфигурационные файлы и файлы блокчейна:
/home/user/snap/vizd/current/witness_node_data_dir
Теперь в эту папку необходимо поместить файл snapshot.json и отредактировать под ваши нужды config.ini:
shared-file-dir = "blockchain"
shared-file-size = 2G
inc-shared-file-size = 2G
min-free-shared-file-size = 500M
block-num-check-free-size = 1000
single-write-thread = 0
clear-votes-before-block = 0
skip-virtual-ops = 0
enable-plugins-on-push-transaction = 0
follow-max-feed-size = 500
webserver-thread-pool-size = 256
#plugins
plugin = chain p2p json_rpc webserver network_broadcast_api witness test_api database_api private_message follow social_network tags account_by_key operation_history account_history block_info raw_block witness_api invite_api committee_api
#witness="login" + private-key
#witness = "user"
#private-key = user_key
p2p-seed-node = 172.104.132.57:9099
p2p-seed-node = 94.16.120.147:4248
p2p-seed-node = 142.93.228.7:2001
p2p-seed-node = 178.62.61.190:8099
p2p-seed-node = 13.81.61.249:2001
p2p-seed-node = 54.93.168.9:2001
p2p-endpoint = 0.0.0.0:8082
enable-stale-production = true
required-participation = 0
[log.console_appender.stderr]
stream = std_error
[log.file_appender.p2p]
filename = logs/p2p/p2p.log
[logger.default]
level = all
appenders = stderr
[logger.p2p]
level = all
appenders = p2p
На этом настройка закончена, можно смело запускать:
$ vizd
По мимо основной команды запуска предусмотрены еще несколько команд:
$ vizd - первоначальный запуск, начинает синхронизацию блокчейна с нуля.
$ vizd.vizd-rb - аналогичен запуску с флагом --replay-blockchain, когда нужно продолжить синхронизацию с уже существующей локальной базой бч.
$ vizd.vizd-rc - аналогичен запуску с флагом --replay-if-corrupted, когда необходимо восстановить поврежденную базу бч, если это возможно.
В целом, пакет работает стабильно. Я обкатывал его около месяца, и на данный момент есть только один нерешенный баг, который нужно править в коде самого Viz. К сожалению мы унаследовали от стима один трудноуловимый баг, который у меня проявляется при работе snap пакета vizd. Суть его примерно в следующем: config.ini считывает в двух разных местах в коде, что приводит к конфликтам в дальнейшей работе ноды. Именно поэтому в одном из последних релизов steem перешел на новый формат config.ini:
Config file changes
The logging config has always been a sore spot in the config file because of the number of options
available. It was so complex that it required a different parser. We have changed to using a json
format, which allows us to use only one parser. The default logging config is the following:
# Console appender definition json: {"appender", "stream"}
log-console-appender = {"appender":"stderr","stream":"std_error"}
# File appender definition json: {"appender", "file"}
log-file-appender = {"appender":"p2p","file":"logs/p2p/p2p.log"}
# Logger definition json: {"name", "level", "appender"}
log-logger = {"name":"default","level":"debug","appender":"stderr"}
log-logger = {"name":"p2p","level":"debug","appender":"p2p"}
Этот баг приводит к тому, что не пишутся p2p логи ноды. Если для вас это критично пользуйтесь сборками Docker от сообщества или собирайте сами из исходных кодов.
Конфигурационный файл snapcraft.yaml для самостоятельной сборки snap пакета vizd в сборочной системе snapcraft.
Для вас старался mad-max.
Поддержать меня как делегата можно на этой странице.
PS: Если увидите ошибки, погрешности или неточности в описаниях, пишите, все исправлю.