✅ Análise Detalhada do Crawler (CrawlPi) Repositório: https://t.co/DjKmIYN0OD 1. Finalidade Geral CrawlPi é um crawler em tempo real feito em Node.js que extrai dados da blockchain Pi (baseada no Stellar). Seu objetivo principal é obter todos os dados necessários (blocos, transações, operações, efeitos, saldos, beneficiários/bloqueios, etc.) e armazená-los no MySQL, além de enviar análises/estatísticas para o Firebase Firestore para o site ExplorePi. Diferentemente do explorador oficial da Pi, ele mantém seu próprio banco de dados indexado → permitindo painéis e análises mais rápidos e muito mais ricos. 2. Pilha Tecnológica Componente Tecnologia Utilizada Runtime Node.js Blockchain stellar-sdk + API Pi Horizon Banco de Dados MySQL (mysql2) Banco de Dados de Análises Firebase Firestore Agendador node-schedule (em getdata.js) Configuração .env + dotenv Dependências (package.json): stellar-sdk, mysql2, firebase-admin, dotenv, node-schedule 3. Lógica de Funcionamento (index.js) // Arquivo principal block.block() // Fluxo de ledger effect.crawl() // Fluxo de efeitos operation.operation() // Fluxo de operações tx.transaction() // Fluxo de transações (taxas) Utiliza streaming (server.ledgers().stream(), .transactions().stream(), etc.). Grava os dados no MySQL imediatamente à medida que novos ledgers/operacões/efeitos chegam. Suporta continuidade perfeita por meio do sistema de cursor (armazenado no .env). Pressione q para desligamento suave — salva os últimos cursores em last.txt. 4. Módulos (pasta lib/) — Detalhados Arquivo Responsabilidade Observações Importantes block.js Fluxo de ledger (bloco) → grava na tabela block Duração do bloco (gasto), Pi total, pool de taxas, contagem de txs bem-sucedidas/falhas transaction.js Salva as taxas das transações bem-sucedidas na tabela fee Processa apenas txs bem-sucedidas operation.js Fluxo de operações → tabela operation + criação especial de conta Tipo 0 (create_account) distingue Pioneiro vs CoreTeam effect.js Módulo mais crítico. Manipula atualizações de saldo, trustlines, beneficiários/bloqueios Crédito/Débito, criação/remoção de trustline, saldo passível de resgate, bloqueio, status do beneficiário database.js Pool de conexões MySQL + wrappers ex_sql() e query() Mistura de conexões de pool e individuais firestore.js Inicialização do Firebase Admin (a partir do .env) Envia estatísticas para o Firestore 5. Esquema do Banco de Dados (database.sql) 6 tabelas principais: Account → public_key, balance, Role (Pioneer/CoreTeam), lock, created_at asset → Rastreamento de trustline (ativo não nativo) block → Resumo de cada ledger (incluindo tempo gasto) claimant → Mecanismo de bloqueio/resgate da Pi (lock_time, unlock_time, status 0/1/2, claimed_at) fee → Taxas de transação operation → Todas as operações (com type_i) Tratamento Especial (no módulo Effect): - Crédito/débito de saldo nativo - Criação/remoção de trustline - Criação de saldo passível de resgate (bloqueio) - Resgate de beneficiários (status 1 = resgate normal, 2 = recuperação pela Core Team) 6. Configuração (.env.example) HORIZON_URL=https://t.co/knkyx5qMhh FIRST_ACCOUNT=GDL35MYH4XX2KH4T5AILQQC2FN4NIOQF2QNKXKX74R2B2XHWWWQ4SFU4 # Cursors (prontos para primeira execução) LEDGER_CURSOR=8589934592 TX_CURSOR=60129546240 OP_CURSOR=60129546240 EFFECT_CURSOR=1 pre_time=2020-12-31T22:47:31Z # MySQL DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=explorepi DB_USERNAME=... DB_PASSWORD=... # Firebase (Firestore) FIRESTOREID=... FIRESTORE_EMAIL=... FIRESTORE_KEY=... 7. Motor de Análise (getdata.js) Script agendado separado (usando node-schedule): - Executa consultas específicas a cada hora/dia. - Envia os resultados para o documento statistic/data no Firestore. - Calcula métricas ricas: - Top 10 contas mais ricas (após taxas) - Tempo de bloco (diário/mensal) - Principais remetentes de pagamentos - Principais pagadores de taxas - Distribuição de operações - Estatísticas de beneficiários/bloqueios (resgatados, recuperados, períodos de bloqueio, etc.) - Usuários ativos diários, pagamentos diários, taxas diárias - Pi total, Pi total bloqueada, total de Pioneiros, etc. O site lê esses dados diretamente do Firestore → painéis muito rápidos. Um projeto de referência extremamente valioso para quem deseja realizar análise de dados no ecossistema Pi. @nkokkalis @inanjaccuse @Gerek_yokkikiki @mehmetozal @erdincdincer13 @incegorbaskan @tekin63081 @Chengdiao @DrChengdiaoFan @PiCoreTeam @krakenfx #PiNetwork #CiDiGames #Web3Gaming

Compartilhar






Fonte:Mostrar original
Aviso legal: as informações nesta página podem ter sido obtidas de terceiros e não refletem necessariamente os pontos de vista ou opiniões da KuCoin. Este conteúdo é fornecido apenas para fins informativos gerais, sem qualquer representação ou garantia de qualquer tipo, nem deve ser interpretado como aconselhamento financeiro ou de investimento. A KuCoin não é responsável por quaisquer erros ou omissões, ou por quaisquer resultados do uso destas informações.
Os investimentos em ativos digitais podem ser arriscados. Avalie cuidadosamente os riscos de um produto e a sua tolerância ao risco com base nas suas próprias circunstâncias financeiras. Para mais informações, consulte nossos termos de uso e divulgação de risco.
