# Ноды CARDANO ## Не ставьте пока, чисто для ознакомления, огмиос говно ### Предисловие Есть дефолтная нода от кардано, но чтобы с ней как либо взаимодействовать надо накатить на нее обвесы Данный лонгрид-гайд будет обновляться как я буду сам разбираться что и как. Пойдем от легкого к сложному Все инструкции работают для Ubuntu если не сказано обратное П.С. Тут не будет рассматриваться выбор и покупка сервера, надеюсь с этим можно справиться среднестатистическому юзеру П.С.С. Не обращайте внимание на пунктуацию и орфографию 1. ## OGMIOS В этом пункте все предельно легко. Огмиос ставит нам ноду + автоматом накатывает на нее свое апи и мы радуемся жизни Плюсы: быстро и легко Минусы: меньше кастомизации + супер долгий синхрон (на дефолтном сервере у меня синхронит уже больше суток) Приступим Как только открыли свою тачку обновим зависимости пакетов ```bash sudo apt update ``` Далее установим Docker для дальнейшей установки ноды ```bash sudo apt install docker.io ``` Скачаем образ ноды + апи ```bash sudo docker pull cardanosolutions/cardano-node-ogmios:latest ``` Запустим докер, должна начаться установка + синхронизация ```bash sudo docker run -it \ --name cardano-node-ogmios \ -p 1337:1337 \ -v cardano-node-ogmios-db:/db \ cardanosolutions/cardano-node-ogmios:latest ``` В терминале вы увидите что то подобное![](https://i.imgur.com/S5HWLJ7.png) Дашборд http://node_ip:1337 ![](https://i.imgur.com/mFMiaZE.png) 2. ## Дефолт нода + OGMIOS В этом пункте установим обычную ноду и накатим на нее апи OGMIUS Преимущество перед первым пунктом как минимум в том что мы можем ускорить синхронизацию дав ноде больше ядер процессора Делаем все построчно из документации + вчитываемся в инстуркции https://developers.cardano.org/docs/get-started/installing-cardano-node/ ![](https://i.imgur.com/zDmIvcR.png) Чтобы выполнить это ^ ```bash sudo apt install nano sudo nano $HOME/.bashrc ``` После каждого такого изменения надо перезагрузить баш профиль Я поступаю максимально кринжово и просто переподключаюсь к серверу, уверен есть нормальный вариант Обратите внимание на это ![](https://i.imgur.com/YF9SZno.png) У меня была проблема, что я не могу выполнить вот эту команду `cabal build cardano-node cardano-cli` Если почитать ошибку то там сразу дается решение Вроде оно выглядит как `cabal update`, но перепроверьте, мб у вас такой ошибки вообще не будет После устанвоки переходим сюда https://developers.cardano.org/docs/get-started/running-cardano/ Вам нужно скачать некоторые джейсоны, а именно(все делаю в домашней директории): ```bash curl -O -J https://book.world.dev.cardano.org/environments/mainnet/config.json curl -O -J https://book.world.dev.cardano.org/environments/mainnet/topology.json ``` Далее делаем папку по базу данных ```bash mkdir db ``` В этой папке создаем node.socket ```bash touch db/node.socket ``` Далее пойдет долгий путь синхронизации ```bash cardano-node run --topology $HOME/topology.json --database-path $HOME/db --socket-path $HOME/db/node.socket --host-addr 127.0.0.1 --port 3333 --config $HOME/config.json +RTS -N<int> -RTS ``` Вместо <int> пишем число ядер которое пойдет на синхрон ноды (мин 2 макс кол-во ядер процессора) Все синхрон пошел, запускаем НОВЫЙ терминал не закрывая старый и прописываем в башрц `export CARDANO_NODE_SOCKET_PATH="$HOME/db/node.socket"` Смотрим как это сделать выше когда устанавливали ноду Переподключаемся к серверу и наблюдаем как нода будет синхрониться `cardano-cli query tip --mainnet` Как только ваша нода прошла синхрон можем в консоль писать вот это ```bash docker run --rm --name ogmios-custom -p 1337:1337 -v $HOME:/ipc cardanosolutions/ogmios:latest --node-socket /ipc/db/node.socket --node-config /ipc/config.json --host 0.0.0.0 ``` Все дашборд есть, нода работает, вы супер Даш на `http://node_ip:1337` В бота ставить `ws://node_ip:1337` 3. Мониторинг для нагрузки на сервер Вот ориг гайд https://www.dmosk.ru/miniinstruktions.php?mini=prometheus-stack-docker Создаем каталоги, где будем создавать наши файлы ```bash mkdir -p /opt/prometheus_stack/{prometheus,grafana,alertmanager,blackbox} ``` Создаем файл ```bash touch /opt/prometheus_stack/docker-compose.yml ``` Переходим в каталог prometheus_stack ```bash cd /opt/prometheus_stack ``` Вписываем в файл ```bash nano docker-compose.yml ``` ``` version: '3.9' services: prometheus: image: prom/prometheus:latest volumes: - ./prometheus:/etc/prometheus/ container_name: prometheus hostname: prometheus command: - --config.file=/etc/prometheus/prometheus.yml ports: - 9090:9090 restart: unless-stopped environment: TZ: "Europe/Moscow" networks: - default node-exporter: image: prom/node-exporter volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro container_name: exporter hostname: exporter command: - --path.procfs=/host/proc - --path.sysfs=/host/sys - --collector.filesystem.ignored-mount-points - ^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/) ports: - 9100:9100 restart: unless-stopped environment: TZ: "Europe/Moscow" networks: - default grafana: image: grafana/grafana user: root depends_on: - prometheus ports: - 3000:3000 volumes: - ./grafana:/var/lib/grafana - ./grafana/provisioning/:/etc/grafana/provisioning/ container_name: grafana hostname: grafana restart: unless-stopped environment: TZ: "Europe/Moscow" networks: - default networks: default: ipam: driver: default config: - subnet: 172.28.0.0/16 ``` ```bash nano prometheus/prometheus.yml ``` ``` scrape_configs: - job_name: node scrape_interval: 5s static_configs: - targets: ['node-exporter:9100'] ``` Запускаем контейнеры ```bash docker-compose up -d ``` ![](https://i.imgur.com/mgIFQHz.png) ![](https://i.imgur.com/9tYpJdH.png) ![](https://i.imgur.com/ZSwLp0I.png) #### По всем вопросам стучитесь в дм, как буду свободен буду отвечать в порядке очереди, но постарайтесь сами разобраться пж ##### MADE BY A_Lazar_A#3052