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 Network 的官方客户端守护进程。Kryvora Network 是一个去中心化物理基础设施网络(DePIN)。运行它会把你的机器变成一台验证工作节点,连接到 Kryvora Hub,执行遥测探测、验证对等节点状态,并上报可用性证明。
这是我装在自己硬件上的软件,还是托管服务?需要装在自己的硬件上:它可以作为 Linux systemd 服务、Docker Compose 容器运行,也可以用源码编译出的二进制运行。启动后,它会一直连接位于 hub.kryvora.network:4188 的协调中心。
怎么把一个节点跑起来?三种方式:在 Linux 上运行自动安装脚本(会注册一个 systemd 服务)、在克隆下来的仓库里用 Docker Compose,或者用 Go 1.22+ 从源码编译。无论哪种方式,都需要在配置里填入你的引导令牌。
守护进程要连上网络,我需要提前准备什么?需要一个有效的 Genesis Node Key——这是 Arbitrum One 链上的一种灵魂绑定(soulbound)链上凭证(合约地址 0xBCf2cD12D1D37578fA7C69805fE77788e866BE1a)。在 node.kryvora.network 连接你的钱包,即可获取中心节点要求的引导令牌。
新手跑节点容易踩哪些坑?中心节点会拒绝任何没有有效引导令牌的节点,所以无法匿名运行。另外至少需要 2 GB 内存、20 GB SSD 存储空间,并且要开放入站端口 4177 用于遥测探测。
它能在 Windows 和 Mac 上运行,还是只支持 Linux 服务器?官方确认的方式是 Linux(systemd)和 Docker;从源码编译支持 x86_64 和 arm64。README 里没有提到对原生 Windows 或 macOS 的支持。
节点跑起来之后,我怎么随时掌握它的状态?守护进程在端口 4177 上提供三个本地端点:/health 用于查看生命周期状态,/status 用于查看对等节点连接、区块高度和同步状态,/metrics 提供 Prometheus 兼容的计数指标,默认开启。
节点多久向中心节点汇报一次?默认每 30 秒一次,可以通过 config.yaml 里的 hub.heartbeat_interval 或环境变量来调整;中心节点的地址也可以用同样的方式配置。
节点的状态数据存在哪里?存在 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