Injective Block SDK 통합
Injective는 Block SDK를 통합합니다. 당사의 솔루션은 트랜잭션을 4개의 별도 레인으로 분리하는 멀티 레인 mempool을 활용합니다:- Oracle Lane – oracle 메시지를 포함하는 트랜잭션용.
- Governance Lane – exchange 모듈의 admin이 보낸 모든 트랜잭션용.
- Exchange Lane – exchange 메시지만 포함하는 트랜잭션용.
- Default Lane – 기타 모든 트랜잭션용.
주요 기능
1. 멀티 레인 Mempool
-
우선순위 정렬:
레인은 우선순위별로 정렬됩니다: Oracle Lane이 가장 높은 우선순위를 가지고, 그 다음 Governance Lane, Exchange Lane, 마지막으로 Default Lane 순입니다. 이 순서는 블록 제안을 구축하고 검증할 때 중요합니다. -
전용 레인 로직:
각 레인은 자체 match handler를 사용합니다. 우선순위 순으로 다음 레인이 있습니다:- Oracle Lane은 트랜잭션에 oracle 메시지가 포함되어 있는지 확인합니다.
- Governance Lane은 첫 번째 서명자가 exchange 모듈의 admin인지 확인합니다.
- Exchange Lane은 모든 메시지가 exchange 모듈에 속하는지 확인하고 커스텀 수수료/우선순위 로직을 사용하여 트랜잭션을 정렬합니다.
- Default Lane은 다른 레인과 일치하지 않는 모든 트랜잭션을 수락합니다.
2. 우선순위 기반 트랜잭션 라우팅
당사 통합의 핵심 개선 사항은 우선순위에 기반한 트랜잭션 라우팅을 위한 커스텀 로직입니다.-
동일한 서명자의 트랜잭션이 이미 낮은 우선순위의 레인에 존재하는 경우:
match handler는false를 반환하며, 이는 새 트랜잭션이 현재(더 높은 우선순위) 레인에 의해 캡처되지 않음을 의미합니다. 대신 더 낮은 우선순위의 레인에서 처리되도록 전달됩니다. -
그 외의 경우:
새 트랜잭션은 현재 레인에서 수락됩니다.
3. Exchange Lane 우선순위
Exchange Lane은 수수료 할인, 계정 티어 및 청산 메시지에 대한 특별 처리를 기반으로 트랜잭션을 정렬하는 커스텀 우선순위 로직을 사용합니다. 주요 사항은 다음과 같습니다:-
커스텀 Tx 우선순위 계산:
Exchange Lane은 계정의 수수료 할인 티어와 해당되는 경우 트랜잭션이 청산 메시지만 포함하는지 여부를 고려하여 트랜잭션의 우선순위를 추출합니다. 청산 메시지에는 가장 높은 우선순위가 할당됩니다. -
계정 티어 및 수수료 할인:
일반 exchange 트랜잭션의 경우, 레인은 트랜잭션의 서명자 데이터에서 가장 높은 계정 티어를 우선순위 척도로 계산합니다. 더 높은 티어는 더 높은 우선순위를 가집니다.
4. Oracle 및 Governance Lane 최대 가스 한도
Oracle 및 Governance Lane의 최대 가스 한도를 초과하는 트랜잭션은matching 단계(tx가 mempool에 삽입될 때)에서 거부됩니다. 만약
매칭 단계에서 이를 하지 않으면, 큰 트랜잭션이 레인에 들어갔다가
나중에 prepare 단계(PrepareProposal에서)에서 거부될 수 있습니다.
그러면 트랜잭션은 mempool에 무기한 남아있게 되어, 발신자 계정이
다른 트랜잭션을 제출하지 못하게 차단됩니다.