Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
viz.world
6 лет назад

Фиксы и промежуточные итоги тестирования VIZ

Несмотря на то, что тестирование VIZ было запущено совсем недавно, обнаружились пара багов, которые было важно быстро исправить.

  • Исправлен баг деления на ноль в методе уменьшения энергии у пользователя при выводе долей в ликвидные токены или делегировании (в том или ином виде).
  • Исправлены фундаментальный момент, позволяющий запускать цепь без назначения genesis time в файле конфигурации. Это позволит форкать цепь под любые проекты без необходимости заранее планировать время запуска и инфраструктуру под это. Теперь genesis time записывается при создании (или синхронизации) нулевого блока.
  • Изменен механизм в плагине witness, для корректной обработки цикла подписи блоков, теперь он учитывает интервалы между блоками отличными от 3.

В рамках тестирования было также выявлены проблему с запуском сети при настройке интервала между блоками в 1 секунду. Такое возможно лишь при резервировании большой пропускной способности (больше 100 Мбит/сек) у делегатов, что накладывает большие ограничения на идею децентрализации и управление самой цепочкой сообществом. При желании форк VIZ может быть запущен с обсуждаемыми 1 блок в секунду на одном континенте или стране с развитой сетью (например, для ДАО с мажоритарием с нахождением в определенной стране или настройками допускающим только избранных делегатов до подписи блоков).

Исходя из вышеперечисленного тестнет был перезапущен и обновления залиты в master ветку.

Запуск ноды, рекомендации

Несмотря на обилие примеров по запуску нод для Steem или блокчейн Голос, стоит вынести инструкцию для самостоятельного запуска VIZ. На данный момент протокол Graphene использует lib boost 1.58, доступную в Ubuntu версии 16.4, поэтому устанавливать рекомендуется только на этот дистрибутив (в более свежих версиях Ubuntu в комплекте идет уже новая версия библиотеки boost, не совместимая со старой).

Если у вас сервер с малым количеством оперативной памяти, рекомендуем пользоваться VDS с SSD накопителями и формировать swap в 10-20 Гигабайт для корректной работы на год-два вперед. Это можно сделать выполнив следующие команды:

fallocate -l 10G /swapfile
ls -lh /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
swapon --show

mount -o remount,size=10G /dev/shm
mount -l | grep "/dev/shm"

free -h
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
cat /etc/fstab

sysctl vm.swappiness=80
sysctl vm.vfs_cache_pressure=50
echo "vm.swappiness=80" >> /etc/sysctl.conf
echo "vm.vfs_cache_pressure=50" >> /etc/sysctl.conf
tail /etc/sysctl.conf

Обновление пакетов и установка необходимых библиотек для сборки VIZ:

apt-get update
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get install -y build-essential
sudo apt-get install -y autoconf automake cmake g++ git libssl-dev libtool make pkg-config python3 python3-jinja2
sudo apt-get install -y libboost-chrono-dev libboost-context-dev libboost-coroutine-dev libboost-date-time-dev libboost-filesystem-dev libboost-iostreams-dev libboost-locale-dev libboost-program-options-dev libboost-serialization-dev libboost-signals-dev libboost-system-dev libboost-test-dev libboost-thread-dev
sudo apt-get install -y doxygen libncurses5-dev libreadline-dev perl

Внимание! Обязательно перезапустите сервер после вышеперечисленных команд.

Установка ноды:

mkdir /viz
cd /viz
git clone https://github.com/VIZ-World/viz-world.git
cd /viz/viz-world
git checkout master
git submodule update --init --recursive -f
mkdir /viz/viz-world/build
cd /viz/viz-world/build && cmake -DCMAKE_BUILD_TYPE=Release ..
cd /viz/viz-world/build/ && nohup make -j$(nproc) vizd > buildlog_vizd.txt
cd /viz/viz-world/build/ && nohup make -j$(nproc) cli_wallet > buildlog_cli_wallet.txt

Первый запуск:

cd /viz/viz-world/build/programs/vizd/ && rm -f screenlog.0 && screen -dmLS vizd /viz/viz-world/build/programs/vizd/vizd --resync && screen -x vizd

Нажмите Ctrl+C, чтобы завершить сессию screen vizd. После первого запуска будет создан каталог и конфигурационный файл, в него-то и необходимо внести изменения:

nano /viz/viz-world/build/programs/vizd/witness_node_data_dir/config.ini

Пока сеть публично не запущена, вы можете указать seednode для тестнета:

p2p-seed-node = 140.82.37.172:8082 # testnet

Если вы запускаете публичную seednode, то вам потребуется открыть tcp порт 8082 через iptables:

iptables -I INPUT -p tcp -m tcp --dport 8082 -j ACCEPT

А также указать в config.ini желаемый порт для входящих подключений:

p2p-endpoint = 0.0.0.0:8082

Все, теперь вы можете включить ноду для синхронизации:

cd /viz/viz-world/build/programs/vizd/ && rm -f screenlog.0 && screen -dmLS vizd /viz/viz-world/build/programs/vizd/vizd --resync && screen -x vizd

Чтобы свернуть сессию, нажмите Ctrl+A+D, это позволит вам завершить сеанс, а для того чтобы вернуться в него, выполните команду: screen -x vizd, завершение сеанса: Ctrl+C.

Всем спасибо за внимание и до новых встреч!

1
97.402 GOLOS
На Golos с March 2018
Комментарии (8)
Сортировать по:
Сначала старые