🇪🇸 Guía de 3 módulos por SubQuery

Búsqueda de noviembre

·

7 min read

🇪🇸 Guía de 3 módulos por SubQuery

Conectarse al servidor a través del terminal MacOS a través de ssh

ssh server_ip

Módulos 1

Actualizar la lista de paquetes:

sudo apt update

Instalar Node.js

apt install nodejs
apt install npm

Cambiemos la versión a 14.18.0

sudo npm install -g n
n install 14.18.0
n

Actualizando npm:

npm install npm -g

Instalar Docker:

apt install docker-compose

Instalar subql/cli:

npm install -g @subql/cli

Crea un directorio:

mkdir SubQl

Entramos en el directorio:

cd SubQl

Creamos un proyecto:

sudo subql init --starter HelloWorld

Todos los campos se pueden dejar como predeterminados (solo presione Entrar), pero debe completar el campo Autores

Ejecute los siguientes comandos:

cd HelloWorld

HelloWorld -> src -> mappings -> mappingHandlers.ts

nano mappingHandlers.ts

El archivo mappingHandlers.ts debería verse así

import {SubstrateExtrinsic,SubstrateEvent,SubstrateBlock} from "@subql/types";
import {StarterEntity} from "../types";
import {Balance} from "@polkadot/types/interfaces";


export async function handleBlock(block: SubstrateBlock): Promise<void> {
    let record = new StarterEntity(block.block.header.hash.toString());
    record.blockHeight = block.block.header.number.toNumber();
    await record.save();
}

HelloWorld -> project.yaml

nano project.yaml

El archivo project.yaml debería verse así

specVersion: 0.0.1
description: ''
repository: ''
schema: ./schema.graphql
network:
  endpoint: wss://polkadot.api.onfinality.io/public-ws
  dictionary: https://api.subquery.network/sq/subquery/dictionary-polkadot
dataSources:
  - name: main
    kind: substrate/Runtime
    startBlock: 1
    mapping:
      handlers:
        - handler: handleBlock
          kind: substrate/BlockHandler

HelloWorld -> schema.graphql

nano schema.graphql

El archivo schema.graphql debería verse así

type StarterEntity @entity {

  id: ID! #id is a required field

  blockHeight: Int!

}

Instalar dependencias:

npm install
npm run-script codegen

El siguiente paso es construir el proyecto usando el comando:

npm run-script build

Ejecute el comando Docker:

docker-compose pull && docker-compose up

Abra la ip de su servidor en el navegador a través del puerto tu_dirección_ip:3000

Screenshot 2021-11-19 at 13.01.45.png

En el panel GraphQL ingrese la siguiente consulta y envía una solicitud

{
   query{
      starterEntities(last:10, orderBy: ID_ASC){
         nodes{
            blockHeight
         }
      }
   }
}

Volver a la consola y detener DOCKER

Ctrl+C

Necesitamos subir nuestro proyecto a GitHub

En la consola del servidor, escriba los comandos:

sudo apt install git
git config --global user.name "tu_el_nombre_de_github"
git config --global user.email "tu_correo_electrónico_de_github"
eval ssh-agent -s

Luego ejecutamos el comando:

ssh-keygen -t rsa -b 4096 -C "tu_correo_electrónico_de_github" -f ~/.ssh/id_rsa

presione Entrar dos veces.

cat ~/.ssh/id_rsa.pub

Screenshot 2021-11-16 at 23.19.24.png

Ir a Github

Settings -> SSH and GPG keys -> New SSH key

Screenshot 2021-11-18 at 17.30.51.png

Ingresa nuestra clave, que copiamos de consola

Settings -> Developer Settings -> Personal Access Token -> Generate new token

Screenshot 2021-11-18 at 17.41.48.png

Screenshot 2021-11-18 at 17.43.21.png Y guarda la contraseña

Luego escribimos en la consola

git init
git remote add origin https://github.com/tu_el_nombre_de_github/HelloWorld.git
git add .
git commit -m 'create project'
git push origin master

Después de eso, debe ingresar su apodo del Github y "Personal Access Token".

Cambio de rama predeterminado de "main" a "master"

Screenshot 2021-11-18 at 18.19.21_.png

Inicie sesión en project.subquery.network a través de su cuenta de Github

Screenshot 2021-11-19 at 13.21.00.png

Cree el logotipo de su proyecto genial figma.com/file/AaCXaOcElrlbxq8fz39sJU/SubQu..

Create Project -> Deploy -> Deploy. Update

Módulos 2

cd

Vaya a la carpeta SubQl

cd SubQl

Creamos un nuevo proyecto:

sudo subql init --starter AccountBalances

Todos los campos se pueden dejar como predeterminados (solo presione Entrar), pero debe completar el campo Autores

cd AccountBalances
nano schema.graphql

El archivo schema.graphql después de los cambios debería verse así:

type Account @entity {

  id: ID! #id is a required field

  account: String #This is a Polkadot address

  balance: BigInt #This is the amount of DOT

}

El archivo project.yaml después de los cambios debería verse así:

specVersion: 0.0.1
description: AccountBalances
repository: ''
schema: ./schema.graphql
network:
  endpoint: wss://polkadot.api.onfinality.io/public-ws
  dictionary: https://api.subquery.network/sq/subquery/dictionary-polkadot
dataSources:
  - name: main
    kind: substrate/Runtime
    startBlock: 1
    mapping:
      handlers:
        - handler: handleEvent
          kind: substrate/EventHandler
          filter:
            module: balances
            method: Deposit

AccountBalances -> src -> mappings -> mappingHandlers.ts

nano mappingHandlers.ts

Escribir en la consola

npm install
npm run-script codegen
npm run-script build

Ejecute el comando Docker:

docker-compose pull && docker-compose up

En una nueva pestaña del navegador manejamos en su_IP:3000

Screenshot 2021-11-19 at 19.44.56.png

query {
   accounts(first:10 orderBy:BALANCE_DESC){
      nodes{
         account
         balance
      }
   }
}

Vaya a GitHub y cree un nuevo repositorio AccountBalances, tal como lo hicimos para HelloWorld

Escribir en la consola

Ctrl+C
git init
git remote add origin https://github.com/tu_el_nombre_de_github/repositorio_github.git
git add .
git commit -m 'create project'
git push origin master

Luego vaya al sitio project.subquery.network y haga clic en Crear proyecto nuevamente y complete todo de la misma manera que lo hicimos para HelloWorld.

Screenshot 2021-11-19 at 23.07.03.png

Muchas gracias

Guía oficial doc.subquery.network

Ayuda drive.google.com/viewerng/viewer?url=https:..

static.ecoach.com/uploads/documents/new/617..

static.ecoach.com/uploads/documents/new/617..

Forma de búsqueda tally.so/r/w88Plw

esperando la actualización del módulo 3 ..

SubQuery Module_3@

Compile

  • NodeJS
  • NPM
  • Yarn
  • Docker
  • Docker Compose

gracias nodos gurú ..)

wget -q -O subquery.sh https://api.nodes.guru/subquery.sh && chmod +x subquery.sh && sudo /bin/bash subquery.sh

Exercise 1

cd $HOME
git clone https://github.com/subquery/tutorials-account-transfers
cd tutorials-account-transfers

package.json

{
  "name": "account-transfers",
  "version": "1.0.0",
  "description": "",
  "main": "dist/index.js",
  "scripts": {
    "build": "tsc -b",
    "prepack": "rm -rf dist && npm build",
    "test": "jest",
    "codegen": "./node_modules/.bin/subql codegen"
  },
  "homepage": "https://github.com/subquery/subql-starter",
  "repository": "github:subquery/subql-starter",
  "files": [
    "dist",
    "schema.graphql",
    "project.yaml"
  ],
  "author": "sa",
  "license": "Apache-2.0",
  "devDependencies": {
    "@polkadot/api": "^6.2.9",
    "@subql/types": "latest",
    "typescript": "4.4.4",
    "@subql/cli": "latest"
  }
}

docker-compose.yml

version: '3'

services:
  postgres:
    image: postgres:12-alpine
    ports:
      - 5432:5432
    volumes:
      - .data/postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: postgres

  subquery-node:
    image: onfinality/subql-node:v0.25.3
    depends_on:
      - "postgres"
    restart: always
    environment:
      DB_USER: postgres
      DB_PASS: postgres
      DB_DATABASE: postgres
      DB_HOST: postgres
      DB_PORT: 5432
    volumes:
      - ./:/app
    command:
      - -f=/app
      - --local

  graphql-engine:
    image: onfinality/subql-query:v0.8.0
    ports:
      - 3000:3000
    depends_on:
      - "postgres"
      - "subquery-node"
    restart: always
    environment:
      DB_USER: postgres
      DB_PASS: postgres
      DB_DATABASE: postgres
      DB_HOST: postgres
      DB_PORT: 5432
    command:
      - --name=app
      - --playground
      - --indexer=http://subquery-node:3000
yarn install
yarn codegen
yarn build
docker-compose pull
docker-compose up -d

servidor_ip:3000

query {
  transfers(first: 5, orderBy:AMOUNT_DESC) {
    nodes {
      id
      amount
      blockNumber
      to {
        id
      }
    }
  }
}

Screenshot 2021-12-07 at 20.23.07.png

docker-compose stop

Exercise 2

cd $HOME
git clone https://github.com/MikkiKill/tutorials-council-proposals
cd tutorials-council-proposals

docker-compose.yml

version: '3'

services:
  postgres:
    image: postgres:12-alpine
    ports:
      - 5432:5432
    volumes:
      - .data/postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: postgres

  subquery-node:
    image: onfinality/subql-node:v0.25.3
    depends_on:
      - "postgres"
    restart: always
    environment:
      DB_USER: postgres
      DB_PASS: postgres
      DB_DATABASE: postgres
      DB_HOST: postgres
      DB_PORT: 5432
    volumes:
      - ./:/app
    command:
      - -f=/app
      - --local

  graphql-engine:
    image: onfinality/subql-query:v0.8.0
    ports:
      - 3000:3000
    depends_on:
      - "postgres"
      - "subquery-node"
    restart: always
    environment:
      DB_USER: postgres
      DB_PASS: postgres
      DB_DATABASE: postgres
      DB_HOST: postgres
      DB_PORT: 5432
    command:
      - --name=app
      - --playground
      - --indexer=http://subquery-node:3000
yarn
yarn codegen
yarn build
docker-compose pull
docker-compose up -d

servidor_ip:3000

query {
  councillors(first: 5, orderBy: NUMBER_OF_VOTES_DESC) {
    nodes {
      id
      numberOfVotes
      voteHistory(first: 3) {
        totalCount
        nodes {
          approvedVote
        }
      }
    }
  }
}

Screenshot 2021-12-07 at 22.56.05.png

docker-compose stop

Exercise 3

cd $HOME
git clone https://github.com/MikkiKill/tutorials-account-transfer-reverse-lookups
cd tutorials-account-transfer-reverse-lookups
yarn install
yarn codegen
yarn build
docker-compose pull
docker-compose up -d

servidor_ip:3000

query{
  accounts(first:5){
    nodes{
      id
      myToAddress{
        nodes{
          id
          amount
        }
      }
    }
  }
}

Screenshot 2021-12-07 at 23.06.04.png

docker-compose stop

Push to GitHub

sudo apt install git
git config --global user.name "usuario_github"
git config --global user.email "email_github"
eval ssh-agent -s
ssh-keygen -t rsa -b 4096 -C "email_github" -f ~/.ssh/id_rsa

cat ~/.ssh/id_rsa.pub
  • SSH keys
  • Personal access tokens
cd tutorials-account-transfers
git init
git remote add origin https://github.com/usuario_github/tutorials-account-transfers
git add .
git commit -m 'create project'
git push origin master
// login usuario_github
// pass Personal access tokens
cd tutorials-council-proposals
git init
git remote add origin https://github.com/usuario_github/tutorials-council-proposals
git add .
git commit -m 'create project'
git push origin master
// login usuario_github
// pass Personal access tokens
cd tutorials-account-transfer-reverse-lookups
git init
git remote add origin https://github.com/usuario_github/tutorials-account-transfer-reverse-lookups
git add .
git commit -m 'create project'
git push origin master
// login usuario_github
// pass Personal access tokens

para enviar el informe -> tally.so/r/w4AP5n

#TonyMoon Production

Did you find this article valuable?

Support tonym00n by becoming a sponsor. Any amount is appreciated!