For the complete documentation index, see llms.txt
Nightforge
Nightforge는 Midnight Network에서 Compact contract를 컴파일하고 배포하며 운영하기 위한 개발 환경입니다. 프로젝트 scaffolding, 지갑 생명주기 도구, proof server 오케스트레이션, 배포를 하나의 CLI로 묶어 제공합니다. cadalt0가 이 프로젝트를 관리하며 npm에 nightforge로 배포합니다.
이 프로젝트는 Midnight Foundation이 아니라 cadalt0가 관리합니다. 감사(audit)를 받지 않았습니다. npm 패키지는 MIT 라이선스를 명시하는 반면, 저장소의 LICENSE 파일에는 Apache 2.0 텍스트가 들어 있습니다. production 워크플로에 사용하기 전에 이 도구를 직접 검토하세요.
Prerequisites
Nightforge를 사용하기 전에 다음을 갖췄는지 확인하세요:
- Node.js와 npm.
- Compact developer tools가 설치되어 있고
PATH에서 사용할 수 있어야 합니다.compile명령은compactCLI를 호출합니다. nightforge proof-server로 local proof server를 실행하기 위한 Docker.- 배포 자금으로 쓸 Preprod faucet의 tNIGHT.
Compatibility
| Component | Version | Notes |
|---|---|---|
| Nightforge | 1.0.0 | 최신 npm 릴리스. GitHub 릴리스 v1.0.0. |
| Compact compiler | Not pinned | Nightforge는 시스템에 설치된 compact CLI를 호출합니다. |
| Proof server image | midnightntwrk/proof-server:7.0.0 | 기본 태그. -v <version>으로 변경할 수 있습니다. 현재 릴리스는 compatibility matrix에서 확인하세요. |
| Networks | Preprod (default), custom endpoints | --network 또는 --remote로 설정합니다. |
| License | MIT on npm | 저장소의 LICENSE 파일에는 Apache 2.0 텍스트가 들어 있습니다. |
Installation
패키지를 로컬에 설치합니다:
npm install nightforge
npx로 명령을 실행합니다:
npx nightforge --help
Quickstart
# 1) Create a project
npx nightforge init my-midnight-app
cd my-midnight-app
# 2) Compile the contract
npx nightforge compile
# 3) Start the wallet sync service
npx nightforge sync
# 4) In another terminal, check the synced balance
npx nightforge wallet balance
# 5) Deploy using the synced state
npx nightforge deploy example --network preprod
init 명령은 midnight.config.js, contracts/example.compact, scripts/ 디렉터리, walletsync 설정 파일을 생성합니다. -t를 붙여 템플릿을 고를 수 있습니다: default, token, nft.
Auto mode
deploy --auto는 전체 과정을 자동으로 진행합니다. 지갑이 없으면 생성하고, tNIGHT 충전을 기다린 뒤 DUST를 등록하고, proof server가 준비될 때까지 기다린 다음 배포합니다.
npx nightforge deploy --auto --network preprod
local proof server 대신 remote proof server로 배포를 지정하려면:
npx nightforge deploy example --auto --remote http://YOUR-PROOF-HOST:6300
Commands
| Command | Purpose |
|---|---|
nightforge init <project-name> | 프로젝트 scaffold를 생성합니다. |
nightforge compile | Compact contract를 contracts/managed/로 컴파일합니다. |
nightforge sync --init | walletsync 설정 파일을 생성합니다. |
nightforge sync | walletsync 서버를 실행합니다(기본 포트 8787). |
nightforge wallet create | 지갑을 생성합니다. |
nightforge wallet restore | seed로 지갑을 복구합니다. |
nightforge wallet balance | 활성 지갑의 잔액을 확인합니다. |
nightforge wallet dust | DUST 생성을 위해 tNIGHT를 등록합니다. |
nightforge proof-server | local proof server를 실행합니다(단축형: ps). |
nightforge deploy <contract> | 컴파일된 컨트랙트를 배포합니다. |
nightforge clean | 빌드 산출물을 제거합니다. |
저장소의 command guides에서 모든 flag를 자세히 설명합니다.
Runtime state files
Nightforge는 프로젝트 루트에 로컬 state 파일을 기록합니다:
| File | Purpose |
|---|---|
wallet.json | 저장된 wallet seed, address, network. |
proof-server-status.json | proof server의 실행 및 준비 상태. |
deployment.json | 배포 메타데이터 출력. |
nightforge wallet로 생성한 지갑은 프로젝트 외부의 ~/.nightforge/wallets/에 저장되며, 지갑마다 JSON 파일 하나로 소유자 전용 파일 권한이 부여됩니다.
wallet.json과 ~/.nightforge/wallets/ 아래 파일에는 wallet seed가 들어 있습니다. 절대 버전 관리에 커밋하지 말고, 환경마다 별도의 지갑을 사용하세요.
Additional resources
- Project repository: 소스, command guide, 문제 해결.
nightforgeon npm: 배포된 패키지.- Project site: 호스팅되는 랜딩 페이지.
- Changelog: 버전 이력.
Report issues
Nightforge 관련 문제는 cadalt0's tracker에 등록하세요.
이 문서 페이지 관련 문제는 Midnight docs repository에 등록하세요.