이 시리즈의 1부에서는 카우치베이스 및 파이썬을 사용하여 스텔라 에셋을 모니터링하세요, 의 기본 개념을 소개했습니다. 스텔라 탈중앙화 (블록체인) 거래소에서 계정 자산 목록의 사본을 카우치베이스에 저장하는 방법을 보여드렸습니다. 이 글에서는 자산 거래를 로드하고 쿼리합니다. 그런 다음 이를 Couchbase 웹 콘솔의 차트에서 살펴보고 추세와 투자금을 확인합니다. 이 모든 작업은 Couchbase 웹 콘솔 내에서 쉽게 수행할 수 있습니다.

이를 위해 세 단계를 거칩니다:

  • 계정의 거래 목록에 액세스
  • 카우치베이스에 거래 로드
  • 쿼리 실행

시작하기 전에 경고 한 마디 - 저는 암호화폐 금융 전문가가 아니며, 기술을 처음 접하는 독자들이 최대한 쉽게 이해할 수 있도록 일반적인 거래 용어를 남용할 것입니다.

스텔라 자산 이해

스텔라에서 기본 자산은 스텔라 루멘, 즉 XLM입니다. 자산 가치에 대해 이야기할 때는 항상 자산의 가치를 XLM 단위로 환산할 것입니다. 예를 들어 비트코인이나 이더를 거래할 때 두 자산 모두 특정 XLM 가치에 고정되어 있을 수 있습니다. XLM은 다른 곳에서 사용할 수 있는 거래 네트워크의 USD와 같습니다.

이전 게시물에서는 기본 계좌 데이터를 가져왔는데, 이번 게시물에서는 해당 계좌에서 이루어진 거래를 가져올 것입니다. 이전에는 잔액을 포함한 모든 계좌 정보를 임베디드 객체로 포함하는 단일 문서를 Couchbase에 만들었습니다.

이 엔드포인트를 사용하면 동일한 계좌의 모든 거래 목록을 가져올 수 있습니다. 계정 ID를 무작위로 선택해 URL에 사용합니다:

여기에는 최대 200개의 항목이 나열되며 결과에 커서 변수를 사용한 페이지 매김 URL도 있지만 여기서는 사용하지 않겠습니다. 대신 특정 유형의 거래를 살펴볼 수 있도록 매우 구체적인 매개변수를 입력하겠습니다.

위의 GET 요청에서 반환된 한 거래의 주요 내용은 다음과 같습니다:

이 거래는 0.057의 네이티브 0.0105에 기본 자산(XLM) USDC 자산/디지털 화폐.

응답에는 날짜/시간 필드와 다음과 같은 엔티티가 있습니다. 발행자 의 각 기본/카운터 자산에 대해 설명합니다. 이것은 스텔라의 또 다른 핵심 개념입니다. 각 자산에는 코드(예: USDC, XLM, BTC, ETH 등)와 해당 자산의 발행자(예: GA5ZSE...)가 있습니다. 이는 예를 들어 누구나 네트워크에서 새로운 자산을 생성할 수 있지만, 합법적인 것으로 알려진 특정 주소의 자산 발행자/공급자를 신뢰할 수 있도록 설계되었습니다.

매개변수를 사용하여 관심 있는 특정 쌍(예: XLM 및 USDC 거래만)을 포함하도록 REST API 요청을 조정할 수 있습니다.

결과는 우리가 알아야 할 모든 정보를 제공하지만, 양방향 거래에 대해 별도의 기록을 보유하는 것이 도움이 될 수 있습니다. 역방향 쿼리를 실행하여 USDC에서 XLM으로의 거래를 보여줄 수 있습니다:

물론, 우리는 단순한 한 쌍의 거래 를 사용하여 데이터베이스에 로드할 수도 있지만, 이 예제를 간단하게 만들기 위해 몇 가지 사용 사례에만 초점을 맞춥니다.

스텔라 트레이딩을 카우치베이스에 로드하는 파이썬

지난번에 중단했던 부분부터 다시 시작하되, 위의 예시와 일치하도록 기본 URL을 변경하겠습니다. 이는 지나치게 장황한 설명이며, 훨씬 더 효율적으로 달성하려면 스텔라 SDK 하지만 비동기 복잡성이 추가되므로 당분간은 피할 것입니다.

아래 예제 코드는 다음과 같습니다. 연결 를 Couchbase에 추가합니다, 쿼리 스텔라 호라이즌 서비스 및 파싱 각 거래와 스토어 를 자체 문서에 저장합니다. 문서 키는 거래 ID와 타임스탬프로 설정되는데, 이는 별 의미는 없지만 고유한 문서 키를 갖는 데 도움이 됩니다.

(마지막 함수는 기본 에셋 유형인 경우 에셋 코드가 비어 있어 혼란스러울 수 있으므로 XLM 에셋 코드 필드가 누락된 경우 명시적으로 추가합니다).

결과 문서 세트는 기준이 USDC인 거래에 대해 처리된 다음 XLM에서 USDC로 거래를 가져오는 URL을 사용하여 다시 처리됩니다.

이제 카우치베이스 스텔라 버킷에 20개의 문서가 저장됩니다:

Couchbase Stellar Trade Documents

카우치베이스 스텔라 거래 문서

카우치베이스에서 스텔라 거래 쿼리하기

이제 N1QL(JSON용 SQL) 언어를 사용하여 거래 목록에서 쉽게 쿼리할 수 있습니다.

먼저 쿼리 탭을 사용하여 이 쿼리를 실행하여 문서에 대한 기본 인덱스를 생성합니다:

더 큰 규모의 예에서는 다음과 같이 하고 싶을 것입니다. 보조 인덱스 생성 를 클릭해 쿼리하려는 필드에 추가하세요. 하지만 이 작은 문서 세트는 걱정하지 마세요.

이제 실제 쿼리를 실행할 수 있습니다. 이 쿼리에서는 몇 가지 기본 함수를 사용하여 유형을 변환하고, 날짜를 다시 포맷하고, 관심 있는 값을 선택합니다. 모든 문서는 JSON 형식이며 모든 쿼리는 기본적으로 여기에 표시된 것처럼 소스 JSON 일치 항목을 표시합니다:

Couchbase Query of Stellar Trades in JSON

JSON으로 스텔라 거래에 대한 카우치베이스 쿼리

를 선택하고  버튼을 클릭하면 결과 위에 보다 체계적으로 표시할 수 있습니다:

Couchbase Query Stellar trades shown in a table

표에 표시된 카우치베이스 쿼리 스텔라 거래

표는 쉽게 정렬할 수 있습니다. 테이블을 쉽게 정렬할 수 있습니다. 차트 버튼은 이제 X축(날짜) 및 Y축(기준 또는 카운터 금액)에 적합한 필드가 있으므로 사용할 수도 있습니다. 다음과 같이 차트 버튼을 선택한 후 옵션을 선택합니다:

Couchbase query of Stellar trades shown in a chart

차트에 표시된 스텔라 거래의 카우치베이스 쿼리

이는 간단하면서도 효과적으로 데이터를 심층적으로 분석할 수 있는 방법입니다.

또 무엇을 할 수 있을까요?

지금까지는 스텔라 계정과 거래 세부 정보를 가져와서 Couchbase NoSQL 문서에 저장하는 매우 간단한 예제였습니다. 이것은 빙산의 일각에 불과합니다!

다음 포스팅에서는 다양한 유형의 문서 조인에 대한 몇 가지 예를 더 보여드리고, 위의 거래를 통해 잃거나 얻는 가치에 대해 더 자세히 살펴보겠습니다.

지금은 가격 개체에 액세스하여 쿼리를 조정하고 어떤 계산을 통해 수익/손실을 발견하는 데 도움이 될 수 있는지 확인해 볼 수 있습니다. (힌트: 가격 개체에는 분자와 분모가 있으며 다음을 사용하여 필드로 액세스할 수 있습니다. price.n 그리고 price.d 를 쿼리에 입력합니다.)

다음 단계는 무엇인가요?

다음은 논의한 주제에 대해 자세히 알아볼 수 있는 몇 가지 추가 링크입니다:

 

작성자

게시자 타일러 미첼 - 선임 제품 마케팅 매니저

카우치베이스에서 선임 제품 마케팅 매니저로 일하면서 제품에 대한 지식을 대중에게 알리는 동시에 가치 있는 콘텐츠로 현장 팀을 지원하고 있습니다. 경력 절반을 GIS 분야에서 일한 그는 지리공간에 대한 개인적인 열정을 가지고 있습니다. 지금은 AI와 벡터 검색을 가장 중요하게 생각합니다.

댓글 남기기