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

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

v0.0.11 이후의 모든 버전에서 수정되었습니다.
현재 태그된 컨트랙트 locator(즉, tag://로 시작하는 locator)를 사용하여 Sepolia와 Ethereum mainnet을 제외한 곳에 체인을 배포할 수 없습니다. 시도하면 다음과 같은 오류가 표시됩니다.
오류 메시지에서 설명하듯이, 이는 스마트 컨트랙트 버전 관리 방식의 특이점 때문입니다. 현재 다음과 같은 프로세스를 따르고 있습니다.
  1. op-contracts/v1.8.0과 같은 릴리스에 태그를 지정합니다.
  2. 해당 릴리스에서 어떤 컨트랙트가 업데이트되었는지 참조하도록 릴리스 노트를 업데이트합니다.
  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을 사용할 수 있습니다.