As ferramentas deste repositório apoiam a equipe da Rede Blockchain Brasil (RBB) no acompanhamento da operação da rede e da evolução das iniciativas do ecossistema.
O projeto foi separado em dois perfis de uso:
- Operacao: foco em blocos, incidentes e exportacao tecnica.
- Evolucao: foco em iniciativas e acompanhamento do andamento do projeto.
- Node.js 22.11
- NPM 10.9.0
- Python com pip no PATH
- Arquivo
config.json, criado a partir deconfig.json.example
copy config.json.example config.jsonOu no PowerShell:
Copy-Item config.json.example config.jsonDurante o npm install, o projeto tenta instalar automaticamente o pacote Python ethereum-etl via postinstall.
Campos comuns aos dois perfis:
GITHUB_RBB_TOKENPROXY_URLquando houver proxy
Campos do perfil Evolucao:
ORGPROJECT_NUMBER
Campos do perfil Operacao:
INDICADORES_BASE_DIRDUMP_RBB_PRD_BASE_DIRDUMP_RBB_LAB_BASE_DIRBLOCK_PRODUCTION_OLA_THRESHOLDSSSH.LABSSH.PROD
O token do GitHub deve ter os seguintes escopos para acesso aos repositorios privados:
reporead:project
- Blocks/README.md - indicadores de producao de blocos.
- Issues/README.md - acompanhamento de incidentes em producao.
- Projects/README.md - acompanhamento das iniciativas do projeto.
npm installPontos de entrada disponiveis:
node run.js- seletor de perfilnode run-operacao.js- menu do gestor de operacaonode run-evolucao.js- menu do gestor de evolucaonpm run menunpm run menu:operacaonpm run menu:evolucao
Use node run-operacao.js para acessar:
- Dump RBB (ethereum-etl) para pasta local
- Publica dump RBB para pasta de infra
- Proposicao de Blocos por Participe
- Estatisticas do Tempo de Producao de Blocos
- Votos de Consenso por extraData
- Issues em Producao
- Publicar indicadores na pasta final
- Gerar HTML Operacional
- Help
- Sair
Observacoes:
- O dump local e as metricas de blocos usam tunel SSH com ambiente Lab ou Prd configurado no
config.json. - A opcao 3 pede apenas o mes de referencia em
MM/AAAA, usa internamente o primeiro e o ultimo dia do mes e gravaresult/AAAA-MM/lab/Blocos_lab.csvpara Lab ouresult/AAAA-MM/prd/Blocos.csvpara Prd. - O dump local mensal e salvo em
result/dump/lab/AAAA-MMouresult/dump/prd/AAAA-MM, contendo os arquivosblocksAAAA-MM.csv,transactionsAAAA-MM.csv,receiptsAAAA-MM.csv,logsAAAA-MM.csv,contractsAAAA-MM.csv,tokensAAAA-MM.csvetoken_transfersAAAA-MM.csv. - A opcao 2 publica o dump bruto para as pastas de infra
DUMP_RBB_LAB_BASE_DIR/AAAA-MMeDUMP_RBB_PRD_BASE_DIR/AAAA-MM, varrendo recursivamente o dump local do mes, copiando os arquivos encontrados para a raiz do destino e renomeando arquivos legados para o padraotipoAAAA-MM.csv. - A opcao 4 agora permite Lab e Prd, procura primeiro
blocksAAAA-MM.csvemresult/dump/{lab|prd}/AAAA-MM, faz fallback paraDUMP_RBB_LAB_BASE_DIR/AAAA-MMouDUMP_RBB_PRD_BASE_DIR/AAAA-MMquando necessario, pede confirmacao da origem em ambos os casos e, se a origem for a rede, copia o arquivo pararesult/dump/{lab|prd}/AAAA-MMantes de gerarresult/AAAA-MM/{lab|prd}/Blocos-estat.txt. - A opcao 5 analisa
blocksAAAA-MM.csvdo ambiente escolhido, garante a presenca denodes_lab.jsonenodes_piloto.jsonemresult/AAAA-MM, decodifica oextra_datados blocos para procurar votos observados de inclusao ou exclusao de consenso e gravaresult/AAAA-MM/Votos-consenso-lab.csvouresult/AAAA-MM/Votos-consenso-prd.csvcom as datas em horario de Brasilia. - A opcao 6 consulta a API do GitHub no repositorio
RBBNet/incidentes, usaGITHUB_RBB_TOKENdoconfig.json, pede apenasMM/AAAAe gravaresult/AAAA-MM/Incidentes.csv. - A opcao 3 tambem baixa ou reutiliza
nodes_lab.jsonenodes_piloto.jsonemresult/AAAA-MM. - A opcao 7 publica para
INDICADORES_BASE_DIR/AAAA-MMapenas os arquivos do escopo operacional:lab/Blocos_lab.csv,prd/Blocos.csv,prd/Blocos-estat.txt,Incidentes.csv,Comentarios.csv,nodes_lab.jsonenodes_piloto.json, depois de mostrar ao usuario as listas local e de destino. - A opcao 8 gera o HTML operacional a partir dos arquivos em
INDICADORES_BASE_DIR/AAAA-MM, monta uma tabela de producao para Prd comBlocos.csve outra para Lab comBlocos_lab.csv, usaIncidentes.csvdo ultimo mes da faixa quando existir, gravaIndicadores-operacao.htmlemresult/AAAA-MM-finale, se ja houver arquivo de mesmo nome emINDICADORES_BASE_DIR/AAAA-MM, pede confirmacao antes de sobrescrever a copia final. - As celulas de percentagem de producao no HTML sao coloridas conforme
BLOCK_PRODUCTION_OLA_THRESHOLDSdoconfig.json, usando a quantidade de partícipes/validadores presente no CSV do ambiente para escolher os limiares de alerta amarelo e vermelho. - Se nao houver OLA configurado para a quantidade de partícipes encontrada em um mes, o HTML continua sendo gerado sem coloracao para aquele caso e com aviso no terminal.
- Se faltar
Blocos.csvouBlocos-estat.txtem algum mes do periodo, esse mes e ignorado na consolidacao do HTML operacional.
Use node run-evolucao.js para acessar:
- Acompanhamento das Iniciativas de Maturacao do Piloto
- Publicar indicadores na pasta final
- Gerar HTML de Evolucao
- Sair
Observacoes:
- O perfil de evolucao nao requer configuracao de SSH.
- A opcao 1 grava
Comentarios.csv,Issues.csveIniciativas_AAAA-MM.csvemresult/AAAA-MM. - A opcao 2 publica para
INDICADORES_BASE_DIR/AAAA-MMapenasIniciativas_AAAA-MM.csveIssues.csvdo mes selecionado. - A opcao 3 usa o arquivo
Iniciativas_AAAA-MM.csvderesult/AAAA-MM, geraIndicadores-evolucao.htmlemresult/AAAA-MM-finale copia o mesmo HTML paraINDICADORES_BASE_DIR/AAAA-MM, pedindo confirmacao antes de sobrescrever a copia final quando necessario.
node run.js abre um menu simples para encaminhar o usuario ao perfil correto sem misturar as opcoes.
- Datas: primeiro e ultimo dia do mes anterior
- Periodos mensais: mes anterior
- Username SSH: usuario logado no sistema
- Caminhos de arquivo: sugestoes baseadas na estrutura atual do projeto
Para aceitar um valor padrao, basta pressionar ENTER sem digitar nada.