4NK_certificator/README.md
4NK Dev 0fbd4333ed feat: complete implementation of 4NK Certificator
 New features:
- RelayMonitor: WebSocket connection to sdk_relay with message handling
- PaymentWatcher: Bitcoin RPC monitoring for payments on watched addresses
- AnchorEngine: Complete anchoring logic with Bitcoin tx creation/broadcast
- Prometheus metrics: /metrics endpoint with gauges and counters
- Verification API: POST /api/v1/anchors/verify to verify on-chain anchors
- Payments API: GET /api/v1/payments/{address} for payment history

🔧 Implementation details:
- Real-time message monitoring from relay (Handshake, Commit, NewTx, Cipher)
- Block scanning for payments to watched addresses
- Mempool monitoring for pending payments
- Automatic anchor creation based on block intervals
- Payment condition verification (priceMoSats * MB >= total_paid)
- OP_RETURN transaction creation with 'NKA1' protocol identifier
- Complete database operations for processes, metrics, anchors, payments

📊 Monitoring:
- 4nk_certificator_processes_total
- 4nk_certificator_anchors_created_total
- 4nk_certificator_anchors_confirmed_total
- 4nk_certificator_data_volume_bytes

Version: 0.1.0 - Full MVP
2025-10-01 09:39:22 +00:00

4.6 KiB

4NK Certificator

Service d'ancrage cryptographique sur Bitcoin mainnet pour les volumes de données des relais 4NK.

Description

Le Certificator enregistre périodiquement sur le mainnet Bitcoin l'empreinte des échanges de données transitant par les relais 4NK. Il fournit une preuve vérifiable et immuable du volume de données échangées, avec un système de paiement conditionnel pour activer l'ancrage.

Documentation

Voir la spécification complète : ../docs/CERTIFICATOR_SPECIFICATION.md

Fonctionnalités principales

  • Ancrage périodique : Enregistrement mensuel (configurable) sur Bitcoin mainnet
  • Paiement conditionnel : Ancrage activé uniquement si paiement détecté
  • Métriques en temps réel : Surveillance des volumes de données par processus
  • API REST : Accès aux métriques, ancrages et paiements
  • Vérification : Validation cryptographique des ancrages on-chain

Installation

Prérequis

  • Rust 1.70+
  • PostgreSQL 15+
  • Redis 7+
  • Bitcoin Core (mainnet ou signet pour tests)
  • sdk_relay en cours d'exécution

Configuration

# Copier le fichier de configuration exemple
cp config/certificator.toml.example config.toml

# Éditer la configuration
nano config.toml

Compilation

cargo build --release

Initialisation de la base de données

# Créer la base de données
psql -U postgres -c "CREATE DATABASE certificator_db;"
psql -U postgres -c "CREATE USER certificator WITH PASSWORD 'secure_password';"
psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE certificator_db TO certificator;"

# Les migrations sont appliquées automatiquement au démarrage

Lancement

# Mode développement
RUST_LOG=info cargo run

# Mode production
./target/release/4nk_certificator

Usage

API REST

Lister les processus

curl http://localhost:8082/api/v1/processes

Obtenir les métriques d'un processus

curl "http://localhost:8082/api/v1/processes/abc123:0/metrics?start_block=800000&end_block=804320"

Lister les ancrages d'un processus

curl http://localhost:8082/api/v1/processes/abc123:0/anchors

Health Check

curl http://localhost:8082/health

Architecture

4NK_certificator/
├── src/
│   ├── main.rs           # Point d'entrée
│   ├── config.rs         # Configuration
│   ├── models.rs         # Modèles de données
│   ├── db.rs             # Accès base de données
│   ├── api/              # API REST
│   │   ├── mod.rs
│   │   ├── processes.rs
│   │   ├── metrics.rs
│   │   └── anchors.rs
│   ├── monitor.rs        # Surveillance relay
│   └── anchor.rs         # Logique d'ancrage
├── config/
│   └── certificator.toml.example
├── Cargo.toml
└── README.md

Docker

Build

docker build -t git.4nkweb.com/4nk/4nk_certificator:latest .

Run

docker compose -f ../lecoffre_node/docker-compose.certificator.yml up -d

Développement

Tests

cargo test

Linting

cargo clippy

Formatage

cargo fmt

Statut du projet

Version actuelle : 0.1.0 (MVP complet)

Fonctionnalités implémentées

  • RelayMonitor : Connexion WebSocket au relay pour capturer les messages
  • PaymentWatcher : Surveillance Bitcoin RPC des paiements
  • AnchorEngine : Création et broadcast des transactions Bitcoin
  • API REST : Processes, métriques, ancrages, vérification, paiements
  • Métriques Prometheus : /metrics endpoint
  • Database : PostgreSQL avec migrations automatiques
  • Health checks : /health endpoint
  • Configuration : TOML avec tous les paramètres
  • Docker : Dockerfile + docker-compose complet

📋 Endpoints API

Processes

  • GET /api/v1/processes - Liste tous les processus
  • GET /api/v1/processes/{id}/metrics - Métriques d'un processus
  • GET /api/v1/processes/{id}/anchors - Ancrages d'un processus

Anchors

  • POST /api/v1/anchors/verify - Vérifier un ancrage on-chain

Payments

  • GET /api/v1/payments/{address} - Historique des paiements

Monitoring

  • GET /health - Health check
  • GET /metrics - Métriques Prometheus

🔄 TODO

  • WebSocket API pour events temps réel
  • JWT authentication
  • Tests unitaires et d'intégration
  • Documentation API (OpenAPI/Swagger)
  • CLI pour opérations manuelles

Licence

Voir LICENSE dans le dépôt principal 4NK_env.

Auteurs

Équipe 4NK - https://4nkweb.com