Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

보장된 블록 공간

Stable v1.8.0은 각 블록을 별도의 가스 예산을 가진 레인으로 나눕니다. 적격 우선순위 트랜잭션은 엔터프라이즈 레인으로 들어가므로 일반 트래픽이 예약된 용량을 소비할 수 없습니다.

블록 레인

제안 및 검증 규칙은 세 가지 레인 유형을 인식합니다.

  • 엔터프라이즈 레인: NonceKey의 63번째 비트가 설정된 CustomTx 트랜잭션을 전달합니다. 단, 순서가 없는 마커인 MaxUint64는 제외합니다.
  • 트랜잭션 유형 레인: 구성된 트랜잭션 범주에 대한 용량을 예약합니다.
  • 일반 레인: 다른 구성된 레인과 일치하지 않는 표준 트랜잭션을 전달합니다.

maxBlockspaceGasWeight는 구성된 모든 레인에 걸쳐 예약된 블록 가스 한도의 백분율을 설정합니다. 각 레인의 weight는 해당 예약된 풀의 백분율을 설정합니다.

제안자는 해당 한도 내에서 레인을 채우고, 검증자는 제안된 블록을 검증할 때 동일한 한도를 적용합니다.

이를 통해 프로토콜 수준에서 예약이 결정론적이 됩니다. 이는 제안자가 자발적으로 공간을 사용하지 않고 남겨두는 것에 의존하지 않습니다.

2차원 논스

이더리움 계정은 일반적으로 하나의 논스 시퀀스를 가집니다. 트랜잭션 12가 누락되거나 멈춘 경우, 트랜잭션 13 이후는 실행될 수 없습니다.

2차원 논스 또는 2D 논스는 계정에 여러 독립적인 시퀀스를 제공합니다. NonceKey가 시퀀스를 선택하고, 트랜잭션의 논스는 해당 시퀀스 내에서의 위치를 제공합니다.

예를 들어, 결제 계정은 급여를 위해 NonceKey = 1을 사용하고 공급업체 결제를 위해 NonceKey = 2를 사용할 수 있습니다. 지연된 급여 트랜잭션은 공급업체 시퀀스를 차단하지 않습니다.

논스 키 공간에는 세 가지 중요한 영역이 있습니다.

  • NonceKey = 0은 표준 EVM 호환 논스 동작을 유지합니다.
  • uint64 범위의 상위 절반은 프로토콜 사용을 위해 예약되어 있습니다. 63번째 비트를 설정하면 엔터프라이즈 레인 적격성을 나타냅니다.
  • NonceKey = MaxUint64는 순서 없는 트랜잭션을 표시합니다. TimeoutTimestamp는 재실행 방지 기한을 제공합니다.

Stable은 이 필드들을 트랜잭션 유형 0x3FCustomTx에 담습니다. 기존 EVM 트랜잭션 형식은 계속 사용할 수 있으며, 기본 논스 채널은 예상되는 동작을 유지합니다.

거버넌스 및 활성화

거버넌스는 하나의 MsgUpdateParams 제안을 통해 레인 정의 및 가스 할당량을 제어합니다. 승인된 매개변수는 다음 블록부터 적용됩니다.

v1.8.0 메인넷 업그레이드는 maxBlockspaceGasWeight = 20weight = 50을 가진 하나의 엔터프라이즈 레인을 시드했습니다. 트랜잭션 유형 레인은 시드하지 않았습니다. 거버넌스는 나중에 이 매개변수들을 변경할 수 있습니다.

StableSystem 프리컴파일의 blockspaceLanes() 쿼리는 활성 구성을 반환합니다. 두 레인 배열은 id를 기준으로 오름차순으로 정렬되며, 낮은 ID가 먼저 일치합니다.

보장 경계

엔터프라이즈 트랜잭션은 다음 모든 조건이 충족될 때 결정론적인 다음 블록 포함을 받습니다.

  • 트랜잭션이 엔터프라이즈 레인에 적합합니다.
  • 레인에 트랜잭션에 필요한 충분한 예약된 가스가 있습니다.
  • 검증자가 프로토콜을 따릅니다.
  • 네트워크가 검증자가 제안 전에 트랜잭션을 수신할 만큼 충분히 동기화되어 있습니다.

Stable의 엔터프라이즈 RPC 게이트웨이는 적격 트랜잭션을 검증자에게 공급합니다. 예약된 제안 용량은 일반 트래픽이 이를 대체하는 것을 방지합니다.

다음 단계

  • 보장된 정산: 보장된 블록 공간에 의존하는 결제 패턴, 즉 결정론적 포함과 함께 시간제 DvP 정산 주기를 확인하세요.
  • StableSystem 프리컴파일: 활성 엔터프라이즈 및 트랜잭션 유형 레인 정의를 쿼리하세요.
  • 네트워크 업그레이드: v1.8.0 릴리스 및 활성화 세부 정보를 검토하세요.
  • 실행: Stable이 각 블록에 선택된 트랜잭션을 실행하는 방법을 이해하세요.