이더 리움 FAQ에 대한 하위 그래프 생성

Kinbas의 러시아어 번역 # 3412
원본 기사

FAQ

1. 내 하위 그래프를 삭제할 수 있습니까?

생성 된 하위 그래프는 삭제할 수 없습니다.

2. 내 하위 그래프의 이름을 변경할 수 있습니까?

아니요. 서브 그래프가 생성되면 이름을 변경할 수 없습니다. 다른 dApp에서 쉽게 찾고 식별 할 수 있도록 하위 그래프를 생성하기 전에 이에 대해 생각하십시오.

3. 내 서브 그래프와 관련된 GitHub 계정을 변경할 수 있습니까?

아니요. 하위 그래프가 생성되면 연결된 GitHub 계정을 변경할 수 없습니다. 하위 그래프를 만들기 전에 이에 대해 생각하십시오.

4. 스마트 계약에 이벤트가없는 경우 하위 그래프를 생성 할 수 있습니까?

이벤트가 요청하려는 데이터와 연결되도록 스마트 계약을 구성하는 것이 좋습니다. 하위 그래프의 이벤트 핸들러는 계약 이벤트에 의해 트리거되며 페이로드를 얻는 가장 빠른 방법입니다.

작업중인 p 동작에 이벤트가 포함되지 않은 경우 하위 그래프는 호출 및 블록 처리기를 사용하여 색인 생성을 트리거 할 수 있습니다. 성능이 현저히 저하되므로 권장되지는 않지만

5. 여러 네트워크에 대해 동일한 이름으로 하나의 하위 그래프를 확장 할 수 있습니까?

여러 네트워크에 대해 별도의 이름이 필요합니다. 같은 이름으로 다른 하위 그래프를 가질 수는 없지만 여러 네트워크에 대해 단일 코드베이스를 만드는 편리한 방법이 있습니다. 자세한 내용은 문서 : 하위 그래프 재배포

6. 템플릿은 데이터 소스와 어떻게 다릅니 까?

템플릿을 사용하면 하위 그래프가 인덱싱되는 동안 데이터 소스를 즉시 생성 할 수 있습니다. 사람들이 상호 작용할 때 계약이 새 계약을 생성 할 수 있으며 이러한 계약의 형식 (ABI, 이벤트 등)을 미리 알고 있으므로 템플릿에서 색인을 생성 할 방법과시기를 결정할 수 있습니다. 생성되면 하위 그래프가 계약 주소를 제공하여 동적 데이터 소스를 생성합니다.

“데이터 소스 템플릿”섹션의 “데이터 소스 템플릿 인스턴스화”섹션을 참조하십시오.

7. 로컬 배포에 최신 그래프 노드를 사용하고 있는지 어떻게 확인합니까?

다음 명령을 실행할 수 있습니다.

참고 : docker / docker-compose 는 항상 처음 실행될 때 체크 아웃 된 그래프 노드 버전을 사용하므로이를 확인하기 위해이 작업을 수행하는 것이 중요합니다. 최신 버전의 그래프 노드가 설치되어 있습니다.

8. 계약 함수를 호출하거나 하위 그래프 매핑에서 공개 상태 변수에 액세스하려면 어떻게해야합니까?

AssemblyScript API 섹션에서 스마트 계약 상태에 대한 액세스 를 살펴보십시오.

9. 두 개의 계약으로 graph-cli 에서 그래프 초기화를 사용하여 하위 그래프를 사용자 정의 할 수 있습니까? 아니면 graph init 를 실행 한 후 subgraph.yaml 에 다른 데이터 소스를 수동으로 추가해야합니까?

안타깝게도 현재는 불가능합니다. graph init 는 추가 데이터 소스를 수동으로 추가 할 수있는 기본 시작점입니다.

10. GitHub 문제에 기여하거나 추가하고 싶습니다. 오픈 소스 저장소는 어디에서 찾을 수 있습니까?

11. 이벤트를 처리 할 때 개체에 대한 “자동 생성”식별자를 생성하는 권장 방법은 무엇입니까?

이벤트 시점에 하나의 엔티티 만 생성되고 더 이상 사용할 수있는 항목이 없으면 트랜잭션 해시 + 로그 인덱스가 고유합니다. 바이트로 변환 한 다음 crypto.keccak256 을 파이프 라이닝하여 난독화할 수 있지만 더 이상 고유하지 않습니다.

12.여러 계약을 청취 할 때 계약 순서를 선택하여 이벤트를 청취 할 수 있습니까?

하위 그래프 내에서 이벤트는 다중 계약 여부에 관계없이 항상 블록에 나타나는 순서대로 처리됩니다.

13. 네트워크 (메인 넷, Kovan, Ropsten, 로컬)와 이벤트 핸들러를 구분할 수 있습니까?

예. 아래 예와 같이 graph-ts 를 가져 와서이를 수행 할 수 있습니다.

14. Rinkeby에서 차단 및 호출 핸들러를 지원합니까?

Rinkeby에서는 블록 핸들러를 지원하지만 filter : call 이 없습니다. 호출 핸들러는 아직 지원되지 않습니다.

15. ethers.js 또는 기타 JS 라이브러리를 하위 그래프 매핑으로 가져올 수 있습니까?

매핑은 AssemblyScript로 작성되므로 현재는 아닙니다. 가능한 대안 중 하나는 원시 데이터를 엔티티에 저장하고 클라이언트에서 JS 라이브러리가 필요한 로직을 실행하는 것입니다.

16. 색인 생성을 시작할 블록을 지정할 수 있습니까?

예. subgraph.yaml 파일의 dataSources.source.startBlock 은 데이터 소스가 인덱싱을 시작하는 블록 번호를 나타냅니다. 대부분의 경우 계약이 생성 된 블록을 사용하는 것이 좋습니다. 시작 블록

17. 인덱싱 성능 향상을위한 팁이 있습니까? 내 하위 그래프를 동기화하는 데 시간이 너무 오래 걸립니다.

예, 계약이 배포 된 블록에서 인덱싱을 시작하려면 선택적 시작 블록 기능을 살펴 봐야합니다. 시작 블록

18. 하위 그래프를 직접 쿼리하여 인덱싱 된 마지막 블록 번호를 확인하는 방법이 있습니까?

예! 다음 명령을 시도하여 “organization / subgraphName”을 게시 된 조직 및 하위 그래프 이름으로 바꾸십시오.

하위 그래프가 아직 보류중인 경우 “indexingStatusForCurrentVersion”을 “indexingStatusForPendingVersion”으로 바꾸십시오.

19. The Graph는 어떤 네트워크를 지원합니까?

그래프 노드는 모든 Ethereum 호환 JSON RPC API 체인을 지원합니다. 호스팅 된 서비스에서 지원되는 네트워크는 다음과 같습니다.

다른 블록 체인을 통합하기위한 작업이 진행 중입니다. 자세한 내용은 리포지토리 RFC-0003 : 다중 블록 체인 지원에서 확인할 수 있습니다.

20. 재배포하지 않고 하위 그래프를 다른 계정이나 엔드 포인트로 복사 할 수 있습니까?

하위 그래프를 다시 배포해야하지만 하위 그래프 식별자 (IPFS 해시)가 변경되지 않으면 처음부터 동기화 할 필요가 없습니다.

21. 노드 그래프를 통해 Apollo Federation을 사용할 수 있습니까?

연합은 아직 지원되지 않지만 향후 지원할 예정입니다. 지금은 클라이언트 또는 프록시를 통해 스키마 스티칭을 사용할 수 있습니다.

22. 요청시 Graph에서 반환 할 수있는 개체 수에 제한이 있습니까?

기본적으로 쿼리에 대한 응답은 컬렉션의 항목 100 개로 제한됩니다. 더 많이 얻으려면 각 컬렉션에 대해 항목 수를 1000 개로 늘릴 수 있으며 추가로 페이지를 매길 수 있습니다.