---
# System prepended metadata

title: Ноды CARDANO

---

# Ноды 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