Skip to content

Gateway ​

Gateway — сервіс Node.js (Fastify) між користувачами і нодою. Вебзастосунок, SDK і MCP-сервер звертаються саме до нього.

Що робитьДеталі
Обслуговує REST APIБільшість шляхів проксує ноду; кілька — власні, див. REST
Обслуговує WebSocket/ws — живі блоки, транзакції, AI-події, підписки на баланси; див. WebSocket
Маршрутизує за шардамиНадсилає кожну транзакцію ноді, що обслуговує шард відправника
Стежить за мережеюОпитує ноду, перетворює зміни на події, піднімає сповіщення про активність контрактів
Обмежує запитиНа IP, глобально і для AI-ендпоінтів
Містить AI-інструментиПроксі аудиту контрактів, генерація контрактів (SmartForge), помічник з документації

Gateway нічого не вирішує щодо стану мережі: підписи, баланси й AI-оцінки надходять від ноди.

Запуск ​

bash
cd neurochain/gateway
npm install
NODE_RPC_URL=http://localhost:9933 node src/index.js
bash
curl -s http://localhost:3000/health
# {"status":"ok","network":"neurochain-mainnet-1","height":11,"peers":0,"round":0,"mempool":0}

Він слухає порт PORT (3000) на всіх інтерфейсах.

Конфігурація ​

Підключення ​

ЗміннаЗа замовчуваннямЗначення
PORT3000Порт
NODE_RPC_URLhttp://localhost:9933RPC ноди
NEUROCHAIN_SHARD_NODES—Маршрутизація за шардами, напр. 0=http://n0:9933,1=http://n1:9934
SHARD_NODE_URLS—Те саме, позиційно (індекс = шард); використовується, якщо попередню не задано
NETWORK_IDneurochain-mainnet-1Назва мережі в /health
CORS_ALLOWED_ORIGINS*Дозволені джерела браузера — у продакшені вкажіть джерело свого сайту
TLS_CERT, TLS_KEY—Шляхи до PEM, щоб обслуговувати HTTPS напряму

Ліміти ​

ЗміннаЗа замовчуваннямЗначення
GLOBAL_RL_MAX_RPS200Запитів за секунду на IP
AI_RL_MAX_RPM10Запитів до AI-ендпоінтів за хвилину на IP
WS_MAX_MSG_BYTES65 536Найбільше повідомлення WebSocket
WS_MAX_SUBS_PER_CLIENT50Підписок на баланс на з'єднання
WS_RPC_MAX_RPS30RPC-викликів за секунду на з'єднання

Спостереження за мережею ​

ЗміннаЗа замовчуваннямЗначення
POLL_NODE_INTERVAL_MS2000Як часто опитувати ноду про нові блоки
SENTINEL_CHECK_INTERVAL_MS30000Перевірка активності контрактів
SENTINEL_SPIKE_LOW_THRESHOLD / _HIGH_THRESHOLD10 / 50Викликів за інтервал, що піднімають середнє / високе сповіщення
SENTINEL_LOW_SCORE_THRESHOLD60Сповіщення, коли починають викликати контракт з оцінкою безпеки нижче цієї
ALERT_COOLDOWN_MS60000Мінімальна пауза між сповіщеннями для одного контракту
PROTOCOL_PARAMS_REFRESH_MS60000Як часто перечитувати параметри протоколу з ноди

Кран (тестові мережі) ​

ЗміннаЗа замовчуваннямЗначення
FAUCET_AMOUNT50 NROСума за запит
FAUCET_COOLDOWN_SECS86400На адресу й IP
REDIS_URLredis://localhost:6379Необов'язково — зберігає паузу крана між перезапусками gateway; без Redis вона тримається в пам'яті

AI-інструменти ​

ЗміннаЗа замовчуваннямЗначення
ANTHROPIC_API_KEY—Вмикає генерацію контрактів SmartForge з Claude; без нього використовується вбудований генератор шаблонів
SMARTFORGE_MODEL, SMARTFORGE_MAX_TOKENS—Модель і довжина для SmartForge
AI_EXPORT_TOKEN—Якщо задано, /api/v1/ai/export/* вимагає його
ASSISTANT_ENABLED0Помічник з документації (POST /api/v1/assistant/ask); перебудувати його індекс — npm run assistant:index

Повний список з усіма значеннями за замовчуванням — у .env.example репозиторію.

Безпека ​

  • Тримайте RPC ноди закритим і відкривайте лише gateway (за зворотним проксі з TLS або з TLS_CERT / TLS_KEY).
  • Задайте в CORS_ALLOWED_ORIGINS власні джерела.
  • POST /api/v1/wallet/derive-address отримує фразу відновлення; у mainnet нода її відхиляє, і на публічному gateway цей ендпоінт ніколи не має бути доступним.
  • Деякі поля /api/v1/network/status (tps_peak, block_time_ms, список crypto, показники AI-моделей) — фіксовані описові значення, а не виміри.

Тести ​

bash
cd neurochain/gateway
npm test            # тести HTTP API; для повного набору нода має працювати