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
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
Ir a Github
Settings -> SSH and GPG keys -> New SSH key
Ingresa nuestra clave, que copiamos de consola
Settings -> Developer Settings -> Personal Access Token -> Generate new token
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"
Inicie sesión en project.subquery.network a través de su cuenta de Github
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
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.
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
query {
transfers(first: 5, orderBy:AMOUNT_DESC) {
nodes {
id
amount
blockNumber
to {
id
}
}
}
}
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
query {
councillors(first: 5, orderBy: NUMBER_OF_VOTES_DESC) {
nodes {
id
numberOfVotes
voteHistory(first: 3) {
totalCount
nodes {
approvedVote
}
}
}
}
}
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
query{
accounts(first:5){
nodes{
id
myToAddress{
nodes{
id
amount
}
}
}
}
}
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