> ## Documentation Index
> Fetch the complete documentation index at: https://docs.optimism.io/llms.txt
> Use this file to discover all available pages before exploring further.

# op-node 구성 옵션

> 모든 op-node 명령줄 플래그와 환경 변수에 대한 전체 레퍼런스입니다.

이 페이지에서는 OP Stack 체인의 합의 계층(rollup node) 클라이언트인
op-node의 모든 구성 옵션을 정리합니다.

아래 플래그 테이블은 출처(provenance) 줄에 명시된 릴리스 태그 시점의 모노레포에 있는
op-node의 플래그 정의(`op-node/flags`)로부터 직접 생성되며, 새로운 최종
확정 릴리스가 게시될 때 재생성되므로 조용히 뒤처지는 일이 없습니다. 모든 플래그는 옆에
표시된 환경 변수를 통해서도 설정할 수 있습니다.

하드웨어, 동기화 전략, 모니터링 등 node 운영에 대한 안내는
[노드 운영자 가이드](https://docs.optimism.io/ko/node-operators/tutorials/run-node-from-source.md)를 참조하십시오.

## 플래그

[`op-node/v1.19.3`](https://github.com/ethereum-optimism/optimism/releases/tag/op-node%2Fv1.19.3)의
플래그 정의에서 생성되었습니다. 총 109개 플래그: 필수 3개, 선택 106개.

### 필수 플래그

| 플래그 | 설명 | 환경 변수 |
| - | - | - |
| `--l1` | 사용할 L1 사용자 JSON-RPC 엔드포인트의 주소(eth namespace 필요) | `OP_NODE_L1_ETH_RPC` |
| `--l2` | 사용할 L2 Engine JSON-RPC 엔드포인트의 주소(engine 및 eth namespace 필요) | `OP_NODE_L2_ENGINE_RPC` |
| `--l2.jwt-secret` | JWT 비밀 키의 경로입니다. 키는 32바이트이며 파일에 hex 인코딩되어 저장됩니다. 파일이 비어 있으면 새 키가 생성됩니다. | `OP_NODE_L2_ENGINE_AUTH` |

### 선택 플래그

| 플래그 | 설명 | 기본값 | 환경 변수 |
| - | - | - | - |
| `--altda.da-server` | DA 서버의 HTTP 주소 | — | `OP_NODE_ALTDA_DA_SERVER` |
| `--altda.da-service` | Alt-DA 서버가 commitment를 생성하는 DA 서비스 유형을 사용합니다. | `false` | `OP_NODE_ALTDA_DA_SERVICE` |
| `--altda.enabled` | Alt-DA 모드를 활성화합니다. Alt-DA 모드는 MIT 라이선스 OP Stack의 베타 기능입니다. 핵심 기여자의 초기 검토를 거쳤지만 아직 테스트가 진행 중이며, 버그나 기타 문제가 있을 수 있습니다. | `false` | `OP_NODE_ALTDA_ENABLED` |
| `--altda.get-timeout` | get 요청의 타임아웃입니다. 0은 타임아웃 없음을 의미합니다. | `0s` | `OP_NODE_ALTDA_GET_TIMEOUT` |
| `--altda.max-concurrent-da-requests` | DA 서버에 대한 최대 동시 요청 수 | `1` | `OP_NODE_ALTDA_MAX_CONCURRENT_DA_REQUESTS` |
| `--altda.put-timeout` | put 요청의 타임아웃입니다. 0은 타임아웃 없음을 의미합니다. | `0s` | `OP_NODE_ALTDA_PUT_TIMEOUT` |
| `--altda.verify-on-read` | 입력 데이터가 DA 스토리지 서비스의 commitment와 일치하는지 검증합니다. | `true` | `OP_NODE_ALTDA_VERIFY_ON_READ` |
| `--conductor.enabled` | conductor 서비스를 활성화합니다. | `false` | `OP_NODE_CONDUCTOR_ENABLED` |
| `--conductor.rpc` | Conductor 서비스 rpc 엔드포인트 | `"http://127.0.0.1:8547"` | `OP_NODE_CONDUCTOR_RPC` |
| `--conductor.rpc-timeout` | Conductor 서비스 rpc 타임아웃 | `1s` | `OP_NODE_CONDUCTOR_RPC_TIMEOUT` |
| `--experimental.sequencer-api` | 실험적인 테스트 sequencer RPC 기능을 활성화합니다. | `false` | `OP_NODE_EXPERIMENTAL_SEQUENCER_API` |
| `--fetch-withdrawal-root-from-state` | 블록 헤더 대신 (execution layer를 통해) state trie에서 withdrawal\_storage\_root(message passer storage root라고도 함)를 읽습니다. Isthmus 이전 동작을 복원하며, archive EL 클라이언트가 필요합니다. | `false` | `OP_NODE_FETCH_WITHDRAWAL_ROOT_FROM_STATE` |
| `--finality.delay` | L2 블록의 최종 확정을 다시 시도하기 전에 순회할 L1 블록 수입니다. 0이면 기본값(64)을 사용합니다. | `0` | `OP_NODE_FINALITY_DELAY` |
| `--finality.lookback` | 최종성 검증을 위해 되돌아볼 L1 블록 수입니다. 0이면 기본 계산 방식을 사용합니다(해당되는 경우 alt-DA challenge/resolve 윈도우를 고려). | `0` | `OP_NODE_FINALITY_LOOKBACK` |
| `--interop.dependency-set` | Dependency-set 설정이며, JSON 파일을 지정합니다. | — | `OP_NODE_INTEROP_DEPENDENCY_SET` |
| `--l1.beacon` | 사용할 L1 Beacon-node HTTP 엔드포인트의 주소입니다. | — | `OP_NODE_L1_BEACON` |
| `--l1.beacon-fallbacks` | L1 Beacon-API 호환 HTTP 대체(fallback) 엔드포인트의 주소입니다. l1.beacon에서 사용할 수 없는 blob sidecar(예: 만료된 blob)를 가져오는 데 사용됩니다. | — | `OP_NODE_L1_BEACON_FALLBACKS` |
| `--l1.beacon-header` | L1 Beacon 엔드포인트에 대한 모든 요청에 추가할 선택적 HTTP 헤더입니다. 형식: 'X-Key: Value' | — | `OP_NODE_L1_BEACON_HEADER` |
| `--l1.beacon.fetch-all-sidecars` | true이면 모든 sidecar를 가져와 로컬에서 필터링합니다. 버그가 있는 Beacon 노드를 위한 우회 방법입니다. | `false` | `OP_NODE_L1_BEACON_FETCH_ALL_SIDECARS` |
| `--l1.beacon.ignore` | false이면 Beacon-node 엔드포인트에 대한 헬스 체크가 실패할 경우 op-node 시작을 중단합니다. | `false` | `OP_NODE_L1_BEACON_IGNORE` |
| `--l1.beacon.slot-duration-override` | L1 슬롯의 길이(초 단위)입니다. 0이 아닌 값으로 설정하면 beacon /eth/v1/config/spec 조회를 건너뛰고 이 값을 SECONDS\_PER\_SLOT으로 사용합니다. beacon spec 엔드포인트를 사용할 수 없는 devnet(예: anvil)에서 유용합니다. | `0` | `OP_NODE_L1_BEACON_SLOT_DURATION_OVERRIDE` |
| `--l1.cache-size` | 블록, receipt, 트랜잭션의 캐시 크기입니다. 이 플래그를 0으로 설정하면 시퀀싱 윈도우 크기의 3/2(일반적으로 2400)가 사용됩니다. 기본값 900(약 3시간 분량의 L1 블록)은 safe head가 자주 증가하는 (처리량이 높은) 네트워크에 적합합니다. safe head 증가가 드문 (처리량이 낮은) 네트워크에서는 이 값을 0으로 설정하거나, safe head 증가 사이의 일반적인 구간을 충분히 포괄하는 값으로 설정하는 것이 좋습니다. 값이 클수록 메모리 사용량이 크게 증가한다는 점에 유의하십시오. | `900` | `OP_NODE_L1_CACHE_SIZE` |
| `--l1.epoch-poll-interval` | safe 및 finalized 블록 변경과 같은 새로운 L1 epoch 업데이트를 가져오는 폴링 간격입니다. 0 또는 음수이면 비활성화됩니다. | `6m24s` | `OP_NODE_L1_EPOCH_POLL_INTERVAL` |
| `--l1.http-poll-interval` | HTTP RPC provider를 사용할 때 최신 블록 구독을 위한 폴링 간격입니다. 다른 유형의 RPC 엔드포인트에서는 무시됩니다. | `12s` | `OP_NODE_L1_HTTP_POLL_INTERVAL` |
| `--l1.max-concurrency` | L1 RPC provider에 보낼 최대 동시 RPC 요청 수입니다. | `10` | `OP_NODE_L1_MAX_CONCURRENCY` |
| `--l1.rpc-max-batch-size` | 번들로 묶을 최대 RPC 요청 수입니다(예: L1 블록 receipt 조회 시). L1 RPC 속도 제한은 이를 N개 항목으로 계산하지만, 한 번에 버스트로 전송하는 것을 허용합니다. | `20` | `OP_NODE_L1_RPC_MAX_BATCH_SIZE` |
| `--l1.rpc-rate-limit` | L1 RPC 요청에 대해 선택적으로 자체 적용하는 전역 속도 제한이며, 초당 요청 수로 지정합니다. 0으로 설정하면 비활성화됩니다. | `0` | `OP_NODE_L1_RPC_RATE_LIMIT` |
| `--l1.rpckind` | RPC provider의 종류로, 최적의 트랜잭션 receipt 조회 방식을 결정하여 비용을 줄이는 데 사용됩니다. 유효한 옵션: alchemy, quicknode, infura, parity, nethermind, debug\_geth, erigon, basic, any, standard | `standard` | `OP_NODE_L1_RPC_KIND` |
| `--l1.runtime-config-reload-interval` | runtime config를 다시 로드하는 폴링 간격으로, config 이벤트가 감지되지 않을 때 유용합니다. 0 또는 음수이면 비활성화됩니다. | `10m0s` | `OP_NODE_L1_RUNTIME_CONFIG_RELOAD_INTERVAL` |
| `--l1.trustrpc` | L1 RPC를 신뢰하여 더 빠르게 동기화합니다. 악의적이거나 버그가 있는 RPC가 잘못되거나 일관되지 않은 L1 데이터를 제공할 위험이 있습니다. | `false` | `OP_NODE_L1_TRUST_RPC` |
| `--l2.engine-rpc-timeout` | L2 engine 클라이언트 rpc 타임아웃 | `10s` | `OP_NODE_L2_ENGINE_RPC_TIMEOUT` |
| `--l2.enginekind` | engine 클라이언트의 종류로, 다양한 유형의 engine 클라이언트에 대한 optimism의 동작을 제어하는 데 사용됩니다. 유효한 옵션: geth, reth, erigon | `reth` | `OP_NODE_L2_ENGINE_KIND` |
| `--l2.follow.source` | 추종할 소스인 L2 CL RPC HTTP 엔드포인트의 주소 | — | `OP_NODE_L2_FOLLOW_SOURCE` |
| `--log.color` | 터미널 모드에서 로그 출력에 색상을 적용합니다. | `false` | `OP_NODE_LOG_COLOR` |
| `--log.format` | 로그 출력 형식입니다. 지원 형식: text, terminal, logfmt, logfmtms, json, jsonms | `text` | `OP_NODE_LOG_FORMAT` |
| `--log.level` | 출력할 최저 로그 레벨 | `INFO` | `OP_NODE_LOG_LEVEL` |
| `--log.pid` | 로그에 pid를 표시합니다. | `false` | `OP_NODE_LOG_PID` |
| `--metrics.addr` | 메트릭 수신 주소 | `"0.0.0.0"` | `OP_NODE_METRICS_ADDR` |
| `--metrics.enabled` | 메트릭 서버를 활성화합니다. | `false` | `OP_NODE_METRICS_ENABLED` |
| `--metrics.port` | 메트릭 수신 포트 | `7300` | `OP_NODE_METRICS_PORT` |
| `--network` | 사전 정의된 네트워크 선택입니다. 사용 가능한 네트워크: 해당 릴리스 시점에 [superchain-registry](https://github.com/ethereum-optimism/superchain-registry)에서 번들된 모든 체인입니다. 정확한 목록은 `op-node --help`를 실행하여 확인하십시오. | — | `OP_NODE_NETWORK` |
| `--override.canyon` | 번들된 설정을 재정의하여 canyon 포크 타임스탬프를 수동으로 지정합니다. | `0` | `OP_NODE_OVERRIDE_CANYON` |
| `--override.delta` | 번들된 설정을 재정의하여 delta 포크 타임스탬프를 수동으로 지정합니다. | `0` | `OP_NODE_OVERRIDE_DELTA` |
| `--override.ecotone` | 번들된 설정을 재정의하여 ecotone 포크 타임스탬프를 수동으로 지정합니다. | `0` | `OP_NODE_OVERRIDE_ECOTONE` |
| `--override.fjord` | 번들된 설정을 재정의하여 fjord 포크 타임스탬프를 수동으로 지정합니다. | `0` | `OP_NODE_OVERRIDE_FJORD` |
| `--override.granite` | 번들된 설정을 재정의하여 granite 포크 타임스탬프를 수동으로 지정합니다. | `0` | `OP_NODE_OVERRIDE_GRANITE` |
| `--override.holocene` | 번들된 설정을 재정의하여 holocene 포크 타임스탬프를 수동으로 지정합니다. | `0` | `OP_NODE_OVERRIDE_HOLOCENE` |
| `--override.isthmus` | 번들된 설정을 재정의하여 isthmus 포크 타임스탬프를 수동으로 지정합니다. | `0` | `OP_NODE_OVERRIDE_ISTHMUS` |
| `--override.jovian` | 번들된 설정을 재정의하여 jovian 포크 타임스탬프를 수동으로 지정합니다. | `0` | `OP_NODE_OVERRIDE_JOVIAN` |
| `--override.karst` | 번들된 설정을 재정의하여 karst 포크 타임스탬프를 수동으로 지정합니다. | `0` | `OP_NODE_OVERRIDE_KARST` |
| `--override.keep-karst-upgrade-gas` | 번들된 설정을 재정의하여 keep\_karst\_upgrade\_gas를 수동으로 설정합니다. true이면 Karst 활성화 블록의 일회성 업그레이드 gas가 이후 모든 블록에 유지됩니다(이 누수가 이력에 반영된 상태로 Karst를 활성화한 체인용). | `false` | `OP_NODE_OVERRIDE_KEEP_KARST_UPGRADE_GAS` |
| `--override.lagoon` | 번들된 설정을 재정의하여 lagoon 포크 타임스탬프를 수동으로 지정합니다. | `0` | `OP_NODE_OVERRIDE_LAGOON` |
| `--override.pectrablobschedule` | 번들된 설정을 재정의하여 pectrablobschedule 포크 타임스탬프를 수동으로 지정합니다. | `0` | `OP_NODE_OVERRIDE_PECTRABLOBSCHEDULE` |
| `--p2p.advertise.ip` | Discv5에서 광고할 IP 주소로, 노드의 ENR에 포함됩니다. IP로 해석될 호스트 이름/도메인 이름을 지정할 수도 있습니다. | — | `OP_NODE_P2P_ADVERTISE_IP` |
| `--p2p.advertise.tcp` | Discv5에서 광고할 TCP 포트로, 노드의 ENR에 포함됩니다. 0이면 p2p.listen.tcp 값으로 설정됩니다. | `0` | `OP_NODE_P2P_ADVERTISE_TCP` |
| `--p2p.advertise.udp` | Discv5가 결정하지 못한 경우 대체값으로 Discv5에서 광고할 UDP 포트로, 노드의 ENR에 포함됩니다. 0이면 p2p.listen.udp 값으로 설정됩니다. | `0` | `OP_NODE_P2P_ADVERTISE_UDP` |
| `--p2p.ban.duration` | peer가 차단되는 기간입니다. | `1h0m0s` | `OP_NODE_P2P_PEER_BANNING_DURATION` |
| `--p2p.ban.peers` | peer 차단을 활성화합니다. | `true` | `OP_NODE_P2P_PEER_BANNING` |
| `--p2p.ban.threshold` | 이 점수 미만이 되면 peer의 연결이 끊기고 차단되는 최소 점수입니다. | `-100` | `OP_NODE_P2P_PEER_BANNING_THRESHOLD` |
| `--p2p.bootnodes` | 쉼표로 구분된 base64 형식의 ENR 목록입니다. 다른 노드 레코드 탐색을 시작할 bootnode입니다. | — | `OP_NODE_P2P_BOOTNODES` |
| `--p2p.disable` | P2P 스택을 완전히 비활성화합니다. | `false` | `OP_NODE_P2P_DISABLE` |
| `--p2p.discovery.path` | 발견된 ENR은 데이터베이스에 저장되어, 재시작 시 탐색 과정을 다시 부트스트랩하지 않고 복구할 수 있습니다. peerstore를 저장하지 않으려면 'memory'로 설정하십시오. | `"opnode_discovery_db"` | `OP_NODE_P2P_DISCOVERY_PATH` |
| `--p2p.gossip.timestamp.threshold` | payload 타임스탬프가 이 기간보다 오래된 gossip 메시지를 거부하는 임계값입니다. 기본값은 60초입니다. | `1m0s` | `OP_NODE_P2P_GOSSIP_TIMESTAMP_THRESHOLD` |
| `--p2p.listen.ip` | LibP2P와 Discv5를 바인딩할 IP | `"0.0.0.0"` | `OP_NODE_P2P_LISTEN_IP` |
| `--p2p.listen.tcp` | LibP2P를 바인딩할 TCP 포트입니다. 0으로 설정하면 사용 가능한 임의의 시스템 포트가 사용됩니다. | `9222` | `OP_NODE_P2P_LISTEN_TCP_PORT` |
| `--p2p.listen.udp` | Discv5를 바인딩할 UDP 포트입니다. 0으로 두면 TCP 포트와 같은 값이 사용됩니다. | `0` | `OP_NODE_P2P_LISTEN_UDP_PORT` |
| `--p2p.nat` | 외부 IP를 파악하기 위해 PMP/UPNP 장치를 이용한 NAT traversal을 활성화합니다. | `false` | `OP_NODE_P2P_NAT` |
| `--p2p.netrestrict` | 쉼표로 구분된 CIDR 마스크 목록입니다. P2P는 이 네트워크에서만 연결을 시도합니다. | — | `OP_NODE_P2P_NETRESTRICT` |
| `--p2p.no-discovery` | Discv5(노드 탐색)를 비활성화합니다. | `false` | `OP_NODE_P2P_NO_DISCOVERY` |
| `--p2p.peers.grace` | 새로 연결된 peer가 비정상적으로 동작하지 않는 경우 연결을 유지하는 유예 기간입니다. | `30s` | `OP_NODE_P2P_PEERS_GRACE` |
| `--p2p.peers.hi` | High-tide peer 수입니다. 이 수에 도달하면 노드는 peer 연결을 서서히 정리하기 시작합니다. | `30` | `OP_NODE_P2P_PEERS_HI` |
| `--p2p.peers.lo` | Low-tide peer 수입니다. peer 수가 이 값보다 적으면 노드는 새로운 peer 연결을 적극적으로 탐색합니다. | `20` | `OP_NODE_P2P_PEERS_LO` |
| `--p2p.peerstore.path` | Peerstore 데이터베이스 위치입니다. 저장된 peerstore는 재시작 후 peer를 복구하는 데 도움이 됩니다. peerstore를 저장하지 않으려면 'memory'로 설정하십시오. Peerstore 레코드는 필요에 따라 정리되거나 만료됩니다. 경고: 로컬 peer의 비공개 네트워크 키 사본이 이곳에 저장됩니다. | `"opnode_peerstore_db"` | `OP_NODE_P2P_PEERSTORE_PATH` |
| `--p2p.priv.path` | 이 txt 파일에서 peer ID용 hex 인코딩된 32바이트 개인 키를 읽습니다. 파일이 없으면 생성됩니다. 재시작 후에도 이전에 광고한 신원을 유지하면서 동일한 네트워크 신원을 유지하려면 이 파일을 보존하는 것이 중요합니다. | `"opnode_p2p_priv.txt"` | `OP_NODE_P2P_PRIV_PATH` |
| `--p2p.scoring` | P2P 스택의 peer 점수 산정 전략을 설정합니다. none 또는 light 중 하나를 지정할 수 있습니다. | `"light"` | `OP_NODE_P2P_PEER_SCORING` |
| `--p2p.sequencer.key` | sequencer로서 p2p 애플리케이션 메시지에 서명하기 위한 hex 인코딩된 개인 키입니다. | — | `OP_NODE_P2P_SEQUENCER_KEY` |
| `--p2p.static` | 쉼표로 구분된 multiaddr 형식의 peer 목록입니다. 생성하고 유지할 정적 연결이며, 이 peer들은 신뢰할 수 있는 것으로 간주됩니다. 로컬 peer의 주소는 무시됩니다. 동일한 peer에 대한 중복/대체 주소는 모두 적용되지만, peer당 하나의 연결만 유지됩니다. | — | `OP_NODE_P2P_STATIC` |
| `--p2p.sync.req-resp` | 요청하는 peer에게 번호별 payload(payloads-by-number)를 제공하는 P2P req-resp 동기화 서버를 활성화합니다. 클라이언트 측은 제거되었으며, 서버는 EL P2P 동기화로 대체되어 향후 릴리스에서 deprecated될 예정입니다. | `true` | `OP_NODE_P2P_SYNC_REQ_RESP` |
| `--pprof.addr` | pprof 수신 주소 | `"0.0.0.0"` | `OP_NODE_PPROF_ADDR` |
| `--pprof.enabled` | pprof 서버를 활성화합니다. | `false` | `OP_NODE_PPROF_ENABLED` |
| `--pprof.path` | pprof 파일 경로입니다. 디렉터리인 경우 경로는 \{dir}/\{profileType}.prof가 됩니다. | — | `OP_NODE_PPROF_PATH` |
| `--pprof.port` | pprof 수신 포트 | `6060` | `OP_NODE_PPROF_PORT` |
| `--pprof.type` | pprof 프로필 유형입니다. cpu, heap, goroutine, threadcreate, block, mutex, allocs 중 하나입니다. | — | `OP_NODE_PPROF_TYPE` |
| `--rollup.config` | Rollup 체인 파라미터 | — | `OP_NODE_ROLLUP_CONFIG` |
| `--rollup.l1-chain-config` | L1의 체인 설정이 담긴 .json 파일의 경로로, 직접 형식 또는 genesis.json 형식(즉, .config 속성 아래에 포함된 형식)일 수 있습니다. L1으로 Ethereum mainnet 또는 Sepolia를 사용하는 경우 필요하지 않으며 무시됩니다. | — | `OP_NODE_ROLLUP_L1_CHAIN_CONFIG` |
| `--rpc.addr` | rpc 수신 주소 | `"0.0.0.0"` | `OP_NODE_RPC_ADDR` |
| `--rpc.admin-state` | admin API를 통한 상태 변경 사항을 저장하여 재시작 후에도 유지되도록 하는 데 사용하는 파일 경로입니다. 설정하지 않으면 비활성화됩니다. | — | `OP_NODE_RPC_ADMIN_STATE` |
| `--rpc.enable-admin` | admin API를 활성화합니다. | `false` | `OP_NODE_RPC_ENABLE_ADMIN` |
| `--rpc.port` | rpc 수신 포트 | `9545` | `OP_NODE_RPC_PORT` |
| `--safedb.path` | safe head 업데이트 데이터를 저장하는 데 사용하는 파일 경로입니다. 설정하지 않으면 비활성화됩니다. | — | `OP_NODE_SAFEDB_PATH` |
| `--sequencer.enabled` | 새 L2 블록의 시퀀싱을 활성화합니다. verifier를 위해 데이터를 게시하려면 별도의 batch submitter를 배포해야 합니다. | `false` | `OP_NODE_SEQUENCER_ENABLED` |
| `--sequencer.l1-confs` | sequencer가 L1 origin을 선택할 때 L1 head로부터 유지할 L1 블록 거리입니다. | `4` | `OP_NODE_SEQUENCER_L1_CONFS` |
| `--sequencer.max-safe-lag` | L2 safe와 unsafe 사이의 거리를 제한하기 위한 최대 L2 블록 수입니다. 0이면 비활성화됩니다. | `0` | `OP_NODE_SEQUENCER_MAX_SAFE_LAG` |
| `--sequencer.recover` | sequencer가 다음 L1 origin을 엄격하게 준비하고 빈 L2 블록을 생성하도록 강제합니다. | `false` | `OP_NODE_SEQUENCER_RECOVER` |
| `--sequencer.sealing-duration` | sequencer가 블록 봉인(sealing)에 할당하는 시간입니다(즉, 블록 타임스탬프보다 이만큼 앞서 execution engine에서 payload를 가져옵니다). 이 값이 \<= 0이면 자동으로 50ms로 조정됩니다. | `50ms` | `OP_NODE_SEQUENCER_SEALING_DURATION` |
| `--sequencer.stopped` | sequencer를 중지된 상태로 초기화합니다. sequencer는 admin\_startSequencer RPC를 사용해 시작할 수 있습니다. | `false` | `OP_NODE_SEQUENCER_STOPPED` |
| `--signer.address` | signer가 요청에 서명하는 대상 주소 | — | `OP_NODE_SIGNER_ADDRESS` |
| `--signer.endpoint` | 클라이언트가 연결할 signer 엔드포인트 | — | `OP_NODE_SIGNER_ENDPOINT` |
| `--signer.header` | 원격 signer에 전달할 헤더입니다. 형식은 `key=value`입니다. 값에는 HTTP 헤더에 허용되는 모든 문자를 사용할 수 있습니다. 환경 변수를 사용할 때는 쉼표로 구분합니다. 플래그를 사용할 때는 플래그 하나에 키-값 쌍 하나를 지정합니다. | — | `OP_NODE_SIGNER_HEADER` |
| `--signer.tls.ca` | tls CA 인증서 경로 | `"tls/ca.crt"` | `OP_NODE_SIGNER_TLS_CA` |
| `--signer.tls.cert` | tls 인증서 경로 | `"tls/tls.crt"` | `OP_NODE_SIGNER_TLS_CERT` |
| `--signer.tls.enabled` | signer에 대한 TLS 클라이언트 인증을 활성화하거나 비활성화합니다. | `true` | `OP_NODE_SIGNER_TLS_ENABLED` |
| `--signer.tls.key` | tls 키 | `"tls/tls.key"` | `OP_NODE_SIGNER_TLS_KEY` |
| `--syncmode` | 블록체인 동기화 모드(옵션: consensus-layer, execution-layer) | `consensus-layer` | `OP_NODE_SYNCMODE` |
| `--syncmode.offset-el-safe` | execution-layer 동기화가 완료된 후, safe 및 finalized head를 동기화된 tip보다 이 기간만큼 뒤로 설정합니다(rollup 블록 시간을 기준으로 올림 나눗셈을 사용해 L2 블록 수로 변환). 기본값은 OP Mainnet 시퀀싱 윈도우와 동일한 12h입니다. | `12h0m0s` | `OP_NODE_SYNCMODE_OFFSET_EL_SAFE` |
| `--verifier.l1-confs` | L2 데이터를 도출(derive)하기 전에 L1 head로부터 유지할 L1 블록 거리입니다. reorg는 지원되지만 처리 속도가 느릴 수 있습니다. | `0` | `OP_NODE_VERIFIER_L1_CONFS` |

## 주요 플래그 참고 사항

### network 및 rollup.config

위의 필수 플래그 외에도 op-node에 어떤 체인을 제공할지 알려 주어야 합니다.
`--network`(superchain-registry에 포함된 체인, 예: `op-mainnet`) 또는
`--rollup.config`(커스텀 체인용 rollup 구성 파일) 중 정확히 하나를 설정하십시오.
둘 다 설정하거나 둘 다 설정하지 않으면 시작 오류가 발생합니다.

### l1.trustrpc

> [!NOTE]
>
> L1 제공자로 Erigon Ethereum 실행 클라이언트를 실행하는 경우
> `--l1.trustrpc`를 포함해야 합니다. 이 글을 작성하는 시점에 Erigon은
> op-node가 일부 처리를 위해 L1 데이터를 불러올 때 선호하는 `eth_getProof` 메서드를
> 지원하지 않습니다. trustrpc 플래그를 사용하면 Erigon이 지원하는 다른 방법을 사용하지만,
> op-node는 그 정확성을 검증할 수 없습니다.

### syncmode.offset-el-safe

`--syncmode=execution-layer`에서만 적용됩니다. 실행 계층 동기화가
완료된 후 safe 헤드와 finalized 헤드는 동기화된 tip보다 이 기간만큼 뒤로 설정됩니다
(rollup 블록 시간을 사용하여 L2 블록 수로 변환됩니다). 기본값
`12h`는 OP Mainnet의 시퀀싱 윈도우(sequencing window)와 일치합니다.

이 값을 `0`으로 설정하면 safe와 finalized가 동기화된 tip에 그대로 남습니다. 이는
**권장하지 않으며 위험합니다**. 이 오프셋은 L1이 EL 동기화 tip을 확인할 시간을 갖기 전까지
node가 이를 safe/finalized로 표시하지 않도록 보장합니다.
`0`으로 설정하면 나중에 reorg된(비정식) 브랜치에 있는 것으로 판명된 EL 동기화 tip이
safe/finalized로 표시될 수 있으며, safe/finalized는
reorg되어서는 안 됩니다. 바디 프루닝 불일치는 대신 EL이 보관하는 바디 범위를 늘려
해결하십시오. 아래 경고를 참조하십시오.

> [!WARNING]
>
> op-node는 tip에서 이만큼 뒤에 놓인 헤드의 블록 바디에서 L1-info 입금(디파짓)
> 트랜잭션을 읽으므로, 실행 클라이언트는 최소한 이만큼 이전까지의
> 블록 바디를 보관해야 합니다. 바디 프루닝(op-reth의 `--minimal`
> 모드 또는 `--prune.bodies.distance`)은 지원되지 않습니다. 그래도 활성화하는 경우
> 보관되는 바디 범위를 이 오프셋(블록 단위)보다 충분히 크게 유지하십시오.
> 그렇지 않으면 EL 동기화가 `l2 block is missing L1 info deposit tx` 오류로 실패합니다.
> [op-reth 프루닝](https://docs.optimism.io/ko/node-operators/guides/management/archive-node.md#pruning-op-reth)을 참조하십시오.

### sequencer.l1-confs

> [!WARNING]
>
> `sequencer.l1-confs`의 최댓값은 sequencer
> drift를 초과할 수 없으며, 현재 sequencer drift는 30분(1800초 또는 150블록)으로 설정되어 있습니다. 이 한도보다
> 높은 값을 설정하면 sequencer가 시퀀스 윈도우 내에서 블록을 생성할 수 없게 됩니다.

### verifier.l1-confs

> [!NOTE]
>
> `verifier.l1-confs`에는 엄격한 제한이 없지만, 최적의 성능을 위해 이 값을
> 12~~13분(일반적으로 10~~20블록) 이내로 유지하는 것이 좋습니다.
> 이 범위를 초과하면 verifier의 데이터 처리 효율에 영향을 줄 수 있습니다.

### altda.\*

`altda.*` 플래그는 OP Stack의 Beta 기능인 Alt-DA 모드를 구성합니다.
핵심 기여자들의 초기 검토를 거쳤지만 아직
테스트 중이며 버그나 기타 문제가 있을 수 있습니다. 설정 방법은
[Alt-DA 모드 가이드](https://docs.optimism.io/ko/chain-operators/guides/features/alt-da-mode-guide.md)를
참조하십시오.

### interop.\*

`interop.*` 플래그는 OP Stack interop 네트워크를 구성합니다. 상호운용성(interoperability)은 매우
실험적인 기능이며, 이 플래그는 interop이 활성화된 네트워크에만 적용됩니다. supervisor
서비스를 실행하지 않는 경우 interop RPC(`--interop.rpc.addr`)를
활성화하지 마십시오.

### version

> [!NOTE]
>
> 소스에서 빌드한 node는 GitHub 릴리스 페이지에 표시된 올바른 버전 번호를
> 출력하지 않습니다.

## node 로그 레벨

node 로그 레벨은 로그 메시지의 상세 수준을 결정하며, 운영자가 중요도와 세부 수준에 따라 메시지를 필터링할 수 있게 해 줍니다. Optimism에서 사용하는 `op-node`의 로그 레벨은
다음과 같습니다.

1. Silent (0): 로그 메시지를 표시하지 않습니다. node 상태에 대한 피드백을
   전혀 제공하지 않으므로 거의 사용되지 않습니다.

2. Error (1): 오류 메시지만 표시합니다. 즉각적인 주의가 필요한 심각한
   문제에 집중할 때 사용합니다.

3. Warn (2): 오류 메시지와 경고를 표시합니다. 당장 심각하지는 않지만
   주의가 필요한 잠재적 문제를 파악하는 데 도움이 됩니다.

4. Info (3): 오류 메시지, 경고, 일반 활동 로그를 표시합니다. 이것이
   기본 레벨이며, 지나치게 장황하지 않으면서 node 동작을 균형 있게
   보여 줍니다.

5. Debug (4): 모든 info 레벨 메시지와 추가 디버깅 정보를 표시합니다. 문제를
   해결하거나 node 소프트웨어를 개발할 때 사용합니다.

6. Detail (5): 가장 상세한 레벨로, 자세한 디버깅 정보와
   저수준 시스템 동작을 포함합니다. 매우 많은 양의 로그 데이터를 생성하므로
   일반적으로 심층적인 문제 해결에만 사용합니다.

로그 레벨을 설정하려면 `op-node` 명령을 실행할 때 `--log.level` 플래그를 사용하십시오. 예를 들어
로그 레벨을 debug로 설정하려면 다음과 같이 합니다.

```bash theme={null}
op-node --log.level=debug
```

로그 레벨을 조정하면 운영자는 기록되는 정보의 양과 유형을 제어할 수 있습니다.
이를 통해 로그 데이터 양을 관리하고 다양한 운영 상황에서 관련 세부 정보에 집중할 수 있습니다.
