> ## 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 Deployer의 알려진 제한 사항과 해결 방법입니다.

OP Deployer에는 향후 릴리스에서 해결하기 위해 작업 중인 몇 가지 알려진 제한 사항이 있습니다.

## 신규 체인에서의 태그된 릴리스

> [!NOTE]
>
> **v0.0.11 이후의 모든 버전에서 수정되었습니다.**

현재 태그된 컨트랙트 locator(즉, `tag://`로 시작하는 locator)를 사용하여 Sepolia와 Ethereum mainnet을
제외한 곳에 체인을 배포할 수 없습니다. 시도하면 다음과 같은 오류가 표시됩니다.

```
####################### WARNING! WARNING WARNING! #######################

You are deploying a tagged release to a chain with no pre-deployed OPCM.
Due to a quirk of our contract version system, this can lead to deploying
contracts containing unaudited or untested code. As a result, this
functionality is currently disabled.

We will fix this in an upcoming release.

This process will now exit.

####################### WARNING! WARNING WARNING! #######################
```

오류 메시지에서 설명하듯이, 이는 스마트 컨트랙트 버전 관리 방식의 특이점 때문입니다. 현재 다음과 같은
프로세스를 따르고 있습니다.

1. op-contracts/v1.8.0과 같은 릴리스에 태그를 지정합니다.
2. 해당 릴리스에서 어떤 컨트랙트가 업데이트되었는지 참조하도록 [릴리스 노트](https://github.com/ethereum-optimism/optimism/releases/tag/op-contracts%2Fv1.8.0)를 업데이트합니다.
3. 업데이트된 컨트랙트 구현을 수동으로 배포합니다.
4. 새로 배포된 구현과, 업데이트되지 않은 컨트랙트의 기존 구현을 참조하는 새 OPCM을 수동으로
   배포합니다.

그러나 이 전략에는 결함이 있습니다. 릴리스에는 해당 릴리스에서 명시적으로 변경된 컨트랙트만 포함됩니다.
**즉, 릴리스 노트에서 "업데이트됨"으로 참조되지 않은 컨트랙트는 "개발 중" 상태이며, 감사를 받거나
거버넌스의 승인을 받지 않은 것입니다.** 따라서 릴리스 태그의 모든 컨트랙트를 배포하면 프로덕션 준비가 된
코드와 개발 중인 코드가 섞여 배포됩니다. 프로덕션에서 *실제로* 실행될 컨트랙트 버전을 얻으려면,
OP Deployer는 이전의 모든 릴리스를 참조하여 올바른 컨트랙트 조합을 구성해야 합니다.

예를 들어, Holesky에 배포하려면 `op-contracts/v1.8.0`, `op-contracts/v1.6.0`, `op-contracts/v1.3.0` 버전의 컨트랙트를 배포해야 합니다.
Sepolia와 mainnet에서는 구현 컨트랙트를 점진적으로 배포해 왔으므로, 기존 구현을 사용하여 이 문제를
우회합니다.

다음 릴리스에서 이 문제를 해결할 계획입니다. 그때까지는 해결 방법으로 개발용 체인에 태그되지 않은
locator를 사용하거나, L1으로 Sepolia 또는 Ethereum mainnet을 사용할 수 있습니다.
