TERA: пошаговая инструкция установки ноды с дополнительными советами

Evgen K
11 min readJun 4, 2019

С каждым днем все больше людей узнает о блокчейн-проекте TERA и некоторые из них принимают решение присоединиться к созданию новой экономики без границ, достижение которой преследуют его разработчики и участники. Об этом говорит карта, отображающая в режиме онлайн функционирующие в странах мира ноды. Если еще в апреле 2019 года среднее количество нод, поддерживающих работу самого быстрого блокчейна TERA было около 600, то в середине мая количество подключенных к сети узлов в среднем начало составлять 1200, а иногда и подниматься выше 2 000. В других статьях уже не раз рассказано, чем интересен блокчейн-проект TERA: высокая масштабируемость (1000 tps), бесплатные транзакции за несколько секунд, децентрализованные приложения. И это далеко не все из того, что уже работает. В TERA содержится потенциал для реализации множества идей. В ближайших целях главного разработчика TERA — запуск технологии шардинга с увеличением масштабируемости до 1 миллиона транзакций в секунду.

Генерация блоков TERA

Стоит заметить, что TERA — блокчейн с самой быстрой скоростью расширения. Каждый новый блок генерируется ежесекундно, то есть и награда начисляется раз в секунду, тому майнеру, чье компьютерное устройство одержало победу в расчетах хеша. Добыча монет происходит с помощью CPU с оптимизацией на память. А в работе самого блокчейна применяется консенсус PoW.

По следующей ссылке содержаться инструкция по установке ноды — https://sourceforge.net/p/tera/code/ci/master/tree/Doc/Rus/ (англ. версия — https://sourceforge.net/p/tera/code/ci/master/tree/) и спецификация проекта. Но этой информации может оказаться недостаточно для человека, не разбирающегося в деталях программирования и администрирования систем. Хоть все на самом деле не так уж и сложно, данная статья подробно рассказывает о каждом шаге, который необходимо сделать для настройки ноды и начала майнинга.

Итак, приступим.

Детальная инструкция по установке ноды TERA

Для того, чтобы создать рабочую ноду нам потребуется:

1. Получить статический IP;

2. Открыть порты 30000 и 8080 (можно изменять);

3. Скачать актуальную базу данных для ускорения синхронизации со всем блокчейном;

4. Установить предварительные программные пакеты;

5. Собрать криптографическую библиотеку secp256k1;

6. Установить кошелек.

После этого нода может быть запущена. Но, возможно, понадобится провести настройку предоставляемых мощностей и оптимизировать объем памяти на количество потоков. Об этом также будет сказано дальше, как и приведен пример расчета вознаграждения.

В первую очередь скачаем базу данных блокчейна TERA. Последние версии архивов выкладываются в группе Discord на канале #links, куда можно присоединиться по приглашению https://discord.gg/dzSGKyR. Или скачать торрент — https://sourceforge.net/p/tera/code/ci/master/tree/Torrent/Tera-folder-DB.torrent?format=raw. В Дискорде ссылки на базы данных выглядят следующим образом:

рис.1

Выберите ссылку, соответствующую вашему региону.

Последняя актуальная база на момент написания статьи за 03.06.2019:

https://storage.googleapis.com/tera-db-file-eu/DB06032019.zip

Загружать базу по ссылкам на других интернет-ресурсах, не относящихся к официальному сайту или группам проекта TERA, крайне не рекомендуется в целях безопасности.

Пока качается база данных, которая ускорит загрузку ноды, настроим порты и установим другие необходимые нам компоненты: программную платформу Node.js c официального сайта (рекомендуется версия 8.11) и распределенную систему управления версиями Git.

Адрес официального сайта для загрузки установочного файла Nodesjs: https://nodejs.org

рис.2

Разработчик рекомендует устанавливать версию 8.11, так как она была протестирована. Ее можно найти по следующей ссылке, согласно вашей операционной системы https://nodejs.org/download/release/v8.11.4/

Версия 10.15 также была проверена на практике с положительным результатом.

Адрес для загрузки Git: https://git-scm.com/download/win

рис.3

Подготовим порты

Вам необходим статический (прямой) IP-адрес. Его можно заказать у интернет-провайдера. Узнать свой IP позволяют всевозможные ресурсы. Тут вам поможет поисковик.

Например, я выяснил, что мой статический IP: 15.215.30.35 и записал его, так как он понадобится для дальнейших настроек.

Также, для обмена информацией с блокчейном, нам необходимо открыть порты (по умолчанию) 30000 и 8080.

Откроем порт 8080 в Windows 10:

1 — открываем Брандмауэр Windows. Найти его можно через поиск меню “Пуск” или через “Панель управления” — “Система и безопасность” — “Брандмауэр Windows”;

2 — в брандмауэре выбираем “Дополнительные параметры”;

рис.4

3 — в открывшемся окне выбираем: “Правила для входящих портов” и “Создать правило”;

рис.5

4 — в “Мастере создания нового подключения” отмечаем: “Для порта”;

рис.6

5 — в следующем шаге указываем “Протокол TCP”, пишем к какому порту будет применяться правило (8080) и жмем “Далее”;

рис.7

6 — в шаге «Действие» указываем: “Разрешить подключение”, после жмем “Далее”;

7 — в “Профиле” оставляем без изменений, “Далее”;

8 — заключительный шаг требует написать имя порта и его описание, последнее не обязательно.

После этого кнопка: “Готово”.

рис.8

Таким же образом создаем “Правило для исходящего подключения”.

И аналогичным способом открываем порт 30000.

Узнать какие порты открыты помогает команда netstat –a. После ее введения в командную строку откроется список.

рис.9

Основная установка

Перейдем к основным этапам установки, которые указаны здесь на русском:https://sourceforge.net/p/tera/code/ci/master/tree/Doc/Rus/ или здесь на английском: https://sourceforge.net/p/tera/code/ci/master/tree/. Для этого нам понадобится ввести ряд команд в Power Shell или cmd. Некоторые команды требуют права администратора, поэтому сразу запускайте оболочку командной строки от его имени.

Для включения командной строки от имени администратора нужно кликнуть по ярлыку консоли правой кнопкой мыши и выбрать соответствующий пункт из контекстного меню. Cmd можно найти через поиск Windows 10, либо через меню “Пуск” в категории “Служебные”.

рис.10

Начинаем установку. Вводим в cmd:

“cd ..\..\..\”

или просто “c:”

Тут вы выбираете диск, на который будет устанавливаться нода. Поэтому можете поменять “c:” на любой другой диск. Учитывая, что база блокчейна занимает не менее 5 гигабайт, а она будет храниться в папке с нодой, то нужно выбрать диск с достаточным объемом памяти.

рис.11

Далее загрузим на компьютер исходники:

git clone https://git.code.sf.net/p/tera/code wallet

(Для следующих трех команд примеры показаны в Power Shell)

рис.12

Дожидаемся завершения и вводим следующую команду, которая позволит загрузить и провести инсталляцию инструментария для дальнейшей компиляции криптобиблиотеки из исходников. Тут обязательно потребуется, чтобы cmd или PowerShell были запущены с правами администратора

npm install — global — production windows-build-tools

рис.13

После выполнения запускаем следующий процесс инсталляции

npm install -g node-gyp

рис.14

Команда

cd wallet/Source

выполняет вход в папку с нодой.

рис.15

Здесь выполняем компиляцию криптографической библиотеки secp256k1. Важно, чтобы при этом процессе не было ошибок! Загружаем пакеты в каталог через команду

npm install

рис.16

Ошибка: VERY SLOW LIBRARY

В процессе работы ноды, как показала практика, может поступить сообщение об ошибке следующего вида:

“WARNING: VERY SLOW LIBRARY: secp256k1”

Это чревато тем, что нода не будет успеть обрабатывать блоки с большим количеством транзакций, поэтому необходимо уделить время устранению данной ошибки. Для ее ликвидации понадобится переустановить библиотеку из свежих исходников.

Как это сделать описано здесь: https://www.npmjs.com/package/secp256k1

Продолжаем установку и приступим к подключению порта 8080. В указанном месте нужно ввести секретное слово, иначе ваш кошелек может стать легкой добычей хакеров.

Итак, вводим команду

node set httpport:8080 password:

и назначаем пароль

рис. 17

Нода готова и запустить ее можно командой

run-node.bat,

но для ее работы необходима полная синхронизация с сетью. С чистой базой процесс начнется с нуля и займет много времени. Это будет выглядит так:

рис.18

Чтобы ускорить процесс, мы скачали базу. Распаковываем архив и копируем файлы из папки DB.

рис.19

И вставляем в папку DB установленного кошелька, предварительно удалив все находящиеся в ней файлы.

DB появится в папке DATA. Пока нода не будет впервые запущена, этой папки не будет.

рис.20

После данного шага показатели изменятся и время синхронизации сократится. То, что база данных восполняется, говорит не только значение процента, но и уменьшение числа DB Delta и TX Delta.

рис.21

Об окончании синхронизации сообщит надпись «Synchronization complete»

рис.22

Для майнинга необходимо открыть порт. Мы уже успели его подготовить ранее, поэтому назначаем команду (действие с правами администратора):

netsh advfirewall firewall add rule name=”Open 30000 port” protocol=TCP localport=30000 action=allow dir=IN

рис.23

Для доступа к ноде в браузере необходимо ввести локальный адрес 127.0.0.1:8080 или localhost:8080.

рис.24

Создание кошелька TERA и счета

Майнинг подразумевает вознаграждение за сгенерированные блоки. Для этого надо создать кошелек и счет, который будет назначен для начисления монет TERA.

Кошелек TERA создается буквально за пару кликов:

1 — нажимаете кнопку “New wallet”;

2 — нажимаете кнопку “Save”.

РИС_25.1

Скопируйте и сохраните ваш ключ в надежном месте. Он будет в дальнейшем обеспечивать доступ к кошельку со счетами. Смена кошельков выполняется через кнопку “Edit wallet” (3).

Счет создается следующим образом:

рис.25.2

1 — нажимаете кнопку New account;

2 — в строке Public name пишите название счета. В примере на рисунке он был назван «ACCOUNT_NAME»;

В строке Currency по умолчанию валюта блокчейна TERA (её ID — 0);
Adviser — здесь ID счета пригласившего или консультанта (не обязательно);
Smart — здесь, при необходимости, назначается привязка к ID смарт-контракта или DApp.

3 — затем кнопка Create. Подождите несколько секунд и увидите созданный счет.

Получаем номер счета (ID). В нашем примере это 200382. Чтобы назначить этот счет для начисления вознаграждение за майнинг, достаточно нажать кнопку «Set mining» и вписать его ID в строку Mining account.

рис. 26

Подготовка практически окончена и для начала майнинга осталось выполнить несколько действий (рис.27):

  • нажать кнопку “Net connect” (1) и убедиться, что возле надписи “Run server and use direct IP” стоит галочка (2), а под ней вписан действительно ваш статический IP и порт (3);
  • выставить процент загрузки CPU (4);
  • перевести кнопку-переключатель “Mining” вправо (5).

РИС_27

После этого начинается добыча монет.

Ошибка при смене IP

Если, вдруг, вы ошиблись и ваш адрес оказался не статическим, тогда он изменится, например, при перезагрузке компьютера. Майнинг не начнется, о чем будет свидетельствовать красный цвет под кнопкой-переключателем Mining. При этом будут увеличиваться значения DB delta и TX Delta.

Если адрес изменился, то новое значение можно указать в кошельке: нажать кнопку Net Connect (1) и вписать в открывшуюся строку новое значение.

рис.28

Сохранить и перезапустить ноду (2).

Количество потоков

По умолчанию программа возьмет для майнинга на одно ядро меньше, чем располагает компьютер. Например, если процессор компьютера имеет 32 потока, то CPU RUN по умолчанию будет 31/31. На них распределится свободная оперативная память. На каждый поток процессора выделяется память кратной величины степени 2: 512Мб, 1Гб, 2Гб, 4Гб. Наиболее оптимальным считается объем в 2 Гб, но стоит еще дополнительно учесть около 10% для служебных целей. То есть, например, не 1Гб, а 1,1Гб.

Сколько было взято памяти на поток информируется в логе сообщениями следующего вида:

рис.29

При 2Гб было бы 256М, при 4Гб — 512 Мб.

На рисунке ниже мы видим, что

1- майнинг запущен; 2 — мощность CPU используется на 50%; 3 — вознаграждение начисляется на счет ID 200382; 4 — для ноды выделено 47 потоков и каждый из них задействован в работе.

рис.30

Настройка количества потоков под имеющийся объем памяти через константы

Какая константа за какую функцию ответственна написано здесь: https://sourceforge.net/p/tera/code/ci/master/tree/Doc/Rus/CONSTANTS.MD. Наиболее важными моментами для майнера остаются: выделенная мощность CPU, количество участвующих в майнинге ядер процессора и используемая каждым потоком память. Подкорректировать количество отданных под работу сети потоков позволяет константа

“COUNT_MINING_CPU”: 0

Меняем значение «0» на то количество потоков, которые вы считаете наиболее приемлемым под существующие резервы памяти. Например, на «42»

“COUNT_MINING_CPU”: 42

В майнинге будет участвовать 42 потока.

рис.31

Если у вас, допустим, 96 Гб оперативной памяти, то каждый поток возьмет себе по 2,2 Гб. В итоге количество используемой памяти составит около 92,4 Гб.

Расчет вознаграждения

Зная общий хэшрейт сети и объем имеющихся мощностей, можно произвести приблизительный расчет среднего времени для получения вознаграждения за один блок. Общий хэшрейт отображается, как в вэб-кошелеке, так и в интерфейсе ноды, во вкладке EXPLORER — Counters

https://terafoundation.org/web-wallet.html#TabExplorer

рис.32

Проведем приблизительные подсчеты для общего хэшрейта показанного на рисунке: 15600 (15,6 трлн). Возьмем указанные в примере выше 42 потока с 2Гб памяти (200 Мб, что берутся на служебные цели для каждого потока не учитываем, а только сам массив хэшей), то есть 84 Гб (84 млрд).

1-е действие: 84/8 (хэш в памяти занимает 8 байт) = 10,5;

2)15600/10,5 = 1486 сек.

Это при условии, что память на 100% заполнена валидными хэшами. Такого в действительности не бывает. Согласно практики, доля валидных хэшей в памяти находится в пределах 60–90%. Здесь свою роль играет частота процессора. Учитывая практические данные, получаем коэффициент расхождения 0,1÷0,4. То есть, время получения блока увеличивается на 150–600 сек.

В итоге, приблизительное время награды при стабильной работе ноды: раз в 1635–2100 секунд.

Эти данные остаются актуальными около 5 000 блоков.

Полезные советы

Наблюдая за проектом TERA, видно, что он регулярно обновляется и улучшается. Так одно из обновлений апреля 2019-го года позволяет начать майнинг не дожидаясь полной загрузки базы данных. Это весьма актуально при первом запуске ноды или после длительного перерыва. Данную функцию активирует константа

“REST_START_COUNT”:10000,

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

Следует обратить внимание, что перезапуск ноды отнимает некоторое время от общего периода «полезной» работы, так как ей требуется 5000 блоков для «накачки», а это приблизительно 1,5 часа. Так что, второй совет — перед кратковременным отключением или перезагрузкой ноды, обдумайте, необходимо ли это действие.

Для аналитики и всевозможных расчетов, а также наблюдению за процессом майнинга хорошо помогают графики со статистическими данными. Но необходимо обратить внимание на то, что их постоянное включение поглощает оперативную память (около 1Гб в сутки). Это может коснуться той памяти, что выделена на майнинг. В таком случае не избежать ошибок и «аварийного» перезапуска ноды. Поэтому, следующий совет- после просмотра графиков, не забывайте отключать их, во избежание излишних затрат ресурсов памяти.

Детальная инструкция и советы помогут в максимально короткие сроки присоединиться к работе блокчейна и получать за это свое вознаграждение. Добро пожаловать в проект, важной частью которого вы стали. Теперь и ваш город отображен на онлайн карте криптосоюза TERA(https://terafoundation.org/map.html)

--

--