> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/ko/canton-zk-evm/run-it-locally.md).

# 로컬에서 실행

체크, GPU 없이 하는 리허설, 그리고 GPU에서 실행하는 로컬 Ostia 데모를 실행하세요.

제공된 스크립트는 로컬 테스트 네트워크를 실행합니다. Canton은 상태를 메모리에 보관하므로, 다시 시작할 때마다 해당 상태가 삭제되고 새 네트워크가 생성됩니다. GPU 데모는 블록을 증명합니다. 리허설은 대체 증명을 사용하며 GPU가 필요하지 않습니다.

이 페이지는 커밋에 대해 설명합니다 `a84e84e439a5cc669c0ae61facf7c8c995d9d564`. 전체 내용을 읽어보세요 [네트워크 가이드](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/network/README.md) 및 [데모 가이드](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/demo/README.md). 아래 명령은 다음 위치에서 실행하세요: `canton-zk-evm` 저장소 루트.

## 필요한 것

| 작업            | 요구 사항                                                                                             |
| ------------- | ------------------------------------------------------------------------------------------------- |
| 저장소 검사        | Docker, `bash`, `curl`, `jq`, `openssl` 및 Python 3. Rust 테스트는 `rust-toolchain.toml`.              |
| Canton 통합 테스트 | Linux x86-64, Java 21 및 네트워크 액세스.                                                                 |
| 데모 리허설        | Linux x86-64, Docker, Java 21, Rust 및 Python 3.12 이상.                                             |
| 탐색기 테스트       | Node 22.18 이상.                                                                                    |
| GPU 네트워크 및 데모 | Linux x86-64, 드라이버가 설치된 NVIDIA GPU, Docker, Rust, Python 3.12 이상, `jq`, `curl`, `openssl` 및 ZisK. |

위의 [저장소 README](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/README.md#running-the-tests) 는 테스트 전제 조건을 나열합니다. GPU 설치기는 `sudo` 및 `apt` 를 Debian 또는 Ubuntu에서 사용하며 약 100GB의 여유 디스크 공간이 필요합니다. 시스템 패키지를 설치하고 메모리 잠금 제한을 변경합니다. 네트워크의 도구 가져오기는 Java 21이 없으면 설치합니다. 테스트된 하드웨어는 [프로버 호스트](/ko/canton-zk-evm/prover-host.md) 에서 확인하세요. 최소 GPU 메모리는 아직 정해지지 않았습니다.

## 테스트 실행

다음의 빠른 검사부터 시작하세요 [CONTRIBUTING.md](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/CONTRIBUTING.md#building-and-testing):

```sh
tests/static.sh                  # 핀, genesis, 라이선스 줄이 일치함
tests/refuses_missing_flag.sh    # reth 실행은 누락되었거나 잘못된 플래그를 거부함
tests/fixtures.sh                # 기록된 증명이 일관됨
gateway/build.sh --check         # 체크인된 gateway 코드가 Gateway.sol이 컴파일되는 대상임(Docker)
```

저장소 README에도 이러한 검사들이 나와 있습니다. GPU가 필요하지 않습니다:

```sh
tests/udp_control.sh             # UDP 리스너가 있는 컨테이너에서 UDP 검사가 실패함(reth 없음)
tests/discovery.sh               # 고정된 reth를 시작하고, 피어가 없음을 확인한 뒤 종료함
tests/network_static.sh          # launch.sh, Canton 설정, 기록된 스모크 결과를 통한 reth만 사용
tests/network_checks.sh          # 컴파일러 핀 검사, DAR의 ID, 다른 프로그램VK에서의 중단(GPU 없음)
tests/canton_network.sh          # 고정된 Canton, 실제 Daml 패키지, 그리고 하나의 Advance(Linux x86-64, Java 21, Python 3; GPU 없음)
gateway/tests/run.sh             # 피어 검색을 끈 상태로 시작된 실제 reth에서의 gateway(Docker, curl, jq, demo/requirements.txt의 패키지가 있는 Python 3)
tests/guest-repro.sh             # guest 빌드는 하나의 고정된 폴더에서 실행되므로, 소스 폴더가 ELF에 영향을 주지 않음(ZisK 도구의 대체품; 실제 ZisK에서의 동일한 검사는 2026-10-04에 통과했음, guest/README.md 참조)
tests/demo_static.sh             # 데모의 핀, 변조 스위치와 genesis 재정의, 그리고 기록된 결과(GPU 없음)
tests/demo_explorer_static.sh    # 탐색기 이미지가 고정되어 있고, 컨테이너에 전달되는 내용(no Docker)
(cd explorer && npm ci && npm test)  # 대체물에 대한 탐색기 테스트(Node 22.18+; CI는 PINS의 EXPLORER_NODE_IMAGE를 사용)
(cd guest/rules && cargo test)   # 체인 규칙과 그 해시(Rust 필요)
```

## GPU 없이 리허설하기

```sh
tests/demo_rehearsal.sh          # 대체 증명을 사용하는 데모와 탐색기(Linux x86-64, Docker, Java 21, Rust, Python 3.12+; GPU 없음)
```

이는 실제 reth, Canton, Daml 패키지, 토큰 표준 및 빌더를 실행합니다. 사이드카는 저장소 증명과 비교해 gateway의 다리들을 검사하고, 대체물이 증명의 `검증` 호출에 응답합니다. 리허설은 블록을 증명하지도, 실제 영지식 증명을 검증하지도 않습니다.

또한 탐색기와 faucet도 검사합니다. 탐색기의 Verify 검사는 대체 증명을 거부해야 합니다.  [데모 README](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/demo/README.md#the-rehearsal) 가 리허설의 범위를 설명합니다.

## GPU에서 로컬 네트워크 시작

다음을 사용해 ZisK를 설치하세요 `prover/install.sh` 를 네트워크 시작 전에 실행하세요. reth는 항상 제공된 실행기를 통해 시작하세요; `network/up.sh` 를 사용합니다.

```sh
network/up.sh       # 도구, guest 빌드, reth, 사이드카, prover, Canton, 체인
CZE_SOURCE_COMMIT=$(git rev-parse HEAD) network/smoke.sh    # 하나의 빈 블록, 증명되고 커밋됨
network/down.sh
```

`up.sh` 기록된 값과 다른 프로그램 키, ZisK 루트 또는 규칙 해시를 거부하도록 guest를 빌드합니다. 네트워크에는 하나의 동기화기와 세 명의 참가자가 있습니다. operator와 confirmer 참가자는 각각 사이드카를 실행합니다. users라는 이름의 참가자는 테스트 파티와 reader를 호스팅합니다.

스모크 테스트는 빈 블록을 커밋하고, 체인의 헤드와 reader의 블록 기록을 확인하며, reth가 이를 최종 확정했는지 확인합니다. 상태와 로그는 `state/`, 또는 `CZE_STATE_DIR` 이 설정된 경우.

## GPU에서 다섯 가지 데모 사례 실행

데모에는 새 로컬 네트워크를 사용하세요:

```sh
demo/prepare.sh
CZE_GENESIS_FILE=$PWD/state/demo/genesis.json network/up.sh
CZE_SOURCE_COMMIT=$(git rev-parse HEAD) network/smoke.sh      # 선택 사항: 먼저 빈 블록 하나
CZE_SOURCE_COMMIT=$(git rev-parse HEAD) demo/run.sh
network/down.sh
```

준비 스크립트는 실행을 위한 테스트 키와 자금이 들어 있는 genesis를 생성합니다. 데모는 설정 블록, 입금, 지불, 출금, 할당 거부 및 변조된 증명 거부를 실행합니다. 검사가 실패하면 스크립트가 중지되고 결과를 `demo/results/`.

다음이 없는 소스 내보내기를 위해 `.git`, 다음을 설정하세요 `CZE_SOURCE_COMMIT` 를 내보내기에 사용된 커밋의 전체 해시로 설정하세요. faucet를 포함하려면, 자금이 충전된 genesis를 네트워크 시작 전에 준비해야 합니다. 다음을 참조하세요 [익스플로러](/ko/canton-zk-evm/explorer.md) 및 전체 데모 가이드.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/ko/canton-zk-evm/run-it-locally.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
