Qubic 서비스 통합에 대한 비공식 가이드
기존 서비스에 Qubic을 통합하는 방법은 전체 노드, 원격 노드, 아카이브 서버, 또는 API를 통해 가능합니다. 각 방법은 제어 수준과 복잡성이 다릅니다.
Qsilver · 2024년 2월 17일.
소개
기존 서비스에 Qubic을 통합하는 방법은 크게 네 가지로, 각각의 제어 수준과 복잡성이 다릅니다:
- 전체 노드 실행: 메모리 내 데이터를 직접 액세스하여 운영합니다.
- 원격 노드 실행: 공개 전체 노드를 쿼리하여 필요한 데이터를 얻습니다.
- 아카이브 서버 실행: 모든 Qubic 데이터를 로컬에 완전 아카이브로 구축하여 운영합니다.
- Qubic API 서버와 인터페이스: 가장 간단한 방법이지만 데이터 가용성에 대한 제어가 적습니다.
숫자가 낮을수록 더 많은 작업이 필요하지만 데이터 가용성에 대한 제어가 더 많습니다. 선택한 수준에 상관없이, Qubic에 대한 중요한 차이점을 이해하는 것이 필수적입니다.
Qubic의 중요한 차이점
금전적 가치를 다루는 서비스의 경우, Qubic의 가장 중요한 두 가지 차이점은 다음과 같습니다:
- 검증된 틱에 txid가 포함되어 있더라도 아무런 작업도 하지 않을 수 있습니다.
- 주소 잔액은 특정 거래가 A에서 B로 전송되지 않더라도 변경될 수 있습니다. 예를 들어, 스마트 계약 운영에 의해 가능합니다.
이러한 차이점으로 인해, Qubic 처리는 주소 잔액 변화를 기반으로 해야 하며, 스마트 계약에 의해 발생하는 변경이 논리를 혼동시키지 않도록 해야 합니다.
입금 처리
입금 처리를 간소화하기 위해, 일반 거래를 사용하는 것이 권장됩니다. 스마트 계약을 통해 이루어진 입금은 무시하거나 수작업으로 처리(비용을 충당하기 위한 추가 비용 포함)할 수 있습니다.
- 각 틱의 모든 거래를 반복하여 고객에게 속하는 목적지 주소를 식별합니다.
- 이러한 주소를 잔액 확인을 위해 플래그합니다.
- 플래그된 주소에 대한 엔티티 정보를 얻어 새 자금을 수령한 주소를 확인합니다.
- 새 자금을 수령한 주소의 현재 엔티티 정보를 업데이트합니다.
잔액 변경은 txid 실패 또는 스마트 계약 입금으로 인해 거래 금액과 일치하지 않을 수 있습니다. SC 입금을 무시하면 txid 실패 시에도 사용자가 SC 입금에 대해 크레딧을 받을 수 있도록 보장합니다.
잔액 기반 입금 처리
이 방법은 더 많은 대역폭이 필요할 수 있지만, 원격 노드를 통해 네트워크 상의 수십만 개의 주소를 폴링하여 중간 규모 서비스에 적합합니다. 모든 입금 방법이 제대로 인정되어 사용자 경험을 향상시킵니다.
- 각 사용자 주소에 대한 최신 검증된 엔티티 데이터를 유지합니다.
- 폴링 루프에서 최신 엔티티 데이터를 검증된 엔티티 데이터와 비교합니다.
- 머클 트리를 사용하여 최신 엔티티 데이터를 검증합니다.
- 검증되면, 검증된 엔티티 데이터를 업데이트하고 전체 입금의 차이에 기반하여 입금 이벤트를 생성합니다.
출금 처리
소량
- 송신 주소에 대한 검증된 엔티티 데이터를 얻습니다.
- 목적지와 금액에 기반하여 출금 거래를 큐에 추가합니다.
- 예상되는 엔티티 데이터를 생성하여 현재 outgoingAmount와 출금 금액을 포함합니다.
- 큐를 처리하여 출금 거래를 생성하고 방송합니다.
- 지정된 틱 후, 엔티티 데이터의 outgoingAmount가 예상 금액으로 변경되었는지 확인합니다.
- 변경되었으면, 출금을 완료로 표시하고 큐에서 제거하며 검증된 엔티티 데이터를 업데이트합니다. 변경되지 않았으면, 프로세스를 다시 시도합니다.
중량
- SENDMANY SC 명령을 사용하여 최대 25개의 출금을 하나의 거래로 배치합니다.
- 소량과 동일한 논리를 적용하되, SENDMANY 대신 간단한 전송 거래를 사용합니다.
- SENDMANY를 사용하여 단일 주소로 약 100개의 출금을 분당 처리할 수 있습니다.
대량
- sendmany 앱을 사용하여 최대 15,625개의 결제를 약 20 틱 내에 완료합니다(분당 약 8000 출금).
- sendmany 앱은 세 단계의 fanout 방식으로 SENDMANY SC를 사용합니다. 결제는 .csv 파일에 지정되어 총 금액을 계산하고 특별한 주소로 전송됩니다.
- 자금이 도착하면 세 세대(25 x 25 x 25 결제)로 분배됩니다.
sendmany 저장소
sendmany 프로그램에 대한 세부 정보는 저장소를 참조하세요:
결론
Qubic을 기존 서비스에 통합하려면 특히 금전적 거래를 위한 데이터 처리를 신중히 고려해야 합니다. 적절한 통합 방법을 선택하고 Qubic의 독특한 측면을 이해함으로써, 서비스는 다양한 규모에서 입금 및 출금을 효과적으로 관리할 수 있습니다.
Qsilver의 “비공식” 시리즈 읽기
최신 업데이트를 위해 Valis Discord에 가입하고, X에서 팔로우하고, 우리 블로그를 북마크하세요.