> ## 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.

# 합의 계층 동기화

> 합의 계층(consensus-layer) 동기화 모드에 대해 알아봅니다.

이 페이지에서는 합의 계층(consensus-layer) 동기화 모드를 설명합니다. 이 모드는 op-node의 기본 동기화 방식이지만, 대부분의 노드 운영자에게 권장되는 방식은 아닙니다.

## 개요

합의 계층 동기화는 `op-node`가 L1에서 트랜잭션 데이터를 읽어 블록을 도출(derive)한 다음, 이를 실행 클라이언트에 삽입하는 동기화 방식입니다. 실행 계층 동기화(snap sync)와 달리, 이 방식은 다른 L2 node로부터 상태나 블록 데이터를 다운로드하기 위해 P2P 네트워킹에 의존하지 않습니다.

합의 계층 동기화가 여전히 기본 모드이지만, 더 빠른 동기화와 더 나은 성능을 위해 **실행 계층 동기화(snap sync)를 권장합니다**.

## 합의 계층 동기화를 사용해야 하는 경우

다음과 같은 경우에는 이 동기화 모드가 더 적합할 수 있습니다.

* **독립적인 검증**: 모든 데이터를 L1에서 도출하여 전체 체인을 독립적으로 검증해야 하는 탈중앙화 개발자 그룹
* **P2P 연결 불가**: P2P 네트워킹이 제한되거나 사용할 수 없는 환경
* **L1 전용 신뢰 모델**: L2 peer node에 의존하지 않고 L1 데이터만 신뢰하려는 애플리케이션
* **디버깅 및 연구**: L1 데이터에서 블록이 도출되는 방식 분석

> [!WARNING]
>
> 합의 계층 동기화는 실행 계층 동기화(snap sync)보다 훨씬 느립니다. 대부분의 노드 운영자에게는 더 빠른 동기화를 위해 snap sync가 권장됩니다.

## 구성

### op-node 구성

`op-node`에 다음 플래그를 설정합니다.

```shell theme={null}
--syncmode=consensus-layer
```

> [!NOTE]
>
> `--syncmode=consensus-layer`는 `op-node`의 기본 설정입니다. 동기화 모드를 명시적으로 지정하고 싶거나 다른 구성을 재정의하는 경우가 아니라면 따로 지정할 필요가 없습니다.

### op-geth 구성

`op-geth`에 다음 플래그를 설정합니다.

```shell theme={null}
--syncmode=full
```

> [!NOTE]
>
> `--syncmode=full` 플래그는 기본 설정이 아니므로 명시적으로 구성해야 합니다. 이렇게 하면 블록이 P2P를 통해 동기화되는 대신 `op-node`에 의해 삽입됩니다.

### Nethermind 구성

`Nethermind`에 다음 플래그를 설정합니다.

```shell theme={null}
--config op-mainnet
--Sync.SnapSync=false
--Sync.FastSync=false
```

> [!NOTE]
>
> `op-mainnet`을 네트워크에 맞는 구성으로 바꾸십시오(예: OP Sepolia의 경우 `op-sepolia`).

## 합의 계층 동기화의 작동 방식

합의 계층 동기화 과정은 다음과 같습니다.

1. **L1 모니터링**: `op-node`가 L1 체인에서 트랜잭션 배치를 지속적으로 모니터링합니다
2. **블록 도출**: `op-node`가 L1 트랜잭션 데이터에서 L2 블록을 도출합니다
3. **블록 삽입**: 도출된 블록이 실행 클라이언트에 하나씩 삽입됩니다
4. **상태 구축**: 실행 클라이언트가 각 블록을 순차적으로 실행하여 상태를 구축합니다

이 방식은 모든 블록이 L1에서 도출되고 독립적으로 검증되도록 보장하지만, peer로부터 상태 스냅샷을 다운로드하는 방식보다 훨씬 느립니다.

## 성능 고려 사항

* **동기화 시간**: snap sync 또는 실행 계층 모드의 아카이브 동기화보다 훨씬 느립니다
* **네트워크 요구 사항**: 안정적인 L1 RPC 접근이 필요하지만 L2 P2P 연결은 최소한으로 필요합니다
* **리소스 사용량**: P2P 대역폭 사용량은 적지만 L1 RPC 호출이 더 많습니다
* **OP Mainnet**: OP Mainnet의 경우 Bedrock 업그레이드 이전의 상태를 위해 여전히 [bedrock datadir](https://docs.optimism.io/ko/op-mainnet/network-information/snapshots.md)이 필요합니다

## 다른 동기화 모드와의 비교

| 기능 | 합의 계층 (레거시) | 실행 계층 (Snap Sync) | 실행 계층 기반 아카이브 |
| - | - | - | - |
| 데이터 소스 | L1만 | L2 P2P + L1 | L2 P2P + L1 |
| 동기화 속도 | 가장 느림 | 가장 빠름 | 중간 |
| 상태 프루닝 | 예 (기본값) | 예 | 아니요 |
| 과거 상태 | 사용 불가 | 사용 불가 | 전체 히스토리 |
| P2P 필요 여부 | 아니요 | 예 | 예 |
| 검증 | 전체 L1 도출 | 암호학적 검증 | 전체 실행 |

## 다음 단계

* 아카이브 node 운영에 대해서는 [아카이브 node 가이드](https://docs.optimism.io/ko/node-operators/guides/management/archive-node.md)를 참조하십시오
* 추가 설명이나 사용자 정의는 [합의 클라이언트 구성](https://docs.optimism.io/ko/node-operators/guides/configuration/consensus-clients.md) 및 [실행 클라이언트 구성](https://docs.optimism.io/ko/node-operators/guides/configuration/execution-clients.md) 가이드를 참조하십시오
* 이 과정의 어느 단계에서든 어려움이 있으면 [개발자 지원](https://github.com/ethereum-optimism/developers/discussions)에 문의하십시오
