합의 계층 스테이킹 관련 로직을 용이하게 하는 모듈
x/evmstaking
모듈을 명시합니다.
Story 블록체인에서 가스 토큰은 트랜잭션 비용을 지불하고 스마트 계약과 상호 작용하기 위해 실행 계층(EL)에 존재합니다. 그러나 합의 계층(CL)은 합의 스테이킹, 슬래싱, 보상을 관리합니다. 이 모듈은 사용자 정의 잠금 기간을 가진 검증인에게 위임하는 것과 같은 CL 수준의 스테이킹 관련 로직을 용이하게 하기 위해 존재합니다.
Queue[types.Withdrawal]
(스테이크) 출금 큐는 CL에서 소각되고 EL에서 발행될 보류 중인 언본딩된 스테이크를 저장합니다. 14일의 언스테이킹 기간 후에 언본딩된 스테이크는 처리될 큐에 추가됩니다.
Queue[types.Withdrawal]
보상 출금 큐는 CL에서 소각되고 EL에서 발행될 스테이크의 보류 중인 보상을 저장합니다. 임계값을 초과하는 모든 보상은 이 큐에 대기될 자격이 있지만, 블록당 최대 추가 수에 대한 매개변수가 존재합니다.
max_withdrawal_per_block
는 블록당 처리할 최대 출금 수(보상 및 언스테이크, 각각)입니다. 이 매개변수는 노드가 한 번에 많은 양의 출금을 처리하여 최대 체인 타임아웃을 초과하는 것을 방지합니다.max_sweep_per_block
는 블록당 스윕할 최대 검증인-위임자 위임 수입니다. 이 매개변수는 노드가 한 번에 많은 양의 위임을 처리하는 것을 방지합니다.min_partial_withdrawal_amount
는 보상이 보상 출금 큐에 추가되기 위해 필요한 최소 금액입니다.ubi_withdrawal_address
는 UBI 출금이 입금되어야 하는 UBI 계약 주소입니다.Map[string, string]
위임자-출금 주소 매핑은 위임자가 출금한 스테이크를 받는 주소를 추적합니다. (스테이크) 출금 큐는 이 맵을 사용하여 EVM 블록 페이로드를 구축하는 데 사용되는 execution_address
구조체의 Withdrawal
를 결정합니다.
위임자는 언제든지 출금 주소를 변경할 수 있지만, (스테이크) 출금 큐에 있는 기존 스테이크 출금 요청은 원래 값을 유지합니다.
Map[string, string]
Map[string, string]
위임자-운영자 주소 매핑은 위임자가 자신을 대신하여 위임(스테이킹), 위임 취소(언스테이킹), 재위임할 수 있는 권한을 부여한 주소를 추적합니다.
*bindings.IPTokenStaking
IPTokenStaking 컨트랙트는 EL에서 스테이킹 관련 이벤트를 필터링하고 파싱하는 데 사용됩니다.
evmstaking
모듈은 출금 요청을 파싱, 처리하고 두 개의 대기열에 삽입하는 역할을 담당하며, evmengine
모듈은 출금 요청을 검증하고 디큐하며, EL의 해당 출금 주소로 입금하는 역할을 담당합니다.
EndBlock
ABCI2 호출은 staking 모듈에서 언본딩된 항목(14일 후 언본딩된 스테이크)을 가져와 (스테이크) 출금 대기열에 삽입하는 역할을 합니다. 또한 스테이크 보상 출금을 보상 출금 대기열로 처리하고 UBI 출금을 (스테이크) 출금 대기열로 처리합니다.
네트워크가 Singularity 기간에 있다면, 이 기간 동안 스테이킹 보상과 출금이 불가능하므로 엔드 블록은 건너뜁니다. 그렇지 않은 경우, 위임 출금 및 보상 출금을 참조하여 자세한 출금 프로세스를 확인하세요.
creation_height
는 출금이 생성된 블록 높이입니다.execution_address
는 CL에서 소각되는 인출된 자금을 받는 EVM 주소입니다.amount
는 CL에서 소각하고 EL에서 발행할 금액입니다.withdrawal_type
는 인출 유형입니다: 는 언스테이킹, 는 보상, 그리고 는 UBI입니다.validator_address
는 EVM 검증자 주소입니다.