환경 변수
모든 서비스는 환경 변수에서 설정을 읽으며, 저장소의 .env.example에 주석과 함께 나열되어 있습니다. 아래 기본값은 변수가 설정되지 않았을 때 코드가 사용하는 값입니다.
일부 프로토콜 값(가스 예산, 스테이크, 보상, 슬래싱, AI 임계값)은 체인에 저장되는 거버넌스 파라미터입니다. 이 중 환경 변수가 있는 값의 경우, 환경 변수가 해당 노드의 시작 시점에 온체인 값을 덮어씁니다 — 테스트 네트워크용이며, 공유 네트워크에서는 모든 검증자가 같은 값을 사용해야 합니다. 거버넌스 → 파라미터를 참고하십시오.
노드
네트워크와 신원
| 변수 | 기본값 | 의미 |
|---|---|---|
CHAIN_ENV | mainnet | mainnet: 엄격한 서명, faucet 꺼짐, RPC는 localhost. testnet: 서명은 경고만, faucet 켜짐 |
NEUROCHAIN_NETWORK | neurochain-mainnet-1 | 네트워크 / 체인 id |
NEUROCHAIN_DATA_DIR | ./data | 데이터 디렉터리(상태, WAL, 키) |
NEUROCHAIN_MODELS_DIR | ./models | AI 모델 가중치 |
NEUROCHAIN_RPC_PORT | 9933 | HTTP RPC 포트 |
NEUROCHAIN_RPC_HOST | localhost (mainnet) / 0.0.0.0 (testnet) | RPC 바인드 주소 |
NEUROCHAIN_P2P_PORT | 30333 | P2P 포트(합의도 전달) |
NEUROCHAIN_P2P_PORT_MIN / _MAX | 1024 / 65534 | 허용되는 피어 포트 범위 |
NEUROCHAIN_NODE_ADDR | localhost:<p2p port> | 피어가 이 노드에 접속할 때 사용하는 주소로, 0.0.0.0이면 안 됩니다. 노드를 제네시스 검증자 항목과 대응시킵니다 |
NEUROCHAIN_BOOTSTRAP | — | 시작 시 연결할 피어(쉼표로 구분) |
NEUROCHAIN_PEER_DISCOVERY_SECS | 30 | 피어 탐색 주기 |
NEUROCHAIN_P2P_CONN_RATE_LIMIT | 20 | IP당 초당 인바운드 P2P 연결 수 |
NEUROCHAIN_TLS_CERT, NEUROCHAIN_TLS_KEY | — | RPC를 HTTPS로 제공 |
제네시스
| 변수 | 기본값 | 의미 |
|---|---|---|
NEUROCHAIN_GENESIS_VALIDATORS | 이 노드만 | `neuro:name.node |
NEUROCHAIN_GENESIS_ACCOUNTS | — | `neuro:addr.human |
NEUROCHAIN_FAUCET_BALANCE | 1 000 000 000 NRO | 제네시스 시 faucet 볼트의 잔액 |
NEUROCHAIN_INITIAL_BALANCE | 0 | 처음 보는 계정을 처음 읽을 때 입금되는 uNRO(테스트 네트워크 전용) |
NEUROCHAIN_GAS_SPONSOR | neuro:faucet.vault | 온보딩 가스 스폰서 |
NEUROCHAIN_GAS_SPONSOR_FUND | 1 000 000 NRO | 제네시스 시 스폰서의 가스 풀 |
NEUROCHAIN_CHECKPOINT_URL | — | 빈 노드를 이 노드의 상태 스냅샷에서 시작 |
합의와 샤딩
| 변수 | 기본값 | 의미 |
|---|---|---|
NEUROCHAIN_MIN_VALIDATORS | 7 | 이 값보다 적으면 노드가 내결함성 저하를 경고합니다 |
NEUROCHAIN_BLOCK_MS | 200 | 트랜잭션이 있는 블록을 제안하기 전 최소 대기 시간 |
NEUROCHAIN_EMPTY_BLOCK_MS | 2000 | 빈 블록을 제안하기 전 최소 대기 시간 |
NEUROCHAIN_SYNC_HISTORY_BLOCKS | 10000 | 따라잡는 피어에게 제공하기 위해 보관하는 결정된 블록 수 |
NEUROCHAIN_JAIL_BLOCKS | 10000 | 슬래싱 후 jail 기간(거버넌스 jail_blocks) |
NEUROCHAIN_SLASH_FRACTION_DOUBLE_SIGN_BPS | 500 | 이중 서명 슬래싱, min_stake의 베이시스 포인트 |
NEUROCHAIN_SLASH_REWARD_FRACTION_BPS | 100 | 슬래싱 중 신고자 몫 |
NEUROCHAIN_SLASH_EVIDENCE_WINDOW | 10000 | 증거로 입증할 수 있는 가장 오래된 위반(블록 단위) |
NEUROCHAIN_SHARD_ID | — | 이 노드가 담당하는 샤드. 설정하지 않으면 단일 샤드 |
NEUROCHAIN_SHARDS | 샤드 id가 있으면 4, 없으면 1 | 샤드 수 |
NEUROCHAIN_SHARD_DIR_PREFIX | shard | 샤드별 하위 디렉터리 이름 |
경제와 mempool
| 변수 | 기본값 | 의미 |
|---|---|---|
NEUROCHAIN_UNBONDING_BLOCKS | 거버넌스(1 512 000) | 스테이킹 잠금 |
NEUROCHAIN_REWARD_INTERVAL_BLOCKS | 거버넌스(216 000) | 보상 지급 간 블록 수 |
NEUROCHAIN_FUEL_PER_GAS_UNIT | 20000 | 가스 단위당 컨트랙트 fuel |
NEUROCHAIN_MAX_SPONSORED_FEE | 100000 uNRO | 가스 풀이 트랜잭션당 지불하는 최대 수수료 |
NEUROCHAIN_MAX_MEMPOOL | 10000 | 보관하는 대기 트랜잭션 수 |
NEUROCHAIN_MAX_PENDING_PER_ACCOUNT | 64 | 발신자당 대기 트랜잭션 수 |
NEUROCHAIN_RBF_MIN_BUMP_PCT | 10 | 대기 트랜잭션을 교체하는 데 필요한 가스 가격 인상률 |
NEUROCHAIN_MIN_FEE_PER_GAS | 0 | 추가 mempool 가격 하한 |
NEUROCHAIN_FAUCET_MAX_NRO | 100 | 최대 faucet 요청(테스트 네트워크) |
NEUROCHAIN_FAUCET_COOLDOWN_SECS | 86400 | 주소별 faucet 쿨다운. 0 = 없음 |
AI
| 변수 | 기본값 | 의미 |
|---|---|---|
MONITOR_INTERVAL_SECS | 20 | 배포된 컨트랙트의 재감사 주기 |
MONITOR_SCORE_THRESHOLD | 10 | 인증서 업데이트를 일으키는 점수 변화 |
NEUROCHAIN_SENTINEL_POLICY_ENABLED | 거버넌스(0) | Sentinel 정책 계층 켜기/끄기 |
NEUROCHAIN_SENTINEL_HOLD_THRESHOLD | 거버넌스(60) | 이체가 보류되기 시작하는 점수 × 100 |
NEUROCHAIN_SENTINEL_STEPUP_THRESHOLD | 거버넌스(70) | 소유자 확인이 필요해지는 점수 × 100 |
NEUROCHAIN_SENTINEL_HOLD_BLOCKS | 거버넌스(50) | 자동 해제 지연 |
NEUROCHAIN_SENTINEL_CONFIRM_EXPIRY_BLOCKS | 거버넌스(1000) | 환불 전 확인 대기 시간 |
NEUROCHAIN_SENTINEL_AGENT_CONFIRM_THRESHOLD | 거버넌스(60) | 세션 키 이체의 임계값 |
NEUROCHAIN_TRUST_ACTIVATION_BLOCKS | 거버넌스(300) | 신뢰 수신자가 효력을 갖기까지의 지연 |
AI_EXPORT_MAX_LIMIT | 5000 | AI 데이터 내보내기 요청당 행 수 |
IBC v2
IBC v2와 샤딩 → 구성을 참고하십시오: NEUROCHAIN_IBC_OPERATOR_PUBKEYS, NEUROCHAIN_IBC_TRUSTED_PUBKEYS, NEUROCHAIN_IBC_REQUIRE_HEADER, NEUROCHAIN_IBC_REQUIRE_PACKET_COMMITMENT, NEUROCHAIN_IBC_TIMEOUT_BLOCKS, NEUROCHAIN_IBC_MAX_PACKET_UNRO, NEUROCHAIN_IBC_MAX_CHANNEL_ESCROW_UNRO, NEUROCHAIN_IBC_NATIVE_DENOM.
네이티브 자산
| 변수 | 기본값 | 의미 |
|---|---|---|
NEUROCHAIN_ASSET_ISSUERS | — | 제네시스 시 verified 발행자 등급을 받는 주소 |
NEUROCHAIN_RESERVED_SYMBOLS | — | 제네시스 시 예약되는 티커 |
NEUROCHAIN_RESERVED_NAMES | — | 제네시스 시 모든 유료 주소와 자산 이름에 대해 예약되는 이름: name 또는 `name |
NEUROCHAIN_VALIDATOR_OWNER | — | NEUROCHAIN_GENESIS_VALIDATORS가 설정되지 않았을 때 단일 자체 검증자의 소유자 .human(mainnet에서 필수) |
두 변수 모두 제네시스 시 한 번만 읽히며, 이후 레지스트리는 거버넌스를 통해서만 변경됩니다.
접근과 한도
| 변수 | 기본값 | 의미 |
|---|---|---|
NEUROCHAIN_RPC_RATE_LIMIT | 100 | IP당 초당 RPC 요청 수 |
CORS_ALLOWED_ORIGINS | * | 허용되는 브라우저 출처 |
NEUROCHAIN_INTERNAL_TOKEN | — | 내부 엔드포인트에 필요한 X-Internal-Token |
NEUROCHAIN_SNAPSHOT_TOKEN | — | /api/v1/state/snapshot에 필요한 bearer 토큰 |
NEUROCHAIN_ALLOW_SERVER_DERIVE | false | 테스트 네트워크에서 POST /api/v1/wallet/derive-address(복구 구문을 받음)를 허용. mainnet에서는 항상 꺼짐 |
RUST_LOG | neurochain=info,warn | 로그 수준 |
Gateway
Gateway 페이지에 설명과 함께 나열되어 있습니다: PORT, NODE_RPC_URL, NEUROCHAIN_SHARD_NODES, SHARD_NODE_URLS, NETWORK_ID, CORS_ALLOWED_ORIGINS, TLS_CERT, TLS_KEY, 요청 한도(GLOBAL_RL_MAX_RPS, AI_RL_MAX_RPM, WS_*), 체인 감시(POLL_NODE_INTERVAL_MS, SENTINEL_*, ALERT_COOLDOWN_MS), faucet(FAUCET_AMOUNT, FAUCET_COOLDOWN_SECS, REDIS_URL), AI 도구(ANTHROPIC_API_KEY, SMARTFORGE_*, AI_EXPORT_TOKEN, ASSISTANT_*).
웹 앱
| 변수 | 기본값 | 의미 |
|---|---|---|
WEB_PORT | 8080 | 개발 서버 포트 |
WEB_HOST | localhost | 개발 서버 바인드. 네트워크에 노출하려면 0.0.0.0 |
GATEWAY_URL | http://localhost:3000 | 개발 서버가 /api와 /ws를 프록시하는 gateway |
VUE_APP_NEUROCHAIN_RPC | —(같은 출처) | 빌드에 고정된 API 기본 URL을 강제로 넣습니다 |
VUE_APP_SITE_URL, VUE_APP_SITE_NAME, VUE_APP_SITE_OG_IMAGE | — | 배포된 앱의 메타데이터 |
VUE_APP_DOCS_URL | — | 이 문서로의 링크 |
문서 사이트
| 변수 | 기본값 | 의미 |
|---|---|---|
DOCS_SITE_URL | https://docs.nro.world | 정규 URL, sitemap, hreflang, llms.txt |
DOCS_OG_IMAGE | /og-image.png | 소셜 미리보기 이미지 |
DOCS_GOOGLE_SITE_VERIFICATION, DOCS_BING_SITE_VERIFICATION | — | 검색 콘솔 소유권 토큰 |
DOCS_HOST, DOCS_PORT | localhost, 5173 | 개발 서버 |
DOCS_BASE | / | 기본 경로 |
MCP 서버
| 변수 | 기본값 | 의미 |
|---|---|---|
NEUROCHAIN_MCP_CONFIG | — | JSON 구성 파일 경로 — AI 에이전트(MCP) 참고 |