kryvora-node README

The project's README from github.com/kryvora-network/kryvora-node. As one markdown file: README.md.

kryvora-node

Go Version License Release CI Status Network

Official client daemon for Kryvora Network nodes.

Overview

Kryvora is a decentralized physical infrastructure network designed for distributed verification and worker coordination. The kryvora-node daemon connects worker hardware to the Kryvora Hub, executes telemetry probes, verifies peer state, and reports proof of availability.

System Topology

+-------------------------------------------------------------+
|                     Kryvora Node Host                       |
|                                                             |
|  +--------------------+             +--------------------+  |
|  |   Worker Engine    |             |  Telemetry Daemon  |  |
|  |  (Task Execution)  |<----------->|    (Port 4177)     |  |
|  +---------+----------+   IPC/Bus   +---------+----------+  |
|            |                                  |             |
|            | Unix Socket (/var/run/node.sock) | HTTP API    |
|            v                                  v             |
|  +-------------------------------------------------------+  |
|  |                 Kryvora Storage Store                 |  |
|  |            (State, Peer Nonces, Telemetry)            |  |
|  +-------------------------------------------------------+  |
+------------------------------+------------------------------+
                               |
                   Mutual TLS  |  Heartbeat (30s)
                   gRPC / HTTP |  Verification Probes
                               v
+-------------------------------------------------------------+
|                 Kryvora Coordination Hub                    |
|                        (Port 4188)                          |
+-------------------------------------------------------------+

Node Licensing & Genesis Key Requirement

Operating a Kryvora verification node requires an active Genesis Node Key. The Genesis Node Key is an on-chain soulbound verification credential deployed on Arbitrum One:

Before launching the daemon, obtain your node bootstrap token by connecting your wallet at node.kryvora.network. Unauthenticated nodes without a valid bootstrap token will be rejected by the Coordination Hub (hub.kryvora.network:4188).

System Requirements

Hardware specs for running a standard verification worker:

Quick Start

Option 1: Automated Script (Linux systemd)

Run the installation script to fetch the binary and register the systemd service:

curl -sSL https://raw.githubusercontent.com/kryvora-network/kryvora-node/main/install.sh | bash

The script will prompt for your Genesis Node Key bootstrap token and register the systemd service.

Check service status:

sudo systemctl status kryvora-node

Option 2: Docker Compose

  1. Clone the repository:
git clone https://github.com/kryvora-network/kryvora-node.git
cd kryvora-node
  1. Copy the configuration template and set your token:
cp config.example.yaml config.yaml
# Edit config.yaml and insert your bootstrap_token under auth:
# Or set KRYVORA_BOOTSTRAP_TOKEN in your environment
  1. Start the node container:
KRYVORA_BOOTSTRAP_TOKEN="your_token_here" docker compose up -d
  1. Verify logs:
docker compose logs -f kryvora-node

Option 3: Build from Source

Requirements: Go 1.22 or higher.

git clone https://github.com/kryvora-network/kryvora-node.git
cd kryvora-node
make build
./bin/kryvora-node --config config.yaml --token "your_token_here"

Configuration

Configuration is loaded from config.yaml or set via environment variables.

Key Type Default Description
node.id string auto-generated Unique identifier for worker node
node.listen_addr string 0.0.0.0:4177 Local address for telemetry and metrics
node.data_dir string /var/lib/kryvora Local state and task database directory
auth.bootstrap_token string "" Mandatory: Genesis Node Key activation token
hub.endpoint string https://hub.kryvora.network:4188 Upstream coordination hub address
hub.heartbeat_interval int 30 Interval in seconds between hub pings
telemetry.enabled bool true Expose Prometheus metrics on /metrics

Local Endpoints

When running, the daemon exposes the following endpoints on port 4177:

Example query:

curl -s http://127.0.0.1:4177/status

Security

Please report vulnerabilities directly to [email protected] rather than opening public issues.

License

Apache License 2.0. See LICENSE for details.

kryvora-node (kryvora-network/kryvora-node)

Searching Database…

Что это такое?Это официальный клиентский демон сети Kryvora — децентрализованной сети физической инфраструктуры (DePIN). Запустив его, вы превращаете свою машину в верификационный воркер: он подключается к Kryvora Hub, выполняет телеметрические проверки, сверяет состояние пиров и отправляет proof of availability (подтверждение доступности).
Это то, что я ставлю на своё железо, или хостинговый сервис?Вы устанавливаете его на своё железо: он работает как сервис systemd под Linux, как контейнер Docker Compose или как бинарник, собранный из исходников. После запуска он постоянно остаётся на связи с координационным хабом по адресу hub.kryvora.network:4188.
Как запустить ноду?Три варианта: запустить автоматический скрипт установки на Linux (он регистрирует сервис systemd), использовать Docker Compose из склонированного репозитория или собрать из исходников с Go 1.22+. В любом случае в конфиг нужно вписать ваш загрузочный токен.
Что нужно, чтобы демон смог подключиться к сети?Активный Genesis Node Key — soulbound-креденшал в блокчейне Arbitrum One (контракт 0xBCf2cD12D1D37578fA7C69805fE77788e866BE1a). Подключите кошелёк на node.kryvora.network, чтобы получить загрузочный токен, который требуется хабу.
Какие подводные камни ждут новичков при запуске ноды?Хаб отклоняет любую ноду без действующего загрузочного токена, так что анонимно поработать не выйдет. Также нужно минимум 2 ГБ оперативной памяти, 20 ГБ на SSD и открытый входящий порт 4177 для телеметрических проверок.
Он работает на Windows и Mac или только на Linux-серверах?Подтверждённые варианты — Linux (systemd) и Docker; сборка из исходников рассчитана на x86_64 и arm64. В README ничего не сказано о нативной поддержке Windows или macOS.
Как следить за моей нодой после запуска?Демон отдаёт три локальных эндпоинта на порту 4177: /health — статус жизненного цикла, /status — связи с пирами, высоту блока и состояние синхронизации, /metrics — счётчики в формате Prometheus, включены по умолчанию.
Как часто нода выходит на связь с хабом?По умолчанию каждые 30 секунд; интервал задаётся параметром hub.heartbeat_interval в config.yaml или переменной окружения. Адрес хаба настраивается таким же образом.
Где нода хранит своё состояние?В каталоге, который задаёт параметр node.datadir (по умолчанию /var/lib/kryvora), при этом демон слушает локально на 0.0.0.0:4177. И то и другое можно переопределить в config.yaml или через переменные окружения.
What are similar projects?kubo, gun, node, go-ethereum, signoz, quip-validator, thanos, canopy
Size
1.4 MB
Stars
1.4K
Age
25d
Commits · 90 Days