더 그래프(The Graph) 간략 소개

이인구 118.♡.0.121
2021.10.04 19:43 2,720 0 0 0

본문

개요
이 글에서는 더 그래프가 무엇인지, 그리고 여러분들이 어떻게 시작할 수 있는지에 대해 설명합니다.

더 그래프란(The Graph)?

The Graph는 Ethereum을 시작으로 블록 체인의 데이터를 인덱싱하고 쿼리하기 위한 분산형 프로토콜입니다. 더 그래프를 이용 하면 서비스 제공자들은 직접 쿼리하기 어려운 데이터들을 간편하게 쿼리할 수 있게 됩니다.

유니스왑이나 보어드 에이프요트클럽 등과 같은 NFT 등 스마트 컨트렉트가 복잡한 프로젝트는 Ethereum 블록체인에 데이터를 저장하기 때문에 블록체인의 기본 데이터 외에 다른 데이터를 직접 불러들이기가 매우 어렵습니다.

보어드 에이프 요트 클럽의 경우, 우리는 특정 에이프의 소유자를 얻거나, 에이프의 ID를 기반으로 한 콘텐츠 URI를 얻거나, 총 공급과 같은 기본적인 읽기 작업을 수행할 수 있습니다. 이러한 읽기 작업은 스마트 컨트렉트 상에 직접 프로그래밍되지만, 통합과 같은 보다 진보된 실제 세계에서의 운영, 관계 및 비침투 필터링 등과 관련된 쿼리는 불가능합니다. 예를 들어, 만약 우리가 특정한 주소에 의해 소유되는 유인원에 대해 쿼리하고 그것의 특징들 중 하나로 필터링하고 싶은 경우에, 저희는 컨트렉트 자체와 직접 상호작용 하더라도 그 정보를 얻을 수 없을 것입니다.

이 데이터를 가져오려면 내보낸 모든 전송 이벤트를 처리하고 토큰 ID 및 IPFS 해시를 사용하여 IPFS에서 메타데이터를 읽은 다음 집계해야 합니다. 이러한 유형의 비교적 간단한 쿼리에도 브라우저에서 실행되는 분산형 애플리케이션(dapp)이 답변을 얻는 데는 몇 시간 혹은 며칠이 걸립니다.

또한 자체 서버를 구축하고 트랜잭션을 처리한 후 데이터베이스에 저장하고 그 위에 API 엔드포인트를 구축하여 데이터를 쿼리할 수 있습니다. 그러나 이 옵션은 리소스를 많이 사용해야 하고 유지보수가 필요하며 단일 장애 지점을 나타내며 분산에 필요한 중요한 보안 속성을 손상시킵니다.

블록 체인 데이터를 인덱싱하는 것은 정말, 정말 어렵습니다. -_-;;

최종성, 체인 재구성 또는 정리되지 않은 블록과 같은 블록 체인 속성은 이 프로세스를 더욱 복잡하게 만들며, 블록 체인 데이터에서 올바른 쿼리 결과를 검색하기 어려울 수 있습니다.

The Graph는 이를 색인화하고 블록 체인 데이터의 성능 및 효율적인 쿼리를 가능하게 하여 이러한 문제들을 해결하는 분산형 프로토콜입니다. 그런 다음 이러한 API(색인화된 "서브그래프")를 표준 GraphQL API로 쿼리할 수 있습니다. 오늘날 호스트 서비스와 동일한 기능을 가진 분산형 프로토콜이 있습니다. 두 가지 모두 더 그래프 노드의 오픈 소스 구현에 의해 지원됩니다.


더 그래프는 어떻게 작동할까요?

The Graph는 서브그래프 매니페스트라고 알려진 서브그래프 디스크립션을 기반으로 Ethereum 데이터를 인덱싱하는 대상과 방법을 학습합니다. 서브그래프 디스크립션은 서브그래프에 대한 관심 있는 스마트 컨트렉트, 주목해야 할 컨트렉터 상의 사건, 그리고 더 그래프가 데이터베이스에 저장할 데이터에 이벤트 데이터를 매핑하는 방법을 정의합니다.

서브그래프 매니페스트를 작성했으면 Graph CLI를 사용하여 IPFS에 정의를 저장하고 인덱서에 해당 하위 그래프에 대한 데이터 인덱싱을 시작하도록 지시합니다.

이 다이어그램은 Ethereum 트랜잭션을 처리하는 서브 그래프 매니페스트를 배포한 후 데이터 흐름에 대해 더 자세히 설명합니다.

순서의 흐름은 다음 단계를 따릅니다.

1. 분산형 애플리케이션은 스마트 컨트렉트 거래를 통해 Ethereum에 데이터를 추가합니다.

2. 스마트 컨트렉트는 트랜잭션을 처리하는 동안 하나 이상의 이벤트를 발생시킵니다.

3. 그래프 노드는 Ethereum에서 새 블록 및 포함된 서브 그래프에 대한 데이터를 지속적으로 검색합니다.

4. 그래프 노드는 이러한 블록에서 서브 그래프에 대한 Ethereum 이벤트를 찾아 사용자가 제공한 매핑 핸들러를 실행합니다. 매핑은 Graph Node가 Ethereum 이벤트에 대응하여 저장하는 데이터 엔터티를 생성하거나 업데이트하는 WASM 모듈입니다.

5. 탈중앙화 애플리케이션은 노드의 GraphQL 엔드포인트를 사용하여 블록 체인에서 인덱싱된 데이터에 대해 그래프 노드를 쿼리합니다. Graph Node는 차례로 GraphQL 쿼리를 기본 데이터 저장소에 대한 쿼리로 변환하여 이 데이터를 가져와 스토어의 인덱싱 기능을 사용합니다. 분산형 애플리케이션은 최종 사용자를 위한 풍부한 UI로 이 데이터를 표시하며, 이 UI는 Ethereum에서 새로운 트랜잭션을 발행하는 데 사용됩니다. 이러한 사이클이 반복됩니다.

다음 단계

다음 섹션에서는 서브 그래프를 정의하는 방법, 배포 방법 및 그래프 노드가 작성하는 인덱스에서 데이터를 쿼리하는 방법에 대해 자세히 설명합니다.

직접 서브그래프를 작성하기 전에 그래프 익스프롤러를 살펴보고 이미 배포된 서브그래프를 살펴보는 것이 좋습니다. 각 서브 그래프 페이지에는 해당 서브 그래프의 데이터를 GraphQL로 쿼리할 수 있는 플레이 그라운드가 있습니다.

웹사이트 : https://thegraph.com/

네이버 블로그 : https://blog.naver.com/thegraph_korea

미디움 : https://medium.com/@thegraph_kr

트위터 : https://twitter.com/TheGraph_KR

카카오톡 : https://open.kakao.com/o/giExa9Ad

텔래그램 : https://t.me/Thegraph_KR
0 0
로그인 후 추천 또는 비추천하실 수 있습니다.

댓글목록 0

등록된 댓글이 없습니다.