The Graph
DApps como los mercados NFT necesitan constantemente recuperar información de la cadena sobre la transferencia de tokens o la acuñación de activos. Una forma de obtener esa información es extraerla directamente de la blockchain. Esto suele ser un proceso complicado que requiere construir una instancia de servidor ad-hoc. En su lugar, puedes utilizar un protocolo dedicado como The Graph, que se centra en la indexación y el almacenamiento de datos de contratos inteligentes.
The Graph es un protocolo descentralizado para consultar blockchains como la red Palm. Permite a los desarrolladores crear APIs personalizadas denominadas Subgraphs.
Los Subgraphs escuchan eventos específicos de contratos inteligentes y actúan como almacenes de datos para que la información pueda ser recuperada fácilmente por una DApp. Dado que los Subgraphs se construyen en torno a los requisitos de datos específicos de los desarrolladores (por ejemplo, IEP-721 subgraph schema) solo es necesario llamarlos una vez, a diferencia de las API de propósito general que a veces requieren cientos de llamadas para recopilar información relevante.
The Graph proporciona una GraphQL API. Si está familiarizado con GraphQL, debería sentirse cómodo consultando The Graph. Asegúrese de conocer los detalles de la The Graph’s API.
(optional)
La red Palm proporciona un nodo Graph y una serie de Subgraphs desplegados adaptados a contextos NFT. Los desarrolladores pueden acceder a esos subgrafos mediante llamadas a API RESTful o WebSocket:
Nombre & repo | Uso | Endpoint red Principal/GraphiQL | Endpoint red de Pruebas/GraphiQL |
wighawag/eip721-subgraph | Consulta de tokens ERC-721 | ||
amxx/eip1155-subgraph | Consulta de tokens ERC-721 | ||
sushi/exchange-palm | Consulta del intercambio de Sushi en Palm | | |
nftx-project/nftx-v2-subgraph | Consulta los contratos https://nftx.io/ desplegados en Palm | | |
ethereum-blocks | Consulta de los bloques de la mainnet Palm | |
Existe una gran variedad de herramientas para consumir Subgraphs a partir de aplicaciones basadas en:
- React
- Vue
- iOS
- Android
- React Native
Puedes utilizar un paquete completo como Apollo o una implementación más sencilla como GraphQL-Request.
La creación de un Subgraph permite determinar los datos que The Graph indexará en la blockchain. A continuación, decidirá cómo se almacenarán estos datos.
Para ello:
- Despliega los contratos inteligentes que serán indexados (y sus direcciones)
- El manifiesto de Subgraph, es decir, un archivo de configuración, contiene información sobre los contratos inteligentes indexados por Subgraph.
- Código TypeScript utilizado para traducir los datos de eventos de los contratos en objetos específicos del esquema.
- Para hacerte una idea de la estructura habitual de un repositorio de subgraph, puedes utilizar el ejemlpo de graphprotocol para empezar.
- Más información en los repositorios específicos de NFT dedicados a:
No hay un orden concreto a la hora de modificar los archivos necesarios para crear un Subgraph.
Una vez que hayas terminado de editar los 3 archivos siguientes para definir tu subgraph, puedes probar opcionalmente tu mapeo en un entorno sandbox e iniciar el proceso de añadir tu subgraph a la red Palm.
Licencia[1]
Licencia[1:1]
Licencia[1:2]
- Despliega tus contratos inteligentes y obtén sus direcciones para el manifiesto del subgraph
- Crea un archivo de configuración para la red de prueba y la red principal de Palm con la información necesaria network: palm-mainnet o palm-testnet
- Solicita al equipo de la Red Palm que configure y despliegue el subgraph rellenando el formulario de registro de subgraph
- Otorga acceso al equipo de la red Palm al repositorio de código del subgraph correspondiente.
- El equipo de la red Palm revisará el subgraph y lo desplegará en entornos de red de pruebas.
- A continuación, podrás validar que el subgraph de prueba funciona correctamente
- El equipo de la red Palm desplegará el subgraph en la red principal
- Ahora vas a validar que el subgraph en la red principal Palm funciona correctamente
- El equipo de la red Palm documentará el punto final de tu subgraph en la página docs.palm.io
Copyright (C) <2019-2020> Ronan Sandford - GNU - https://github.com/wighawag/eip721-subgraph ↩︎ ↩︎ ↩