Запуск тестовой ноды Symbol. Не природным способом :)

Нода Symbol под Windows 10!

Убираем детей от экранов!
Сейчас я вас проведу по извилистой тропинке между высокотехнологичными и почти противоречащими нормальной логике решениями — мы будем ставить ноду Symbol под Windows 10! Шучу ! Конечно же на Ubuntu. Но под Windows 10 ! 😊

В моих планах не было замысла повредить психику читателям, но в расчетное время мне не приехал сервер для этих экспериментов, и я подумал, что можно пойти альтернативным путем и не ждать службу доставки, при этом получить интересный результат. Итак, почему Windows 10? На первый взгляд выглядит как бред, звучит как бред и воспринимается бредом. Но если немного копнуть поглубже — на самом деле вариант приемлемый. Из плюсов:
- она, Windows 10, у многих есть. И не надо искать где “арендовать сервер”. Но это мы обсудит отдельно.
- с ней многие привыкли работать
- то, что мы сделаем не противозаконно и не стыдно
- нет, не стыдно! 😊

ВНИМАНИЕ ! На Windows 8 также присутствует HYPER-V, а значит теоретически все что будет описано ниже можно попробовать реализовать. Я не даю каких либо гарантий,т.к. проверить не было возможности.

Итак, краткий план работ, как бы не хихикали окружающие, которые нам предстоит сделать, и мы сделаем:

0. Что для этого надо?

1. Развертывание Windows Subsystem for Linux (WSL)

2. Развертывание виртуальной машины Ubuntu 18 LTS

3. Установка Docker. Этот и последующие разделы могу спокойно использовать владельцы “нормальных” вариантов Ubuntu 18

4. Установка и запуск ноды Symbol

  • Нода с поддержкой API (api-harvest-assembly )
  • Простая нода без поддержки API (peer-assembly)

0. Что для этого надо?

Для этого вам понадобится домашний компьютер или ноутбук с Windows 10, 4 Гб или более оперативной памяти. Процессор от Core 2 Quad (4 ядра) или выше. Почему именно так? Потому что технические требования к ноде — 2 ядра и не менее 2 Гб ОЗУ.

Если говорить о запуске ноды, то на определенном этапе развертывания она станет однотипной как для Win так и для Linux платформ. Поэтому, если у вас есть где-то развернутая виртуальная /физическая / облачная копия Ubuntu 18(LTE) смело переходите к пункту «3 Установка Docker» и присоединяйтесь к процессу, у вас тоже все получится!

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

1. Развертывание Windows Subsystem for Linux (WSL). Только для владельцев Windows 10.

Как вы знаете, или не знаете но сейчас узнаете, война «виндов» и «линухов» для пользователей Windows 10 закончилась с выходом Windows Subsystem for Linux (WSL). Это по сути подготовленная встроенная виртуальная машина, на родной платформе виртуализации от MS Hyper-V. Единственное что — не всегда ее поддержка включена с самого начала в вашей системе. Сейчас мы выполним пару простых шагов и установим эту подсистему.
Нажимаем возле кнопки пуск, лупу, и в строку поиска вводим «Панель управления», получаем:

Панель управления
Панель управления

Запускаем панель управления, и находим там раздел «Программы и компоненты»

Программы и компоненты
Программы и компоненты

Выбираем слева раздел «Включение или отключение компонентов Windows»

И ставим галочку в «Подсистема Windows для Linux» нажимаем ОК. Будут установлены необходимые компоненты, и система попросит вас ее перегрузить. Поздравляю! Теперь ваша Windows — Linux ! 😊

Внимание: на всякий случай, еще раз запустите “Компоненты Windows” и убедитесь что включена галочка “Hyper-V” (не во всех версиях\сборках Windows данная опция включена по умолчанию!)

Image for post
Image for post
Hyper-V

Если не включена — обязательно включите !

Нет, не переживайте винда осталась виндой, просто теперь мы очень просто установим на ней «виртуальную машину» с Ubuntu 18 LTS. Почему эта версия? Потому что она стабильная, там мало косяков, и она еще будет долго поддерживаться (на это намекает индекс «LTS»).

Далее нажимаем значок меню и ищем «Быстрое создание Hyper-V»:

Image for post
Image for post
Быстрое создание Hyper-V

2. Развертывание виртуальной машины Ubuntu 18 LTS. Только для владельцев Windows 10.

Нажимаем, и получаем такое окно:

Развертывание виртуальной машины Ubuntu 18 LTS
Развертывание виртуальной машины Ubuntu 18 LTS

Вы можете выбрать и 19 и 20 версию, но инструкцию я писал на основании того что происходит на 18 версии. Так что решение за вами!

Итак — выбираете версию Ubuntu 18.04 LTS, и нажимаете «Создать виртуальную машину». Далее система скачает и развернет образ системы. На этом этапе убираем руки от клавиатуры и просто наблюдаем, или занимаемся домашними делами — т.к. процесс требует немного время. Выглядеть это будет так:

Загрузка
Загрузка
Установка
Установка
Завершение
Завершение

На этом этапе вроде все, но еще нажмем «Изменить параметры» и проверим настройки. Должно быть похожее на это:

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Image for post
Настройки виртуальной машины

Единственное внесем небольшие изменения для экономии дискового пространства, выключим галочку “Включить контрольные точки”

Image for post
Image for post
Отключим галочку “Включить контрольные точки”

Нажимаем «Ок», возвращаемся к предыдущему окну и нажимаем «Подключиться». Попадаем в виртуальный мир 😊

Виртуальная машина
Виртуальная машина

Жмем в этом окне «Пуск» мышкой (чтобы попасть в окно виртуальной машины). Возможно, у вас проскочит такое окно

Ну а что вы хотите — это виндолинукс ! Нажимаем «Пробел», а те кто не ищут легких путей — кнопку «Any key» 😊

Далее идет процесс до настройки:
— Выбор языка интерфейса. Мой совет — выбирайте английский, будет меньше мороки!

Язык
Язык
Клавиатура
Клавиатура

Часовой пояс, каждый выбирает свой:

Временная зона
Временная зона

Далее внимательно:
Имя пользователя и пароль. Я назвал пользователя «Node» и установил пароль и его продублировал. Нажимаем «Continue»

Логин и пароль
Логин и пароль

Далее продолжиться процесс самонастройки системы и показ бобра. Короче «Всем бобра!»

Всем бобра !
Всем бобра !

После завершения этого этапа, у вас появится такое окно:

Начинаем работу
Начинаем работу

В Левом нижнем углу нажмите квадрат из точечек (это аналог меню пуск в виндовс)

Получите такой экран. Пролистайте его пока не найдете «Terminal», нажмите на нем ПРАВУЮ кнопку мышки и в появившемся меню выберите «Add to Favorite». Вы заметите как на левой панели со значками появится значок терминала. Да, тут все вот так! А еще и ручками команды вводить! Теперь ты линуксоид, и тут все делается руками ! 😊 Радуйтесь что мы GUI вариант используем а не чистую консоль !

Terminal
Terminal

По сути, мы уже получили работающую Ubuntu 18. Но не стоит впадать в эйфорию, это еще не все. По сути, любая линукс система «живет» за счет репозиториев, где хранятся программы, обновления к ним, и что важно — обновления к системным компонентам. Это как система обновления в виндовс. Точнее система обновления в виндовс это жалкая пародия на линукс репозитории. Так вот нам их надо подключить то что почему то по умолчанию не подключено. Опять жмем квадратик/пуск и ищем там «LivePatch»

LivePatch
LivePatch

Жмем мышкой и запускаем. На закладке «Other Software», и включаем обе галочки!

Other Software
Other Software

Нажимаем «Close». Начнется обновление данных, выглядеть будет как то так:

Обновление компонент
Обновление компонент

В итоге появится окно предлагающее перегрузить систему (не гарантированно, но с высокой вероятностью):

Перезагрузка после обновления
Перезагрузка после обновления

Нажимаем «Restart Now», и ждем перегрузки.

3. Установка Docker. Раздел для тех, кто прошел предыдущие шаги, а также для тех, у кого ранее уже была установлена Ubuntu

Вот мы и подошли к главному: установка Docker. Что это такое? По сути это еще одна виртуальная машина в виртуальной машине 😊 Если проще — то это контейнер содержащий набор необходимого программное обеспечение (ПО), в данном случае ПО ноды Symbian, и окружение из стороннего ПО, которое нам и не надо знать, но оно в том контейнере сразу все собрано, упаковано и настроено, так чтобы мы «не парились». Итак. Запускает terminal, щелкнув по его значку на панели слева. Откроется окно похожее на классическую командную строку Windows

Image for post
Image for post
Ubuntu

А теперь придётся напрячь наши ручки и пальчики, вводя команды, это Liiiiiinux ! 😊 Напомню — ввод команд означает набор команд в командной строке и завершение каждой команды нажатием “ENTER”

Например: Набираем sudo apt install git а потом жмем ENTER, и так везде, уверен не запутаетесь !

При выполнении команды sudo, система может запросить пароль (надпись в терминале password:) — вводите пароль вашей учотки, и не удивляйтесь что курсор при этом не двигается, и звездочек в месте ввода не появляется, так принято в ликус !

1.Устанавливаем GIT
sudo apt install git
побегут строки, и в какой-то момент будет запрос

Image for post
Image for post
Установка

нажмите «Y» и дождитесь окончания процесса, когда появится опять приглашение в командной строке

2. Нам необходимо установить сам Dockers
в консоли вводим:
sudo apt install docker
все по аналогии с предыдущим пунктом

3. Устанавливаем Dockers Compose
в консоли вводим:
sudo apt install docker-compose
все по аналогии с предыдущим пунктом

4. И наконец устанавливаем «контейнер» с Symbol
git clone https://github.com/nemfoundation/symbol-testnet-bootstrap.git

Как вы помните — есть 2 варианта запуска ноды:
- простая нода для валидации транзакций
- нода с поддержкой API
Разработчики за нас хорошо подумали и разнесли 2 набора настроек по 2 отдельным папкам, с созвучными названиями, чтобы мы даже не смогли запутаться.

- Нода с поддержкой API (api-harvest-assembly).

Если вы хотите иметь возможность взаимодействовать с вашим узлом, вам нужно запустить сборку API. Вводим команду для перехода в папку api-harvest-assembly
cd symbol-testnet-bootstrap/api-harvest-assembly (этот вариант мы запустим и проверим первым)

- Простая нода без поддержки API (peer-assembly).

Если же вы хотите, чтобы узел работал только для подтверждения транзакций, разверните сборку Peer. Вводим команду для перехода в папку peer-assembly
cd symbol-testnet-bootstrap/peer-assembly

Это были все отличия для запуска того или иного варианта запуска.

Теперь запускаем сам узел: вводим команду и заканчиваем вводом «Enter»
sudo docker-compose up --build -d

Внимание!!! В официальной документации приводится другой код:
sudo docker-compose up --build -detach
Этот код не работает, скорее всего связанно со «старостью» документации

После запуска у вас начнется процесс запуска «контейнера» (в данном примере Нода с поддержкой API), это займет некоторое время. Дождитесь такого завершения процесса:

Image for post
Image for post
Нода с поддержкой API

Если картинка похожа — значит контейнер «запустился». Как проверить? Запускаем Firefox

Image for post
Image for post
Firefox

В адресной строке набираем http://localhost:3000/chain/height:

Image for post
Image for post
http://localhost:3000/chain/height

Если нода работает и «все» хорошо — у вас на экране будет вот такая картинка (число будет отличаться). Внимание! Это проверка работает в режиме api-harvest-assembly !

Но это еще не все…

Для проверки того что нода не только работает но и доступна с наружи (а это ключевой фактор), т.е. из сети интернет — введите в вашем браузере, в адресной строке http://your_node_ip:3000/chain/height, где your_node_ip — ваш внешний IP , вы должны получить схожее:

Image for post
Image for post
http://your_node_ip:3000/chain/height

Если у вас все получилось — поздравляю, вы счастливый обладатель работающей полноценной ноды Symbol !
Если на этом этапе вы получили другой ответ чтото типа «узел не доступен», значит у вас необходимо провести настройку сети ! В самом конце будут некоторые рекомендации в разделе Настройки сети.

Теперь проверим работу в режиме просто нода (peer-assembly):

Остановим службу api-harvest-assembly и запустим в режиме peer-assembly. Вводим в терминале по очереди команды:
sudo docker-compose down
cd ..
cd symbol-testnet-bootstrap/peer-assembly

И запускаем как и ранее узел, но уже из другой папки:
sudo docker-compose up --build -d

После этого в terminal выполним команду:
docker-compose ps peer-node

На экране вы должны получить чтото похожее на:

Image for post
Image for post

Ну вот и все, упрощенная нода работает !

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

Существует, по сути, 2 варианта подключения к сети:
— Прямое. Это когда кабель вашего провайдера включен в порт вашего ПК/Ноутбука (таких вариантов очень мало)
— Через роутер с прямым IP адресом. Это когда кабель провайдера входит в роутер у вас дома, а ваш ПК/Ноутбук подключен к роутеру, и общение с сетью интернет идет через роутер (шнурком или по WI-Fi).
— Через роутер с «серым» IP адресом или за «NAT»-ом провайдера. Это когда кабель провайдера входит в роутер у вас дома, а ваш ПК/Ноутбук подключен к роутеру (шнурком или по WI-Fi), но первичное управление доступом к сети — на стороне провайдера (достаточно распространенный вариант подключения и не очень хороший для построения нод). Чем плох вариант? Тем, что технология NAT по сути отрезает вас от внешней среды, и она управляет доступам к портам а не вы.

Для того чтобы нода работала полноценно, необходимо, чтобы хост вашего сервера с нодой был доступен из Интернета и были открыты и доступны следующие порты:

Порт 7900, он используется сервером Catapult для связи между узлами.
Порт 3000, он используется шлюзом REST для предоставления конечным точкам взаимодействия с узлом.

Если у вас прямое соединение проблем быть не должно.
Если у вас интернет через роутер — вам надо будет сделать «проброс портов/port mapping» до вашего устройства, над которым мы ведем эксперименты. Возможно будет нужен специалист.
Если у вас роутер и провайдерский NAT, будет очень сложно, т.к. надо обращаться к провайдеру чтобы они у себя делали для вас проброс. Нужна помощь поддержки провайдера, если они согласятся.

В следующей статье, мы рассмотрим варианты с арендованными ресурсами, проведем обзор наиболее доступных и в тоже время удовлетворяющих требованиям, научимся с ними работать и настраивать ноды. Чтобы не пропустить — подпишись на мои статьи на Medium

Автор DrCryptos

Если вы еще не присоединились к программе Социального Майнинга NEM hub, просьба пройти регистрацию по этой ссылке

Written by

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store