testnet
GitHub EN

모듈 권한자

mechanism core

모듈의 특권 메시지를 실행할 권한이 있는 지정된 계정으로, 일반적으로 거버넌스 모듈입니다.

모듈 권한자는 코스모스 SDK의 디자인 패턴으로, 모듈의 민감하고 상태를 변경하는 기능의 실행을 사전에 정의된 단일 주소로 제한합니다. 이를 통해 파라미터 업데이트와 같은 중요한 작업은 권한이 있는 주체만이 수행할 수 있도록 보장합니다. x/okrw 모듈의 경우, 권한자는 MsgUpdateParams 실행을 담당합니다.

기본 권한자

관례 및 보안상의 이유로, 대부분의 코스모스 SDK 모듈의 기본 권한자는 x/gov 모듈 계정입니다. 이는 MsgUpdateParams와 같은 특권 메시지를 실행하려면 사용자가 이를 거버넌스 제안으로 감싸야 함을 의미합니다. 그 후 제안은 네트워크의 이해관계자들에 의해 투표되고 통과되어야 합니다. x/okrw 모듈은 이 패턴을 따라 파라미터 변경이 탈중앙화된 합의의 결과임을 보장합니다.

설정

depinject.go에서 볼 수 있듯이, 권한자 주소는 애플리케이션 설정 중에 구성할 수 있습니다. 기본적으로 거버넌스 모듈로 설정되지만, 애플리케이션 구성에서 사용자 지정 권한자를 지정할 수 있습니다. 이는 테스트넷이나 대체 거버넌스 메커니즘을 가진 체인과 같은 다양한 체인 구성에 유연성을 제공합니다. NewKeeper 함수는 권한자 주소가 비어 있지 않도록 요구하여 이 중요한 역할이 항상 할당되도록 강제합니다.

검증

메시지 서버(예: msg_server.go) 내에서 특권 작업을 수행하는 모든 메시지 핸들러는 먼저 서명자를 검증해야 합니다. x/okrw 키퍼는 이를 위해 validateAuthority 헬퍼 함수를 제공합니다. UpdateParams 핸들러는 이 함수를 호출하여 들어오는 메시지의 authority 필드를 키퍼에 구성된 권한자 주소와 비교합니다. 일치하지 않으면 트랜잭션은 ErrUnauthorized 오류와 함께 거부됩니다.
소스: maroo
ESC
검색어를 입력하세요