op-alloy-consensus crate는 Optimism 합의(consensus) 인터페이스를 제공합니다.
이 crate에는 Optimism EL 합의 및 통신을 구현하기 위한 상수, 타입, 함수가
포함되어 있습니다. 여기에는 입금(디파짓) 트랜잭션을 포함하도록 확장된 OpTxEnvelope 타입과,
OP Stack 전용 필드(deposit_nonce + deposit_receipt_version)를 포함하는 receipt가 포함됩니다.
일반적으로 어떤 타입이 alloy-consensus crate에 존재하지만 OP Stack에서
기본 Ethereum 프로토콜로부터 수정된 경우, 해당 타입은 이 crate에 속합니다.
OP Stack에서 수정되지 않은 합의 타입의 경우에는
alloy-consensus 타입을 대신 사용해야 합니다.
Block
op-alloy-consensus는 Optimism 블록 타입인 OpBlock을 내보냅니다.
이 타입은 단순히 alloy-consensus 블록 타입을 재사용하며, 블록 내 트랜잭션의
타입으로 OpTxEnvelope를 사용합니다.
트랜잭션
Optimism은 Ethereum EIP-2718 트랜잭션 envelope를 확장하여 deposit 변형(variant)을 포함합니다.OpTxEnvelope
OpTxEnvelope 타입은 Alloy의
TxEnvelope 타입을 기반으로 합니다.
Optimism은 TxEnvelope를 다음과 같이 수정합니다.
- Legacy
- EIP-2930
- EIP-1559
- EIP-7702
- Deposit
트랜잭션 타입(OpTxType)
OpTxType은 트랜잭션 타입을 바이트 식별자로 열거하며,
Rust에서는 u8로 표현됩니다.
Receipt 타입
op-alloy-consensus는 트랜잭션 타입을 정의하는 것과 마찬가지로
관련 receipt 타입도 정의합니다.
OpReceiptEnvelope는 OP Stack에 맞게 수정된 Eip-2718 receipt envelope 타입을
정의합니다. 여기에는 위에서 정의한 OpTxEnvelope 변형에 직접 대응하는
다음 변형이 포함됩니다.
- Legacy
- EIP-2930
- EIP-1559
- EIP-7702
- Deposit
OpDepositReceipt 타입도 있습니다.