Sui 의 상태 유지 및 스토리지 리베이트 적립

Sui Sui 의 고유 기능인 스토리지 펀드 리베이트는 커뮤니티가 건강한 네트워크를 유지하도록 인센티브를 제공합니다. Sui Sui

Sui 의 상태 유지 및 스토리지 리베이트 적립

Sui 의 첫 번째 네이티브 유동성 레이어인 딥북의 미체결 주문은 온체인에 남아 네트워크 저장 공간을 소모합니다. 이러한 미체결 주문은 딥북의 동적 필드 한도에도 포함됩니다. 건강한 네트워크와 딥북의 운영성을 유지하려면 이러한 오래된 주문을 정리해야 합니다.

다행히도 Sui 의 보관 수수료 메커니즘은 체인에서 물건을 제거한 사용자에게 보상을 제공합니다. 진취적인 사용자는 딥북의 미처리 주문을 찾아 삭제하기만 해도 Sui 스토리지 펀드 리베이트를 받을 수 있습니다. 이러한 작업은 또한 네트워크 저장 공간을 확보하고 강력한 주문 처리를 위해 DeepBook을 계속 사용할 수 있도록 합니다.

미처리 주문을 찾아 삭제하는 가장 쉬운 방법은 봇을 배포하여 자동으로 처리하는 것입니다. 아래에서 최대 추출 가능 값(MEV) 봇에 대한 참조 코드를 확인하세요. 이 무료 코드는 그대로 컴파일하거나 수정하여 사용자 지정 봇을 만들 수 있습니다.

Sui 스토리지 리베이트

Sui 트랜잭션이 네트워크에 객체를 생성할 때 가스비와 함께 스토리지 수수료를 부과합니다. 이 저장 수수료는 스테이킹 메커니즘을 사용하여 온체인 저장소를 유지하는 네트워크 운영자에게 보상을 제공하는 Sui 저장소 기금으로 들어갑니다. 이러한 설계는 운영자가 언제든지 네트워크에 가입했다가 탈퇴할 수 있다는 점을 고려하여, 저장된 개체가 생성된 후 가입하는 운영자를 지원하기 위해 기금을 유지합니다.

모든 네트워크와 마찬가지로 사용하지 않는 파일과 기타 아티팩트는 시간이 지남에 따라 누적되어 드라이브 공간을 점점 더 많이 차지하게 됩니다. 사용 가능한 스토리지 공간이 완전히 사용되면 서비스 및 성능이 저하됩니다. Sui 에서 스토리지 수요 증가는 운영자가 네트워크 성능을 보장하기 위해 스토리지 용량을 늘려야 한다는 것을 의미합니다.

Sui 에서 만료된 딥북 주문과 같은 개체를 삭제하면 관련 개체가 차지하던 공간을 확보할 수 있습니다. 저장 수수료는 개체의 수명 기간 동안 선불로 부과되므로 Sui 에서는 원래 저장 수수료의 99%를 SUI 토큰으로 리베이트로 돌려줍니다. Sui 의 저장 수수료는 매우 낮기 때문에 한 번의 삭제에 대한 리베이트도 그에 따라 낮습니다. 개체를 삭제하는 거래에는 가스 수수료가 발생하지만, 대부분의 경우 보관 수수료 리베이트가 가스 수수료를 초과하므로 결과적으로 순이익이 발생합니다.

미처리된 딥북 주문

누군가가 토큰을 사용하거나 받고자 하는 금액을 설정하는 딥북의 지정가 주문은 경매에서 가격을 너무 높게 설정해 입찰이 없는 것과 유사하게, 일치하는 가격을 찾지 못해 주문이 체결되지 않을 수 있습니다. 이러한 미체결 주문은 결국 시간 초과되지만 네트워크에 남아 있습니다. 각 주문은 일정량의 저장 공간을 사용하는 객체입니다.

또한 각 주문은 객체에서 즉시 추가하거나 제거할 수 있는 필드 유형인 동적 필드를 사용합니다. DeepBook은 Sui 의 모든 풀에서 동적 필드를 1,000개로 제한합니다. 활성 주문과 만료된 주문의 수가 1,000개에 도달하면 DeepBook은 동적 필드 한도인 1,000개에 도달하고 그 수가 1,000개 미만으로 떨어질 때까지 더 이상 주문을 처리할 수 없습니다.

아래 코드는 DeepBook에서 만료된 주문을 지우는 참조 MEV 봇을 구축하는 방법을 보여줍니다. 봇이 객체를 삭제하면 해당 객체와 관련된 스토리지 수수료 리베이트가 봇을 실행하는 데 사용된 주소로 전달되어 네트워크 상태와 DeepBook 가용성을 유지하면서 봇 생성자에게 보상을 제공합니다.

MEV 봇 구축

다음 참조 코드는 Sui GitHub 리포지토리에서도 확인할 수 있으며, 네트워크에서 만료된 주문을 제거하는 간단한 MEV 봇을 생성하는 방법을 보여줍니다.

이 문서에는 봇을 만드는 데 필요한 코드 섹션만 포함되어 있습니다. 전체 코드는 Sui 리포지토리에서 참조하세요.

Sui 네트워크에 연결하는 클라이언트를 만들려면 다음과 같이 하세요:

const client = new SuiClient({url: 
"https://explorer-rpc.mainnet.sui.io:443"});

다음 줄은 PoolCreated 이벤트를 사용하여 모든 딥북 풀을 검색합니다:

let allPools = await retrieveAllPools();

이 섹션에서는 각 풀에서 만료된 주문을 모두 검색합니다:

let allExpiredOrdersPromises = [];
for (let pool of allPools) {

allExpiredOrdersPromises.push(retrieveExpiredOrders(pool.pool_id).then((expiredOrders) => {
		return {pool, expiredOrders}
	}));
    
}
let allExpiredOrders = (await Promise.all(allExpiredOrdersPromises)).flat();

이 코드는 만료된 모든 주문을 정리하는 트랜잭션을 생성한 다음 devInspectTransactionBlock을 사용하여 예상 스토리지 수수료 환급을 받는 방법을 보여줍니다:

let {rebate, tx} = await createCleanUpTransaction(allExpiredOrders);

console.log(`Total estimated storage fee rebate: ${rebate / 1e9} SUI`);

위의 코드 외에도 리포지토리의 코드는 트랜잭션에 서명하고 실행하는 방법을 보여줍니다.

리포지토리의 코드 샘플에서는 헬퍼 함수를 사용하여 동적 필드의 모든 페이지를 검색하는 방법도 보여 줍니다. 그런 다음 반환된 배열을 청크로 분할하는 방법을 보여줍니다.

예제 코드의 드라이런 트랜잭션은 다음과 유사하게 네트워크에서 만료된 주문을 반환합니다:

풀 d9e45ab5440d61cc52e3b2bd915cdd643146f7593d587c715bc7bfa48311d826에는 주문 28개 중 만료된 주문이 6개 있습니다.
풀 f0f663cf87f1eb124da2fc9be813e0ce262146f3df60bc2052d738eb41a25899에는 21 주문 중 만료된 주문이 6개 있습니다.
풀 18d871e3c3da99046dfc0d3de612c5d88859bc03b8f0568bd127d0e70dbc58be 주문 1건 중 만료된 주문 1건 있음
풀 5deafda22b6b86127ea4299503362638bea0ca33bb212ea3a67b029356b8b955 주문 57건 중 만료된 주문 5건 있음
풀 7f526b1263c4b91b43c9e646419b5696f424de28dda3c1e6658cc0a54558baa7 주문 2925건 중 72건의 만료된 주문이 있습니다.

인센티브 제공 커뮤니티

Sui 같은 탈중앙화된 무허가 네트워크는 어느 정도의 커뮤니티 유지 관리가 필요합니다. 만료된 주문은 특정 Sui 주소가 소유하지 않기 때문에 누구나 삭제할 수 있으며, 이를 통해 스토리지 리베이트를 받을 수 있는 기회가 생깁니다. 현재 만료된 DeepBook 주문의 수는 많지 않지만, 이러한 사전 예방적 지침은 시간이 지남에 따라 사용량이 증가함에 따라 건강한 DeepBook 시스템을 유지하는 데 도움이 될 것입니다.