Skip to content

Gateway ​

Gateway는 사용자와 노드 사이에 있는 Node.js(Fastify) 서비스입니다. 웹 앱, SDK, MCP 서버는 모두 gateway와 통신합니다.

하는 일세부 사항
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:9933노드의 RPC
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—HTTPS를 직접 제공하기 위한 PEM 경로

한도 ​

변수기본값의미
GLOBAL_RL_MAX_RPS200IP당 초당 요청 수
AI_RL_MAX_RPM10IP당 분당 AI 엔드포인트 요청 수
WS_MAX_MSG_BYTES65 536최대 WebSocket 메시지 크기
WS_MAX_SUBS_PER_CLIENT50연결당 잔액 구독 수
WS_RPC_MAX_RPS30연결당 초당 RPC 호출 수

체인 감시 ​

변수기본값의미
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(테스트 네트워크) ​

변수기본값의미
FAUCET_AMOUNT50 NRO요청당 금액
FAUCET_COOLDOWN_SECS86400주소 및 IP별
REDIS_URLredis://localhost:6379선택 사항 — gateway를 재시작해도 faucet 쿨다운을 유지합니다. Redis가 없으면 메모리에 보관됩니다

AI 도구 ​

변수기본값의미
ANTHROPIC_API_KEY—Claude를 이용한 SmartForge 컨트랙트 생성을 활성화합니다. 없으면 내장 템플릿 생성기가 사용됩니다
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 테스트, 전체 세트에는 노드가 실행 중이어야 함