Як підняти власну ноду Карбованця (Docker)
Додано: 28 листопада 2017, 22:45
Здоров читачу!
Уважно гортаєш усі карбочати і закікавився роботою з віддаленими нодами? Тепер ти маєш шанс з мінімальними зусиллями запустити власну!
Що для цього треба:
1) Сервер (ПК, віртуальний інстанс, будь що) з Host OS що підтримує Docker та платформу x86-64.
2) Встановлений на хості Docker CE
3) Якщо маєш на сервері лінукс - онови пакети!
Список дій для запуску ноди:
1) Додати свого користувача до групи docker
2) Створити папку у якій буде зберігатися блокчейн, наприклад:
3) Завантажити або зробити образ з нодою:
3.1) Завантажити (репозиторій):
3.2) Зробити самому (переконайся що це не скам):
3.3) Опціонально Завантажити готовий блокчейн та розпакувати його у теку з п.2. Якщо маєш wget, то можеш використати ось цього монстра:
4) Створити контейнер за допомогою команди (у такому вигляді підходить лише для п. 3.1):
або
Різниця між командами у тому, що перша запустить ноду, яка збирає комісію на користь розробників Карбо, а друга - на користь власника ноди (тобто тебе )
Додатково: для кращої утилізації системних ресурсів до команди створення можна додати флаг --cpuset-cpus=x-x (наприклад: docker run --cpuset-cpus=0-4 ...) який визначає скільки ядер виділятиметься на контейнер (після знака "=" відповідно номери процесорних ядер, починаючи з 0. Скільки у Вас ядер можна подивитись по cat /proc/cpuinfo для linux чи у devmgmt.msc для windows).
Все, тепер маєш власну ноду! Для того щоб вона працювала повноцінно тобі також знадобиться:
1) Актуальний час у Host OS (якщо ти ще не користуєшся NTP - ти точно псих)
2) Білий IP
3) Дозволити у файрволі вхідні з'єднання на порт 32348 типу TCP. Якщо маєш iptables, то пиши:
4) Зачекати деякий час до синхронізації блокчейна (з мого досвіду на інстансі з 1 ЦП на даний момент це займає близко 2 діб)
Завдяки ключу -i у п.4 ти маєш змогу під'єднатися до консолі контейнера командою:
Щоб вийти звідти натисни послідовно CTRL+P та CTRL+Q
Якщо маєш питання - я як автор Dockerfile можу спробувати відповісти на нього у цій темі.
P.S. Для власників серверів на старому чи примітивному залізі
Якщо стандартний образ для Вас не працює (помилки типу exception, illegal instruction і тому подібне) - ви можете спробувати самостійно зібрати образ з експериментальної гілки github наступною командою:
де х-х - максимально доступна кількість процесорів (дивитись у графі "CPUs" команди docker info, наприклад: 0-1 для "CPUs: 2")
Уважно гортаєш усі карбочати і закікавився роботою з віддаленими нодами? Тепер ти маєш шанс з мінімальними зусиллями запустити власну!
Що для цього треба:
1) Сервер (ПК, віртуальний інстанс, будь що) з Host OS що підтримує Docker та платформу x86-64.
2) Встановлений на хості Docker CE
3) Якщо маєш на сервері лінукс - онови пакети!
Список дій для запуску ноди:
1) Додати свого користувача до групи docker
Код: Виділити все
sudo useradd <твій користувач> docker
2) Створити папку у якій буде зберігатися блокчейн, наприклад:
Код: Виділити все
mkdir /home/<твій користувач>/.karbowanec
3) Завантажити або зробити образ з нодою:
3.1) Завантажити (репозиторій):
Код: Виділити все
docker pull looongcat/karbo-fullnode
3.2) Зробити самому (переконайся що це не скам):
Код: Виділити все
docker build https://github.com/Looongcat/docker-karbo-fullnode.git
3.3) Опціонально Завантажити готовий блокчейн та розпакувати його у теку з п.2. Якщо маєш wget, то можеш використати ось цього монстра:
Код: Виділити все
printf "Downloaded SHA256\t:\t %s\nOriginal SHA256\t:\t %s\n" "$(wget https://bootstrap.karbo.io/blockchain-$(date "+%Y-%m-%d").tar.gz && sha256sum blockchain-$(date "+%Y-%m-%d").tar.gz | awk '{ print $1 }')" "$(wget -qO- https://bootstrap.karbo.io/blockchain-$(date "+%Y-%m-%d").tar.gz-sha256.txt)"
4) Створити контейнер за допомогою команди (у такому вигляді підходить лише для п. 3.1):
Код: Виділити все
docker run --restart=always -it -p 32347:32347 -p 32348:32348 -v <шлях з п.2>:/home/karbo/.karbowanec --name=karbo-fullnode -d looongcat/karbo-fullnode
або
Код: Виділити все
docker run --restart=always -it -p 32347:32347 -p 32348:32348 -v <шлях з п.2>:/home/karbo/.karbowanec --name=karbo-fullnode -d looongcat/karbo-fullnode --fee-address=<твій гаманець>
Різниця між командами у тому, що перша запустить ноду, яка збирає комісію на користь розробників Карбо, а друга - на користь власника ноди (тобто тебе )
Додатково: для кращої утилізації системних ресурсів до команди створення можна додати флаг --cpuset-cpus=x-x (наприклад: docker run --cpuset-cpus=0-4 ...) який визначає скільки ядер виділятиметься на контейнер (після знака "=" відповідно номери процесорних ядер, починаючи з 0. Скільки у Вас ядер можна подивитись по cat /proc/cpuinfo для linux чи у devmgmt.msc для windows).
Все, тепер маєш власну ноду! Для того щоб вона працювала повноцінно тобі також знадобиться:
1) Актуальний час у Host OS (якщо ти ще не користуєшся NTP - ти точно псих)
2) Білий IP
3) Дозволити у файрволі вхідні з'єднання на порт 32348 типу TCP. Якщо маєш iptables, то пиши:
Код: Виділити все
sudo iptables -A INPUT -p tcp --dport 32348 -j ACCEPT
4) Зачекати деякий час до синхронізації блокчейна (з мого досвіду на інстансі з 1 ЦП на даний момент це займає близко 2 діб)
Завдяки ключу -i у п.4 ти маєш змогу під'єднатися до консолі контейнера командою:
Код: Виділити все
docker attach karbo-fullnode
Щоб вийти звідти натисни послідовно CTRL+P та CTRL+Q
Якщо маєш питання - я як автор Dockerfile можу спробувати відповісти на нього у цій темі.
P.S. Для власників серверів на старому чи примітивному залізі
Якщо стандартний образ для Вас не працює (помилки типу exception, illegal instruction і тому подібне) - ви можете спробувати самостійно зібрати образ з експериментальної гілки github наступною командою:
Код: Виділити все
docker build --no-cache --cpuset-cpus=x-x -t looongcat/karbo-fullnode https://github.com/Looongcat/docker-karbo-fullnode.git#experimental
де х-х - максимально доступна кількість процесорів (дивитись у графі "CPUs" команди docker info, наприклад: 0-1 для "CPUs: 2")