├── .gitignore ├── LICENSE ├── README.md ├── Roteiro_para_a_criacao_de_uma_rede.md ├── arquitetura ├── README.md ├── diagramas │ ├── core-satellite.drawio │ ├── infra-rbb-visao-geral.drawio │ └── rede-publico-permissionada.drawio ├── imagens │ ├── core-satellite.png │ ├── framework-governanca.png │ ├── infra-rbb-visao-geral.png │ ├── legenda-core-satellite.png │ ├── legenda-infra-basica.png │ └── work-in-progress-icon.png └── visoes │ ├── dapps.md │ ├── infra-basica.md │ ├── monitoracao.md │ ├── observacao.md │ ├── permissionamento.md │ └── seguranca.md ├── arquivamento ├── RBB - 2023-02-03 - Discord v2.pptx ├── instalacao-rbb-node.zip ├── monitoramento.md ├── observer.zip └── util.zip ├── artefatos └── observer │ ├── asciititle │ ├── blockscout │ └── docker-compose │ │ ├── docker-compose.yml │ │ └── envs │ │ ├── common-blockscout.env │ │ ├── common-frontend.env │ │ ├── common-smart-contract-verifier.env │ │ ├── common-stats.env │ │ └── common-visualizer.env │ ├── genesis.json │ └── rbb-observer ├── documentos ├── ACT - Documento firmado entre BNDES e TCU.pdf ├── Declaração - Parte Relacionada.doc ├── Declaração - Previdencia.doc ├── Modelo - Carta Gestor de Incidentes.docx ├── Modelo - Carta Indicação Comitê Técnico.docx ├── Modelo - Carta Indicação de Representantes.doc ├── Modelo - Termo de Adesão.docx ├── Modelo - Termo de Confidencialidade.docx ├── Termo_de_Adesao_RBB_Araguaina_tarjado.pdf ├── Termo_de_Adesao_RBB_CPQD_tarjado.pdf ├── Termo_de_Adesao_RBB_Dataprev_tarjado.pdf ├── Termo_de_Adesao_RBB_PRODEMGE_tarjado.pdf ├── Termo_de_Adesao_RBB_PUC-Rio_tarjado.pdf ├── Termo_de_Adesao_RBB_RNP_tarjado.pdf ├── Termo_de_Adesao_RBB_STC-MA_tarjado.pdf └── Termo_de_Adesao_RBB_Serpro_tarjado.pdf ├── governanca ├── README.md ├── indicacoes_gestores_incidentes │ └── participes.md ├── indicacoes_representantes │ ├── 2022-12-22-Indicação-Representantes-BNDES-CARTA-SUP-ATI-01-2022.pdf │ ├── 2023-01-03-Indicação-Representante-RNP.pdf │ ├── 2023-01-05-Indicação-Representantes-TCU.pdf │ ├── 2023-01-19-Indicação-Representantes-Dataprev.pdf │ ├── 2023-02-13-Indicação-Representantes-Prodemge.pdf │ ├── 2024-01-09-Prodemge-Alex-e-Rodrigo-Subst-Caleo.pdf │ ├── 2024-08-07-Indicacao-Representantes-Serpro.pdf │ ├── 2024-12-20-Indicacao-Representantes-SGD.pdf │ ├── 2025-05-05-Indicacao-Representantes-CPQD.pdf │ ├── 2025-05-23-Indicacao-Representantes-IBICT.pdf │ └── participes.md ├── reunioes_comite_executivo │ ├── README.md │ └── atas │ │ ├── 2022-08-22-Ata-Reunião-Governança-RBB-Assinado.pdf │ │ ├── 2022-11-01-Ata-Reunião-Governança-RBB-Assinada.pdf │ │ ├── 2022-11-29-Ata-Reunião-Governança-RBB-Assinada.pdf │ │ ├── 2023-01-19-RBB-Ata-Reuniao-Comite-Executivo-Assinada.pdf │ │ ├── 2023-02-16-RBB-Ata-Reunião-Comitê-Executivo-Assinada.pdf │ │ ├── 2023-03-23-RBB-Ata-Reunião-Comitê-Executivo-Assinada.pdf │ │ ├── 2023-04-27-RBB-Ata-Reunião-Comitê-Executivo-Assinada.pdf │ │ ├── 2023-06-01-RBB-Ata-Reunião-Comitê-Executivo-Assinada.pdf │ │ ├── 2023-11-16-RBB-Ata-Reunião-Comitê-Executivo_v1-assinado.pdf │ │ ├── 2023-12-14-RBB-Ata-Reunião-Comitê-Executivo_v3_assinada.pdf │ │ ├── 2024-02-22-RBB-Ata-Reuniao 16 ass.pdf │ │ ├── 2024-03-21-RBB-Ata-Reuniao 17 ass.pdf │ │ ├── 2024-04-11-RBB-Ata-Reuniao 18 ass.pdf │ │ ├── 2024-05-09-RBB-Ata-Reuniao 19 ass.pdf │ │ ├── 2024-06-13-RBB-Ata-Reuniao 20 ass.pdf │ │ ├── 2024-07-11-RBB-Ata-Reuniao 21 ass.pdf │ │ ├── 2024-08-08-RBB-Ata-Reuniao 22 ass.pdf │ │ ├── 2024-08-22-RBB-Ata-Reuniao-23-Comite-Executivo-Assinada.pdf │ │ ├── 2024-09-12-RBB-Ata-Reuniao-24-Comite-Executivo-Assinada.pdf │ │ ├── 2024-10-10-RBB-Ata-Reuniao-25-Comite-Executivo-Assinada.pdf │ │ ├── 2024-11-14-RBB-Ata-Reuniao-26-Comite-Executivo-Assinada.pdf │ │ ├── 2024-12-12-RBB-Ata-27-CE-Assinada.pdf │ │ ├── 2025-01-09-RBB-Ata-28-CE-Assinada.pdf │ │ ├── 2025-02-13-RBB-Ata-29-CE_assinada.pdf │ │ ├── 2025-03-13-RBB-Ata-30-CE_assinada.pdf │ │ └── README.md └── reunioes_comite_tecnico │ ├── README.md │ ├── reunioes_2023.md │ ├── reunioes_2024.md │ └── reunioes_2025.md ├── guia_rbb-cli.md ├── imagens ├── Framework_Governança.png └── ethstats.JPG ├── iniciativas.md ├── instanciar_observer-boot.md ├── instanciar_observer.md ├── padrao_nomes_nos.md ├── roteiro_acesso_leitura.md ├── roteiro_adesao.md ├── roteiro_adicao_nos.md ├── roteiro_configuração_ambiente_prometheus_e_nginx.md ├── roteiro_criacao_rede_teste.md ├── roteiro_monitoramento_ethstats.md ├── roteiro_remocao_nos.md └── versionamento.md /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | build/ 3 | !gradle/wrapper/gradle-wrapper.jar 4 | !**/src/main/** 5 | !**/src/test/** 6 | 7 | .factorypath 8 | .project 9 | .settings 10 | 11 | 12 | ### IntelliJ IDEA ### 13 | .idea 14 | **/.idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | out/ 19 | 20 | 21 | ### VS Code ### 22 | .vscode/ 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Rede Blockchain Brasil 2 | 3 | Bem vindo à Rede Blockchain Brasil! 4 | 5 | A Rede Blockchain Brasil (RBB) é uma rede de instituições, de abrangência nacional, composta de estrutura de governança e infraestrutura tecnológica, que tem o objetivo de facilitar a adoção da tecnologia de blockchain para a implementação de aplicações de interesse público. A criação da rede permitirá a otimização de recursos, redução de custos e remoção de barreiras de entrada para uso da tecnologia e a inovação no setor público. 6 | 7 | A RBB foi fundada pelo **Banco Nacional de Desenvolvimento Econômico e Social** (BNDES) e o **Tribunal de Contas da União** (TCU), através de um [Acordo de Cooperação](https://github.com/RBBNet/rbb/blob/master/documentos/ACT%20-%20Documento%20firmado%20entre%20BNDES%20e%20TCU.pdf), [assinado em 12/04/2022](https://www.in.gov.br/web/dou/-/extrato-do-acordo-de-cooperacao-n-d-121.2.0014.22-393697725). Instituições que desejarem participar da rede deverão [submeter sua solicitação](roteiro_adesao.md) à **Governança da RBB**. 8 | 9 | ## Histórico 10 | 11 | A ideia de criar a Rede Blockchain Brasil nasceu no workshop que precedeu a [segunda edição](https://www.bndes.gov.br/wps/portal/site/home/conhecimento/seminarios/II-forum-blockchaingov) do [Fórum BlockchainGov](https://itsrio.org/pt/projetos/blockchaingov/), realizado nas dependências do BNDES em 2019. Organizado em parceria pelo BNDES e pelo [Instituto de Tecnologia e Sociedade (ITS)](https://itsrio.org/), o workshop gerou uma discussão relevante entre instituições públicas com experiência em uso prático da tecnologia. 12 | 13 | A percepção geral era que havia uma duplicação de esforços no uso da tecnologia pelo governo. Em geral, para cada caso de uso, a organização interessada precisava superar diversas barreiras legais, organizacionais e técnicas. Embora faça sentido em alguns casos, a necessidade de resolver os mesmos problemas a cada aplicação acaba inibindo a inovação. Adicionalmente, a existência de várias redes inibe a possibilidade de integração entre diversas iniciativas, além de reuso de soluções entre diferentes organizações. 14 | 15 | ## Modelo 16 | 17 | Experiências internacionais como a [LACChain](https://www.lacchain.net) - rede para a América Latina liderada pelo BID, [Alastria](https://alastria.io/) e [EBSI (European Blockchain Service Infrastructure)](https://ec.europa.eu/digital-building-blocks/wikis/display/EBSI/Home) inspiraram a RBB a buscar o caminho de ser uma rede público-permissionada: "pública" porque poderá ser acessada por qualquer pessoa; "permissionada" porque os nós participantes do consenso precisam de permissão para participar. As redes público-permissionadas são uma solução adequada para aplicações de interesse público. 18 | 19 | Blockchains públicas são potencialmente muito interessantes para implantações focadas em transparência e confiança. Tal percepção é corroborada pelo [Acórdão 1613/2020 do TCU](https://pesquisa.apps.tcu.gov.br/#/redireciona/acordao-completo/%22ACORDAO-COMPLETO-2406748%22) que aponta como um dos seus maiores potenciais da tecnologia a implantação de medidas anticorrupção e pró-transparência. A possibilidade de implementar processos transparentes e que obedeçam ao princípio de _compliance by design_ é uma grande oportunidade para organizações públicas. Porém, o uso de redes que melhor suportam estas características por instituições públicas apresenta barreiras de diversas naturezas, como por exemplo a aquisição de criptomoedas para remuneração do processamento na rede. 20 | 21 | Nas blockchains permissionadas, em geral privadas, os nós que realizam a validação das transações são conhecidos e previamente autorizados, de acordo com os requisitos e propósitos da rede, permitindo a determinação de responsabilidades e tratando a realização do processamento na rede como um compromisso de seus participantes. Porém, tais blockchains não permitem o acesso às informações pelo público em geral. 22 | 23 | Já nas blockchains público-permissionadas, é possível buscar um melhor modelo para aplicações de interesse público: a entrega de soluções de transparência e confiança através de redes públicas; e o menor custo e menor desafio tecnológico e regulatório das redes permissionadas. 24 | 25 | ## Formas de Participação 26 | 27 | As instituições participantes da RBB, aderentes ao Acordo de Cooperação, podem ser classificadas como: 28 | 29 | - Partícipes Aderentes **Parceiros** 30 | - Devem promover o uso da RBB em aplicações do serviço público e de interesse público e seguir as decisões sobre a RBB proferidas pela Governança da RBB; 31 | - Têm direito de executar nós que enviem transações para a rede e tenham acesso a toda a cadeia de blocos; 32 | - Têm direito a apresentar propostas e participar das reuniões de governança. 33 | 34 | - Partícipes Aderentes **Associados** 35 | - Têm os mesmos direitos e deveres dos partícipes aderentes parceiros; 36 | - Têm o compromisso de executar nós que possam participar do consenso da rede; 37 | - Têm direito a votar nas propostas apresentadas. 38 | 39 | - Partícipes **Patronos** 40 | - Apenas BNDES e TCU são considerados partícipes patronos; 41 | - Têm os mesmos direitos e deveres dos partícipes aderentes associados; 42 | - Têm direito a voto de desempate e vetar as propostas apresentadas. 43 | 44 | Para acesso e operação da rede, as instituições participantes devem seguir o [roteiro técnico](roteiro_adicao_nos.md) para instalação e configuração de seus nós. 45 | 46 | ## Acesso aos Dados pelo Público 47 | 48 | Os dados da RBB estão disponíveis para consulta pelo público em geral, conforme seu [modelo](#modelo) de blockchain público-permissionada. Isso significa que qualquer cidadão pode fazer uso de ferramentas para baixar, consultar, tratar e auditar os dados e código (*smart contracts*) gravados na blockchain. 49 | 50 | A RBB fornece um [roteiro básico](roteiro_acesso_leitura.md) para quem quiser ligar um nó de leitura (*"observer node"*) e uma ferramenta de visualização de blocos (*"block explorer"*) em seu próprio computador. 51 | 52 | Quem quiser subir um nó por conta própria e se conectar, deve usar os seguintes enodes para *discovery*: 53 | ``` 54 | enode://3fc63306a2df0b19196395dcb117af3b52f4d9b5533f8f77772baf9cab0e7f8a06e8b8191bc5ff15408dda0955ad1556359e67f04a63ff27d7fa5e60aa805815@rbb-observer-boot01.bndes.gov.br:60002 55 | enode://b0bfb6437118f89fa3e093f45fe4a747179c766efd882fe3694d71e27df1fdf6024595ae5f3a3f285e8234ec134c306fbd031a98107d4b1bfac5ed58179430e8@200.198.20.95:60606 56 | enode://bf8d93733d707b30f1e09545d0ee3e57cddc697d0fdc9940540d5c4f77ec33bb8ea1cb1eeae8fccddc5b9539147dfa7ff24eb7bd82932243a77b31f83a8a7b0f@139.82.24.160:30303 57 | enode://5dd979ae40077dcd3ca620baeeb2328bde18b3a802e9b515181d5ef7c14b3692fc3a00d4d84ae17819d443f4fcfa13e07aa070c53aa191e7f2e46c587dc449a8@35.198.49.239:30303 58 | enode://107fb2f960d429d9e89c2861967b49405c22385a53b50c0d24096a5b20112adf5753264e06b8456f38e211bbc0b95178fb0104bf488cec68918067f971fdc500@161.148.126.69:30303 59 | enode://8d52e34fb48a96109eb4d916bd2a0bfad86dc107a8d57f35c50236048857058eba11b7c7438870cf6b5cf7257c765d186e8920d8bf64a0f525a788912657dd20@200.133.56.131:30303 60 | ``` 61 | 62 | Caso o nó seja uma instância Besu, é possível utilizar como referência [este aquivo *genesis*](artefatos/observer/genesis.json), tomando-se o cuidado de utilizar as opções `--Xdns-enabled=true` e `--Xdns-update-enabled=true` para resolução correta de nomes. 63 | 64 | A RBB também oferece um [roteiro](roteiro_criacao_rede_teste.md) para instalação e configuração de uma rede de testes local, em seu próprio computador, para aprendizado e realização de testes. 65 | 66 | ## Projeto 67 | 68 | A implantação da RBB está sendo feita de forma gradativa, conforme determinado em seu Plano de Trabalho, que tem previstas as seguintes atividades: 69 | 70 | - Implantação da rede laboratório 71 | - Elaboração do [Regulamento da RBB](governanca/reunioes_comite_executivo/atas/2022-11-29-Ata-Reuni%C3%A3o-Governan%C3%A7a-RBB-Assinada.pdf) 72 | - Estruturação do piloto 73 | - Operação assistida do piloto 74 | - Estruturação da produção 75 | - Promoção do uso da rede e evoluções 76 | 77 | Observação: O piloto é uma rede de produção, com a utilização de dados reais, porém com níveis de serviço reduzidos. 78 | 79 | O Plano de Trabalho tem previsão de ser executado em 60 meses a partir da assinatura do [Acordo de Cooperação](https://github.com/RBBNet/rbb/blob/master/documentos/ACT%20-%20Documento%20firmado%20entre%20BNDES%20e%20TCU.pdf) entre BNDES e TCU. 80 | 81 | Embora a iniciativa da RBB tenha sido oficialmente criada com a assinatura do Acordo em 12/04/2022, uma rede de laboratório e um grupo de debates já existem desde 2021. Várias [iniciativas e discussões técnicas](iniciativas.md) importantes ocorreram nesse período, antecipando discussões e projetos que deverão ser realizados, agora, dentro da estrutura formal. 82 | 83 | ## Governança 84 | 85 | Informações sobre a [governança da RBB](governanca/README.md). 86 | 87 | ## Tecnologia 88 | 89 | A implementação de blockchain utilizada na RBB é a do projeto de código aberto [Besu](https://besu.hyperledger.org), que é baseada na rede [Ethereum](https://ethereum.org). 90 | 91 | ## Topologia 92 | 93 | A RBB se baseou no *framework* da [LACChain](https://www.lacchain.net), para definir seu modelo de topologia, que é composta de: 94 | 95 | - Nós Núcleo: Desempenham papel essencial para o correto funcionamento da rede. A rede não funciona sem eles. 96 | - **Nós Conectores** (*Boot Nodes*): Responsáveis por conectar nós validadores a nós satélites. 97 | - Compartilham o histórico e o estado dos blocos com novos nós. 98 | - Atualizam nós satélites sobre a geração de novos blocos gerados pelos nós validadores. 99 | - Repassam transações enviadas pelos nós registradores aos nós validadores. 100 | - Conectam-se com os nós validadores e nós registradores designados. 101 | - **Nós Validadores** (*Validator Nodes*): Validam as transações submetidas à rede. 102 | - Participam do protocolo de consenso e são responsáveis pela geração de novos blocos. 103 | - Conectam-se entre si e com os nós conectores. 104 | - Nós Satélites: Não desempenham papel essencial no correto funcionamento da rede. Podem se conectar e desconectar da rede sem que isso prejudique o funcionamento da mesma. 105 | - **Nós Registradores** (*Writer Nodes*): Podem submeter transações para a rede. 106 | - Enviam transações aos nós conectores, que por sua vez as repassam aos nós validadores. 107 | - Conectam-se com nós conectores designados. 108 | - **Nós Observadores** (*Observer Nodes*): Só podem ler as informações registradas na rede. 109 | - Podem conectar-se apenas com nós conectores que estiverem abertos para permitir a leitura de blocos. 110 | 111 | ![Topologia da RBB](arquitetura/imagens/core-satellite.png "Topologia da RBB") 112 | 113 | ![Legenda](arquitetura/imagens/legenda-core-satellite.png "Legenda") 114 | 115 | 116 | ## Incidentes 117 | 118 | Para a indicação de gestores de incidentes de sua instituição participante, preencha o documento [Gestor de incidentes](documentos/Modelo%20-%20Carta%20Gestor%20de%20Incidentes.docx) e envie para o e-mail [rbb@bndes.gov.br](#). 119 | 120 | ## Aviso Legal sobre a participação do Tribunal de Contas da União – TCU 121 | 122 | O Tribunal de Contas da União - TCU, órgão de controle externo do governo federal, auxilia o Congresso Nacional na missão de acompanhar a execução orçamentária e financeira do país e contribuir com o aperfeiçoamento da Administração Pública em benefício da sociedade. Para isso, tem como visão ser referência na promoção de uma Administração Pública efetiva, ética, ágil e responsável. 123 | 124 | No âmbito da Rede Blockchain Brasil (RBB), o TCU exerce o papel de partícipe fundador, conforme Acordo de Cooperação número D-121.2.0014.22, celebrado em abril de 2022 junto ao BNDES – Banco Nacional de Desenvolvimento Econômico e Social. O acordo estabelece as prerrogativas de cada tipo de partícipe (partícipes fundadores e partícipes aderentes), suas funções, atribuições e poderes. 125 | 126 | Vale destacar, entretanto, que **o TCU, por meio de seus representantes formalmente indicados**, assim como ocorre em outras iniciativas similares, **exerce na RBB papel meramente administrativo, sem qualquer vínculo com as atividades de Controle Externo** advindas de sua função constitucional. A despeito de ser fundador, o TCU atua na Rede como qualquer outro partícipe, resguardadas as funções e poderes de partícipe fundador, descritas no supracitado acordo de cooperação. Portanto, **o TCU, nessa condição, não chancela, corrobora, atesta a validade ou emite opinião prévia sobre as atividades exercidas por partícipes da RBB que porventura sejam passíveis das ações de Controle Externo**. 127 | 128 | ## Versionamento 129 | 130 | A RBB utiliza regras de [versionamento semântico](versionamento.md) para seu código. 131 | 132 | ## Contato 133 | 134 | Em caso de dúvidas e sugestões, entre em contato através do e-mail [rbb@bndes.gov.br](#). 135 | 136 | O servidor do Discord é público, entre por [esse convite](https://discord.gg/RzyUpmGqTT). 137 | -------------------------------------------------------------------------------- /arquitetura/README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 |
4 | wip 5 |

Atenção: esta página está em construção e ainda será revisada pelo Comitê Técnico da RBB

6 |
9 | 10 | # Arquitetura da Rede Blockchain Brasil - RBB 11 | - RBB é uma rede blockchain do tipo [público-permissionada](https://hal.science/hal-02477405/document) 12 | - A implementação de blockchain utilizada na RBB é o [Besu](https://www.lfdecentralizedtrust.org/projects/besu). 13 | - Besu é um "cliente" para redes [Ethereum](https://ethereum.org/en/developers/docs/) de código aberto (open source) mantido por [The Linux Foudantion](https://www.linuxfoundation.org/projects). 14 | - [Linux Foundation Decentralized Trust (LFDT)](https://www.lfdecentralizedtrust.org/join-us) é um dos projetos da The Linux Foundation e o Besu é um dos sub-projetos da LFDT. 15 | - Besu é um dos "clientes" conhecidos para redes Ethereum. 16 | - Na verdade, o dito software "cliente" para Ethereum é o software executado em um nó da rede. 17 | - Portanto, trata-se de uma espécie de falso cognato, já que o software é executado em nós (nodes) que formam uma rede [P2P](https://en.wikipedia.org/wiki/Peer-to-peer) 18 | - Nós em uma rede Besu executam uma [EVM - Ethereum Virtual Machine](https://ethereum.org/en/developers/docs/evm/) 19 | - Isto permite a execução de [contratos inteligentes (smart contracts)](https://ethereum.org/en/developers/docs/smart-contracts/) 20 | - O protocolo de consenso usado na RBB é do tipo [proof of authority](https://besu.hyperledger.org/stable/private-networks/concepts/poa), sob o mecanismo [QBFT](https://besu.hyperledger.org/stable/private-networks/how-to/configure/consensus/qbft/). 21 | - Os nós da RBB funcionam sob topologia descrita nesta documentação arquitetural em complemento aos documentos dos [repositórios da RBB](https://github.com/RBBNet/) no GitHub. 22 | - O objetivo deste documento é apresentar visões arquiteturais que descrevem os elementos da rede e suas interações. 23 | - A forma com que as visões arquiteturais são definidas neste documento foi influenciada pelo Framework de Governança estabelecido para a RBB. 24 | 25 |
26 | 27 | 28 | 29 | 32 | 33 |
30 | wip 31 |
34 | 35 | ## Arquitetura 36 | 37 | As visões arquiteturais apresentam diferentes perspectivas do design da RBB: 38 | 39 | - [Visão de infraestrutura - infra básica](visoes/infra-basica.md) 40 | - [Visão de permissionamento](visoes/permissionamento.md) 41 | - [Visão de monitoração](visoes/monitoracao.md) 42 | - [Visão de segurança](visoes/seguranca.md) 43 | - [Visão de DApps](visoes/dapps.md) 44 | - [Visão de observação](visoes/observacao.md) 45 | 46 | 47 | ## ADRs 48 | 49 | ADRs são documentos curtos que registram decisões de design relevantes. A ideia é contextualizar e prover a justificativa (*rationale*) da decisão. 50 | 51 | 52 | ***Note***: *Estamos usando [este template de ADR](https://github.com/pmerson/ADR-template/blob/master/ADR-template_pt-BR.md).* 53 | 54 | 55 | ## Backlog 56 | 57 | * Veja o [Kanban do projeto](https://github.com/orgs/RBBNet/projects/2). 58 | -------------------------------------------------------------------------------- /arquitetura/diagramas/rede-publico-permissionada.drawio: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /arquitetura/imagens/core-satellite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/arquitetura/imagens/core-satellite.png -------------------------------------------------------------------------------- /arquitetura/imagens/framework-governanca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/arquitetura/imagens/framework-governanca.png -------------------------------------------------------------------------------- /arquitetura/imagens/infra-rbb-visao-geral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/arquitetura/imagens/infra-rbb-visao-geral.png -------------------------------------------------------------------------------- /arquitetura/imagens/legenda-core-satellite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/arquitetura/imagens/legenda-core-satellite.png -------------------------------------------------------------------------------- /arquitetura/imagens/legenda-infra-basica.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/arquitetura/imagens/legenda-infra-basica.png -------------------------------------------------------------------------------- /arquitetura/imagens/work-in-progress-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/arquitetura/imagens/work-in-progress-icon.png -------------------------------------------------------------------------------- /arquitetura/visoes/dapps.md: -------------------------------------------------------------------------------- 1 | Atenção: esta página está em construção e não está disponível no momento 2 |

3 | wip 4 |

-------------------------------------------------------------------------------- /arquitetura/visoes/infra-basica.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 |
4 | wip 5 |

Atenção: esta página está em construção e ainda será revisada pelo Comitê Técnico da RBB

6 |
9 | 10 | # Visão de Infraestrutura 11 | - Visão de runtime que demonstra os elementos básicos da infraestrutura da rede e suas interações. 12 | 13 | ![Infra básica da rede](../imagens/infra-rbb-visao-geral.png) 14 | ![Legenda infra básica](../imagens/legenda-infra-basica.png) 15 | 16 | 17 | ### Tipos de nós: núcleo (core nodes) e nós satélites (satellite nodes) 18 | 19 | ![Topologia por tipo de nó](../imagens/core-satellite.png) 20 | ![Legenda topologia tipo nó](../imagens/legenda-core-satellite.png) 21 | 22 | ## Catálogo de elementos 23 | 24 | #### Nós validadores (validator nodes) 25 | - São considerados core nodes, indispensáveis para o funcionamento da rede. 26 | - Participam do protocolo de consenso. 27 | - São responsáveis por criar novos blocos de transações. 28 | - Assinam blocos válidos usando o protocolo [QBFT](https://besu.hyperledger.org/stable/private-networks/concepts/poa) 29 | 30 | #### Protocolo de consenso QBFT 31 | - Protocolo proof of authority (PoA) 32 | - Neste protocolo, contas aprovadas (approved accounts), conhecidas como "validators", validam transações e blocos. 33 | - Apenas nós admitidos e permissionados como validadores (validators) podem propor ou validar novos blocos. 34 | - Os nós validadores existentes podem propor e votar pela admissão de novos nós validadores e também por exclusão de nós validadores existentes. 35 | - Não há forks ou entradas concorrentes de novos blocos na rede 36 | - Um novo bloco é sempre inserido ao final da cadeia de blocos (finality is instantaneous or semi-instantaneous) 37 | - Para a rede ser considerada tolerante a falhas Bizantinas (Byzantine fault tolerant), é necessário no mínimo quatro nós validadores. 38 | - Se mais de 1/3 dos nós validadores tornarem-se indisponíveis, a rede para de produzir transações e blocos. 39 | - Blocos precisam ser assinados pela maioria (2/3 ou mais) dos nós validadores. 40 | - Quanto maior o número de nós validadores, maior o tempo para aprovação e inclusão de um novo bloco. 41 | - Nós validadores (validators) tem um intervalo de tempo (time slot) para propor um novo bloco 42 | - Se o tempo deste "time slot" expirar, um novo validador será escolhido para propor um novo bloco 43 | 44 | #### Nós conectores (boot nodes) 45 | - São considerados core nodes. 46 | - Servem como ligação ou ponto de acesso entre nós satélites (writers e observers) e o núcleo da rede. 47 | - Recebem transações dos nós registradores (writers) e as repassam aos nós validadores. 48 | - Recebem blocos de transação gerados por validadores e compartilham o histórico e o estado dos blocos com outros nós satélites (ex.: nós observadores). 49 | - São responsáveis por admitir novos nós na rede, repassando uma lista de todos os nós ativos na rede. 50 | 51 | #### Nós registradores (writer nodes) 52 | - São considerados nós satélites 53 | - Não fazem parte do núcleo (core) da rede. 54 | - Não são indispensáveis ao funcionamento da rede. 55 | - Podem enviar transações para rede. 56 | - Usam os nós conectores (boot nodes) que repassam as transações aos nós validadores. 57 | 58 | #### Nós observadores (observer nodes) 59 | - São considerados nós satélites 60 | - Não fazem parte do núcleo (core) da rede. 61 | - Não são indispensáveis ao funcionamento da rede. 62 | - Apenas leem (read only) blocos de transações da rede 63 | - Usam os nós conectores (boot nodes) para acessar os blocos de transações da ledger. 64 | - 65 | ## Comportamento 66 | - N/A. 67 | 68 | ## ADRs relacionadas 69 | - N/A. 70 | - 71 | ## Visões relacionadas 72 | - N/A. -------------------------------------------------------------------------------- /arquitetura/visoes/monitoracao.md: -------------------------------------------------------------------------------- 1 | Atenção: esta página está em construção e não está disponível no momento 2 |

3 | wip 4 |

-------------------------------------------------------------------------------- /arquitetura/visoes/observacao.md: -------------------------------------------------------------------------------- 1 | Atenção: esta página está em construção e não está disponível no momento 2 |

3 | wip 4 |

-------------------------------------------------------------------------------- /arquitetura/visoes/permissionamento.md: -------------------------------------------------------------------------------- 1 | Atenção: esta página está em construção e não está disponível no momento 2 |

3 | wip 4 |

-------------------------------------------------------------------------------- /arquitetura/visoes/seguranca.md: -------------------------------------------------------------------------------- 1 | Atenção: esta página está em construção e não está disponível no momento 2 |

3 | wip 4 |

-------------------------------------------------------------------------------- /arquivamento/RBB - 2023-02-03 - Discord v2.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/arquivamento/RBB - 2023-02-03 - Discord v2.pptx -------------------------------------------------------------------------------- /arquivamento/instalacao-rbb-node.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/arquivamento/instalacao-rbb-node.zip -------------------------------------------------------------------------------- /arquivamento/monitoramento.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | # Monitoração e Responsabilidades 5 | Toda instituição participante deve monitorar e tratar incidentes de seus próprios nós 6 | 7 | Toda instituição participante deve poder monitorar localmente os dados de todos os nós da RBB necessário para detecção de seus próprios incidentes. 8 | 9 | # Tipos de Monitoração 10 | 11 | LL- Local para detecção de incidentes 12 | 13 | GL- Global para detecção de incidentes locais 14 | 15 | MN- Global longo Prazo – Monitoramento de negócio 16 | 17 | GG- global para detecção de incidentes na rede inteira _ Saúde da rede 18 | 19 | # Premissas II 20 | 21 | GL- Global para detecção de incidentes locais 22 | Para obter dados gerados por nós de outras instituições da rede, uma instituição pode 23 | 24 | (a) buscar um subconjunto dos dados diretamente de todos os nós da rede e/ou 25 | 26 | (b) buscar dados do monitoramento GG. 27 | 28 | Buscar diretamente nos diversos nós da rede preserva a descentralização e minimiza possíveis erros uma vez que o dado é recuperado no local em que se originou. 29 | 30 | 31 | 32 | GG- global para detecção de incidentes na rede inteira _ Saúde da rede 33 | Pelo menos duas instituições da rede devem fazer o monitoramento com input de todos os nós da rede e oferecer uma visão global de toda a rede. 34 | 35 | Existe uma equipe técnica responsável por cuidar da saúde global da rede, incluindo incidentes com causa desconhecida. Essa equipe pode ser composta por um subconjunto das instituições participantes, com rotatividade. 36 | 37 | # De onde extrair as métricas 38 | 39 | 1. Besu e Server 40 | 41 | Foco em estado dos nós e servidores 42 | 43 | Contém visão em alto nível da rede 44 | 45 | 46 | 2. Diretamente na rede Blockchain 47 | 48 | Foco em endereços, smart contracts e transações. 49 | Inclui visão em alto nível dos nós 50 | (fora do escopo no momento) 51 | 52 | # Tipos de Métricas 53 | 54 | 1.Servidores e Processos 55 | 56 | Monitora o uso de CPU e uso de espaço em Disco. Também engloba uso da JVM pelo processo do Besu. 57 | Cada instituição já deve ter padrões estabelecidos para essas métricas. 58 | 59 | 60 | 2.Especifica da RBB 61 | 62 | Monitora sincronização, conectividade e uso da rede. 63 | Importante alinhamento nas métricas e limites para incidentes. 64 | 65 | 66 | ![Captura de tela de 2021-12-14 15-58-25](https://user-images.githubusercontent.com/71888455/146213676-cbdc0ab7-5bfd-400e-acf1-ad3b95709f8d.png) 67 | 68 | ![Captura de tela de 2021-12-14 15-58-54](https://user-images.githubusercontent.com/71888455/146213746-08a5d304-653d-46fe-bbc7-868eeb1ea374.png) 69 | 70 | ![Captura de tela de 2021-12-14 15-59-08](https://user-images.githubusercontent.com/71888455/146213948-671d882c-1f70-43eb-a0bb-3be42dae5090.png) 71 | 72 | ![Captura de tela de 2021-12-14 15-59-24](https://user-images.githubusercontent.com/71888455/146214013-b56ecf68-1a9c-47c6-af37-225016ffcbf8.png) 73 | 74 | ![Captura de tela de 2021-12-15 12-17-46](https://user-images.githubusercontent.com/71888455/146214095-6aae336d-d28c-4b09-a38e-51fa2d24903a.png) 75 | 76 | ![Captura de tela de 2021-12-14 16-06-07](https://user-images.githubusercontent.com/71888455/146214229-4cfc1b12-c9a8-4da1-ad8e-f49013d465b2.png) 77 | 78 | ![Captura de tela de 2021-12-14 16-06-23](https://user-images.githubusercontent.com/71888455/146214233-7a48ce44-29da-4fc8-a8bd-768d8c6d7421.png) 79 | 80 | 81 | # SLA 82 | 83 | Nós validadores devem estar operacionais pelo menos ?% do tempo. 84 | 85 | 86 | Nós boot e registradores devem estar operacionais pelo menos ?% do tempo. Obs.: Nós registradores também precisam respeitar SLA da aplicação que está oferecendo. 87 | 88 | # Implementação 89 | 90 | A troca de mensagens de monitoramento não deve impactar negativamente no desempenho dos nós da RBB 91 | 92 | A comunicação das métricas coletadas entre as diferentes instituições seguirá o formato de dados do Prometheus. O Prometheus pode ser utilizado para a coleta, armazenamento e consulta de métricas, mas as instituições também podem optar por outra ferramenta de monitoração. 93 | 94 | Não existe nenhuma restrição para seleção de ferramenta de gestão de incidentes. A instituição pode selecionar a mais adequada segundo a operação de sua produção de TI. 95 | 96 | Além de servir para geração de incidentes, as métricas listadas também podem ser apresentadas em dashboards. Caso as instituições participantes optem pela adoção do Grafana, existe um modelo disponível gerado pelo BNDES. 97 | 98 | 99 | ![Captura de tela de 2021-12-13 13-56-52](https://user-images.githubusercontent.com/71888455/146039396-ff30f6e3-aa6a-454f-81c4-0860e2dcb49b.png) 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | -------------------------------------------------------------------------------- /arquivamento/observer.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/arquivamento/observer.zip -------------------------------------------------------------------------------- /arquivamento/util.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/arquivamento/util.zip -------------------------------------------------------------------------------- /artefatos/observer/blockscout/docker-compose/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.9' 2 | 3 | services: 4 | redis_db: 5 | extends: 6 | file: ./services/redis.yml 7 | service: redis_db 8 | restart: unless-stopped 9 | 10 | db-init: 11 | extends: 12 | file: ./services/db.yml 13 | service: db-init 14 | 15 | db: 16 | extends: 17 | file: ./services/db.yml 18 | service: db 19 | 20 | backend: 21 | depends_on: 22 | - db 23 | - redis_db 24 | extends: 25 | file: ./services/backend.yml 26 | service: backend 27 | build: 28 | context: .. 29 | dockerfile: ./docker/Dockerfile 30 | args: 31 | CACHE_EXCHANGE_RATES_PERIOD: "" 32 | API_V1_READ_METHODS_DISABLED: "false" 33 | DISABLE_WEBAPP: "false" 34 | API_V1_WRITE_METHODS_DISABLED: "false" 35 | CACHE_TOTAL_GAS_USAGE_COUNTER_ENABLED: "" 36 | CACHE_ADDRESS_WITH_BALANCES_UPDATE_INTERVAL: "" 37 | ADMIN_PANEL_ENABLED: "" 38 | RELEASE_VERSION: 6.1.0 39 | links: 40 | - db:database 41 | environment: 42 | ETHEREUM_JSONRPC_HTTP_URL: http://host.docker.internal:8545/ 43 | ETHEREUM_JSONRPC_TRACE_URL: http://host.docker.internal:8545/ 44 | # ETHEREUM_JSONRPC_WS_URL: ws://host.docker.internal:8545/ 45 | CHAIN_ID: '$CHAINID' 46 | 47 | visualizer: 48 | extends: 49 | file: ./services/visualizer.yml 50 | service: visualizer 51 | 52 | sig-provider: 53 | extends: 54 | file: ./services/sig-provider.yml 55 | service: sig-provider 56 | 57 | frontend: 58 | depends_on: 59 | - backend 60 | extends: 61 | file: ./services/frontend.yml 62 | service: frontend 63 | 64 | stats-db-init: 65 | extends: 66 | file: ./services/stats.yml 67 | service: stats-db-init 68 | 69 | stats-db: 70 | depends_on: 71 | - backend 72 | extends: 73 | file: ./services/stats.yml 74 | service: stats-db 75 | 76 | stats: 77 | depends_on: 78 | - stats-db 79 | extends: 80 | file: ./services/stats.yml 81 | service: stats 82 | 83 | proxy: 84 | depends_on: 85 | - backend 86 | - frontend 87 | - stats 88 | extends: 89 | file: ./services/nginx.yml 90 | service: proxy 91 | restart: unless-stopped 92 | -------------------------------------------------------------------------------- /artefatos/observer/blockscout/docker-compose/envs/common-blockscout.env: -------------------------------------------------------------------------------- 1 | ETHEREUM_JSONRPC_VARIANT=besu 2 | ETHEREUM_JSONRPC_HTTP_URL=http://host.docker.internal:8545/ 3 | # ETHEREUM_JSONRPC_FALLBACK_HTTP_URL= 4 | DATABASE_URL=postgresql://blockscout:ceWb1MeLBEeOIfk65gU8EjF8@db:5432/blockscout 5 | # DATABASE_QUEUE_TARGET 6 | ETHEREUM_JSONRPC_TRACE_URL=http://host.docker.internal:8545/ 7 | # ETHEREUM_JSONRPC_FALLBACK_TRACE_URL= 8 | # ETHEREUM_JSONRPC_FALLBACK_ETH_CALL_URL= 9 | # ETHEREUM_JSONRPC_ETH_CALL_URL= 10 | # ETHEREUM_JSONRPC_HTTP_TIMEOUT= 11 | # CHAIN_TYPE= 12 | NETWORK= 13 | SUBNETWORK=RBB Net 14 | LOGO=/images/blockscout_logo.svg 15 | # ETHEREUM_JSONRPC_WS_URL= 16 | ETHEREUM_JSONRPC_TRANSPORT=http 17 | ETHEREUM_JSONRPC_DISABLE_ARCHIVE_BALANCES=false 18 | # ETHEREUM_JSONRPC_ARCHIVE_BALANCES_WINDOW=200 19 | # ETHEREUM_JSONRPC_HTTP_HEADERS= 20 | # ETHEREUM_JSONRPC_WAIT_PER_TIMEOUT= 21 | # ETHEREUM_JSONRPC_GETH_TRACE_BY_BLOCK= 22 | IPC_PATH= 23 | NETWORK_PATH=/ 24 | BLOCKSCOUT_HOST= 25 | BLOCKSCOUT_PROTOCOL= 26 | SECRET_KEY_BASE=56NtB48ear7+wMSf0IQuWDAAazhpb31qyc7GiyspBP2vh7t5zlCsF5QDv76chXeN 27 | # CHECK_ORIGIN= 28 | PORT=4000 29 | COIN_NAME= 30 | # METADATA_CONTRACT= 31 | # VALIDATORS_CONTRACT= 32 | # KEYS_MANAGER_CONTRACT= 33 | # REWARDS_CONTRACT= 34 | # TOKEN_BRIDGE_CONTRACT= 35 | EMISSION_FORMAT=DEFAULT 36 | # CHAIN_SPEC_PATH= 37 | # SUPPLY_MODULE= 38 | COIN= 39 | EXCHANGE_RATES_COIN= 40 | # EXCHANGE_RATES_MARKET_CAP_SOURCE= 41 | # EXCHANGE_RATES_TVL_SOURCE= 42 | # EXCHANGE_RATES_PRICE_SOURCE= 43 | # EXCHANGE_RATES_COINGECKO_COIN_ID= 44 | # EXCHANGE_RATES_COINGECKO_SECONDARY_COIN_ID= 45 | # EXCHANGE_RATES_COINGECKO_API_KEY= 46 | # EXCHANGE_RATES_COINMARKETCAP_API_KEY= 47 | # EXCHANGE_RATES_COINMARKETCAP_COIN_ID= 48 | # EXCHANGE_RATES_COINMARKETCAP_SECONDARY_COIN_ID= 49 | # EXCHANGE_RATES_CRYPTOCOMPARE_SECONDARY_COIN_SYMBOL= 50 | POOL_SIZE=80 51 | # EXCHANGE_RATES_COINGECKO_PLATFORM_ID= 52 | # TOKEN_EXCHANGE_RATE_INTERVAL= 53 | # TOKEN_EXCHANGE_RATE_REFETCH_INTERVAL= 54 | # TOKEN_EXCHANGE_RATE_MAX_BATCH_SIZE= 55 | # DISABLE_TOKEN_EXCHANGE_RATE= 56 | POOL_SIZE_API=10 57 | ECTO_USE_SSL=false 58 | # DATADOG_HOST= 59 | # DATADOG_PORT= 60 | # SPANDEX_BATCH_SIZE= 61 | # SPANDEX_SYNC_THRESHOLD= 62 | HEART_BEAT_TIMEOUT=30 63 | # HEART_COMMAND= 64 | # BLOCKSCOUT_VERSION= 65 | RELEASE_LINK= 66 | BLOCK_TRANSFORMER=base 67 | # GRAPHIQL_TRANSACTION= 68 | # BLOCK_RANGES= 69 | # FIRST_BLOCK= 70 | # LAST_BLOCK= 71 | # TRACE_BLOCK_RANGES= 72 | # TRACE_FIRST_BLOCK= 73 | # TRACE_LAST_BLOCK= 74 | # FOOTER_CHAT_LINK= 75 | # FOOTER_FORUM_LINK_ENABLED= 76 | # FOOTER_FORUM_LINK= 77 | # FOOTER_TELEGRAM_LINK_ENABLED= 78 | # FOOTER_TELEGRAM_LINK= 79 | # FOOTER_GITHUB_LINK= 80 | FOOTER_LOGO=/images/blockscout_logo.svg 81 | FOOTER_LINK_TO_OTHER_EXPLORERS=false 82 | FOOTER_OTHER_EXPLORERS={} 83 | SUPPORTED_CHAINS={} 84 | CACHE_BLOCK_COUNT_PERIOD=7200 85 | CACHE_TXS_COUNT_PERIOD=7200 86 | CACHE_ADDRESS_SUM_PERIOD=3600 87 | CACHE_TOTAL_GAS_USAGE_PERIOD=3600 88 | CACHE_ADDRESS_TRANSACTIONS_GAS_USAGE_COUNTER_PERIOD=1800 89 | CACHE_TOKEN_HOLDERS_COUNTER_PERIOD=3600 90 | CACHE_TOKEN_TRANSFERS_COUNTER_PERIOD=3600 91 | CACHE_ADDRESS_WITH_BALANCES_UPDATE_INTERVAL=1800 92 | CACHE_AVERAGE_BLOCK_PERIOD=1800 93 | CACHE_MARKET_HISTORY_PERIOD=21600 94 | CACHE_ADDRESS_TRANSACTIONS_COUNTER_PERIOD=1800 95 | CACHE_ADDRESS_TOKENS_USD_SUM_PERIOD=3600 96 | CACHE_ADDRESS_TOKEN_TRANSFERS_COUNTER_PERIOD=1800 97 | # CACHE_TRANSACTIONS_24H_STATS_PERIOD= 98 | # CACHE_FRESH_PENDING_TRANSACTIONS_COUNTER_PERIOD= 99 | TOKEN_METADATA_UPDATE_INTERVAL=172800 100 | CONTRACT_VERIFICATION_ALLOWED_SOLIDITY_EVM_VERSIONS=homestead,tangerineWhistle,spuriousDragon,byzantium,constantinople,petersburg,istanbul,berlin,london,paris,shanghai,cancun,default 101 | CONTRACT_VERIFICATION_ALLOWED_VYPER_EVM_VERSIONS=byzantium,constantinople,petersburg,istanbul,berlin,paris,shanghai,cancun,default 102 | # CONTRACT_VERIFICATION_MAX_LIBRARIES=10 103 | CONTRACT_MAX_STRING_LENGTH_WITHOUT_TRIMMING=2040 104 | # CONTRACT_DISABLE_INTERACTION= 105 | # CONTRACT_AUDIT_REPORTS_AIRTABLE_URL= 106 | # CONTRACT_AUDIT_REPORTS_AIRTABLE_API_KEY= 107 | UNCLES_IN_AVERAGE_BLOCK_TIME=false 108 | DISABLE_WEBAPP=false 109 | API_V2_ENABLED=true 110 | API_V1_READ_METHODS_DISABLED=false 111 | API_V1_WRITE_METHODS_DISABLED=false 112 | # API_RATE_LIMIT_DISABLED=true 113 | # API_SENSITIVE_ENDPOINTS_KEY= 114 | API_RATE_LIMIT_TIME_INTERVAL=1s 115 | API_RATE_LIMIT_BY_IP_TIME_INTERVAL=5m 116 | API_RATE_LIMIT=50 117 | API_RATE_LIMIT_BY_KEY=50 118 | API_RATE_LIMIT_BY_WHITELISTED_IP=50 119 | API_RATE_LIMIT_WHITELISTED_IPS= 120 | API_RATE_LIMIT_STATIC_API_KEY= 121 | API_RATE_LIMIT_UI_V2_WITH_TOKEN=5 122 | API_RATE_LIMIT_BY_IP=3000 123 | DISABLE_INDEXER=false 124 | DISABLE_REALTIME_INDEXER=false 125 | DISABLE_CATCHUP_INDEXER=false 126 | INDEXER_DISABLE_ADDRESS_COIN_BALANCE_FETCHER=false 127 | INDEXER_DISABLE_TOKEN_INSTANCE_REALTIME_FETCHER=false 128 | INDEXER_DISABLE_TOKEN_INSTANCE_RETRY_FETCHER=false 129 | INDEXER_DISABLE_TOKEN_INSTANCE_SANITIZE_FETCHER=false 130 | INDEXER_DISABLE_TOKEN_INSTANCE_LEGACY_SANITIZE_FETCHER=false 131 | INDEXER_DISABLE_PENDING_TRANSACTIONS_FETCHER=false 132 | INDEXER_DISABLE_INTERNAL_TRANSACTIONS_FETCHER=false 133 | # INDEXER_DISABLE_CATALOGED_TOKEN_UPDATER_FETCHER= 134 | # INDEXER_DISABLE_BLOCK_REWARD_FETCHER= 135 | # INDEXER_DISABLE_EMPTY_BLOCKS_SANITIZER= 136 | # INDEXER_DISABLE_WITHDRAWALS_FETCHER= 137 | # INDEXER_CATCHUP_BLOCKS_BATCH_SIZE= 138 | # INDEXER_CATCHUP_BLOCKS_CONCURRENCY= 139 | # INDEXER_CATCHUP_BLOCK_INTERVAL= 140 | # INDEXER_EMPTY_BLOCKS_SANITIZER_INTERVAL= 141 | # INDEXER_INTERNAL_TRANSACTIONS_BATCH_SIZE= 142 | # INDEXER_INTERNAL_TRANSACTIONS_CONCURRENCY= 143 | # ETHEREUM_JSONRPC_DEBUG_TRACE_TRANSACTION_TIMEOUT= 144 | # INDEXER_BLOCK_REWARD_BATCH_SIZE= 145 | # INDEXER_BLOCK_REWARD_CONCURRENCY= 146 | # INDEXER_TOKEN_INSTANCE_USE_BASE_URI_RETRY= 147 | # INDEXER_TOKEN_INSTANCE_RETRY_REFETCH_INTERVAL= 148 | # INDEXER_TOKEN_INSTANCE_RETRY_BATCH_SIZE=10 149 | # INDEXER_TOKEN_INSTANCE_RETRY_CONCURRENCY= 150 | # INDEXER_TOKEN_INSTANCE_REALTIME_BATCH_SIZE=1 151 | # INDEXER_TOKEN_INSTANCE_REALTIME_CONCURRENCY= 152 | # INDEXER_TOKEN_INSTANCE_SANITIZE_BATCH_SIZE=10 153 | # INDEXER_TOKEN_INSTANCE_SANITIZE_CONCURRENCY= 154 | # INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_BATCH_SIZE=10 155 | # INDEXER_TOKEN_INSTANCE_LEGACY_SANITIZE_CONCURRENCY=10 156 | # INDEXER_DISABLE_TOKEN_INSTANCE_ERC_1155_SANITIZE_FETCHER=false 157 | # INDEXER_DISABLE_TOKEN_INSTANCE_ERC_721_SANITIZE_FETCHER=false 158 | # INDEXER_TOKEN_INSTANCE_ERC_1155_SANITIZE_CONCURRENCY=2 159 | # INDEXER_TOKEN_INSTANCE_ERC_1155_SANITIZE_BATCH_SIZE=10 160 | # INDEXER_TOKEN_INSTANCE_ERC_721_SANITIZE_CONCURRENCY=2 161 | # INDEXER_TOKEN_INSTANCE_ERC_721_SANITIZE_BATCH_SIZE=10 162 | # INDEXER_TOKEN_INSTANCE_ERC_721_SANITIZE_TOKENS_BATCH_SIZE=100 163 | # TOKEN_INSTANCE_OWNER_MIGRATION_CONCURRENCY=5 164 | # TOKEN_INSTANCE_OWNER_MIGRATION_BATCH_SIZE=50 165 | # INDEXER_COIN_BALANCES_BATCH_SIZE= 166 | # INDEXER_COIN_BALANCES_CONCURRENCY= 167 | # INDEXER_RECEIPTS_BATCH_SIZE= 168 | # INDEXER_RECEIPTS_CONCURRENCY= 169 | # INDEXER_TOKEN_CONCURRENCY= 170 | # INDEXER_TOKEN_BALANCES_BATCH_SIZE= 171 | # INDEXER_TOKEN_BALANCES_CONCURRENCY= 172 | # INDEXER_TX_ACTIONS_ENABLE= 173 | # INDEXER_TX_ACTIONS_MAX_TOKEN_CACHE_SIZE= 174 | # INDEXER_TX_ACTIONS_REINDEX_FIRST_BLOCK= 175 | # INDEXER_TX_ACTIONS_REINDEX_LAST_BLOCK= 176 | # INDEXER_TX_ACTIONS_REINDEX_PROTOCOLS= 177 | # INDEXER_TX_ACTIONS_AAVE_V3_POOL_CONTRACT= 178 | # INDEXER_POLYGON_EDGE_L1_RPC= 179 | # INDEXER_POLYGON_EDGE_L1_EXIT_HELPER_CONTRACT= 180 | # INDEXER_POLYGON_EDGE_L1_WITHDRAWALS_START_BLOCK= 181 | # INDEXER_POLYGON_EDGE_L1_STATE_SENDER_CONTRACT= 182 | # INDEXER_POLYGON_EDGE_L1_DEPOSITS_START_BLOCK= 183 | # INDEXER_POLYGON_EDGE_L2_STATE_SENDER_CONTRACT= 184 | # INDEXER_POLYGON_EDGE_L2_WITHDRAWALS_START_BLOCK= 185 | # INDEXER_POLYGON_EDGE_L2_STATE_RECEIVER_CONTRACT= 186 | # INDEXER_POLYGON_EDGE_L2_DEPOSITS_START_BLOCK= 187 | # INDEXER_POLYGON_EDGE_ETH_GET_LOGS_RANGE_SIZE= 188 | # INDEXER_POLYGON_ZKEVM_BATCHES_ENABLED= 189 | # INDEXER_POLYGON_ZKEVM_BATCHES_CHUNK_SIZE= 190 | # INDEXER_POLYGON_ZKEVM_BATCHES_RECHECK_INTERVAL= 191 | # INDEXER_POLYGON_ZKEVM_L1_RPC= 192 | # INDEXER_POLYGON_ZKEVM_L1_BRIDGE_START_BLOCK= 193 | # INDEXER_POLYGON_ZKEVM_L1_BRIDGE_CONTRACT= 194 | # INDEXER_POLYGON_ZKEVM_L1_BRIDGE_NATIVE_SYMBOL= 195 | # INDEXER_POLYGON_ZKEVM_L1_BRIDGE_NATIVE_DECIMALS= 196 | # INDEXER_POLYGON_ZKEVM_L2_BRIDGE_START_BLOCK= 197 | # INDEXER_POLYGON_ZKEVM_L2_BRIDGE_CONTRACT= 198 | # INDEXER_ZKSYNC_BATCHES_ENABLED= 199 | # INDEXER_ZKSYNC_BATCHES_CHUNK_SIZE= 200 | # INDEXER_ZKSYNC_NEW_BATCHES_MAX_RANGE= 201 | # INDEXER_ZKSYNC_NEW_BATCHES_RECHECK_INTERVAL= 202 | # INDEXER_ZKSYNC_L1_RPC= 203 | # INDEXER_ZKSYNC_BATCHES_STATUS_RECHECK_INTERVAL= 204 | # INDEXER_REALTIME_FETCHER_MAX_GAP= 205 | # INDEXER_FETCHER_INIT_QUERY_LIMIT= 206 | # INDEXER_TOKEN_BALANCES_FETCHER_INIT_QUERY_LIMIT= 207 | # INDEXER_COIN_BALANCES_FETCHER_INIT_QUERY_LIMIT= 208 | # WITHDRAWALS_FIRST_BLOCK= 209 | # INDEXER_OPTIMISM_L1_RPC= 210 | # INDEXER_OPTIMISM_L1_BATCH_START_BLOCK= 211 | # INDEXER_OPTIMISM_L1_BATCH_INBOX= 212 | # INDEXER_OPTIMISM_L1_BATCH_SUBMITTER= 213 | # INDEXER_OPTIMISM_L1_BATCH_BLOCKS_CHUNK_SIZE= 214 | # INDEXER_OPTIMISM_L2_BATCH_GENESIS_BLOCK_NUMBER= 215 | # INDEXER_OPTIMISM_L1_PORTAL_CONTRACT= 216 | # INDEXER_OPTIMISM_L1_OUTPUT_ROOTS_START_BLOCK= 217 | # INDEXER_OPTIMISM_L1_OUTPUT_ORACLE_CONTRACT= 218 | # INDEXER_OPTIMISM_L1_WITHDRAWALS_START_BLOCK= 219 | # INDEXER_OPTIMISM_L2_WITHDRAWALS_START_BLOCK= 220 | # INDEXER_OPTIMISM_L2_MESSAGE_PASSER_CONTRACT= 221 | # INDEXER_OPTIMISM_L1_DEPOSITS_START_BLOCK= 222 | # INDEXER_OPTIMISM_L1_DEPOSITS_BATCH_SIZE= 223 | # ROOTSTOCK_REMASC_ADDRESS= 224 | # ROOTSTOCK_BRIDGE_ADDRESS= 225 | # ROOTSTOCK_LOCKED_BTC_CACHE_PERIOD= 226 | # ROOTSTOCK_LOCKING_CAP= 227 | # INDEXER_DISABLE_ROOTSTOCK_DATA_FETCHER= 228 | # INDEXER_ROOTSTOCK_DATA_FETCHER_INTERVAL= 229 | # INDEXER_ROOTSTOCK_DATA_FETCHER_BATCH_SIZE= 230 | # INDEXER_ROOTSTOCK_DATA_FETCHER_CONCURRENCY= 231 | # INDEXER_ROOTSTOCK_DATA_FETCHER_DB_BATCH_SIZE= 232 | # INDEXER_BEACON_RPC_URL=http://$IP_LOCALHOST:5052 233 | # INDEXER_DISABLE_BEACON_BLOB_FETCHER= 234 | # INDEXER_BEACON_BLOB_FETCHER_SLOT_DURATION=12 235 | # INDEXER_BEACON_BLOB_FETCHER_REFERENCE_SLOT=8000000 236 | # INDEXER_BEACON_BLOB_FETCHER_REFERENCE_TIMESTAMP=1702824023 237 | # INDEXER_BEACON_BLOB_FETCHER_START_BLOCK=19200000 238 | # INDEXER_BEACON_BLOB_FETCHER_END_BLOCK=0 239 | # TOKEN_ID_MIGRATION_FIRST_BLOCK= 240 | # TOKEN_ID_MIGRATION_CONCURRENCY= 241 | # TOKEN_ID_MIGRATION_BATCH_SIZE= 242 | # INDEXER_INTERNAL_TRANSACTIONS_TRACER_TYPE= 243 | # WEBAPP_URL= 244 | # API_URL= 245 | SHOW_ADDRESS_MARKETCAP_PERCENTAGE=true 246 | CHECKSUM_ADDRESS_HASHES=true 247 | CHECKSUM_FUNCTION=eth 248 | DISABLE_EXCHANGE_RATES=true 249 | TXS_STATS_ENABLED=true 250 | SHOW_PRICE_CHART=false 251 | SHOW_PRICE_CHART_LEGEND=false 252 | SHOW_TXS_CHART=true 253 | TXS_HISTORIAN_INIT_LAG=0 254 | TXS_STATS_DAYS_TO_COMPILE_AT_INIT=10 255 | COIN_BALANCE_HISTORY_DAYS=90 256 | APPS_MENU=true 257 | EXTERNAL_APPS=[] 258 | # GAS_PRICE= 259 | # GAS_PRICE_ORACLE_CACHE_PERIOD= 260 | # GAS_PRICE_ORACLE_SIMPLE_TRANSACTION_GAS= 261 | # GAS_PRICE_ORACLE_NUM_OF_BLOCKS= 262 | # GAS_PRICE_ORACLE_SAFELOW_PERCENTILE= 263 | # GAS_PRICE_ORACLE_AVERAGE_PERCENTILE= 264 | # GAS_PRICE_ORACLE_FAST_PERCENTILE= 265 | # GAS_PRICE_ORACLE_SAFELOW_TIME_COEFFICIENT= 266 | # GAS_PRICE_ORACLE_AVERAGE_TIME_COEFFICIENT= 267 | # GAS_PRICE_ORACLE_FAST_TIME_COEFFICIENT= 268 | # RESTRICTED_LIST= 269 | # RESTRICTED_LIST_KEY= 270 | SHOW_MAINTENANCE_ALERT=false 271 | MAINTENANCE_ALERT_MESSAGE= 272 | CHAIN_ID= 273 | MAX_SIZE_UNLESS_HIDE_ARRAY=50 274 | HIDE_BLOCK_MINER=false 275 | DISPLAY_TOKEN_ICONS=false 276 | RE_CAPTCHA_SECRET_KEY= 277 | RE_CAPTCHA_CLIENT_KEY= 278 | RE_CAPTCHA_V3_SECRET_KEY= 279 | RE_CAPTCHA_V3_CLIENT_KEY= 280 | RE_CAPTCHA_DISABLED=false 281 | JSON_RPC= 282 | # API_RATE_LIMIT_HAMMER_REDIS_URL=redis://redis-db:6379/1 283 | # API_RATE_LIMIT_IS_BLOCKSCOUT_BEHIND_PROXY=false 284 | API_RATE_LIMIT_UI_V2_TOKEN_TTL_IN_SECONDS=18000 285 | FETCH_REWARDS_WAY=trace_block 286 | MICROSERVICE_SC_VERIFIER_ENABLED=true 287 | # MICROSERVICE_SC_VERIFIER_URL=http://smart-contract-verifier:8050/ 288 | # MICROSERVICE_SC_VERIFIER_TYPE=sc_verifier 289 | MICROSERVICE_SC_VERIFIER_URL=https://eth-bytecode-db.services.blockscout.com/ 290 | MICROSERVICE_SC_VERIFIER_TYPE=eth_bytecode_db 291 | MICROSERVICE_ETH_BYTECODE_DB_INTERVAL_BETWEEN_LOOKUPS=10m 292 | MICROSERVICE_ETH_BYTECODE_DB_MAX_LOOKUPS_CONCURRENCY=10 293 | MICROSERVICE_VISUALIZE_SOL2UML_ENABLED=true 294 | MICROSERVICE_VISUALIZE_SOL2UML_URL=http://visualizer:8050/ 295 | MICROSERVICE_SIG_PROVIDER_ENABLED=true 296 | MICROSERVICE_SIG_PROVIDER_URL=http://sig-provider:8050/ 297 | # MICROSERVICE_BENS_URL= 298 | # MICROSERVICE_BENS_ENABLED= 299 | #MICROSERVICE_ACCOUNT_ABSTRACTION_ENABLED=true 300 | #MICROSERVICE_ACCOUNT_ABSTRACTION_URL= 301 | DECODE_NOT_A_CONTRACT_CALLS=true 302 | # DATABASE_READ_ONLY_API_URL= 303 | # ACCOUNT_DATABASE_URL= 304 | # ACCOUNT_POOL_SIZE= 305 | # ACCOUNT_AUTH0_DOMAIN= 306 | # ACCOUNT_AUTH0_CLIENT_ID= 307 | # ACCOUNT_AUTH0_CLIENT_SECRET= 308 | # ACCOUNT_PUBLIC_TAGS_AIRTABLE_URL= 309 | # ACCOUNT_PUBLIC_TAGS_AIRTABLE_API_KEY= 310 | # ACCOUNT_SENDGRID_API_KEY= 311 | # ACCOUNT_SENDGRID_SENDER= 312 | # ACCOUNT_SENDGRID_TEMPLATE= 313 | # ACCOUNT_VERIFICATION_EMAIL_RESEND_INTERVAL= 314 | # ACCOUNT_PRIVATE_TAGS_LIMIT=2000 315 | # ACCOUNT_WATCHLIST_ADDRESSES_LIMIT=15 316 | ACCOUNT_CLOAK_KEY= 317 | ACCOUNT_ENABLED=false 318 | ACCOUNT_REDIS_URL=redis://redis-db:6379 319 | EIP_1559_ELASTICITY_MULTIPLIER=2 320 | # MIXPANEL_TOKEN= 321 | # MIXPANEL_URL= 322 | # AMPLITUDE_API_KEY= 323 | # AMPLITUDE_URL= 324 | # IPFS_GATEWAY_URL= 325 | # ADDRESSES_TABS_COUNTERS_TTL=10m 326 | # DENORMALIZATION_MIGRATION_BATCH_SIZE= 327 | # DENORMALIZATION_MIGRATION_CONCURRENCY= 328 | # TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_BATCH_SIZE= 329 | # TOKEN_TRANSFER_TOKEN_TYPE_MIGRATION_CONCURRENCY= 330 | # SANITIZE_INCORRECT_NFT_BATCH_SIZE= 331 | # SANITIZE_INCORRECT_NFT_CONCURRENCY= 332 | SOURCIFY_INTEGRATION_ENABLED=false 333 | SOURCIFY_SERVER_URL= 334 | SOURCIFY_REPO_URL= 335 | SHOW_TENDERLY_LINK=false 336 | TENDERLY_CHAIN_PATH= 337 | # SOLIDITYSCAN_CHAIN_ID= 338 | # SOLIDITYSCAN_API_TOKEN= 339 | # NOVES_FI_BASE_API_URL= 340 | # NOVES_FI_CHAIN_NAME= 341 | # NOVES_FI_API_TOKEN= 342 | # BRIDGED_TOKENS_ENABLED= 343 | # BRIDGED_TOKENS_ETH_OMNI_BRIDGE_MEDIATOR= 344 | # BRIDGED_TOKENS_BSC_OMNI_BRIDGE_MEDIATOR= 345 | # BRIDGED_TOKENS_POA_OMNI_BRIDGE_MEDIATOR= 346 | # BRIDGED_TOKENS_AMB_BRIDGE_MEDIATORS 347 | # BRIDGED_TOKENS_FOREIGN_JSON_RPC -------------------------------------------------------------------------------- /artefatos/observer/blockscout/docker-compose/envs/common-frontend.env: -------------------------------------------------------------------------------- 1 | NEXT_PUBLIC_API_HOST=$IP_LOCALHOST 2 | NEXT_PUBLIC_API_PROTOCOL=http 3 | NEXT_PUBLIC_STATS_API_HOST=http://$IP_LOCALHOST:8080 4 | NEXT_PUBLIC_NETWORK_NAME=Rede Blockchain Brasil 5 | NEXT_PUBLIC_NETWORK_SHORT_NAME=RBB Net 6 | NEXT_PUBLIC_NETWORK_ID=$CHAINID 7 | NEXT_PUBLIC_NETWORK_CURRENCY_NAME=Ether 8 | NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ETH 9 | NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18 10 | NEXT_PUBLIC_API_BASE_PATH=/ 11 | NEXT_PUBLIC_APP_HOST=$IP_LOCALHOST 12 | NEXT_PUBLIC_APP_PROTOCOL=http 13 | NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs'] 14 | NEXT_PUBLIC_VISUALIZE_API_HOST=http://$IP_LOCALHOST:8081 15 | NEXT_PUBLIC_IS_TESTNET=false 16 | NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws 17 | NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml 18 | NEXT_PUBLIC_HOMEPAGE_PLATE_BACKGROUND=radial-gradient(103.03% 103.03% at 0% 0%, rgb(0, 179, 162) 0%, rgb(136, 191, 186) 100%),#fbf8f8 19 | NEXT_PUBLIC_NETWORK_LOGO=https://i.imgur.com/vuEOQE6.png 20 | NEXT_PUBLIC_NETWORK_ICON=https://i.imgur.com/wVGoegy.png 21 | FAVICON_GENERATOR_API_KEY=935f2e80edd94e4f0f198fb48d3b4101dc9b812d 22 | FAVICON_MASTER_URL=NEXT_PUBLIC_NETWORK_ICON 23 | NEXT_PUBLIC_AD_BANNER_PROVIDER=none 24 | NEXT_PUBLIC_COLOR_THEME_DEFAULT=light 25 | -------------------------------------------------------------------------------- /artefatos/observer/blockscout/docker-compose/envs/common-smart-contract-verifier.env: -------------------------------------------------------------------------------- 1 | # Those are examples of existing configuration variables and their default values. 2 | # When uncommented, they would overwrite corresponding values from `base.toml` 3 | # configuration file. 4 | 5 | SMART_CONTRACT_VERIFIER__SERVER__HTTP__ENABLED=true 6 | SMART_CONTRACT_VERIFIER__SERVER__HTTP__ADDR=0.0.0.0:8050 7 | SMART_CONTRACT_VERIFIER__SERVER__HTTP__MAX_BODY_SIZE=2097152 8 | 9 | SMART_CONTRACT_VERIFIER__SERVER__GRPC__ENABLED=false 10 | SMART_CONTRACT_VERIFIER__SERVER__GRPC__ADDR=0.0.0.0:8051 11 | 12 | SMART_CONTRACT_VERIFIER__SOLIDITY__ENABLED=true 13 | SMART_CONTRACT_VERIFIER__SOLIDITY__COMPILERS_DIR=/tmp/solidity-compilers 14 | SMART_CONTRACT_VERIFIER__SOLIDITY__REFRESH_VERSIONS_SCHEDULE=0 0 * * * * * 15 | 16 | # It depends on the OS you are running the service on 17 | SMART_CONTRACT_VERIFIER__SOLIDITY__FETCHER__LIST__LIST_URL=https://solc-bin.ethereum.org/linux-amd64/list.json 18 | #SMART_CONTRACT_VERIFIER__SOLIDITY__FETCHER__LIST__LIST_URL=https://solc-bin.ethereum.org/macosx-amd64/list.json 19 | #SMART_CONTRACT_VERIFIER__SOLIDITY__FETCHER__LIST__LIST_URL=https://solc-bin.ethereum.org/windows-amd64/list.json 20 | 21 | SMART_CONTRACT_VERIFIER__VYPER__ENABLED=true 22 | SMART_CONTRACT_VERIFIER__VYPER__COMPILERS_DIR=/tmp/vyper-compilers 23 | SMART_CONTRACT_VERIFIER__VYPER__REFRESH_VERSIONS_SCHEDULE=0 0 * * * * * 24 | 25 | # It depends on the OS you are running the service on 26 | SMART_CONTRACT_VERIFIER__VYPER__FETCHER__LIST__LIST_URL=https://raw.githubusercontent.com/blockscout/solc-bin/main/vyper.list.json 27 | #SMART_CONTRACT_VERIFIER__VYPER__FETCHER__LIST__LIST_URL=https://raw.githubusercontent.com/blockscout/solc-bin/main/vyper.macos.list.json 28 | 29 | SMART_CONTRACT_VERIFIER__SOURCIFY__ENABLED=true 30 | SMART_CONTRACT_VERIFIER__SOURCIFY__API_URL=https://sourcify.dev/server/ 31 | SMART_CONTRACT_VERIFIER__SOURCIFY__VERIFICATION_ATTEMPTS=3 32 | SMART_CONTRACT_VERIFIER__SOURCIFY__REQUEST_TIMEOUT=10 33 | 34 | SMART_CONTRACT_VERIFIER__METRICS__ENABLED=false 35 | SMART_CONTRACT_VERIFIER__METRICS__ADDR=0.0.0.0:6060 36 | SMART_CONTRACT_VERIFIER__METRICS__ROUTE=/metrics 37 | 38 | SMART_CONTRACT_VERIFIER__JAEGER__ENABLED=false 39 | SMART_CONTRACT_VERIFIER__JAEGER__AGENT_ENDPOINT=localhost:6831 40 | -------------------------------------------------------------------------------- /artefatos/observer/blockscout/docker-compose/envs/common-stats.env: -------------------------------------------------------------------------------- 1 | # Those are examples of existing configuration variables and their default values. 2 | # When uncommented, they would overwrite corresponding values from `base.toml` 3 | # configuration file. 4 | 5 | STATS__SERVER__HTTP__ENABLED=true 6 | STATS__SERVER__HTTP__ADDR=0.0.0.0:8050 7 | STATS__SERVER__HTTP__MAX_BODY_SIZE=2097152 8 | 9 | STATS__SERVER__GRPC__ENABLED=false 10 | STATS__SERVER__GRPC__ADDR=0.0.0.0:8051 11 | 12 | STATS__DB_URL= 13 | STATS__BLOCKSCOUT_DB_URL= 14 | STATS__CREATE_DATABASE=false 15 | STATS__RUN_MIGRATIONS=false 16 | STATS__DEFAULT_SCHEDULE=0 0 1 * * * * 17 | STATS__FORCE_UPDATE_ON_START=false 18 | 19 | STATS__METRICS__ENABLED=false 20 | STATS__METRICS__ADDR=0.0.0.0:6060 21 | STATS__METRICS__ROUTE=/metrics 22 | 23 | STATS__JAEGER__ENABLED=false 24 | STATS__JAEGER__AGENT_ENDPOINT=localhost:6831 25 | 26 | STATS__TRACING__ENABLED=true 27 | STATS__TRACING__FORMAT=default 28 | -------------------------------------------------------------------------------- /artefatos/observer/blockscout/docker-compose/envs/common-visualizer.env: -------------------------------------------------------------------------------- 1 | VISUALIZER__SERVER__GRPC__ENABLED=false 2 | -------------------------------------------------------------------------------- /artefatos/observer/genesis.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "chainId": 12120014, 4 | "constantinopleFixBlock": 0, 5 | "berlinBlock": 0, 6 | "contractSizeLimit": 2147483647, 7 | "qbft": { 8 | "blockperiodseconds": 4, 9 | "epochlength": 30000, 10 | "requesttimeoutseconds": 8 11 | }, 12 | "discovery": { 13 | "bootnodes": [ 14 | "enode://3fc63306a2df0b19196395dcb117af3b52f4d9b5533f8f77772baf9cab0e7f8a06e8b8191bc5ff15408dda0955ad1556359e67f04a63ff27d7fa5e60aa805815@rbb-observer-boot01.bndes.gov.br:60002", 15 | "enode://b0bfb6437118f89fa3e093f45fe4a747179c766efd882fe3694d71e27df1fdf6024595ae5f3a3f285e8234ec134c306fbd031a98107d4b1bfac5ed58179430e8@200.198.20.95:60606", 16 | "enode://bf8d93733d707b30f1e09545d0ee3e57cddc697d0fdc9940540d5c4f77ec33bb8ea1cb1eeae8fccddc5b9539147dfa7ff24eb7bd82932243a77b31f83a8a7b0f@139.82.24.160:30303", 17 | "enode://5dd979ae40077dcd3ca620baeeb2328bde18b3a802e9b515181d5ef7c14b3692fc3a00d4d84ae17819d443f4fcfa13e07aa070c53aa191e7f2e46c587dc449a8@35.198.49.239:30303", 18 | "enode://107fb2f960d429d9e89c2861967b49405c22385a53b50c0d24096a5b20112adf5753264e06b8456f38e211bbc0b95178fb0104bf488cec68918067f971fdc500@161.148.126.69:30303", 19 | "enode://8d52e34fb48a96109eb4d916bd2a0bfad86dc107a8d57f35c50236048857058eba11b7c7438870cf6b5cf7257c765d186e8920d8bf64a0f525a788912657dd20@200.133.56.131:30303" 20 | ] 21 | } 22 | }, 23 | "nonce": "0x0", 24 | "gasLimit": "0xF42400", 25 | "difficulty": "0x1", 26 | "mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365", 27 | "coinbase": "0x0000000000000000000000000000000000000000", 28 | "alloc": { 29 | "0x0000000000000000000000000000000000008888": { 30 | "comment": "Account Ingress smart contract", 31 | "balance": "0", 32 | "code": "608060405234801561001057600080fd5b506004361061009e5760003560e01c8063936421d511610066578063936421d5146101ca578063a43e04d8146102fb578063de8fa43114610341578063e001f8411461035f578063fe9fbb80146103c55761009e565b80630d2020dd146100a357806310d9042e1461011157806311601306146101705780631e7c27cb1461018e5780638aa10435146101ac575b600080fd5b6100cf600480360360208110156100b957600080fd5b8101908080359060200190929190505050610421565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101196104d6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561015c578082015181840152602081019050610141565b505050509050019250505060405180910390f35b61017861052e565b6040518082815260200191505060405180910390f35b610196610534565b6040518082815260200191505060405180910390f35b6101b461053a565b6040518082815260200191505060405180910390f35b6102e1600480360360c08110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291908035906020019064010000000081111561025b57600080fd5b82018360208201111561026d57600080fd5b8035906020019184600183028401116401000000008311171561028f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610544565b604051808215151515815260200191505060405180910390f35b6103276004803603602081101561031157600080fd5b810190808035906020019092919050505061073f565b604051808215151515815260200191505060405180910390f35b610349610a1e565b6040518082815260200191505060405180910390f35b6103ab6004803603604081101561037557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a2b565b604051808215151515815260200191505060405180910390f35b610407600480360360208110156103db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610caf565b604051808215151515815260200191505060405180910390f35b60008060001b821161049b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f6e7472616374206e616d65206d757374206e6f7420626520656d7074792e81525060200191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6060600380548060200260200160405190810160405280929190818152602001828054801561052457602002820191906000526020600020905b815481526020019060010190808311610510575b5050505050905090565b60005481565b60015481565b6000600554905090565b60008073ffffffffffffffffffffffffffffffffffffffff16610568600054610421565b73ffffffffffffffffffffffffffffffffffffffff16141561058d5760019050610735565b600260008054815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663936421d58888888888886040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156106a857808201518184015260208101905061068d565b50505050905090810190601f1680156106d55780820380516001836020036101000a031916815260200191505b5097505050505050505060206040518083038186803b1580156106f757600080fd5b505afa15801561070b573d6000803e3d6000fd5b505050506040513d602081101561072157600080fd5b810190808051906020019092919050505090505b9695505050505050565b60008060001b82116107b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f6e7472616374206e616d65206d757374206e6f7420626520656d7074792e81525060200191505060405180910390fd5b600060038054905011610817576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180610e446047913960600191505060405180910390fd5b61082033610caf565b610875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610e19602b913960400191505060405180910390fd5b6000600460008481526020019081526020016000205490506000811180156108a257506003805490508111155b15610a135760038054905081146109105760006003600160038054905003815481106108ca57fe5b9060005260206000200154905080600360018403815481106108e857fe5b9060005260206000200181905550816004600083815260200190815260200160002081905550505b600380548061091b57fe5b600190038181906000526020600020016000905590556000600460008581526020019081526020016000208190555060006002600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe3d908a1f6d2467f8e7c8198f30125843211345eedb763beb4cdfb7fe728a5af600084604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001915050610a19565b60009150505b919050565b6000600380549050905090565b60008060001b8311610aa5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f6e7472616374206e616d65206d757374206e6f7420626520656d7074792e81525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610e8b6022913960400191505060405180910390fd5b610b3433610caf565b610b89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610e19602b913960400191505060405180910390fd5b600060046000858152602001908152602001600020541415610be8576003839080600181540180825580915050906001820390600052602060002001600090919290919091505560046000858152602001908152602001600020819055505b816002600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe3d908a1f6d2467f8e7c8198f30125843211345eedb763beb4cdfb7fe728a5af8284604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660026000600154815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d235760019050610e13565b60026000600154815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610dd557600080fd5b505afa158015610de9573d6000803e3d6000fd5b505050506040513d6020811015610dff57600080fd5b810190808051906020019092919050505090505b91905056fe4e6f7420617574686f72697a656420746f2075706461746520636f6e74726163742072656769737472792e4d7573742068617665206174206c65617374206f6e65207265676973746572656420636f6e747261637420746f20657865637574652064656c657465206f7065726174696f6e2e436f6e74726163742061646472657373206d757374206e6f74206265207a65726f2ea265627a7a723058207ca1249f31658f67f2a2383d4b63a0499b1efa44c3c2c60d73b2bdd96c412a5d64736f6c63430005090032", 33 | "storage": { 34 | "0x0000000000000000000000000000000000000000000000000000000000000000": "0x72756c6573000000000000000000000000000000000000000000000000000000", 35 | "0x0000000000000000000000000000000000000000000000000000000000000001": "0x61646d696e697374726174696f6e000000000000000000000000000000000000", 36 | "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0f4240" 37 | } 38 | }, 39 | "0x0000000000000000000000000000000000009999": { 40 | "comment": "Node Ingress smart contract", 41 | "balance": "0", 42 | "code": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80634dc3fefc116100715780634dc3fefc1461026e5780638aa104351461029e578063a43e04d8146102bc578063de8fa43114610302578063e001f84114610320578063fe9fbb8014610386576100a9565b80630d2020dd146100ae57806310d9042e1461011c578063116013061461017b5780631e7c27cb146101995780633620b1df146101b7575b600080fd5b6100da600480360360208110156100c457600080fd5b81019080803590602001909291905050506103e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610124610497565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561016757808201518184015260208101905061014c565b505050509050019250505060405180910390f35b6101836104ef565b6040518082815260200191505060405180910390f35b6101a16104f5565b6040518082815260200191505060405180910390f35b61025860048036036101008110156101ce57600080fd5b81019080803590602001909291908035906020019092919080356fffffffffffffffffffffffffffffffff19169060200190929190803561ffff169060200190929190803590602001909291908035906020019092919080356fffffffffffffffffffffffffffffffff19169060200190929190803561ffff1690602001909291905050506104fb565b6040518082815260200191505060405180910390f35b61029c6004803603602081101561028457600080fd5b810190808035151590602001909291905050506106c9565b005b6102a66107bf565b6040518082815260200191505060405180910390f35b6102e8600480360360208110156102d257600080fd5b81019080803590602001909291905050506107c9565b604051808215151515815260200191505060405180910390f35b61030a610aa8565b6040518082815260200191505060405180910390f35b61036c6004803603604081101561033657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ab5565b604051808215151515815260200191505060405180910390f35b6103c86004803603602081101561039c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d39565b604051808215151515815260200191505060405180910390f35b60008060001b821161045c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f6e7472616374206e616d65206d757374206e6f7420626520656d7074792e81525060200191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b606060038054806020026020016040519081016040528092919081815260200182805480156104e557602002820191906000526020600020905b8154815260200190600101908083116104d1575b5050505050905090565b60005481565b60015481565b60008073ffffffffffffffffffffffffffffffffffffffff1661051f6000546103e2565b73ffffffffffffffffffffffffffffffffffffffff161415610566577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b90506106bd565b600260008054815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633620b1df8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b815260040180898152602001888152602001876fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff191681526020018661ffff1661ffff168152602001858152602001848152602001836fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff191681526020018261ffff1661ffff1681526020019850505050505050505060206040518083038186803b15801561067f57600080fd5b505afa158015610693573d6000803e3d6000fd5b505050506040513d60208110156106a957600080fd5b810190808051906020019092919050505090505b98975050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff16600260008054815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610781576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180610ea36033913960400191505060405180910390fd5b7f66120f934b66d52127e448f8e94c2460ea62821335e0dd18e89ed38a4a09b41381604051808215151515815260200191505060405180910390a150565b6000600554905090565b60008060001b8211610843576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f6e7472616374206e616d65206d757374206e6f7420626520656d7074792e81525060200191505060405180910390fd5b6000600380549050116108a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526047815260200180610f016047913960600191505060405180910390fd5b6108aa33610d39565b6108ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610ed6602b913960400191505060405180910390fd5b60006004600084815260200190815260200160002054905060008111801561092c57506003805490508111155b15610a9d57600380549050811461099a57600060036001600380549050038154811061095457fe5b90600052602060002001549050806003600184038154811061097257fe5b9060005260206000200181905550816004600083815260200190815260200160002081905550505b60038054806109a557fe5b600190038181906000526020600020016000905590556000600460008581526020019081526020016000208190555060006002600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe3d908a1f6d2467f8e7c8198f30125843211345eedb763beb4cdfb7fe728a5af600084604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001915050610aa3565b60009150505b919050565b6000600380549050905090565b60008060001b8311610b2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f6e7472616374206e616d65206d757374206e6f7420626520656d7074792e81525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610f486022913960400191505060405180910390fd5b610bbe33610d39565b610c13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610ed6602b913960400191505060405180910390fd5b600060046000858152602001908152602001600020541415610c72576003839080600181540180825580915050906001820390600052602060002001600090919290919091505560046000858152602001908152602001600020819055505b816002600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe3d908a1f6d2467f8e7c8198f30125843211345eedb763beb4cdfb7fe728a5af8284604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660026000600154815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610dad5760019050610e9d565b60026000600154815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e5f57600080fd5b505afa158015610e73573d6000803e3d6000fd5b505050506040513d6020811015610e8957600080fd5b810190808051906020019092919050505090505b91905056fe4f6e6c792052756c657320636f6e74726163742063616e20747269676765722052756c6573206368616e6765206576656e74734e6f7420617574686f72697a656420746f2075706461746520636f6e74726163742072656769737472792e4d7573742068617665206174206c65617374206f6e65207265676973746572656420636f6e747261637420746f20657865637574652064656c657465206f7065726174696f6e2e436f6e74726163742061646472657373206d757374206e6f74206265207a65726f2ea265627a7a723058208b95d097fa0ed2c9b86e5e60d93e89decddcde79ad22475fc542784d78e99aa164736f6c63430005090032", 43 | "storage": { 44 | "0x0000000000000000000000000000000000000000000000000000000000000000": "0x72756c6573000000000000000000000000000000000000000000000000000000", 45 | "0x0000000000000000000000000000000000000000000000000000000000000001": "0x61646d696e697374726174696f6e000000000000000000000000000000000000", 46 | "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0f4240" 47 | } 48 | } 49 | }, 50 | "extraData": "0xf83aa00000000000000000000000000000000000000000000000000000000000000000d5948cbed6ba98fd722a54126edec5f20f1df0c713fcc080c0", 51 | "timestamp": "0x65dca409" 52 | } 53 | -------------------------------------------------------------------------------- /artefatos/observer/rbb-observer: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | show_help() { 4 | echo "Uso: $0 [OPÇÃO]" 5 | echo "Se nenhuma OPÇÃO for especificada, instalará apenas o nó observer." 6 | echo "" 7 | echo "Opções:" 8 | echo " install Instala componentes com subopções -o, -c, -b, -oc, ou -ob" 9 | echo " logs Exibe logs com subopções -o, -c, ou -b" 10 | echo " restart Reinicia componentes com subopções -o, -c, ou -b" 11 | echo " remove Desinstala componentes com subopções -o, -c, -b, --all" 12 | echo " -h, --help Mostra esta ajuda e sai." 13 | echo "Para mais ajuda em 'install', 'logs', 'restart', ou 'remove', use '$0 [install|logs|restart|remove] --help'" 14 | } 15 | 16 | # Função para mostrar ajuda para 'install' 17 | show_install_help() { 18 | echo "Uso: $0 install [SUBOPÇÃO]" 19 | echo "" 20 | echo "Subopções para 'install':" 21 | echo " -o Instala somente o observer." 22 | echo " -c Instala somente o Chainlens." 23 | echo " -b Instala somente o Blockscout." 24 | echo " -oc Instala observer + Chainlens como block explorer." 25 | echo " -ob Instala observer + Blockscout como block explorer." 26 | } 27 | 28 | # Função para mostrar ajuda para 'logs', 'restart', 'remove' 29 | show_suboption_help() { 30 | case "$1" in 31 | logs) 32 | echo "Uso: $0 logs [SUBOPÇÃO]" 33 | echo "" 34 | echo "Subopções para 'logs':" 35 | echo " -o Mostra os logs do nó Observer" 36 | echo " -c Mostra os logs do Chainlens" 37 | echo " -b Mostra os logs do Blockscout" 38 | ;; 39 | restart) 40 | echo "Uso: $0 restart [SUBOPÇÃO]" 41 | echo "" 42 | echo "Subopções para 'restart':" 43 | echo " -o Reinicia o nó Observer" 44 | echo " -c Reinicia o Chainlens" 45 | echo " -b Reinicia o Blockscout" 46 | ;; 47 | remove) 48 | echo "Uso: $0 remove [SUBOPÇÃO]" 49 | echo "" 50 | echo "Subopções para 'remove':" 51 | echo " -o Remove o nó Observer" 52 | echo " -c Remove o Chainlens" 53 | echo " -b Remove o Blockscout" 54 | echo " --all Remove todos os componentes" 55 | ;; 56 | esac 57 | echo " --help Mostra esta ajuda" 58 | } 59 | 60 | check_dependencies() { 61 | if ! git --version &> /dev/null; then 62 | echo "git não encontrado. Saindo..." 63 | exit 1 64 | fi 65 | if ! docker --version &> /dev/null; then 66 | echo "Docker não encontrado. Saindo..." 67 | exit 1 68 | fi 69 | 70 | docker_compose_version=$(docker compose version --short) 71 | if [ $? -ne 0 ]; then 72 | echo "Docker Compose não encontrado. Saindo..." 73 | exit 1 74 | elif [[ "$docker_compose_version" == "2.24.7" || "$docker_compose_version" == "2.25.0" || "$docker_compose_version" == "2.26.0" ]]; then 75 | echo "Versão do compose $docker_compose_version não compatível. Saindo..." 76 | exit 1 77 | fi 78 | } 79 | 80 | 81 | asciititle() { 82 | curl -s https://raw.githubusercontent.com/RBBNet/rbb/master/artefatos/observer/asciititle | bash 83 | } 84 | 85 | 86 | install_observer() { 87 | echo 'Iniciando instalação...' 88 | sleep 2 89 | 90 | curl -sL https://github.com/RBBNet/start-network/releases/download/v0.4.1%2Bpermv1/start-network.tar.gz | tar xz 91 | cd start-network 92 | ./rbb-cli node create observer 93 | ./rbb-cli config set nodes.observer.ports=[\"8545:8545\"] 94 | 95 | curl -#L https://raw.githubusercontent.com/RBBNet/rbb/master/artefatos/observer/genesis.json -o .env.configs/genesis.json 96 | 97 | sed -i '/BESU_PERMISSIONS_NODES_CONTRACT_ENABLED/d' docker-compose.yml.hbs 98 | ./rbb-cli config set nodes.observer.environment.BESU_PERMISSIONS_NODES_CONTRACT_ENABLED=false 99 | ./rbb-cli config render-templates 100 | docker compose up -d 101 | if [ $? -ne 0 ]; then 102 | echo "Erro ao subir o observer." 103 | echo -e "Dica: \e[1;33m./rbb-observer -r\e[0m pode ajudar a remover arquivos residuais." 104 | echo "Saindo..." 105 | exit 1 106 | fi 107 | cd .. 108 | } 109 | 110 | install_blockscout() { 111 | echo "Subindo Blockscout..." 112 | sleep 10 113 | export CHAINID=12120014 114 | get_ip 115 | export URL=http://$IP 116 | curl -#SL https://github.com/blockscout/blockscout/archive/refs/tags/v6.1.0-beta.tar.gz | tar xz 117 | mv blockscout-6.1.0-beta blockscout 118 | cd blockscout/docker-compose/ 119 | curl -#LO https://raw.githubusercontent.com/RBBNet/rbb/master/artefatos/observer/blockscout/docker-compose/docker-compose.yml 120 | sed -i "s/\$CHAINID/${CHAINID}/g" docker-compose.yml 121 | cd envs 122 | curl -#L \ 123 | -O https://raw.githubusercontent.com/RBBNet/rbb/master/artefatos/observer/blockscout/docker-compose/envs/common-blockscout.env \ 124 | -O https://raw.githubusercontent.com/RBBNet/rbb/master/artefatos/observer/blockscout/docker-compose/envs/common-frontend.env \ 125 | -O https://raw.githubusercontent.com/RBBNet/rbb/master/artefatos/observer/blockscout/docker-compose/envs/common-smart-contract-verifier.env \ 126 | -O https://raw.githubusercontent.com/RBBNet/rbb/master/artefatos/observer/blockscout/docker-compose/envs/common-stats.env \ 127 | -O https://raw.githubusercontent.com/RBBNet/rbb/master/artefatos/observer/blockscout/docker-compose/envs/common-visualizer.env 128 | sed -i "s/\$IP_LOCALHOST/${IP}/g" * 129 | sed -i "s/\$CHAINID/${CHAINID}/g" * 130 | cd ../proxy 131 | sed -i "s/localhost/${IP}/g" * 132 | cd .. 133 | docker compose up -d 134 | cd ../.. 135 | echo 136 | sleep 10 137 | echo "Block Explorer disponível em $URL" 138 | open_in_browser 139 | } 140 | 141 | install_chainlens() { 142 | echo "Subindo Chainlens..." 143 | sleep 10 144 | get_ip 145 | export PORT=5001 146 | export URL=http://$IP:$PORT 147 | git clone -n https://github.com/web3labs/chainlens-free 148 | cd chainlens-free 149 | git checkout 484e254563948ac147795ee393af6b547ffef02d > /dev/null 2>&1 150 | cd docker-compose 151 | sed -i "s/WS_API_URL=http:\/\//WS_API_URL=ws:\/\//g" docker-compose.yml 152 | case "$(uname -a)" in 153 | *CYGWIN*|*MINGW*|*MSYS*|*Microsoft*|*microsoft*|*WSL*|*wsl*) 154 | NODE_ENDPOINT=http://host.docker.internal:8545 PORT=$PORT docker compose -f docker-compose.yml -f chainlens-extensions/docker-compose-besu.yml up -d 155 | ;; 156 | *) 157 | NODE_ENDPOINT=http://$IP:8545 PORT=$PORT docker compose -f docker-compose.yml -f chainlens-extensions/docker-compose-besu.yml up -d 158 | ;; 159 | esac 160 | cd ../.. 161 | echo 162 | echo "Block Explorer disponível em $URL" 163 | open_in_browser 164 | } 165 | 166 | # Host IP grabber 167 | get_ip() { 168 | case "$(uname -a)" in 169 | *CYGWIN*|*MINGW*|*MSYS*|*Microsoft*|*microsoft*|*WSL*|*wsl*) 170 | export IP=$(hostname -I | awk '{print $1}') 171 | ;; 172 | *Linux*) 173 | export IP=$(hostname -I | awk '{for(i=1;i<=NF;i++) if ($i !~ /^172\./) {print $i; exit}}') 174 | ;; 175 | *Darwin*) 176 | export IP=$(hostname -I | awk '{for(i=1;i<=NF;i++) if ($i !~ /^172\./) {print $i; exit}}') 177 | ;; 178 | esac 179 | } 180 | 181 | open_in_browser() { 182 | case "$(uname -a)" in 183 | *CYGWIN*|*MINGW*|*MSYS*|*Microsoft*|*microsoft*|*WSL*|*wsl*) 184 | cmd.exe /c start "$URL" > /dev/null 2>&1 185 | ;; 186 | *Linux*) 187 | xdg-open "$URL" > /dev/null 2>&1 188 | ;; 189 | *Darwin*) 190 | open "$URL" > /dev/null 2>&1 191 | ;; 192 | esac 193 | } 194 | 195 | 196 | check_if_observer_is_absent() { 197 | if [ ! -d "start-network" ]; then 198 | echo "Observer ausente" 199 | exit 1 200 | fi 201 | } 202 | 203 | check_if_chainlens_is_absent() { 204 | if [ ! -d "chainlens-free" ]; then 205 | echo "Chainlens ausente" 206 | exit 1 207 | fi 208 | } 209 | 210 | check_if_blockscout_is_absent() { 211 | if [ ! -d "blockscout" ]; then 212 | echo "Blockscout ausente" 213 | exit 1 214 | fi 215 | } 216 | 217 | check_if_observer_already_installed() { 218 | if ls | grep -q "start-network"; then 219 | echo -e "Diretório do Observer detectado. Digite \e[1;33m./rbb-observer remove -o\e[0m para remover." 220 | exit 1 221 | fi 222 | } 223 | 224 | check_if_chainlens_already_installed() { 225 | if ls | grep -q "chainlens-free"; then 226 | echo -e "Diretório do Chainlens detectado. Digite \e[1;33m./rbb-observer remove -c\e[0m para remover." 227 | exit 1 228 | fi 229 | } 230 | 231 | check_if_blockscout_already_installed() { 232 | if ls | grep -q "blockscout"; then 233 | echo -e "Diretório do Blockscout detectado. Digite \e[1;33m./rbb-observer remove -b\e[0m para remover." 234 | exit 1 235 | fi 236 | } 237 | 238 | 239 | case "$1" in 240 | -h | --help) 241 | show_help 242 | exit 0 243 | ;; 244 | install) 245 | case "$2" in 246 | --help) 247 | show_install_help 248 | exit 0 249 | ;; 250 | -o) 251 | check_dependencies 252 | check_if_observer_already_installed 253 | asciititle 254 | echo "Instalando apenas nó Observer..." 255 | install_observer 256 | ;; 257 | -c) 258 | check_dependencies 259 | check_if_chainlens_already_installed 260 | asciititle 261 | echo "Instalando apenas o Chainlens..." 262 | install_chainlens 263 | ;; 264 | -b) 265 | check_dependencies 266 | check_if_blockscout_already_installed 267 | asciititle 268 | echo "Instalando apenas o Blockscout..." 269 | install_blockscout 270 | ;; 271 | -oc) 272 | check_dependencies 273 | check_if_observer_already_installed 274 | check_if_chainlens_already_installed 275 | asciititle 276 | echo "Instalando nó Observer + Chainlens..." 277 | install_observer 278 | install_chainlens 279 | ;; 280 | -ob) 281 | check_dependencies 282 | check_if_observer_already_installed 283 | check_if_blockscout_already_installed 284 | asciititle 285 | echo "Instalando nó Observer + Chainlens block-explorer..." 286 | install_observer 287 | install_blockscout 288 | ;; 289 | *) 290 | echo "Subopção inválida para 'install'" 291 | show_suboption_help "install" 292 | exit 0 293 | ;; 294 | esac 295 | ;; 296 | logs) 297 | case "$2" in 298 | --help) 299 | show_suboption_help "logs" 300 | exit 0 301 | ;; 302 | -o) 303 | check_if_observer_is_absent 304 | docker compose -f start-network/docker-compose.yml logs -f 305 | ;; 306 | -c) 307 | check_if_chainlens_is_absent 308 | docker compose -f chainlens-free/docker-compose/docker-compose.yml logs -f 309 | ;; 310 | -b) 311 | check_if_blockscout_is_absent 312 | docker compose -f blockscout/docker-compose/docker-compose.yml logs -f 313 | ;; 314 | *) 315 | if [ -z "$2" ]; then 316 | show_suboption_help "logs" 317 | else 318 | echo "Subopção inválida para 'logs', saindo..." 319 | fi 320 | exit 0 321 | ;; 322 | esac 323 | ;; 324 | restart) 325 | case "$2" in 326 | --help) 327 | show_suboption_help "restart" 328 | exit 0 329 | ;; 330 | -o) 331 | check_if_observer_is_absent 332 | docker compose -f start-network/docker-compose.yml restart 333 | ;; 334 | -c) 335 | check_if_chainlens_is_absent 336 | docker compose -f chainlens-free/docker-compose/docker-compose.yml restart 337 | ;; 338 | -b) 339 | check_if_blockscout_is_absent 340 | docker compose -f blockscout/docker-compose/docker-compose.yml restart 341 | ;; 342 | *) 343 | if [ -z "$2" ]; then 344 | show_suboption_help "restart" 345 | else 346 | echo "Subopção inválida para 'restart', saindo..." 347 | fi 348 | exit 0 349 | ;; 350 | esac 351 | ;; 352 | remove) 353 | case "$2" in 354 | --help) 355 | show_suboption_help "remove" 356 | exit 0 357 | ;; 358 | -o) 359 | check_if_observer_is_absent 360 | echo "Removendo o nó Observer..." 361 | sleep 2 362 | docker compose -f start-network/docker-compose/docker-compose.yml down --remove-orphans > /dev/null 2>&1 363 | sudo rm -rf start-network 364 | echo "Nó Observer removido com sucesso." 365 | ;; 366 | -c) 367 | check_if_chainlens_is_absent 368 | echo "Removendo o Chainlens..." 369 | sleep 2 370 | docker compose -f chainlens-free/docker-compose/docker-compose.yml down --remove-orphans > /dev/null 2>&1 371 | sudo rm -rf chainlens-free 372 | echo "Chainlens removido com sucesso." 373 | ;; 374 | -b) 375 | check_if_blockscout_is_absent 376 | echo "Removendo o Blockscout..." 377 | sleep 2 378 | docker compose -f blockscout/docker-compose/docker-compose.yml down --remove-orphans > /dev/null 2>&1 379 | sudo rm -rf blockscout 380 | echo "Blockscout removido com sucesso." 381 | ;; 382 | --all) 383 | if [[ ! -d "start-network" ]] && [[ ! -d "chainlens-free" ]] && [[ ! -d "blockscout" ]]; then 384 | echo "Nenhuma instância encontrada." 385 | exit 1 386 | fi 387 | echo "Removendo todos os componentes..." 388 | sleep 2 389 | docker compose -f start-network/docker-compose.yml down --remove-orphans 390 | sudo rm -rf start-network > /dev/null 2>&1 391 | docker compose -f chainlens-free/docker-compose/docker-compose.yml down --remove-orphans > /dev/null 2>&1 392 | sudo rm -rf chainlens-free > /dev/null 2>&1 393 | docker compose -f blockscout/docker-compose/docker-compose.yml down --remove-orphans > /dev/null 2>&1 394 | sudo rm -rf blockscout > /dev/null 2>&1 395 | echo "Todos os componentes removidos com sucesso." 396 | ;; 397 | *) 398 | if [ -z "$2" ]; then 399 | show_suboption_help "remove" 400 | else 401 | echo "Subopção inválida para 'remove', saindo..." 402 | fi 403 | exit 0 404 | ;; 405 | esac 406 | ;; 407 | *) 408 | if [ -z "$1" ]; then 409 | show_help 410 | else 411 | echo "Opção inválida, mostrando ajuda..." 412 | sleep 1 413 | show_help 414 | fi 415 | exit 0 416 | ;; 417 | esac 418 | 419 | 420 | echo 'Feito.' 421 | -------------------------------------------------------------------------------- /documentos/ACT - Documento firmado entre BNDES e TCU.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/ACT - Documento firmado entre BNDES e TCU.pdf -------------------------------------------------------------------------------- /documentos/Declaração - Parte Relacionada.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Declaração - Parte Relacionada.doc -------------------------------------------------------------------------------- /documentos/Declaração - Previdencia.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Declaração - Previdencia.doc -------------------------------------------------------------------------------- /documentos/Modelo - Carta Gestor de Incidentes.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Modelo - Carta Gestor de Incidentes.docx -------------------------------------------------------------------------------- /documentos/Modelo - Carta Indicação Comitê Técnico.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Modelo - Carta Indicação Comitê Técnico.docx -------------------------------------------------------------------------------- /documentos/Modelo - Carta Indicação de Representantes.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Modelo - Carta Indicação de Representantes.doc -------------------------------------------------------------------------------- /documentos/Modelo - Termo de Adesão.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Modelo - Termo de Adesão.docx -------------------------------------------------------------------------------- /documentos/Modelo - Termo de Confidencialidade.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Modelo - Termo de Confidencialidade.docx -------------------------------------------------------------------------------- /documentos/Termo_de_Adesao_RBB_Araguaina_tarjado.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Termo_de_Adesao_RBB_Araguaina_tarjado.pdf -------------------------------------------------------------------------------- /documentos/Termo_de_Adesao_RBB_CPQD_tarjado.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Termo_de_Adesao_RBB_CPQD_tarjado.pdf -------------------------------------------------------------------------------- /documentos/Termo_de_Adesao_RBB_Dataprev_tarjado.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Termo_de_Adesao_RBB_Dataprev_tarjado.pdf -------------------------------------------------------------------------------- /documentos/Termo_de_Adesao_RBB_PRODEMGE_tarjado.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Termo_de_Adesao_RBB_PRODEMGE_tarjado.pdf -------------------------------------------------------------------------------- /documentos/Termo_de_Adesao_RBB_PUC-Rio_tarjado.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Termo_de_Adesao_RBB_PUC-Rio_tarjado.pdf -------------------------------------------------------------------------------- /documentos/Termo_de_Adesao_RBB_RNP_tarjado.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Termo_de_Adesao_RBB_RNP_tarjado.pdf -------------------------------------------------------------------------------- /documentos/Termo_de_Adesao_RBB_STC-MA_tarjado.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Termo_de_Adesao_RBB_STC-MA_tarjado.pdf -------------------------------------------------------------------------------- /documentos/Termo_de_Adesao_RBB_Serpro_tarjado.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/documentos/Termo_de_Adesao_RBB_Serpro_tarjado.pdf -------------------------------------------------------------------------------- /governanca/README.md: -------------------------------------------------------------------------------- 1 | # Governança da RBB 2 | 3 | A partir da assinatura do Acordo de Cooperação entre o BNDES e o TCU no dia 12/04/2022 (além do cumprimento de alguns requisitos formais), foram iniciadas as reuniões formais da Governança da RBB. Inicialmente, estas incluíam apenas o BNDES e o TCU, que são os Partícipes Patronos. A partir do exame documental e formalização das adesões dos Partícipes Aderentes, estes passam a participar das reuniões de Governança da RBB. No momento, os Partícipes da RBB (e os modos de participação) são os seguintes: 4 | - Partícipes Patronos: 5 | - BNDES 6 | - TCU 7 | - Partícipes Aderentes Associados: 8 | - CPQD 9 | - Dataprev 10 | - IBICT 11 | - Prodemge 12 | - RNP 13 | - Serpro 14 | - SGD 15 | - Partícipes Aderentes Parceiros: 16 | - CGE-PA 17 | - FENASBAC 18 | - Município de Araguaína 19 | - PUC-RJ 20 | - Secretaria de Transparência e Controle do Estado do Maranhão 21 | - TCE-SP 22 | 23 | Na terceira reunião da Governança da RBB, já com a participações de TCU, BNDES, Dataprev, CPQD e RNP, foi aprovado o Regulamento da RBB ([link para a ata com o Regulamento](reunioes_comite_executivo/2022-11-29_reuniao/2022-11-29-Ata-Reuni%C3%A3o-Governan%C3%A7a-RBB-Assinada.pdf)). O Regulamento dividiu a governança em dois comitês: o Comitê Executivo e o Comitê Técnico, definidos da seguinte forma: 24 | 25 | - **Comitê Executivo**, que é responsável por: 26 | - Desenvolver e atualizar o Regulamento da RBB; 27 | - Decidir sobre aceitação de novos participantes; 28 | - Definir critérios para aceitação de casos de uso a serem suportados pela RBB; 29 | - Definir critérios para aceitação de usuários na RBB; 30 | - Analisar e definir esforços necessários para a melhor operação e evolução da RBB. 31 | 32 | - **Comitê Técnico**, que é responsável por: 33 | - Acompanhar, revisar e avaliar o funcionamento da RBB; 34 | - Propor ao Comitê de Governança ajustes, alterações ou iniciativas de inovação nos processos ou nos componentes técnicos da RBB; 35 | - Apoiar o Comitê de Governança no acompanhamento de projetos e iniciativas em andamento; 36 | - Apoiar o Comitê de Governança com levantamento e análises de dados demandados para tomada de decisões. 37 | 38 | Você pode acompanhar as atas das reuniões e outros detalhes de ambos os comitês: [Comitê Executivo](reunioes_comite_executivo/README.md) e [Comitê Técnico](reunioes_comite_tecnico/README.md). 39 | 40 | Na reunião do Comitê Executivo do dia 14/12/2003, foi aprovado o Manual de Operações. Este é um documento que define o protocolo necessário entre os Partícipes para viabilizar uma operação da rede de forma conjunta e descentralizada. Segue a ([ata com o Manual de Operações em anexo](reunioes_comite_executivo/2023-12-14_reuniao/2023-12-14-RBB-Ata-Reuni%C3%A3o-Comit%C3%AA-Executivo_assinada.pdf)). 41 | 42 | -------------------------------------------------------------------------------- /governanca/indicacoes_gestores_incidentes/participes.md: -------------------------------------------------------------------------------- 1 | # Partícipes da Gestão de incidentes 2 | 3 | **BNDES** 4 | - Gladstone Moises Arantes Jr 5 | - João Alexandre dos Santos Lopes 6 | - André de Carvalho Cerqueira 7 | -------------------------------------------------------------------------------- /governanca/indicacoes_representantes/2022-12-22-Indicação-Representantes-BNDES-CARTA-SUP-ATI-01-2022.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/indicacoes_representantes/2022-12-22-Indicação-Representantes-BNDES-CARTA-SUP-ATI-01-2022.pdf -------------------------------------------------------------------------------- /governanca/indicacoes_representantes/2023-01-03-Indicação-Representante-RNP.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/indicacoes_representantes/2023-01-03-Indicação-Representante-RNP.pdf -------------------------------------------------------------------------------- /governanca/indicacoes_representantes/2023-01-05-Indicação-Representantes-TCU.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/indicacoes_representantes/2023-01-05-Indicação-Representantes-TCU.pdf -------------------------------------------------------------------------------- /governanca/indicacoes_representantes/2023-01-19-Indicação-Representantes-Dataprev.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/indicacoes_representantes/2023-01-19-Indicação-Representantes-Dataprev.pdf -------------------------------------------------------------------------------- /governanca/indicacoes_representantes/2023-02-13-Indicação-Representantes-Prodemge.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/indicacoes_representantes/2023-02-13-Indicação-Representantes-Prodemge.pdf -------------------------------------------------------------------------------- /governanca/indicacoes_representantes/2024-01-09-Prodemge-Alex-e-Rodrigo-Subst-Caleo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/indicacoes_representantes/2024-01-09-Prodemge-Alex-e-Rodrigo-Subst-Caleo.pdf -------------------------------------------------------------------------------- /governanca/indicacoes_representantes/2024-08-07-Indicacao-Representantes-Serpro.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/indicacoes_representantes/2024-08-07-Indicacao-Representantes-Serpro.pdf -------------------------------------------------------------------------------- /governanca/indicacoes_representantes/2024-12-20-Indicacao-Representantes-SGD.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/indicacoes_representantes/2024-12-20-Indicacao-Representantes-SGD.pdf -------------------------------------------------------------------------------- /governanca/indicacoes_representantes/2025-05-05-Indicacao-Representantes-CPQD.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/indicacoes_representantes/2025-05-05-Indicacao-Representantes-CPQD.pdf -------------------------------------------------------------------------------- /governanca/indicacoes_representantes/2025-05-23-Indicacao-Representantes-IBICT.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/indicacoes_representantes/2025-05-23-Indicacao-Representantes-IBICT.pdf -------------------------------------------------------------------------------- /governanca/indicacoes_representantes/participes.md: -------------------------------------------------------------------------------- 1 | # Partícipes do ACT 2 | 3 | **Partícipes Fundadores** 4 | - BNDES 5 | - TCU 6 | 7 | **Partícipes Associados** 8 | - CPQD 9 | - Dataprev 10 | - Prefeitura de Araguaína (Em solicitação) 11 | - Prodemge 12 | - RNP 13 | - Serpro (Em solicitação) 14 | 15 | **Partícipes Parceiros** 16 | - PUC-Rio 17 | - STC-MA - Secretária de Estado de Transparência e Controle do Maranhão 18 | 19 | **Ex-Partícipes** 20 | - Prodest (Instituto de Tecnologia da Informação e Comunicação do Estado do Espírito Santo) 21 | -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/README.md: -------------------------------------------------------------------------------- 1 | # Representantes dos Partícipes no Comitê Executivo da RBB 2 | 3 | **BNDES** 4 | - Fernando Passeri Lavrado 5 | - Gladstone Moises Arantes Junior 6 | - Luciana Giuliani de Oliveira Reis 7 | - Sérgio Marques de Viveiros 8 | 9 | **CGE-PA** 10 | - Gabriel Leandro Dantas 11 | - Rodrigo Kenji Aranha Kanzaki 12 | 13 | **CPQD** 14 | - Fernando Cesar Heredia Marino 15 | - José Reynaldo Formigoni Filho 16 | 17 | **Dataprev** 18 | - Bernado Martins Pina 19 | - Felipe Braga Carneiro Leão 20 | 21 | **IBICT** 22 | - Hugo Valadares Siqueira 23 | - Washington Luís Ribeiro de Carvalho Segundo 24 | - Fábio Castro Gouveia 25 | 26 | **Município de Araguaína** 27 | - Allen Kardec Feitosa Oliveira 28 | - Max Doeel Nunes Guimarães 29 | - Igor Thawan do Nascimento da Silva 30 | - Sérgio Maia Rabelo 31 | 32 | **Prodemge** 33 | - Augusto Nogueira Zadra 34 | - Sândalo Carleto Del’Rio Euzébio e Bessa 35 | 36 | **PUC-Rio** 37 | - Gustavo Robichez de Carvalho 38 | - Rafael Barbosa Nasser 39 | 40 | **RNP** 41 | - Leandro Neumann Ciuffo 42 | - Luiz Eduardo de Souza Coelho (Achei nada) 43 | - Emílio Nakamura (Achei nada) 44 | 45 | **Serpro** 46 | - Guilherme Funchal da Silva 47 | - Jetro Paulo Weber 48 | - Marco Túlio da Silva Lima 49 | 50 | **SGD** 51 | - Hudson Vinícius Mesquita 52 | - Germana Gladys Marques de Almeida 53 | 54 | **STC-MA - Secretária de Estado de Transparência e Controle** 55 | - Nísia Paixão Seguins Louzeiro Seabra 56 | - Ronald Serra Campos 57 | - Steferson Lima Costa Ferreira 58 | 59 | **TCU** 60 | - Eldon Teixeira Coutinho 61 | - Rainério Rodrigues Leite 62 | 63 | # Reuniões do Comitê Executivo realizadas 64 | - 13/03/2025 65 | - [Ata assinada digitalmente](atas/2025-03-13-RBB-Ata-30-CE_assinada.pdf) 66 | - Destaques: 67 | - Indicadores 68 | - Adições ao Plano de Trabalho 69 | - Projeto CPQD 70 | 71 | - 13/02/2025 72 | - [Ata assinada digitalmente](atas/2025-02-13-RBB-Ata-29-CE_assinada.pdf) 73 | - Destaques: 74 | - Proposta de adesão do TCE-SP 75 | - Proposta de adesão da FENASBAC 76 | - Indicadores 77 | - Planejamento 2025 78 | 79 | - 09/01/2025 80 | - [Ata assinada digitalmente](atas/2025-01-09-RBB-Ata-28-CE-Assinada.pdf) 81 | - Destaques: 82 | - Proposta de aplicação do CPQD 83 | - Indicadores. 84 | 85 | - 12/12/2024 86 | - [Ata assinada digitalmente](atas/2024-12-12-RBB-Ata-27-CE-Assinada.pdf) 87 | - Destaques: 88 | - Adesão SGD 89 | - Aplicação do SERPRO 90 | - Ajustes na governança. 91 | 92 | - 14/11/2024 93 | - [Ata assinada digitalmente](atas/2024-11-14-RBB-Ata-Reuniao-26-Comite-Executivo-Assinada.pdf) 94 | - Destaques: 95 | - Adesões 96 | - Plano de trabalho 97 | - Tratamento temporário de propostas de *startups*. 98 | - 10/10/2024 99 | - [Ata assinada digitalmente](atas/2024-10-10-RBB-Ata-Reuniao-25-Comite-Executivo-Assinada.pdf) 100 | - Destaques: 101 | - Relatos sobre processos de adesão 102 | - Maturação do piloto 103 | - Alinhamento com ANPD 104 | - Governança da RBB (CPQD) 105 | - 12/09/2024 106 | - [Ata assinada digitalmente](atas/2024-09-12-RBB-Ata-Reuniao-24-Comite-Executivo-Assinada.pdf) 107 | - Destaques: 108 | - Pedidos de adesão 109 | - SGD 110 | - IBICT 111 | - Relato de conversa com a FGV 112 | - Apresentação Starlight / EY 113 | - Governança de aplicações 114 | - 22/08/2024 115 | - [Ata assinada digitalmente](atas/2024-08-22-RBB-Ata-Reuniao-23-Comite-Executivo-Assinada.pdf) 116 | - Destaques: 117 | - Follow up sobre aplicações 118 | - Apresentações 119 | - Interoperabilidade do DREX (Bacen/UFRJ) 120 | - Framework de Governança de Blockchain (CPQD) 121 | - Propostas para melhoria da Gestão de Incidentes 122 | - Relatos 123 | - 08/08/2024 124 | - [Ata assinada digitalmente](atas/2024-08-08-RBB-Ata-Reuniao%2022%20ass.pdf) 125 | - Destaques: 126 | - Sem destaques. 127 | - 11/07/2024 128 | - [Ata assinada digitalmente](atas/2024-07-11-RBB-Ata-Reuniao%2021%20ass.pdf) 129 | - Destaques: 130 | - Agenda de lançamento da RBB. 131 | - Apresentação da ferramenta SOL. 132 | - Considerações sobre LGPD. 133 | - 13/06/2024 134 | - [Ata assinada digitalmente](atas/2024-06-13-RBB-Ata-Reuniao%2020%20ass.pdf) 135 | - Destaques: 136 | - Solicitação de adesão do SERPRO à RBB. 137 | - Treinamento Blockchain para RBB. 138 | - 09/05/2024 139 | - [Ata assinada digitalmente](atas/2024-05-09-RBB-Ata-Reuniao%2019%20ass.pdf) 140 | - Destaques: 141 | - Alinhamento com ANPD (Autoridade Nacional de Proteção de Dados). 142 | - Planejamento de próximos passos do piloto. 143 | - 11/04/2024 144 | - [Ata assinada digitalmente](atas/2024-04-11-RBB-Ata-Reuniao%2018%20ass.pdf) 145 | - Destaques: 146 | - Treinamento dos Gestores de Incidentes. 147 | - Comunicação e eventos de lançamento da Rede. 148 | - 21/03/2024 149 | - [Ata assinada digitalmente](atas/2024-03-21-RBB-Ata-Reuniao%2017%20ass.pdf) 150 | - Destaques: 151 | - Gestores de incidentes. 152 | - Adesão do Município de Araguaína. 153 | - 22/02/2024 154 | - [Ata assinada digitalmente](atas/2024-02-22-RBB-Ata-Reuniao%2016%20ass.pdf) 155 | - Destaques: 156 | - Gestores de incidentes. 157 | - 14/12/2023 158 | - [Ata assinada digitalmente](atas/2023-12-14-RBB-Ata-Reuni%C3%A3o-Comit%C3%AA-Executivo_v3_assinada.pdf) 159 | - Destaques: 160 | - Manual de Operações. 161 | - Cronograma do Piloto. 162 | - 16/11/2023 163 | - [Ata assinada digitalmente](atas/2023-11-16-RBB-Ata-Reuni%C3%A3o-Comit%C3%AA-Executivo_v1-assinado.pdf) 164 | - Destaques: 165 | - Manual de Operações. 166 | - Proposta sobre o Piloto. 167 | - 11/09/2023 168 | - Não consta Ata assinada digitalmente 169 | - Destaques: 170 | - Reset do Laboratório. 171 | - Andamento de tarefas para o Piloto. 172 | - 24/08/2023 173 | - Não consta Ata assinada digitalmente 174 | - Destaques: 175 | - Replanejamento para o Piloto. 176 | - Planejamento para o Evento BlockchainGov. 177 | - 03/08/2023 178 | - Não consta Ata assinada digitalmente 179 | - Destaques: 180 | - Relato das iniciativas técnicas. 181 | - Conclusão das etapas prévias ao reset de laboratório. 182 | - 13/07/2023 183 | - Não consta Ata assinada digitalmente 184 | - Destaques: 185 | - Relato das iniciativas técnicas. 186 | - Conclusões das metas estabelecidas para sprint. 187 | - 23/06/2023 188 | - Não consta Ata assinada digitalmente 189 | - Destaques: 190 | - Avanço significativo de todas as organizações. 191 | - Apresentação PUC-Rio. 192 | - 01/06/2023 193 | - [Ata assinada digitalmente](atas/2023-06-01-RBB-Ata-Reuni%C3%A3o-Comit%C3%AA-Executivo-Assinada.pdf) 194 | - Destaques: 195 | - Adesão da Secretaria de Estado de Transparência e Controle do Maranhão. 196 | - 27/04/2023 197 | - [Ata assinada digitalmente](atas/2023-04-27-RBB-Ata-Reuni%C3%A3o-Comit%C3%AA-Executivo-Assinada.pdf) 198 | - Destaques: 199 | - Relatos sobre as frentes em andamento no Comitê Técnico. 200 | - Relato sobre contato com representante do Comitê Paralímpico Brasileiro. 201 | - Adesão da PUC-RJ ao Acordo da RBB. 202 | - Planejamento para o piloto. 203 | - 23/03/2023 204 | - [Ata assinada digitalmente](atas/2023-03-23-RBB-Ata-Reuni%C3%A3o-Comit%C3%AA-Executivo-Assinada.pdf) 205 | - Sem destaques. 206 | - 16/02/2023 207 | - [Ata assinada digitalmente](atas/2023-02-16-RBB-Ata-Reuni%C3%A3o-Comit%C3%AA-Executivo-Assinada.pdf) 208 | - Destaques: 209 | - Relatos sobre as iniciativas em andamento no Comitê Técnico. 210 | - Ajustes no Regulamento para aceitação de assinaturas gov.br. 211 | - 19/01/2023 212 | - [Ata assinada digitalmente](atas/2023-01-19-RBB-Ata-Reuni%C3%A3o-Comit%C3%AA-Executivo-Assinada.pdf) 213 | - Destaques: 214 | - Aprovada adesão da Prodemge ao Acordo da RBB. 215 | - Aprovado uso de assinaturas gov.br para documentos recebidos ou produzidos pela RBB. 216 | - 29/11/2022 217 | - [Ata assinada digitalmente](atas/2022-11-29-Ata-Reuni%C3%A3o-Governan%C3%A7a-RBB-Assinada.pdf) 218 | - Destaques: 219 | - Aprovado o Regulamento da RBB. 220 | - Os Comitês criados pelo Regulamento (Comitê Executivo e Comitê Técnico) iniciam suas operações tendo o BNDES como coordenador. 221 | - Será produzido um modelo de carta para designação dos representantes no Comitê Técnico. 222 | - Outros temas foram debatidos. 223 | - 01/11/2022 224 | - [Ata assinada digitalmente](atas/2022-11-01-Ata-Reuni%C3%A3o-Governan%C3%A7a-RBB-Assinada.pdf) 225 | - Destaques: 226 | - Aceitas as adesões de Prodest, Dataprev, CPqD e RNP. 227 | - Criação de Discord do projeto: https://discord.gg/sHSygnAUVk. 228 | - 22/08/2022 229 | - [Ata assinada digitalmente](atas/2022-08-22-Ata-Reuni%C3%A3o-Governan%C3%A7a-RBB-Assinada.pdf) 230 | - Ouvintes presentes: 231 | - Eldon Teixeira Coutinho - TCU. 232 | -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2022-08-22-Ata-Reunião-Governança-RBB-Assinado.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2022-08-22-Ata-Reunião-Governança-RBB-Assinado.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2022-11-01-Ata-Reunião-Governança-RBB-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2022-11-01-Ata-Reunião-Governança-RBB-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2022-11-29-Ata-Reunião-Governança-RBB-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2022-11-29-Ata-Reunião-Governança-RBB-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2023-01-19-RBB-Ata-Reuniao-Comite-Executivo-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2023-01-19-RBB-Ata-Reuniao-Comite-Executivo-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2023-02-16-RBB-Ata-Reunião-Comitê-Executivo-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2023-02-16-RBB-Ata-Reunião-Comitê-Executivo-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2023-03-23-RBB-Ata-Reunião-Comitê-Executivo-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2023-03-23-RBB-Ata-Reunião-Comitê-Executivo-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2023-04-27-RBB-Ata-Reunião-Comitê-Executivo-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2023-04-27-RBB-Ata-Reunião-Comitê-Executivo-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2023-06-01-RBB-Ata-Reunião-Comitê-Executivo-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2023-06-01-RBB-Ata-Reunião-Comitê-Executivo-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2023-11-16-RBB-Ata-Reunião-Comitê-Executivo_v1-assinado.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2023-11-16-RBB-Ata-Reunião-Comitê-Executivo_v1-assinado.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2023-12-14-RBB-Ata-Reunião-Comitê-Executivo_v3_assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2023-12-14-RBB-Ata-Reunião-Comitê-Executivo_v3_assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2024-02-22-RBB-Ata-Reuniao 16 ass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2024-02-22-RBB-Ata-Reuniao 16 ass.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2024-03-21-RBB-Ata-Reuniao 17 ass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2024-03-21-RBB-Ata-Reuniao 17 ass.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2024-04-11-RBB-Ata-Reuniao 18 ass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2024-04-11-RBB-Ata-Reuniao 18 ass.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2024-05-09-RBB-Ata-Reuniao 19 ass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2024-05-09-RBB-Ata-Reuniao 19 ass.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2024-06-13-RBB-Ata-Reuniao 20 ass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2024-06-13-RBB-Ata-Reuniao 20 ass.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2024-07-11-RBB-Ata-Reuniao 21 ass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2024-07-11-RBB-Ata-Reuniao 21 ass.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2024-08-08-RBB-Ata-Reuniao 22 ass.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2024-08-08-RBB-Ata-Reuniao 22 ass.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2024-08-22-RBB-Ata-Reuniao-23-Comite-Executivo-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2024-08-22-RBB-Ata-Reuniao-23-Comite-Executivo-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2024-09-12-RBB-Ata-Reuniao-24-Comite-Executivo-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2024-09-12-RBB-Ata-Reuniao-24-Comite-Executivo-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2024-10-10-RBB-Ata-Reuniao-25-Comite-Executivo-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2024-10-10-RBB-Ata-Reuniao-25-Comite-Executivo-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2024-11-14-RBB-Ata-Reuniao-26-Comite-Executivo-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2024-11-14-RBB-Ata-Reuniao-26-Comite-Executivo-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2024-12-12-RBB-Ata-27-CE-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2024-12-12-RBB-Ata-27-CE-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2025-01-09-RBB-Ata-28-CE-Assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2025-01-09-RBB-Ata-28-CE-Assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2025-02-13-RBB-Ata-29-CE_assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2025-02-13-RBB-Ata-29-CE_assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/2025-03-13-RBB-Ata-30-CE_assinada.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/governanca/reunioes_comite_executivo/atas/2025-03-13-RBB-Ata-30-CE_assinada.pdf -------------------------------------------------------------------------------- /governanca/reunioes_comite_executivo/atas/README.md: -------------------------------------------------------------------------------- 1 | Contém as atas assinadas das reuniões do Comitê Executivo da RBB 2 | -------------------------------------------------------------------------------- /governanca/reunioes_comite_tecnico/README.md: -------------------------------------------------------------------------------- 1 | # Representantes dos Partícipes no Comitê Técnico da RBB 2 | 3 | - BNDES 4 | - Gladstone Moises Arantes Junior - Titular e Coordenador (conforme [ata](../reunioes_comite_executivo/2022-11-29_reuniao/2022-11-29-Ata-Reuni%C3%A3o-Governan%C3%A7a-RBB-Assinada.pdf)). 5 | - Sérgio Marques de Viveiros - Suplente. 6 | - [Carta de indicação ao Comitê Técnico](../indicacoes_representantes/2022-12-22-Indica%C3%A7%C3%A3o-Representantes-BNDES-CARTA-SUP-ATI-01-2022.pdf). 7 | - CPQD 8 | - Fernanda Corsini Jordão Medeiros 9 | - Jeffson Celeiro Sousa 10 | - Rayan Gustavo Oliveira Jucá Lima 11 | - [Carta de indicação ao Comitê Técnico](../indicacoes_representantes/2025-05-05-Indicacao-Representantes-CPQD.pdf). 12 | - Dataprev 13 | - Claudemir Custódio Brum - Titular. 14 | - Julio Cesar Faria Cornacchia - Suplente 15 | - Danilo Gonçalves Lyra - Suplente. 16 | - [Carta de indicação ao Comitê Técnico](../indicacoes_representantes/2023-01-19-Indica%C3%A7%C3%A3o-Representantes-Dataprev.pdf). 17 | - IBICT 18 | - Nicolas Ramos da Cruz 19 | - José Edilson Filho 20 | - [Carta de indicação ao Comitê Técnico](../indicacoes_representantes/2025-05-23-Indicacao-Representantes-IBICT.pdf). 21 | - Prodemge 22 | - Alexandre Sidney Ferreira - Titular. 23 | - Rodrigo Fernandes dos Santos - Suplente. 24 | - [Carta de indicação ao Comitê Técnico](../indicacoes_representantes/2024-01-09-Prodemge-Alex-e-Rodrigo-Subst-Caleo.pdf). 25 | - RNP 26 | - Luiz Eduardo Folly de Campos - Titular. 27 | - [Carta de indicação ao Comitê Técnico](../indicacoes_representantes/2023-01-03-Indica%C3%A7%C3%A3o-Representante-RNP.pdf). 28 | - SERPRO 29 | - Marcel Brunetto 30 | - Leonardo Camilo Oliveira Aquino 31 | - [Carta de indicação ao Comitê Técnico](../indicacoes_representantes/2024-08-07-Indicacao-Representantes-Serpro.pdf). 32 | - SGD 33 | - Germana Gladys Marques de Almeida 34 | - Pollyanna Carla Oliveira Dias 35 | - Rafael Abraão Rodrigues Lago 36 | - [Carta de indicação ao Comitê Técnico](../indicacoes_representantes/2024-12-20-Indicacao-Representantes-SGD.pdf). 37 | - TCU 38 | - Eldon Teixeira Coutinho - Titular. 39 | - Valter Rogerio Messias - Suplente. 40 | - [Ofício de indicação ao Comitê Técnico](../indicacoes_representantes/2023-01-05-Indica%C3%A7%C3%A3o-Representantes-TCU.pdf). 41 | 42 | # Indicação de Representante para o Comitê Técnico da RBB 43 | 44 | Este é o [modelo de carta](../../documentos/Modelo%20-%20Carta%20Indica%C3%A7%C3%A3o%20Comit%C3%AA%20T%C3%A9cnico.docx) para indicação ao Comitê Técnico da RBB. 45 | 46 | # Reuniões do Comitê Técnico realizadas 47 | 48 | - [Reuniões realizadas em 2025](reunioes_2025.md) 49 | - [Reuniões realizadas em 2024](reunioes_2024.md) 50 | - [Reuniões realizadas em 2023](reunioes_2023.md) 51 | -------------------------------------------------------------------------------- /governanca/reunioes_comite_tecnico/reunioes_2023.md: -------------------------------------------------------------------------------- 1 | # Reuniões do Comitê Técnico realizadas em 2023 2 | 3 | - 19/12/2023 4 | - Pauta Proposta: 5 | - Sobre o Cronograma. 6 | - Acompanhamento. 7 | - Permissionamento. 8 | - 12/12/2023 9 | - Pauta Proposta: 10 | - Sobre o Cronograma. 11 | - Acompanhamento. 12 | - Permissionamento. 13 | - 05/12/2023 14 | - Pauta Proposta: 15 | - Cronograma proposto. 16 | - Acompanhamento. 17 | - 28/11/2023 18 | - Pauta Proposta: 19 | - Cronograma proposto. 20 | - Permissionamento. 21 | - 21/11/2023 22 | - Pauta Proposta: 23 | - Decisões do Comitê Executivo. 24 | - Template de Cronograma. 25 | - Pré-condições e considerações. 26 | - Próximos passos. 27 | - 14/11/2023 28 | - Pauta Proposta: 29 | - Andamentos. 30 | - Manual de Operações. 31 | - Propostas para o Comitê Executivo. 32 | - 07/11/2023 33 | - Pauta Proposta: 34 | - Andamentos. 35 | - Comunicação. 36 | - Questões sobre o Permissionamento. 37 | - 31/10/2023 38 | - Pauta Proposta: 39 | - Andamentos. 40 | - ANPD. 41 | - Truffle -> Hardhat. 42 | - Permissionamento. 43 | - 24/10/2023 44 | - Pauta Proposta: 45 | - Andamentos. 46 | - ANPD. 47 | - 17/10/2023 48 | - Pauta Proposta: 49 | - Andamentos. 50 | - Descontinuidade Truffle. 51 | - Próximas reuniões. 52 | - 10/10/2023 53 | - Pauta Proposta: 54 | - Andamentos. 55 | - Versionamento. 56 | - Próximas reuniões. 57 | - 03/10/2023 58 | - Pauta Proposta: 59 | - Andamentos. 60 | - Prazos 61 | - Próximas reuniões. 62 | - 26/09/2023 63 | - Pauta Proposta: 64 | - Apresentação HSM. 65 | - Andamentos. 66 | - Autoridade Nacional de Proteção de Dados. 67 | - 19/09/2023 68 | - Pauta Proposta: 69 | - BlockchainGov e Workshop. 70 | - Go/ No Go. 71 | - Próximas reuniões. 72 | - 29/08/2023 73 | - Pauta Proposta: 74 | - Andamento geral. 75 | - Ajuste material sobre a operação da RBB. 76 | - Evento BlockchainGov e Workshop. 77 | - 22/08/2023 78 | - Pauta Proposta: 79 | - Andamento geral. 80 | - Material sobre a operação da RBB. 81 | - Evento BlockchainGov. 82 | - 15/08/2023 83 | - Pauta Proposta: 84 | - Replanejamento para o Piloto. 85 | - 08/08/2023 86 | - Pauta Proposta: 87 | - Reset da rede. 88 | - Próxima Sprint. 89 | - 01/08/2023 90 | - Pauta Proposta: 91 | - Reset da rede. 92 | - Próxima Sprint. 93 | - 25/07/2023 94 | - Pauta Proposta: 95 | - Relato das iniciativas técnicas. 96 | - Próxima Sprint. 97 | - 18/07/2023 98 | - Pauta Proposta: 99 | - Relato das iniciativas técnicas. 100 | - Próxima Sprint. 101 | - 11/07/2023 102 | - Pauta Proposta: 103 | - Relato das iniciativas técnicas. 104 | - Preparação para o Comitê Executivo. 105 | - Próxima Sprint. 106 | - 04/07/2023 107 | - Pauta Proposta: 108 | - Relato das iniciativas técnicas. 109 | - Follow-up da manual de operações. 110 | - 27/06/2023 111 | - Pauta Proposta: 112 | - Relato sobre Blockchain SP. 113 | - Relato das iniciativas técnicas. 114 | - Follow-up da manual de operações. 115 | - 30/05/2023 116 | - Pauta Proposta: 117 | - Reports das iniciativas. 118 | - Infra Básica - BNDES + Dataprev + TCU. 119 | - Monitoração - CPQD + RNP. 120 | - Permissionamento - BNDES. 121 | - Dapps - Prodemge. 122 | - Segurança - RNP. 123 | - Observação - PUC. 124 | - Manual de Operações. 125 | - 09/05/2023 126 | - Pauta Proposta: 127 | - Reports das iniciativas. 128 | - Infra Básica. 129 | - Monitoração. 130 | - Permissionamento. 131 | - Dapps. 132 | - Observação. 133 | - Padrão mínimo para planejamento. 134 | - Sobre casos de uso da RBB no piloto. 135 | - 25/04/2023 136 | - Pauta Proposta: 137 | - Comunicações 138 | - Reports das iniciativas. 139 | - Acompanhamento. 140 | - Infra Básica. 141 | - Monitoração. 142 | - Responsabilização/permissionamento. 143 | - Decisão sobre permissionamento. 144 | - Escopo/prazo para o Comitê Executivo. 145 | - 18/04/2023 146 | - Pauta Proposta: 147 | - Reports das iniciativas. 148 | - Acompanhamento. 149 | - Comunicação. 150 | - Infra Básica. 151 | - Monitoração. 152 | - Responsabilização/permissionamento. 153 | - Controle de uso. 154 | - Planejamento para o piloto. 155 | - 04/04/2023 156 | - Pauta Proposta: 157 | - Reports das iniciativas. 158 | - Acompanhamento. 159 | - Comunicação. 160 | - Infra Básica. 161 | - Monitoração. 162 | - Responsabilização/permissionamento. 163 | - Controle de uso. 164 | - Planejamento para o piloto. 165 | - 28/03/2023 166 | - Pauta Proposta: 167 | - Reports das iniciativas. 168 | - Acompanhamento. 169 | - Comunicação. 170 | - Infra Básica. 171 | - Monitoração. 172 | - Responsabilização/permissionamento. 173 | - **Retorno do Comitê Executivo.** 174 | - Sobre chaves privadas. 175 | - 21/03/2023 176 | - Pauta Proposta: 177 | - Reports das iniciativas. 178 | - Acompanhamento. 179 | - Comunicação. 180 | - Infra Básica. 181 | - Monitoração. 182 | - Responsabilização/permissionamento. 183 | - Prazos no acordo. 184 | - Modelo de negócio. 185 | - 14/03/2023 186 | - Pauta Proposta: 187 | - Reports das iniciativas. 188 | - Acompanhamento. 189 | - Comunicação. 190 | - Infra Básica. 191 | - Monitoração. 192 | - Responsabilização/permissionamento. 193 | - Prazos no acordo. 194 | - 07/03/2023 195 | - Pauta Proposta: 196 | - Reports das iniciativas. 197 | - Acompanhamento. 198 | - Comunicação. 199 | - Infra Básica. 200 | - Monitoração. 201 | - Responsabilização/permissionamento. 202 | - Report para o Comitê Executivo. 203 | - 28/02/2023 204 | - Pauta Proposta: 205 | - Reports das iniciativas. 206 | - Acompanhamento. 207 | - Comunicação. 208 | - Infra Básica. 209 | - Monitoração. 210 | - Responsabilização. 211 | - 14/02/2023 212 | - Pauta Proposta: 213 | - Reports das iniciativas. 214 | - Acompanhamento. 215 | - Comunicação. 216 | - Infra Básica. 217 | - Monitoração. 218 | - Report para o Comitê Executivo. 219 | - 07/02/2023 220 | - Pauta Proposta: 221 | - Reports das iniciativas. 222 | - Report para o Comitê Executivo. 223 | - Comunicação sobre propostas de ajuste na arquitetura da rede. 224 | - Visão sobre processo de subir a rede. 225 | - 31/01/2023 226 | - Pauta Proposta: 227 | - Apresentação/revisão de propostas técnicas para Piloto. 228 | - Monitoração. 229 | - Incidentes, SLA e Problemas. 230 | - Nós observadores. 231 | - Responsabilização. 232 | - Controle de uso. 233 | - Debate sobre segurança das chaves privadas. 234 | - Acompanhamento de iniciativas e report para Comitê Executivo. 235 | - Definição de responsáveis pelas frentes. 236 | - 24/01/2023 237 | - Primeira reunião realizada. 238 | - Pauta Proposta: 239 | - Revisão atribuições Comitê Técnico. 240 | - Apresentação proposta de trabalho para Piloto. 241 | - Periodicidade e duração das reuniões etc. 242 | - Impactos LACChain. 243 | 244 | 245 | -------------------------------------------------------------------------------- /governanca/reunioes_comite_tecnico/reunioes_2024.md: -------------------------------------------------------------------------------- 1 | # Reuniões do Comitê Técnico realizadas em 2024 2 | 3 | - 18/12/2024 4 | - Pauta proposta: 5 | - Sobre adesões 6 | - Ajustes na governança 7 | - Incidentes 8 | - Maturação do piloto 9 | - Estimativa de gas para aplicações 10 | - Apresentação Starlight 11 | - Datas das próximas reuniões 12 | - 11/12/2024 13 | - Pauta proposta: 14 | - Incidentes 15 | - Maturação do piloto 16 | - Ajustes na governança 17 | - Apresentação Starlight 18 | - 04/12/2024 19 | - Pauta proposta: 20 | - Incidentes 21 | - Maturação do piloto 22 | - Ajustes na governança 23 | - Apresentação Starlight 24 | - 27/11/2024 25 | - Pauta proposta: 26 | - Incidentes 27 | - Agenda para Reunião de 04/12 28 | - Maturação do piloto 29 | - Testes de configuração do Prometheus (roteiro Dataprev) 30 | - 13/11/2024 31 | - Pauta proposta: 32 | - Incidentes 33 | - Maturação do piloto 34 | - Testes de configuração do Prometheus (roteiro Dataprev) 35 | - On chain permissioning deprecation 36 | - 06/11/2024 37 | - Pauta proposta: 38 | - Incidentes 39 | - Maturação do piloto 40 | - Apresentação Dataprev 41 | - On chain permissioning deprecation 42 | - 30/10/2024 43 | - Pauta proposta: 44 | - Incidentes 45 | - Maturação do piloto 46 | - Agenda reunião 06/11 47 | - Apresentação Dataprev 48 | - On chain permissioning deprecation 49 | - 23/10/2024 50 | - Pauta proposta: 51 | - Incidentes 52 | - Maturação do piloto 53 | - On chain permissioning deprecation 54 | - 16/10/2024 55 | - Pauta proposta: 56 | - Incidentes 57 | - Maturação do piloto 58 | - Proposta novo nodes.json 59 | - 09/10/2024 60 | - Pauta proposta: 61 | - Incidentes 62 | - Proposta novo nodes.json 63 | - Maturação do piloto 64 | - 02/10/2024 65 | - Pauta proposta: 66 | - Incidentes 67 | - Novos rótulos de incidentes 68 | - Apresentação Dataprev 69 | - Proposta novo nodes.json 70 | - Maturação do piloto 71 | - 25/09/2024 72 | - Pauta proposta: 73 | - Incidentes 74 | - Entradas e saídas de nós 75 | - Maturação do piloto 76 | - Projetos futuros 77 | - 11/09/2024 78 | - Pauta proposta: 79 | - Incidentes 80 | - Entradas e saídas de nós 81 | - Maturação do piloto 82 | - Projetos futuros 83 | - 04/09/2024 84 | - Pauta proposta: 85 | - Incidentes 86 | - Entradas e saídas de nós 87 | - Maturação do piloto 88 | - Projetos futuros 89 | - 28/08/2024 90 | - Pauta proposta: 91 | - Entradas e saídas de nós. 92 | - Proposta de alterações no nodes.json 93 | - Incidentes. 94 | - Maturação do piloto. 95 | - 21/08/2024 96 | - Pauta proposta: 97 | - Entradas e saídas de nós. 98 | - Proposta de alterações no nodes.json 99 | - Incidentes. 100 | - Maturação do piloto. 101 | - 14/08/2024 102 | - Pauta proposta: 103 | - Entradas e saídas de nós. 104 | - Incidentes. 105 | - Maturação do piloto. 106 | - Treinamento. 107 | - Relatório de uso. 108 | - 07/08/2024 109 | - Pauta proposta: 110 | - Entradas e saídas de nós. 111 | - Incidentes. 112 | - Treinamento. 113 | - Planning da maturação do piloto. 114 | - 31/07/2024 115 | - Pauta proposta: 116 | - Entradas e saídas de nós. 117 | - Incidentes. 118 | - Treinamento. 119 | - Planning da maturação do piloto. 120 | - 24/07/2024 121 | - Pauta proposta: 122 | - Entradas e saídas de nós. 123 | - 17/07/2024 124 | - Pauta proposta: 125 | - Propostas sobre incidentes. 126 | - Entradas e saídas de nós. 127 | - Treinamento. 128 | - Planning da maturação do piloto. 129 | - 10/07/2024 130 | - Pauta proposta: 131 | - Acompanhamento. 132 | - Incidentes. 133 | - Planning da maturação do piloto. 134 | - Treinamento. 135 | - 03/07/2024 136 | - Pauta proposta: 137 | - Acompanhamento. 138 | - Incidentes. 139 | - Planning da maturação do piloto. 140 | - Novos nós nas redes lab e piloto. 141 | - Treinamento. 142 | - 26/06/2024 143 | - Pauta proposta: 144 | - Acompanhamento. 145 | - Incidentes. 146 | - Planning da maturação do piloto. 147 | - Treinamento. 148 | - 19/06/2024 149 | - Pauta proposta: 150 | - Acompanhamento. 151 | - Incidentes. 152 | - Planning da maturação do piloto. 153 | - Treinamento. 154 | - 12/06/2024 155 | - Pauta proposta: 156 | - Acompanhamento. 157 | - Incidentes. 158 | - Múltiplos IPs. 159 | - Planning da maturação do piloto. 160 | - 05/06/2024 161 | - Pauta proposta: 162 | - Acompanhamento. 163 | - Planning da maturação do piloto. 164 | - Incidentes. 165 | - Treinamento. 166 | - Múltiplos IPs. 167 | - 29/05/2024 168 | - Pauta proposta: 169 | - Acompanhamento. 170 | - Planning da maturação do piloto. 171 | - Incidentes. 172 | - Proposta nomes e múltiplos IPs. 173 | - Treinamento. 174 | - 22/05/2024 175 | - Pauta proposta: 176 | - Acompanhamento. 177 | - Uso de nomes e múltiplos IPs nos nós. 178 | - Planning da maturação do piloto. 179 | - 15/05/2024 180 | - Pauta proposta: 181 | - Acompanhamento. 182 | - Apresentação - Caso de uso Solução Online de Licitação (SOL) 183 | - 08/05/2024 184 | - Pauta proposta: 185 | - Acompanhamento. 186 | - Uso de nomes e múltiplos IPs nos nós. 187 | - Incidente no validador do BNDES. 188 | - Planejamento próximos passos. 189 | - 24/04/2024 190 | - Pauta proposta: 191 | - Acompanhamento. 192 | - Apresentação - Identidade Digital Descentralizada (IDD) 193 | - 17/04/2024 194 | - Pauta proposta: 195 | - Acompanhamento. 196 | - Incidente no piloto. 197 | - Comunicação. 198 | - Apresentação - Caso de uso RNP. 199 | - 10/04/2024 200 | - Pauta proposta: 201 | - Acompanhamento. 202 | - Incidentes no piloto. 203 | - Próximas reuniões. 204 | - Treinamento - Gestão de incidentes. 205 | - 03/04/2024 206 | - Pauta proposta: 207 | - Acompanhamento. 208 | - Alertas. 209 | - Treinamento - Gestão de incidentes. 210 | - 27/03/2024 211 | - Pauta proposta: 212 | - Acompanhamento. 213 | - *On boarding* Prodemge. 214 | - Gestão de incidentes. 215 | - Outros itens. 216 | - 20/03/2024 217 | - Pauta proposta: 218 | - Acompanhamento. 219 | - *On boarding* Prodemge. 220 | - Gestão de incidentes. 221 | - Outros itens. 222 | - 13/03/2024 223 | - Pauta proposta: 224 | - Acompanhamento. 225 | - Gestão de incidentes. 226 | - Outros itens. 227 | - 06/03/2024 228 | - Pauta proposta: 229 | - Acompanhamento. 230 | - Gestores de incidentes. 231 | - Outros itens. 232 | - 28/02/2024 233 | - Pauta proposta: 234 | - Acompanhamento. 235 | - Gestores de incidentes. 236 | - Padrões de nomes dos nodes (confirmação). 237 | - Outros itens. 238 | - 21/02/2024 239 | - Pauta Proposta: 240 | - Acompanhamento. 241 | - Gestores de Incidentes. 242 | - Padrões de nomes dos nodes. 243 | - Outros itens. 244 | - 07/02/2024 245 | - Pauta Proposta: 246 | - Sobre o Cronograma. 247 | - Acompanhamento. 248 | - Gestores de Incidentes. 249 | - 31/01/2024 250 | - Pauta Proposta: 251 | - Sobre o Cronograma. 252 | - Acompanhamento. 253 | -------------------------------------------------------------------------------- /governanca/reunioes_comite_tecnico/reunioes_2025.md: -------------------------------------------------------------------------------- 1 | # Reuniões do Comitê Técnico realizadas em 2025 2 | 3 | - 16/04/2025 4 | - Pauta proposta: 5 | - Incidentes 6 | - Permissionamento – Geração 2 7 | - Manutenção do nodes.json 8 | - On chain permissioning deprecation 9 | - Maturação do piloto 10 | - 09/04/2025 11 | - Pauta proposta: 12 | - Incidentes 13 | - Indicadores 14 | - Simulação de SLAs/OLAs 15 | - Maturação do piloto 16 | - 02/04/2025 17 | - Pauta proposta: 18 | - Incidentes 19 | - Indicadores 20 | - Maturação do piloto 21 | - Simulação de SLAs/OLAs 22 | - 26/03/2025 23 | - Pauta proposta: 24 | - Incidentes 25 | - Maturação do piloto 26 | - 19/03/2025 27 | - Pauta proposta: 28 | - Incidentes 29 | - Maturação do piloto 30 | - 12/03/2025 31 | - Pauta proposta: 32 | - Incidentes 33 | - Indicadores – fev/2025 34 | - Permissionamento – Geração 2 35 | - Maturação do piloto 36 | - 26/02/2025 37 | - Pauta proposta: 38 | - Incidentes 39 | - Maturação do piloto 40 | - 19/02/2025 41 | - Pauta proposta: 42 | - Incidentes 43 | - Maturação do piloto 44 | - Planejamento 2025 45 | - 12/02/2025 46 | - Pauta proposta: 47 | - Incidentes 48 | - Indicadores 49 | - Maturação do piloto 50 | - Planejamento 2025 (opcional) 51 | - 05/02/2025 52 | - Pauta proposta: 53 | - Incidentes 54 | - Maturação do piloto 55 | - Indicadores 56 | - Planejamento 2025 57 | - 29/01/2025 58 | - Pauta proposta: 59 | - Incidentes 60 | - Maturação do piloto 61 | - Ajustes na governança 62 | - Estimativa de gas para aplicações 63 | - 22/01/2025 64 | - Pauta proposta: 65 | - Incidentes 66 | - Maturação do piloto 67 | - Ajustes na governança 68 | - Estimativa de gas para aplicações 69 | - 15/01/2025 70 | - Pauta proposta: 71 | - Incidentes 72 | - Maturação do piloto 73 | - Ajustes na governança 74 | - Estimativa de gas para aplicações 75 | - 08/01/2025 76 | - Pauta proposta: 77 | - Incidentes 78 | - Maturação do piloto 79 | - Ajustes na governança 80 | - Estimativa de gas para aplicações 81 | -------------------------------------------------------------------------------- /guia_rbb-cli.md: -------------------------------------------------------------------------------- 1 | # Guia de Comandos do utilitário rbb-cli 2 | 3 | Este documento é um guia para o utilitário de interface de linha de comando (CLI) da RBB, o `rbb-cli`. Este utilitário permite a configuração de nós no padrão da RBB, para posterior execução em contêineres Docker. 4 | 5 | A configuração dos nós é feita a partir de comandos que geram arquivos e preenchem *templates* para que diferentes tipos de nós Besu possam ser configurados e posteriormente utilizados nos contêineres. 6 | 7 | Os *templates* utilizados são: 8 | - `docker-compose.yml.hbs`: Utilizado para configuração do Docker Compose. 9 | - `templates/genesis.json.hbs`: Utilizado para a geração de arquivo genesis dos nós. 10 | 11 | 12 | ## Criação de Nós 13 | 14 | A criação de nós é feita com o comando `node create`. Esse comando gera a configuração inicial de um nó, gerando as chaves pública e privada e o endereço do nó e armazenando-as em uma pasta correspondente `.env.configs/`. 15 | 16 | Sintaxe: 17 | ``` 18 | ./rbb-cli node create 19 | ``` 20 | 21 | Onde: 22 | - `` é o nome do nó a ser criado. Os nomes dos nós devem seguir o [padrão estabelecido para a RBB](padrao_nomes_nos.md). Exemplos: `validator01`, `boot01`, `writer01`, `observer-boot01` 23 | 24 | Exemplo: 25 | ``` 26 | ./rbb-cli node create validator01 27 | ``` 28 | 29 | É possível criar mais de um nó de uma única vez, informando-se diferentes nomes separados por vírgula. Exemplo: 30 | ``` 31 | ./rbb-cli node create boot01,writer01 32 | ``` 33 | 34 | **Observação**: Caso o nome do nó contenha um hífen, ao se utilizar o comando `rbb-cli config set`, deve-se delimitar o nome entre `[\"` e `\"]` no formato `nodes[\"\"]` (sem utilizar ponto). Por exemplo: 35 | ``` 36 | ./rbb-cli config set nodes[\"observer-boot\"].ports+=[\"8545:8545\"] 37 | ``` 38 | 39 | 40 | ## Configuração dos nós 41 | 42 | A configuração dos nós é feita com o comando `config`. As seguintes opções podem ser usadas com esse comando: 43 | 44 | - `set` 45 | - `dump` 46 | - `render-templates` 47 | 48 | Os parâmetros de um nó são, inicialmente, configurados com o comando `config set` e armazenados, de forma temporária, em um arquivo chamado `infra.json`. Posteriormente, os parâmetros são aplicados aos nós com o comando `render-templates`, quando os valores configurados são substituídos em *templates* para geração dos arquivos efetivos de configuração dos nós. 49 | 50 | A configuração definida para os nós pode ser feita com o comando `config dump`. 51 | 52 | Ainda, caso se esteja criando uma nova rede ("do zero"), será necessário também criar um arquivo genesis, utilizando o comando `genesis create`. 53 | 54 | 55 | ### Configurando parâmetros 56 | 57 | A definição de valores de parâmetros e variáveis de ambiente para um nó pode ser feita com o comando `config set`. 58 | 59 | Sintaxe: 60 | ``` 61 | ./rbb-cli config set nodes..= 62 | ./rbb-cli config set nodes..environment.= 63 | ``` 64 | 65 | Onde: 66 | - `` é o nome do nó a ser configurado, conforme foi criado com o comando `node create`. 67 | - `` é o nome do parâmetro a ser configurado. Exemplos: `ports`, `address` 68 | - `` é o nome da variável de ambiente a ser configurada. Exemplos: `BESU_DISCOVERY_ENABLED` 69 | - `` é o valor a ser configurado para o parâmetro ou variável de ambiente. Exemplos: `false`, `[\"10001:8545\"]`, `\"123.123.123.123:10305\"` 70 | 71 | **Observação**: Para a definição do valor do parâmetro ou variável de ambiente, pode-se usar o operador `=`, para definir um novo valor, ou o operador `+=`, para acrescentar o novo valor informado a um valor já definido previamente. 72 | 73 | Exemplos: 74 | ``` 75 | ./rbb-cli config set nodes.validator01.ports+=[\"10001:8545\"] 76 | ./rbb-cli config set nodes.validator01.address=\"123.123.123.123:10303\" 77 | ./rbb-cli config set nodes.validator01.environment.BESU_DISCOVERY_ENABLED=false 78 | ``` 79 | 80 | Parâmetros comumente utilizados: 81 | - `nodes..ports+=[\":\"]`: Definição da porta pela qual serão feitas chamadas RPC para os nós. 82 | - `nodes..address=[\":\"]`: Definição do IP e da porta externos pelos quais serão recebidas chamadas de discovery para os nós. 83 | 84 | Variáveis comumente utilizadas: 85 | - `nodes..environment.BESU_DISCOVERY_ENABLED=`: Liga ou desliga a descoberta de nós no Besu. 86 | 87 | **Observação**: O Besu permite que seus [parâmetros sejam configurados a partir de variáveis de ambiente](https://besu.hyperledger.org/stable/public-networks/reference/cli/options#specify-options). Para isso, um parâmetro como nome `parametro-configuracao-qualquer` pode ser configurado através de uma varíavel de ambiente correspondente com o nome `BESU_PARAMETRO_CONFIGURACAO_QUALQUER`. É possível conhecer os parâmeros de configuração do Besu na [página de documentação para redes públicas](https://besu.hyperledger.org/stable/public-networks/reference/cli/options) e na [página de documentação para redes privadas](https://besu.hyperledger.org/stable/private-networks/reference/cli/options) 88 | 89 | Caso se deseje testar a definição de um parâmetro sem que essa alteração seja efetivamente gravada, é possível usar a opção `--dry-run`: 90 | ``` 91 | ./rbb-cli config set --dry-run nodes.validator01.address=\"123.123.123.123:10303\" 92 | ``` 93 | 94 | 95 | ### Visualizando parâmetros 96 | 97 | Para consultar as configurações feitas para todos os nós configurados, deve-se utilizar o comando: 98 | ``` 99 | ./rbb-cli config dump 100 | ``` 101 | 102 | Serão listadas, em formato JSON, para cada nó: 103 | - Nome 104 | - Identificador 105 | - Chave pública 106 | - Demais parâmetros e variáveis de ambiente configurados 107 | 108 | 109 | ### Configuração incial da blockchain - Genesis 110 | 111 | Caso a configuração dos nós esteja sendo feita para uma rede já existente, um arquivo genesis (`genesis.json`) será fornecido e o mesmo deverá ser copiado para a pasta `.env.config`. 112 | 113 | Entretanto, caso a configuração esteja sendo feito para uma nova rede, um novo arquivo genesis deverá ser criado com o comando `genesis create`. 114 | 115 | Sintaxe: 116 | ``` 117 | ./rbb-cli genesis create [--validator|--validators|-v ] [--boot|--boots|-b ] 118 | ``` 119 | 120 | Onde: 121 | - Para definição de nós validadores, a serem incluídos na propriedade `extradata` do arquivo genesis, é possível usar qualquer das seguintes opções: `--validator`, `--validators` ou `-v`. 122 | - `` é o nome do nó, ou lista de nós separados por vírgula, a serem configurados como validators da nova rede. Exemplos: `validator`, `validator1,validator2,validator3` 123 | - Para a definião de nós boot, a serem incluídos na configuração de `discovery` do arquivo genesis, é possível usar qualquer das seguintes opções: `--boot`, `--boots` ou `-b`. 124 | - `` é o nome do nó ou endereço enode (`chave_publica_sem0x:ip:porta`). Também pode ser informada uma lista de nós ou endereços separados por vírgula. Exemplos: `boot1`, `ec254664b4d1ca7b587c70943a5d10a2d2fb74af0b501dac6c07de53ebc9f1465023e7533d215082a3e83f2fa5a63aba509770960704012bed5c65efd515cd40:100.100.100.100:30303` 125 | 126 | Exemplo: 127 | ``` 128 | ./rbb-cli genesis create --validators validator01,validator02 --boots boot01,boot02,boot03 129 | ``` 130 | 131 | 132 | ### Aplicação das configurações aos nós 133 | 134 | As configurações realizadas com os comandos `config set` ficam inicialmente guardadas no arquivo `infra.json`, em formato JSON de estrutura desconhecida pelo Besu. Para que essas configurações possam ser transportadas para os arquivos de configuração do Besu e efetivamente aplicadas aos nós, é necessário utilizar o comando: 135 | ``` 136 | ./rbb-cli config render-templates 137 | ``` 138 | 139 | 140 | ## Execução de Nós 141 | 142 | Uma vez que todos nós foram criados e configurados, os mesmos podem ser iniciados através do Docker Compose: 143 | ``` 144 | docker-compose up -d 145 | ``` 146 | 147 | 148 | ### Execução em um mesmo servidor ou em servidores diferentes 149 | 150 | Através do `rbb-cli` é possível configurar vários nós de uma só vez, para sejam iniciados e executados diretamente de um mesmo servidor (ou máquina virtual). Desta forma, o Docker Compose orquestrará a inicialização de vários contêineres de uma só vez. Esta abordagem é útil para a montagem de redes de teste locais, por exemplo. 151 | 152 | Porém, o `rbb-cli` também é flexível para possibilitar que cada nó seja configurado em um servidor (ou máquina virtual) diferente. Nesse caso, o `rbb-cli` deverá ser executado em cada um dos servidores desejados, para que cada nó seja configurado individualmente. Desta forma, ao ser iniciado em cada servidor, o Docker Compose inicializará um único contêiner de cada vez. Esta abordagem é a recomendada para a execução de nós das redes de laboratório e piloto. 153 | 154 | 155 | ### Comandos úteis do Docker Compose 156 | 157 | 158 | #### Visualização de logs 159 | ``` 160 | docker-compose logs -f 161 | ``` 162 | 163 | 164 | #### Interromper a execução 165 | ``` 166 | docker-compose down 167 | ``` 168 | -------------------------------------------------------------------------------- /imagens/Framework_Governança.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/imagens/Framework_Governança.png -------------------------------------------------------------------------------- /imagens/ethstats.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RBBNet/rbb/af3b941842f46ae1f404f9a64a3b9ac3e2a6e0cf/imagens/ethstats.JPG -------------------------------------------------------------------------------- /iniciativas.md: -------------------------------------------------------------------------------- 1 | # Iniciativas e Discussões Técnicas da RBB 2 | 3 | Baseados nos conhecimentos técnicas das equipes e também daqueles adquiridos através de debates com a equipe da LACChain, a equipe do BNDES produziu um framework 4 | para guiar alguns dos principais debates necessários para colocar o piloto da rede de pé. O framework segue abaixo: 5 | 6 | ![Framework](imagens/Framework_Governança.png "Framework Governança") 7 | 8 | Dentre os debates e iniciativas mais relevantes, destacam-se, pelo menos, os seguintes: 9 | 10 | - Identificação e identidades autossoberanas 11 | 12 | A possibilidade de reuso de soluções de identificação por diversas aplicações governamentais foi um dos principais motivos discutidos no BlockchainGov que justificariam 13 | a criação de uma rede com as características da RBB. O BNDES chegou a produzir soluções simples para lidar com a identificação de pessoas jurídicas. A possibilidade 14 | de suportar também identificação de pessoas físicas seria um salto ainda maior e, por restrições legais e características da tecnologia, teria que abordar o tema 15 | de identidades descentralizadas e autossoberanas. A retomada das inicitivas, agora em bases mais formais, certamente passará por esse tema, após priorização 16 | pela governança da RBB. 17 | 18 | - Controle de uso 19 | 20 | A grande maioria das redes públicas (raras exceções, como o IOTA) têm seu controle de uso garantido através da cobrança de taxas variáveis para operar na rede. 21 | Quanto maior o uso, maior as taxas e, assim, ocorre o controle do uso. 22 | 23 | Em redes permissionadas, é preciso haver um acordo entre os participantes. No caso de redes público-permissionadas, este acordo é mais complexo, pois pode envolver 24 | o envio de transações por agentes externos à rede em si. Na LACChain, tal controle se dá através do uso de meta-transações, técnica que provavelmente não será utilizada 25 | na RBB, dada sua complexidade técnica. Portanto, trata-se de um desfio técnico importante a capacidade de dividir a quantidade de processamento disponível na rede de 26 | forma uniforme entre os seus participantes. 27 | 28 | - Observação 29 | 30 | Redes público permissionadas usam infraestrutura tecnológica de redes permissionadas. Para se tornarem públicas, é preciso garantir que não corram risco de serem 31 | atacadas, principalmente, por ataques de DoS e assemelhados. Portanto, é preciso criar soluções para permitir esse comportamento. Tais questões têm alguma semelhança 32 | com o ponto anterior, do controle de uso. 33 | 34 | - Responsabilização 35 | 36 | O problema a ser resolvido aqui pode ser resumido da seguinte forma: se houver algum ato inadequado na rede, como detectar e responsabilizar o seu autor? O ideal é que 37 | tal responsabilização seja feita de forma a garantir o não repúdio, ou seja, que o autor possa ser identificado sem a possibilidade de negar sua responsabilidade. Tal 38 | questão torna-se ainda mais relevante no caso de blockchains, dadas serem uma infraestrutura compartilhada. 39 | 40 | - Monitoração e tratamento de incidentes 41 | 42 | Em geral, os processos de monitoração e tratamento de incidentes ocorrem internamente a uma empresa ou, mesmo quando envolvem diversas instituições, têm uma natureza 43 | mais hierárquica. Como realizar a monitoração conjunta de uma rede onde nenhum dos participantes tem incidência ou prioridade sobre os outros? E como tratar os 44 | incidentes, dado que eles podem envolver diversos atores na rede? Estas são as questões a serem tratadas e elas passam não apenas pelos aspectos técnicos, mas também 45 | de processo, de governança e até aspectos de regulação. 46 | 47 | Estes são apenas alguns destaques. São diversos debates e iniciativas para viabilizar uma rede com as características da RBB. 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /instanciar_observer-boot.md: -------------------------------------------------------------------------------- 1 | # Instanciar nó `Boot de observer` 2 | 3 | Este roteiro guia na criação de nós `observer-boots` para o laboratório da RBB usando Docker. Algumas premissas: 4 | - Observer-boot conecta-se com um ou mais nós boots, dependendo do caso (mais detalhes à frente); 5 | - Observer-boot realiza a comunicação entre os nós da rede e observers; 6 | - Observers são nós de consulta, externos à rede, sobre os quais não temos nenhum controle; 7 | - Observers não podem enviar transações para rede. Desta forma, o observer-boot deve bloquear tentativas de envio de transações. 8 | 9 | ## Instanciar os nós 10 | 11 | > [!IMPORTANT] 12 | > Pré-requisitos 13 | > - Rede com nós de núcleo funcionando (boot, validadores, writers) 14 | > - A porta 30303 do host do observer-boot deve estar **aberta para conexões externas a partir da Internet**. A liberação de acesso deve ser feita para os protocolos **TCP e UDP** (este último necessário para o protocolo de discovery). 15 | 16 | ### Boot de Observer 17 | 18 | **1.** Crie um nó chamado `observer-boot` com o comando abaixo: 19 | ``` 20 | ./rbb-cli node create observer-boot 21 | ./rbb-cli config set nodes[\"observer-boot\"].ports+=[\"8545:8545\"] 22 | ./rbb-cli config set nodes[\"observer-boot\"].address=\":30303\" 23 | ``` 24 | 25 | **2.** Vamos ajustar o arquivo genesis.json. Acesse o `observer-boot`, baixe o arquivo genesis.json disponível na URL a seguir e cole em `start-network/.env-configs`: `https://github.com/RBBNet/participantes/tree/main/`**${rede}**`/genesis.json` onde `${rede}` pode ser Lab, Piloto, etc. 26 | 27 | 28 | Aqui temos duas situações para o observer-boot: 29 | 30 | 1. A empresa não possui nó boot 31 | 32 | 2. A empresa possui nó boot 33 | 34 | - Para o caso `1. A empresa não possui nó boot`, o observer-boot se conectará aos boot de outras instituições via discovery. Neste caso, garanta que a seção `discovery` do `genesis.json` contenha todos os boot nodes das outras instituições (ele pode estar vazio ou com uma lista - verifique). 35 | 36 | - Para o caso `2. A empresa possui nó boot`, o observer-boot se conectará ao boot da sua própria instituição, usando static-nodes. Neste caso será preciso excluir o trecho `discovery` mostrado na imagem abaixo do arquivo genesis.json: 37 | 38 | ![](https://i.imgur.com/mdU0lYT.png)) 39 | 40 | Crie o arquivo `volumes/observer-boot/static-nodes.json` e inclua o enode do boot da própria instituição (usando **IP interno**). 41 | 42 | Modelo: 43 | 44 | ```json 45 | [ 46 | "enode://@:" 47 | ] 48 | ``` 49 | 50 | **3.** Desabilite o permissionamento **on chain** de contas e nós, executando o comando abaixo. Você deve estar dentro do diretório start-network: 51 | ``` 52 | ./rbb-cli config set nodes[\"observer-boot\"].environment.BESU_PERMISSIONS_ACCOUNTS_CONTRACT_ENABLED=false 53 | ./rbb-cli config set nodes[\"observer-boot\"].environment.BESU_PERMISSIONS_NODES_CONTRACT_ENABLED=false 54 | 55 | ``` 56 | 57 | **4.** Habilite o permissionamento **de contas** no modo "local", ou seja, usando um arquivo. 58 | ``` 59 | ./rbb-cli config set nodes[\"observer-boot\"].environment.BESU_PERMISSIONS_ACCOUNTS_CONFIG_FILE_ENABLED=true 60 | ./rbb-cli config set nodes[\"observer-boot\"].environment.BESU_PERMISSIONS_ACCOUNTS_CONFIG_FILE=\"/var/lib/besu/permissioned-accounts.toml\" 61 | 62 | ``` 63 | Crie o arquivo `volumes/observer-boot/permissioned-accounts.toml` com o seguinte conteúdo (a lista é vazia mesmo): 64 | ``` 65 | accounts-allowlist=[] 66 | ``` 67 | 68 | **5.** Execute o comando abaixo para remover duplicatas de linha do arquivo `docker-compose.yml.hbs` 69 | ``` 70 | sed -i '/BESU_PERMISSIONS_ACCOUNTS_CONTRACT_ENABLED/d' docker-compose.yml.hbs 71 | sed -i '/BESU_PERMISSIONS_NODES_CONTRACT_ENABLED/d' docker-compose.yml.hbs 72 | 73 | ``` 74 | 75 | 76 | **6.** Em seguida , a partir do nó `observer-boot` execute o comando: 77 | ``` 78 | ./rbb-cli config render-templates 79 | docker-compose up -d 80 | ``` 81 | 82 | e aguarde o container iniciar. 83 | 84 | > [!IMPORTANT] 85 | > Lembre-se de permissionar o observer-boot recém criado na blockchain. Caso contrário o nó não irá sincronizar os blocos. 86 | -------------------------------------------------------------------------------- /instanciar_observer.md: -------------------------------------------------------------------------------- 1 | # Instanciar nó `Observer` 2 | 3 | Esse é um tutorial para a configuração de um observer por um dos participantes da rede, logo há algumas simplificações. 4 | 5 | - Observers são nós de consulta, externos à rede, sobre os quais não temos nenhum controle; 6 | - Observers não podem enviar transações para rede. Desta forma, o observer-boot deve bloquear tentativas de envio de transações. 7 | 8 | **1.** Crie um nó chamado `observer` com o comando abaixo: 9 | ``` 10 | ./rbb-cli node create observer 11 | ./rbb-cli config set nodes.observer.ports+=[\"8545:8545\"] 12 | ./rbb-cli config set nodes.observer.address=\":30303\" 13 | ``` 14 | 15 | **2.** Agora iremos ajustar o arquivo genesis.json. Acesse o seu nó `observer`, baixe o arquivo genesis.json disponível na URL a seguir e cole em `start-network/.env.configs`: `https://github.com/RBBNet/participantes/tree/main/`**${rede}**`/genesis.json` onde `${rede}` pode ser Lab, Piloto, etc. 16 | 17 | 18 | **3.** No arquivo `genesis.json` que acabou de copiar, modifique o trecho `discovery`, de modo que contenha os enodes de todos os `observer-boots` a que seu `observer` terá acesso (pode ser um observer-boot seu, de outras instituições ou ambos). Como sempre, cada linha deve conter a chave pública (removendo `0x`), endereço ip e porta P2P do `observer-boot` correspondente, como no exemplo a seguir: 19 | ``` 20 | "discovery": { 21 | "bootnodes": ["enode://d2156e7a95f32026f41dbb9d34df915ce2b2a...2932e141beb1ce8c0@100.100.100.100:30303"] 22 | } 23 | ``` 24 | 25 | É importante que, no parâmetro bootnodes, as chaves públicas sejam de `observer-boots`, pois o observer realizará conexão apenas com estes nós. De maneira nenhuma o observer poderá conectar-se com outro tipo nó da rede (boot, writer, validators), pois devem se comportar similarmente aos observers que são externos à rede. 26 | 27 | **4.** Desabilite o permissionamento de nós **on chain** executando o comando abaixo. Você deve estar dentro do diretório start-network: 28 | ``` 29 | ./rbb-cli config set nodes.observer.environment.BESU_PERMISSIONS_NODES_CONTRACT_ENABLED=false 30 | ``` 31 | Note que seu observer aceitará pedidos de conexão de quaisquer outros nós, logo faz sentido manter a porta P2P (em geral, a 30303) protegida por um firewall ou algo similar. Outra opção seria usar um permissionamento local de nó e só incluir no arquivo o(s) observer-boot(s) que seu observer for conectar. 32 | 33 | **5.** Em seguida , a partir do nó `observer` execute o comando: 34 | ``` 35 | ./rbb-cli config render-templates 36 | docker-compose up -d 37 | ``` 38 | 39 | e aguarde o container iniciar. Se tudo ocorrer como esperado este nó se conectará com um ou mais observer-boots da rede, caso as configurações do arquivo `genesis.json` estiver em conformidade. 40 | 41 | -------------------------------------------------------------------------------- /padrao_nomes_nos.md: -------------------------------------------------------------------------------- 1 | # Padrão de Nomes dos Nós 2 | 3 | A criação de nós para as redes de laboratório e piloto da RBB devem seguir o padrão especificado abaixo, a ser utilizado para fins de configuração, permissionamento e monitoração. 4 | 5 | Os nomes dos nós devem ser definidos da seguinte forma: `` 6 | 7 | Onde: 8 | - `` pode ser: 9 | - `boot` 10 | - `validator` 11 | - `writer` 12 | - `observer-boot` 13 | - `prometheus` 14 | - `` é um número inteiro, com dois dígitos, começando em `01`, para diferenciar diferentes nós de um mesmo tipo. 15 | 16 | Exemplos de nomes válidos: `boot01`, `boot02`, `validator01`, `writer01`, `observer-boot01`, `prometheus01` 17 | 18 | 19 | ## Criação e Configuração de Nós 20 | 21 | A criação e configuração de nós deve ser feita conforme o [roteiro de criação de uma rede](Roteiro_para_a_criacao_de_uma_rede.md), utilizando-se o utilitário [`rbb-cli`](guia_rbb-cli.md). 22 | 23 | Sempre que for necessário informar o nome de um nó para o `rbb-cli`, deve-se utilizar o padrão definido acima. 24 | 25 | Exemplos de comandos do `rbb-cli`: 26 | ``` 27 | ./rbb-cli node create validator01 28 | ./rbb-cli config set nodes.validator01.environment.BESU_DISCOVERY_ENABLED=false 29 | ``` 30 | 31 | **Observação**: Caso o nome do nó contenha um hífen, ao se utilizar o comando `rbb-cli config set`, deve-se delimitar o nome entre `[\"` e `\"]` no formato `nodes[\"\"]` (sem utilizar ponto). Por exemplo: 32 | ``` 33 | ./rbb-cli config set nodes[\"observer-boot\"].ports+=[\"8545:8545\"] 34 | ``` 35 | 36 | **Observação**: A configuração do nós Prometheus é feita de forma distinta da configuração dos nós Besu. A ferramenta `rbb-cli` **não** é utilizada na configuração de nós Prometheus. 37 | 38 | 39 | ## Permissionamento 40 | 41 | Ao se se executar o *smart contract* de permissionamento de nós, o valor do parâmetro `name` da função `addEnode` também deve-se utilizar o padrão de nomenclatura. 42 | 43 | Exemplo: 44 | ``` 45 | addEnode(enodeHigh, enodeLow, nodeType, geoHash, 'boot01', organization) 46 | ``` 47 | 48 | **Observação**: Atualmente o campo `geoHash` não está sendo usado e deve-se utilizar o valor fixo `'0x000000000000'`. 49 | 50 | **Observação**: Os nós do tipo `prometheus` não executam instância Besu e, portanto, **não** participam do processo de permissionamento. -------------------------------------------------------------------------------- /roteiro_acesso_leitura.md: -------------------------------------------------------------------------------- 1 | # Acesso aos dados da Rede Blockchain Brasil 2 | 3 | *Block explorers* são ferramentas importantes no arsenal de um entusiasta em blockchain. Eles provêm uma interface online para realizar pesquisas em uma blockchain e permitem ao usuário recuperar informações sobre transações, endereços, blocos, taxas e mais. Cada *block explorer* mostra informações sobre uma certa blockchain, e o tipo de informação incluída irá variar dependendo da arquitetura da rede. 4 | 5 | Para aumentar a transparência da Rede Blockchain Brasil, e permitir acesso a seus dados, foram previstos em sua topologia nós conectores para observação da rede (*observer boots*), aos quais cidadãos podem se conectar ao instanciar um nó observador (*observer*) local em seu próprio computador. Conectados a estes nós *observers*, por sua vez, podem estar os *block explorers*, permitindo o acompanhamento da rede em tempo real. 6 | 7 | Ao se conectar com a rede, o nó *observer* baixa os blocos e valida todas as transações perante as regras definidas pelos *smart contracts*, assim como perante as regras de permissionamento definidas nesses contratos. Em outras palavras, um nó verifica as permissões ao importar blocos – ou seja, ele importa apenas blocos nos quais todas as transações são de remetentes autorizados (fonte: [documentação do Besu](https://besu.hyperledger.org/private-networks/concepts/permissioning/onchain)). Dessa forma, para que o *observer* consiga se conectar a um *observer-boot* (um dos nós públicos da rede), o *smart contract* "node rules" deverá estar desabilitado. 8 | 9 | > [!NOTE] 10 | O usuário final não precisa se preocupar com isso. O script para levantar um nó *observer*, disponível a seguir, já configura as permissões corretamente. 11 | 12 | > [!IMPORTANT] 13 | Ainda assim, é incentivado que o usuário faça seu próprio script. É possível subir um nó *observer* e um *block explorer* de forma independente. 14 | 15 | Todas as tecnologias e códigos utilizadas no script fornecido a seguir, salvo as configurações específicas para a RBB (como a pasta `docker-compose` do Blockscout), são produzidos por terceiros e podem ser conferidos nos links abaixo: 16 | 17 | * [Besu](besu.hyperledger.org) 18 | * [Blockscout](https://github.com/blockscout/blockscout) 19 | * [Chainlens](https://github.com/web3labs/chainlens-free) 20 | 21 | ## Recursos mínimos necessários 22 | Redes blockchain podem variar em tamanhos e requisitos. Antes de subir um nó *observer* com *block explorer*, verifique se você atinge as seguintes condições mínimas: 23 | 24 | ### Para o Blockscout 25 | * CPU: 6 core, 12 thread 26 | * RAM: 16 GB 27 | * Disco: 80 GB 28 | 29 | ⚠️ Pode ser que o Blockscout consiga funcionar em máquinas mais modestas. Caso a máquina em questão não consiga se aproximar dos requisitos mínimos, é interessante utilizar o Chainlens, uma alternativa mais leve. 30 | 31 | ### Para o Chainlens 32 | * CPU: 2 core, 4 thread 33 | * RAM: 4 GB 34 | * Disco: 80 GB 35 | 36 | ## Softwares necessários 37 | Além dos requisitos de hardware, os seguintes softwares são necessários: 38 | * Git 39 | * Docker v20.10+ 40 | * Docker compose v2.24+ 41 | 42 | > [!NOTE] 43 | > Notamos que as as versões do compose 2.24.7, 2.25.0 e 2.26.0 **não se mostraram compatíveis** com o Blockscout a princípio. E a versão 1.x.x do docker-compose **não é suportada**. 44 | 45 | 👉 Para implantações no Windows, deve ser instalado o WSL2 (caso não esteja instalado) e, em seguida, o Docker. Vale ressaltar, entretanto, que o uso do WSL para este roteiro ainda tem caráter **experimental**, podendo ocorrer eventuais incompatibilidades ou problemas em sua execução. 46 | 47 | > [!IMPORTANT] 48 | A data e hora do sistema devem estar devidamente atualizadas para que seja possível a sincronização de blocos. 49 | 50 | ## Opções de *block explorer* 51 | 52 | Este roteiro considera duas opções de *block explorer*: o Chainlens e o Blockscout. Nenhuma delas é favorecida em relação à outra, de forma que o usuário pode verificar e analisar ambas. 53 | 54 | > [!NOTE] 55 | O usuário não é obrigado a ficar com qualquer das duas alternativas e, caso deseje, pode escolher outro entre as dezenas de *block explorers* que existem no mercado para explorar os dados da RBB. Este roteiro, entretanto, não abordará outras alternativas. 56 | 57 | ![1](https://github.com/RBBNet/rbb/assets/111009073/cf2c7f38-535c-46d6-9777-ab580d4c2d94) 58 | ![2](https://github.com/RBBNet/rbb/assets/111009073/4ed10505-c3b2-4d09-8a84-537479457397) 59 | 60 | ## Iniciando um nó *observer* e um *block explorer* 61 | 62 | Este roteiro supõe que o usuário possui uma máquina Linux ou o WSL previamente configurado. 63 | Primeiro, faça o download do script referenciado no comando abaixo e conceda as permissões necessárias para sua execução: 64 | 65 | ```bash 66 | curl -#sLO https://raw.githubusercontent.com/RBBNet/rbb/master/artefatos/observer/rbb-observer 67 | chmod +x rbb-observer 68 | ``` 69 | 70 | O script pode ser utilizado de mais de uma maneira, conforme descrito nas seções a abaixo, a depender das ferramentas que se deseja executar. 71 | 72 | ### Opção 1 - Instalar *observer* sem *block explorer* 73 | 74 | Para iniciar apenas o nó *observer*, **sem** um *block explorer* "acoplado", digite o seguinte comando: 75 | 76 | ```bash 77 | ./rbb-observer install -o 78 | ``` 79 | 80 | ### Opção 2 - Instalar *observer* + Blockscout 81 | 82 | Para iniciar o nó *observer*, com o Blockscout "acoplado", digite o seguinte comando: 83 | 84 | ```bash 85 | ./rbb-observer install -ob 86 | ``` 87 | 88 | Será possível acompanhar as transações e visualização dos blocos acessando a URL informada ao final da instalação, usando um navegador web. 89 | 90 | ### Opção 3 - Instalar *observer* + Chainlens 91 | 92 | Para iniciar o nó *observer*, com o Chainlens "acoplado", digite o seguinte comando: 93 | 94 | ```bash 95 | ./rbb-observer install -oc 96 | ``` 97 | 98 | Será possível acompanhar as transações e visualização dos blocos acessando o endereço HTTP informado ao final da instalação via navegador web. 99 | 100 | ## Utilização do *block explorer* 101 | 102 | Ao acessar o dashboard do *block explorer* (Blockscout ou Chainlens), será possível observar os blocos sendo baixados e indexados. Nesta etapa inicial, é esperado que a sincronização com a RBB leve um tempo considerável para ocorrer, até que todos os blocos possam ser recebidos. O Chainlens tem a vantagem de mostrar ao usuário a percentagem de sincronização. 103 | 104 | ### Verificação de contratos - Apenas no Blockscout 105 | 106 | Após subir o Blockscout, **não** é necessário esperar até que todos os blocos estejam indexados. O processo de indexação é diferente do de *baixar* os blocos, e pode demorar de horas a dias. Mesmo quando a indexação estiver ainda no início, é possível verificar contratos. A verificação de um smart contract envolve a submissão de seu código fonte para garantir que o *bytecode* que se encontra na blockchain corresponde ao código fonte fornecido ao usuário. 107 | 108 | Os contratos do permissionamento utilizado inicialmente na RBB se encontram [nesse link](https://github.com/RBBNet/Permissionamento/tree/main/gen01/contracts). 109 | 110 | | Contrato | Endereço | 111 | |----------|----------| 112 | |Admin|0xe6e9af633D886CB83d43C1Af10D5F7080c824a76| 113 | |NodeRules|0xcE74Df8d10Bd8b81395A9b7BEfE09b2bBC868dfb| 114 | |AccountRules|0x8f568E67317457d4847813a9cc0d2E074c74e759| 115 | 116 | Para efetivamente verificar os contratos, entre no endereço do Blockscout disponibilizado pelo script e clique no seguinte botão: 117 | ![image](https://github.com/RBBNet/rbb/assets/111009073/8261d83c-42b7-474f-9106-094817f7f78f) 118 | 119 | Ao clicar no botão, aparecerá a tela de verificação de *smart contracts*. Alguns argumentos serão pedidos, como o endereço (incluindo 0x[...]), a licença e o tipo de verificação. Pode-se escolher não aplicar uma licença - `None` - e o tipo de verificação é à escolha do usuário. Caso seja necessário utilizar vários arquivos para a verificação, deve-se utilizar a opção `Multi-part form files`. 120 | 121 | ![image](https://github.com/RBBNet/rbb/assets/111009073/d264e32e-e81a-4080-82a6-df2e29e3860b) 122 | 123 | Para a verificação dos contratos mencionados acima, a versão do compilador deve ser `0.5.9+commit.e560f70d`. A versão da EVM é a default, mas, caso dê erro, tente `petersburg`. Otimização desabilitada - sabe-se que ela muda o bytecode do código, o que impossibilita a verificação. Por fim, adicione na caixa pontilhada os arquivos dos smart contracts. 124 | 125 | ⚠️ Se um contrato importar outro, disponibilize também o importado. Exemplo: contrato A importa contrato B e C, então na hora de verificar o contrato A, é necessário enviar B e C junto para a verificação. 126 | 127 | Por fim, clique em "verify & publish". 128 | 129 | ![image](https://github.com/RBBNet/rbb/assets/111009073/c5645498-c58a-4c89-ab39-7deb76f1230c) 130 | 131 | ## Consulta aos logs do nó *observer* 132 | 133 | Caso tenha interesse em observar o fluxo de sincronização de blocos do *observer* ou mesmo investigar problemas, utilize o seguinte comando: 134 | 135 | ```bash 136 | ./rbb-observer logs -o 137 | ``` 138 | 139 | ## Consulta aos logs do *block explorer* 140 | 141 | Caso tenha interesse em observar o fluxo de indexação de blocos do *block explorer* ou mesmo investigar problemas, utilize o seguinte comando: 142 | 143 | ```bash 144 | ./rbb-observer logs -b 145 | ``` 146 | 147 | ## Desinstalação 148 | 149 | Para remover completamente o nó *observer* e *block explorer* instalados, digite: 150 | 151 | ```bash 152 | ./rbb-observer remove --all 153 | ``` 154 | 155 | Este comando removerá todos os arquivos e dados baixados, incluindo dados de blocos da blockchain, e removerá quaisquer imagens Docker criadas. 156 | 157 | ## Erros 158 | 159 | ### Nó *observer* não subiu 160 | 161 | Verifique os logs do *observer*, conforme comando informado acima. 162 | 163 | ### Blockscout não subiu 164 | 165 | Verifique os logs de erro com o comando `./rbb-observer logs -b` Caso não saiba como proceder, procure informações e ajuda na [comunidade do Blockscout](https://discord.gg/blockscout). 166 | 167 | ### O carregamento de blocos no Chainlens não sai de 0% 168 | 169 | Talvez o *observer* não tenha conseguido se conectar com o nó de sincronização. Reinicie o nó e veja se volta a sincronizar: 170 | 171 | ```bash 172 | ./rbb-observer restart -o 173 | ``` 174 | 175 | Caso deseje reiniciar o Chainlens, use o seguinte comando: 176 | 177 | ```bash 178 | ./rbb-observer restart -b 179 | ``` 180 | 181 | ## Ler também 182 | 183 | 👉 [Documentação do Blockscout](https://docs.blockscout.com/for-users/overviews) 184 | 185 | 👉 [Documentação do Chainlens](https://docs.chainlens.com/) 186 | -------------------------------------------------------------------------------- /roteiro_adesao.md: -------------------------------------------------------------------------------- 1 | # Roteiro para solicitação de adesão à RBB 2 | 3 | Nos procedimentos abaixo, todos os documentos são digitais e suas assinaturas, quando requeridas, deverão seguir as especificações da ICP-Brasil ou usar o padrão Gov.Br. Os documentos solicitados devem ser enviados para o e-mail rbb@bndes.gov.br. 4 | 5 | Os solicitantes à RBB devem: 6 | - Preencher, assinar e apresentar o [Termo de Adesão](documentos/Modelo%20-%20Termo%20de%20Adesão.docx). Sobre o seu preenchimento: 7 | - O Termo de Adesão deverá especificar se o novo aderente será um **Partícipe Parceiro** ou um **Partícipe Associado**, conforme detalhado no [Acordo de Cooperação](documentos/ACT%20-%20Documento%20firmado%20entre%20BNDES%20e%20TCU.pdf), Cláusula II, Parágrafo I. 8 | - Preencher a designação de representantes para acompanhar o Acordo, conforme o [Acordo de Cooperação](documentos/ACT%20-%20Documento%20firmado%20entre%20BNDES%20e%20TCU.pdf), Cláusula II, Inciso X. 9 | - Caso seja enviado o modelo anterior de Termo de Adesão, sem a indicação do representante, poderá ser usado o [modelo de carta de indicação de representante](documentos/Modelo%20-%20Carta%20Indicação%20de%20Representantes.doc). 10 | - Os representantes indicados no item anterior devem assinar o [Termo de Confidencialidade](documentos/Modelo%20-%20Termo%20de%20Confidencialidade.docx). 11 | - O Termo de Confidencialidade pode ser apresentado posteriormente à aceitação do novo partícipe. 12 | - Entidades nacionais de direito privado sem fins lucrativos ou empresas estatais, federais, estaduais, municipais e distritais devem: 13 | - Apresentar Estatuto ou Contrato Social, acompanhado dos atos constitutivos e/ou modificativos, oficialmente arquivados e publicados. 14 | - Ata da Assembleia Geral e, se for o caso, Ata da Reunião do Conselho de Administração em que houver sido eleita a diretoria em exercício, oficialmente arquivadas e publicadas. No caso de não haver diretoria, apresentar a Ata referente ao órgão de administração. 15 | - No caso de entidade de direito privado sem fins lucrativos, apresentar um relato da experiência da entidade na tecnologia blockchain de tal forma a atender a Cláusula II, Parágrafo IV, Inciso III do [Acordo de Cooperação](documentos/ACT%20-%20Documento%20firmado%20entre%20BNDES%20e%20TCU.pdf). 16 | - Quando cabível, preencher [declaração](documentos/Declaração%20-%20Parte%20Relacionada.doc) de que não é Parte Relacionada às Empresas do Sistema BNDES (em observância à Política para Transações com Partes Relacionadas do Sistema BNDES). Ser Parte Relacionada não impede a adesão à RBB. 17 | - Estados, municípios ou distrito federal ou qualquer órgão ou entidade da administração pública direta federal, estadual, municipal e distrital, autarquias e fundações de direito público federais, estaduais, distritais ou municipais ou órgão ou entidade do poder legislativo ou do poder judiciário devem: 18 | - Apresentar Decreto ou Ato de criação do órgão/Lei instituidora, além de cópia do Estatuto/Regimento Interno. 19 | - Apresentar Ato do Chefe do Poder Executivo de nomeação do dirigente/representante legal. 20 | - Se o Partícipe Aderente for Estado, Distrito Federal e Município ou órgão ou entidade de sua Administração Pública Direta, deverá ser apresentada, ainda: 21 | - A respectiva Constituição (Estados) ou Lei Orgânica (Distrito Federal ou Municípios) e eventuais emendas, acompanhada de declaração do representante do Partícipe Aderente informando que não houve alterações posteriores no texto. 22 | - Certidão Negativa de Débitos relativos aos Tributos Federais e à Dívida Ativa da União (CND) ou Certidão Positiva com Efeitos de Negativa de Débitos relativos aos Tributos Federais e à Dívida Ativa da União (CPEND), expedida conjuntamente pela Secretaria da Receita Federal do Brasil (RFB) e pela Procuradoria-Geral da Fazenda Nacional (PGFN), por meio de INTERNET, a ser extraída no endereço www.receita.fazenda.gov.br ou www.pgfn.fazenda.gov.br. 23 | - Comprovação da regularidade previdenciária relacionada ao regime próprio de previdência social, mediante a apresentação do Certificado de Regularidade Previdenciária - CRP, expedido pelo Ministério da Previdência e Assistência Social, por meio da INTERNET, nos endereços www.previdenciasocial.gov.br ou www.receita.fazenda.gov.br ou [declaração](documentos/Declaração%20-%20Previdencia.doc) firmada pelos representantes legais do Partícipe Aderente. 24 | -------------------------------------------------------------------------------- /roteiro_configuração_ambiente_prometheus_e_nginx.md: -------------------------------------------------------------------------------- 1 | # Roteiro de configuração do ambiente Prometheus e Nginx. 2 | 3 | ## Observações 4 | 5 | Esse roteiro foi elaborado para adaptar o Nginx com ajustes de segurança, junto ao Prometheus, disponibilizado no Github da RBB. 6 | 7 | Testes, Configurações, Certificados etc. foram utilizados os seguintes softwares/ferramentas: Docker- compose, Openssl, apache2-utils e SO ubuntu Server( Caso for utilizar distribuições Linux e ferramentas diferentes, devem adaptar ao seu cenário) 8 | 9 | Certificados dos clientes devem ser concatenados em um único arquivo .crt ou .pem 10 | Comando para concatenar*: *cat cert\_dataprev.crt cert\_bndes.crt cert\_cnpq.crt >> certificado\_client.crt* 11 | OU editar o arquivo *certificado\_client.crt e cola a chave publica do certificado do client* 12 | 13 | ### Passo 1: Na pasta onde esta o prometheus, criar as pastas e arquivos: 14 | 15 | **/rbb-monitoracao$** 16 | ~~~shell 17 | sudo mkdir nginx 18 | cd nginx 19 | ~~~ 20 | **/rbb-monitoracao /nginx$** 21 | ~~~shell 22 | sudo mkdir certs logs 23 | sudo touch nginx.conf 24 | cd logs 25 | ~~~ 26 | **/rbb-monitoracao /logs$** 27 | ~~~shell 28 | sudo touch error.log access.log 29 | ~~~ 30 | 31 | *Obs: as pastas e arquivos podem ser criadas no local de sua preferência, desde que esteja apontas no volume no docker-compose.yml* 32 | Obter o repositório: 33 | 34 | ### Passo 2 Gerar o Certificados na pasta *certs 35 | 36 | *cd nginx/certs* 37 | 38 | 1. **Gerar chave privada:** 39 | ~~~shell 40 | openssl genrsa -out chave-privada.key 4096 41 | ~~~ 42 | 2. **Criar uma solicitação de assinatura de certificado (CSR):** 43 | 44 | alterar os campos destacados 45 | 46 | *openssl req -new -key chave-privada.key -out pedido.csr -subj "/C=BR/ST=Estado/L=Cidade/O=MinhaEmpresa/CN=192.168.1.10"* 47 | 48 | **Exemplo:** *openssl req -new -key chave-privada.key -out pedido.csr -subj "/C=BR/ST=DF/L=Brasilia/O=DATAPREV- RBB/CN=192.168.1.1"* 49 | 50 | *Também pode utilizar o comando sem o -subj e preencher as informações manualmente* 51 | 52 | 3. **Gerar o certificado autoassinado:** 53 | 54 | **A validade do certificado fica a critério, mas recomendamos 2 anos.** 55 | 56 | *openssl x509 -req -days 730 -in pedido.csr -signkey chave-privada.key -out certificado.crt* 57 | 58 | 4. **Dar permissão aos certificados e chaves** *sudo chmod 644 \** 59 | 60 | ### Passo 4 Configuração do Docker Compose:** 61 | 62 | *Link repositório com indentação:[ https://github.com/adinaldops/Roteiro-conf-prometheus-nginx- rbb/tree/7a278661ac7e9af6ac190b330aa53e577ea0a089* ](https://github.com/adinaldops/Roteiro-conf-prometheus-nginx-rbb/tree/7a278661ac7e9af6ac190b330aa53e577ea0a089)* 63 | 64 | *cd /rbb-monitoracao$* 65 | 66 | *sudo vim docker-compose.yml* 67 | 68 | Conteúdo do arquivo `docker-compose.yml` utilizado: 69 | ~~~yaml 70 | version: '3' 71 | services: 72 | prometheus: # Define o serviço Prometheus 73 | image: my-prometheus 74 | command: --config.file=/etc/prometheus/prometheus.yml 75 | volumes: 76 | - ./prometheus:/etc/prometheus 77 | - ./nginx/certs:/etc/prometheus/certs 78 | networks: # Define as redes em que o serviço será inserido 79 | - monitoracao # Adiciona o Prometheus à rede "monitoracao" 80 | # Removendo a exposição direta da porta 9090 para evitar acesso direto 81 | # ports: 82 | # 9090:9090 83 | nginx: 84 | image: nginx:latest 85 | ports: 86 | -'8443:8443' # Exposição da porta 8443 para acesso do prometheus client 87 | - "443:443" # Exposição da porta 443 para acesso WEB 88 | volumes: 89 | - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro 90 | - ./nginx/certs:/etc/nginx/certs:ro # Monta o diretório de certificados do Nginx 91 | - ./nginx/logs/access.log:/var/log/nginx/access.log # Monta o log de acesso do Nginx 92 | - ./nginx/logs/error.log:/var/log/nginx/error.log # Monta o log de erros do Nginx 93 | - ./nginx/.htpasswd:/etc/nginx/.htpasswd:ro # Monta o arquivo de autenticação básica como somente leitura 94 | networks: 95 | - monitoracao 96 | networks: 97 | monitoracao: # Declara a rede "monitoracao" para comunicação interna entre os serviços 98 | ~~~ 99 | 100 | ### Passo 6: Configuração do prometheus.yml: 101 | 102 | **Adicionar:** scheme: https, tls\_config e remover o basic auth** 103 | 104 | Caso for adicionar as configurações no mesmo servidor da rede LAB, deve adicionar um novo job, ex: *job\_name: rbb-federado2,* e manter a configuração atual até que todos os Participes esteja UP, e voltar ao passo anterior e expor a porta 9090. Caso contrário, adicionar as configurações ate a linha 37 105 | 106 | *Link repositório com indentação:[ https://github.com/adinaldops/Roteiro-conf-prometheus-nginx- rbb/tree/7a278661ac7e9af6ac190b330aa53e577ea0a089* ](https://github.com/adinaldops/Roteiro-conf-prometheus-nginx-rbb/tree/7a278661ac7e9af6ac190b330aa53e577ea0a089)* 107 | 108 | *sudo vim prometheus/prometheus.yml* 109 | 110 | ~~~yaml 111 | global: 112 | scrape\_interval: 15s 113 | evaluation\_interval: 15s 114 | # Rule files specifies a list of globs. Rules and alerts are read from* 115 | # all matching files. 116 | rule\_files: 117 | - /etc/prometheus/rules.yml 118 | - rules/*.yml 119 | scrape\_configs: 120 | # Job para coletar as métricas de outras organizações. 121 | # Inclua aqui os alvos das outras organizações (Prometheus expostos). 122 | - job\_name: rbb-federado2 123 | honor\_labels: false 124 | metrics\_path: '/federate' 125 | scheme: https* 126 | tls\_config: # Configurações de TLS para comunicação segura cert\_file: /etc/prometheus/certs/certificado.crt # Caminho para o certificado 127 | key\_file: /etc/prometheus/certs/chave-privada.key # Caminho para a chave privada 128 | insecure\_skip\_verify: true # Ignora a verificação do certificado 129 | params: 130 | 'match[]': 131 | - '{job="rbb"}' 132 | static\_configs: 133 | - targets: [ '200.178.27.8:8443'] # Prometheus DILI* 134 | labels: 135 | organization: 'DILI' 136 | - targets: [ '34.95.98.2:8443' ] # Prometheus CPqD* 137 | labels: 138 | organization: 'CPqD' 139 | metric\_relabel\_configs: 140 | - source\_labels: ["exported\_instance"]* 141 | target\_label: "instance"* 142 | - source\_labels: ["exported\_organization"]* 143 | target\_label: "organization"* 144 | - action: "labeldrop"* 145 | regex: "^exported\_.\*"* 146 | # Job para coletar as métricas de outras organizações.* 147 | # Inclua aqui os alvos das outras organizações (Prometheus expostos).* 148 | - job\_name: rbb-federado* 149 | honor\_labels: false* 150 | metrics\_path: '/federate'* 151 | basic\_auth:* 152 | username: 'admin'* 153 | password: '@#$%prometheus' # aqui pode ser usado * 154 | params: 155 | 'match[]': 156 | - '{job="rbb"}' 157 | ` `*static\_configs:* 158 | - *targets: [ '34.9.21.17:9090' ] # Prometheus CPqD* 159 | ` `*labels:* 160 | ` `*organization: 'CPqD'* 161 | - *targets: [ '280.523.19.18:9090'] # Prometheus BNDES* 162 | ` `*labels:* 163 | ` `*organization: 'BNDES'* 164 | ~~~ 165 | 166 | ### Passo 7: Configuração do Nginx (nginx.conf) 167 | 168 | Adaptar as configurações para seu cenário, como fingerprint, server\_name, as linhas SSL O fingerprint a ser configurado, deve ser o do certificado do client 169 | 170 | Exemplo: *openssl x509 -noout -fingerprint -in certificadoBNDES.crt | sed 's/://g' | awk -F= '{print $2}'* Resultado*: 67A9334D6E24D6B0C0E5AC9A9ED1C46C9ADDC6CB* 171 | 172 | *Link repositório com indentação:[ https://github.com/adinaldops/Roteiro-conf-prometheus-nginx- rbb/tree/7a278661ac7e9af6ac190b330aa53e577ea0a089* ](https://github.com/adinaldops/Roteiro-conf-prometheus-nginx-rbb/tree/7a278661ac7e9af6ac190b330aa53e577ea0a089)* 173 | 174 | */rbb-monitoracao$ 175 | sudo vim nginx.conf* 176 | 177 | ~~~shell 178 | *http {* 179 | 180 | ` `*#Mapa para verificar fingerprints* 181 | 182 | ` `*map\_hash\_bucket\_size 128; # Define o tamanho do bucket para a estrutura map* 183 | 184 | ` `*map $ssl\_client\_fingerprint $valid\_fingerprint { # Mapeia fingerprints de clientes para verificação* 185 | 186 | ` `*default 0; # Valor padrão 0 (não autorizado)* 187 | 188 | ` `*"C630DDA093F857752A7ABDDA386916DE727F582F" 1; # Fingerprint Certificado DATAPREV "662BD214203168E90637B728A92611F152FF9C08" 1; # Fingerprint Certificado BNDES* 189 | 190 | ` `*"2573C939EAA2E3CDE8A8216A4B93F8B70540941B" 1; # Fingerprint Certificado ...* 191 | 192 | ` `*}* 193 | 194 | - *Bloco de servidor para a interface web (sem mTLS, com autenticação básica)* 195 | 196 | ` `*server {* 197 | 198 | ` `*listen 443 ssl; # Escuta na porta 443 (HTTPS)* 199 | 200 | ` `*server\_name 192.168.35.101; # Nome do servidor/IP* 201 | 202 | ` `*ssl\_protocols TLSv1.2 TLSv1.3; # Define os protocolos TLS permitidos* 203 | 204 | ` `*ssl\_certificate /etc/nginx/certs/bserver.crt; # Caminho do certificado do servidor* 205 | 206 | ` `*ssl\_certificate\_key /etc/nginx/certs/bserver.key; # Caminho da chave do certificado do servidor* 207 | 208 | ` `*location / { # Bloco de localização para a interface web do Prometheus proxy\_pass http://prometheus:9090/; # Proxy para o Prometheus na porta 9090* 209 | 210 | ` `*proxy\_redirect off; # Desativa redirecionamento de proxy* 211 | 212 | ` `*proxy\_set\_header Host $host; # Define cabeçalho Host* 213 | 214 | ` `*proxy\_set\_header X-Real-IP $remote\_addr; # Define cabeçalho X-Real-IP* 215 | 216 | ` `*proxy\_set\_header X-Forwarded-For $proxy\_add\_x\_forwarded\_for; # Define cabeçalho X-Forwarded-For* 217 | 218 | ` `*proxy\_set\_header X-Forwarded-Proto $scheme; # Define cabeçalho X-Forwarded-Proto* 219 | 220 | - *Headers de segurança* 221 | 222 | ` `*add\_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; # Ativa HSTS* 223 | 224 | ` `*add\_header X-Content-Type-Options "nosniff" always; # Evita sniffing de tipo de conteúdo* 225 | 226 | ` `*add\_header X-Frame-Options "DENY" always; # Bloqueia frames para prevenção de clickjacking* 227 | 228 | - *Autenticação básica para a interface web* 229 | 230 | ` `*auth\_basic "Restricted Access"; # Título para autenticação básica* 231 | 232 | ` `*auth\_basic\_user\_file /etc/nginx/.htpasswd; # Caminho do arquivo de autenticação* 233 | 234 | ` `*}* 235 | 236 | ` `*}* 237 | 238 | - *Bloco de servidor para scraping de métricas com mTLS* 239 | 240 | ` `*server {* 241 | 242 | ` `*listen 8443 ssl;* 243 | 244 | ` `*server\_name 192.168.35.101;* 245 | 246 | ` `*ssl\_protocols TLSv1.2 TLSv1.3;* 247 | 248 | ` `*ssl\_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384'; # Define os algoritmos de cifra* 249 | 250 | ` `*ssl\_prefer\_server\_ciphers on; # Prefere os cifradores do servidor* 251 | 252 | ` `*ssl\_certificate /etc/nginx/certs/certificado.crt; # Caminho do certificado do servidor* 253 | 254 | ` `*ssl\_certificate\_key /etc/nginx/certs/chave-privada.key; # Caminho da chave do certificado do servidor* 255 | 256 | ` `*ssl\_client\_certificate /etc/nginx/certs/client.crt; # Caminho do certificado da CA cliente* 257 | 258 | ` `*ssl\_verify\_client on; # Ativa mTLS (mutual TLS)* 259 | 260 | ` `*#ssl\_verify\_depth 5; # Define a profundidade de verificação de certificadosa* 261 | 262 | - *Verificação do fingerprint* 263 | 264 | ` `*if ($valid\_fingerprint = 0) { # Condicional para verificar a validade do fingerprint do cliente* 265 | 266 | ` `*return 403; # Retorna 403 se o fingerprint não for válido* 267 | 268 | ` `*}* 269 | 270 | - *Bloco de localização para o endpoint de scraping* 271 | 272 | ` `*location /federate {* 273 | 274 | ` `*proxy\_pass http://prometheus:9090/federate;* 275 | 276 | ` `*proxy\_set\_header Host $host;* 277 | 278 | ` `*proxy\_set\_header X-Real-IP $remote\_addr;* 279 | 280 | ` `*proxy\_set\_header X-Forwarded-For $proxy\_add\_x\_forwarded\_for;* 281 | 282 | ` `*proxy\_set\_header X-Forwarded-Proto $scheme;* 283 | 284 | - *Headers de segurança* 285 | 286 | ` `*add\_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;* 287 | 288 | ` `*add\_header X-Content-Type-Options "nosniff" always;* 289 | 290 | ` `*add\_header X-Frame-Options "DENY" always;* 291 | 292 | - *Sem autenticação básica para permitir o scraping de métricas (autenticação é autorizada via certificado)* 293 | 294 | ` `*}* 295 | 296 | ` `*}* 297 | 298 | *}* 299 | 300 | *events {}* 301 | ~~~ 302 | 303 | ### Passo 8: Criando o Arquivo .htpasswd, com as credenciais de usuário e senha para autenticação básica web: 304 | 305 | *rbb-monitoracao$* 306 | 307 | *sudo apt install apache2-utils* 308 | 309 | *sudo htpasswd -c nginx/.htpasswd admin* 310 | 311 | Substitua admin pelo nome de usuário desejado. O Nginx utilizará esse arquivo para validar os acessos com 312 | 313 | autenticação básica. 314 | 315 | ## Conclusão 316 | 317 | Após configurar os arquivos, suba os containers com o comando: 318 | 319 | *sudo docker-compose down # remover contêineres* 320 | 321 | *sudo docker-compose up -d # iniciar os contêineres definidos no arquivo docker-compose.yml sudo docker ps # Verificar os contêineres* 322 | 323 | *sudo docker-compose logs # caso de erro verifique os logs do Nginx e Prometheus* . 324 | 325 | -------------------------------------------------------------------------------- /roteiro_criacao_rede_teste.md: -------------------------------------------------------------------------------- 1 | 2 | # Roteiro para levantar uma rede de testes (toy) 3 | 4 | Este roteiro tem como objetivo levantar uma rede para testes compatível com a RBB. Além disso, este roteiro assume que os nós serão iniciados em uma mesma máquina virtual (Virtual Machine - VM). 5 | 6 | ## 1 - Preparação 7 | 8 | ### 1.1 - Pré-requisitos 9 | 10 | - [Docker](https://www.docker.com/products/docker-desktop/) 11 | - Git 12 | 13 | ### 1.2 - Baixar o repositório `start-network` 14 | 15 | - Execute os seguintes comandos: 16 | 17 | ```bash 18 | git clone https://github.com/RBBNet/start-network.git 19 | cd start-network 20 | 21 | ``` 22 | 23 | Daqui para frente, considere que todos os comandos são executados dentro do diretório start-network. 24 | 25 | ### 1.3 - Preparar arquivos 26 | 27 | Execute o comando/script abaixo para gerar as chaves públicas e privadas e os endereços dos nós validator, boot e writer. Exemplo: 28 | 29 | ```bash 30 | ./rbb-cli node create validator, boot, writer 31 | 32 | ``` 33 | 34 | - Execute os comandos abaixo para definir a porta da VM pela qual serão feitas chamadas RPC para os nós. Na primeira linha do exemplo abaixo é mapeado a porta 10001 da VM (host) para a porta 8545 do nó validator (container), a porta 8545 do nó é a porta padrão para chamadas RPC via HTTP: 35 | 36 | ```bash 37 | ./rbb-cli config set nodes.validator.ports+=[\"10001:8545\"] 38 | ./rbb-cli config set nodes.boot.ports+=[\"10002:8545\"] 39 | ./rbb-cli config set nodes.writer.ports+=[\"10003:8545\"] 40 | 41 | ``` 42 | 43 | Após a execução dos comandos acima os seguintes itens serão gerados: 44 | 45 | - Par de chaves pública/privada: 46 | - Caminho da chave privada: `.env.configs/nodes//key` 47 | - Caminho da chave pública: `.env.configs/nodes//key.pub` 48 | - Endereço do nó (account): 49 | - Localizado em: `.env.configs/nodes//node.id` 50 | 51 | A chave pública, endereço e outras informações sobre os nós podem ser obtidas através do seguinte comando: 52 | 53 | ```bash 54 | ./rbb-cli config dump 55 | 56 | ``` 57 | 58 | ### 1.4 - Informações úteis 59 | 60 | - Enode 61 | 62 | O enode é uma string que serve de identificador para o nó e que será utilizado neste roteiro. 63 | 64 | Sua formação é o que segue: `enode://@:`. 65 | 66 | - Variáveis de ambiente do Besu 67 | 68 | As variáveis de ambiente do Besu para **todos os nós** podem ser alteradas no arquivo `docker-compose.yml.hbs`. 69 | Para alterar a variável de ambiente do Besu **especificamente de um nó**, execute o comando abaixo: 70 | 71 | ```bash 72 | ./rbb-cli config set nodes..environment.= 73 | 74 | ``` 75 | 76 | - Topologia 77 | 78 | A topologia da RBB está de acordo com o diagrama abaixo e pode ser útil na compreensão dos próximos passos. 79 | 80 | ![Topologia da rede](https://i.imgur.com/BwHFxsf.png) 81 | 82 | ## 2 - Ajustes do arquivo genesis e static-nodes 83 | 84 | ### 2.1 - Criar genesis.json 85 | 86 | - Execute o seguinte comando para criar um arquivo `genesis.json` com o validator definido no extradata: 87 | 88 | ```bash 89 | ./rbb-cli genesis create --validators validator 90 | 91 | ``` 92 | 93 | ### 2.2 - Ajustar static-nodes 94 | 95 | As seguintes atividades serão executadas nesse sub-roteiro: 96 | 97 | - Criação de um arquivo static-nodes.json no validator apenas com o boot. 98 | - Criação de um arquivo static-nodes.json no writer apenas com o boot. 99 | 100 | Os passos acima serão detalhados a seguir. 101 | 102 | #### **Nó validator** 103 | 104 | - Desabilite a descoberta de nós com o seguinte comando: 105 | 106 | ```bash 107 | ./rbb-cli config set nodes.validator.environment.BESU_DISCOVERY_ENABLED=false 108 | 109 | ``` 110 | 111 | - No **validator**, crie e inclua no arquivo `volumes/validator/static-nodes.json` o enode do boot. 112 | 113 | Modelo: 114 | 115 | ```json 116 | [ 117 | "enode://@boot:30303" 118 | ] 119 | ``` 120 | 121 | #### **Nó writer** 122 | 123 | - Desabilite a descoberta de nós com o seguinte comando: 124 | 125 | ```bash 126 | ./rbb-cli config set nodes.writer.environment.BESU_DISCOVERY_ENABLED=false 127 | 128 | ``` 129 | 130 | - No **writer**, crie e inclua no arquivo `volumes/writer/static-nodes.json` o enode do boot. 131 | 132 | Modelo: 133 | 134 | ```json 135 | [ 136 | "enode://@boot:30303" 137 | ] 138 | ``` 139 | 140 | ## 3 - Iniciar os nós 141 | 142 | Caso o permissionamento venha a ser utilizado, inicie apenas o validator neste primeiro momento para realizar o deploy dos smart contracts de permissionamento: 143 | 144 | ```bash 145 | ./rbb-cli config render-templates 146 | docker-compose up -d validator 147 | 148 | ``` 149 | 150 | Caso contrário, execute os seguintes comandos: 151 | 152 | ```bash 153 | ./rbb-cli config render-templates 154 | docker-compose up -d 155 | 156 | ``` 157 | 158 | - Outros comandos úteis: 159 | 160 | - Utilize o seguinte comando para visualizar o log do nó: 161 | 162 | ```bash 163 | docker-compose logs -f 164 | 165 | ``` 166 | 167 | - Utilize o seguinte comando para interromper o nó: 168 | 169 | ```bash 170 | docker-compose down 171 | 172 | ``` 173 | 174 | ## 4 - [OPCIONAL] Implantar os smart contracts de permissionamento 175 | 176 | ### 4.1 - Pré-requisito 177 | 178 | - [Node.js](https://nodejs.org/en/download/) 179 | 180 | ### 4.2 - Preparar o Deploy 181 | 182 | - Execute os seguintes comandos: 183 | 184 | ```bash 185 | git clone https://github.com/RBBNet/Permissionamento.git 186 | cd Permissionamento/gen01 187 | 188 | ``` 189 | 190 | - Execute o seguinte comando para instalar as dependências: 191 | 192 | ```bash 193 | yarn install 194 | 195 | ``` 196 | 197 | - Crie um arquivo `.env` e defina as variáveis de ambiente neste arquivo conforme template abaixo: 198 | 199 | ```.env 200 | NODE_INGRESS_CONTRACT_ADDRESS=0x0000000000000000000000000000000000009999 201 | ACCOUNT_INGRESS_CONTRACT_ADDRESS=0x0000000000000000000000000000000000008888 202 | BESU_NODE_PERM_ACCOUNT=627306090abaB3A6e1400e9345bC60c78a8BEf57 203 | BESU_NODE_PERM_KEY=c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3 204 | BESU_NODE_PERM_ENDPOINT=http://localhost:8545 205 | CHAIN_ID=648629 206 | INITIAL_ALLOWLISTED_NODES=enode://7ef6...d416|0|0x000000000000|Boot|BNDES,enode://d350...70d2|1|0x000000000000|Validator|BNDES,enode://971d...5c3c|2|0x000000000000|Writer|BNDES 207 | ``` 208 | 209 | Em `BESU_NODE_PERM_ACCOUNT`, conforme o template, insira o endereço da conta a fazer o deploy e a ser a primeira conta admin do permissionamento. Por ser este um roteiro somente para testes, o endereço contido no template poderá ser utilizado. 210 | 211 | Em `BESU_NODE_PERM_KEY`, insira a chave privada da conta mencionada acima conforme o template. Por ser este um roteiro somente para testes, a chave privada contida no template poderá ser utilizada. 212 | > ⚠️ **Atenção!** Não utilize a chave privada do template em ambiente de **produção**. 213 | 214 | Em `BESU_NODE_PERM_ENDPOINT`, insira o endereço `IP:Porta` do seu validator (utilize o IP do container, execute ```docker ps``` para localizar o id do container do validator e, em seguida, ```docker inspect | grep "IPAddress"``` para obter o IP do container do validator ) conforme o template. Apenas nesse momento será utilizada a porta RPC do validator - e não do writer - para enviar transações. 215 | 216 | Em `CHAIN_ID`, insira a chain ID da rede conforme o template. A chain ID pode ser encontrada no arquivo `genesis.json`. 217 | 218 | Em `INITIAL_ALLOWLISTED_NODES`, conforme o template, insira as informações dos nós validator, boot e writer. As informações de cada nó devem ser separadas por vírgula e devem ser inseridas da seguinte forma: 219 | 220 | ```.env 221 | enode://|||| 222 | ``` 223 | 224 | ### 4.3 - Executar o Deploy 225 | 226 | ```bash 227 | yarn deploy --network besu 228 | 229 | ``` 230 | 231 | ### 4.4 - Iniciar os outros nós 232 | 233 | ```bash 234 | docker-compose up -d boot writer 235 | 236 | ``` 237 | 238 | Caso os nós não se conectem, reinicie o validator: 239 | 240 | ```bash 241 | docker-compose restart validator 242 | 243 | ``` 244 | 245 | ## 5 - Levantar block explorer 246 | 247 | #### Sirato Block Explorer: 248 | 249 | - Executar no boot node, no node de monitoramento, ou no node que irá executar o block explorer: 250 | 251 | ```bash 252 | git clone https://github.com/web3labs/sirato-free.git 253 | 254 | cd sirato-free/docker-compose 255 | 256 | NODE_ENDPOINT=http://: PORT= docker-compose -f docker-compose.yml -f sirato-extensions/docker-compose-besu.yml up 257 | 258 | ``` 259 | 260 | - Acessar no browser remoto: 261 | 262 | ```bash 263 | http://boot-node-ip:blockexplorer-port 264 | 265 | ``` 266 | -------------------------------------------------------------------------------- /roteiro_monitoramento_ethstats.md: -------------------------------------------------------------------------------- 1 | # Roteiro de Instalação do EthStats. 2 | 3 | ## EthStats 4 | 5 | Executar o EthStats Lite em nodes do Besu. 6 | 7 | ### Instalando o Servidor 8 | 9 | Obter o repositório: 10 | 11 | ~~~shell 12 | git clone https://github.com/Alethio/ethstats-network-server.git 13 | ~~~ 14 | 15 | Ir até `/ethstats-network-server/docker/lite-mode/memory-persistence directory`: 16 | 17 | ~~~shell 18 | cd ethstats-network-server/docker/lite-mode/memory-persistence 19 | ~~~ 20 | 21 | Atualizar o arquivo `docker-compose.yml` com o configurações da rede: 22 | 23 | - NETWORK_ID=648629 24 | - NETWORK_NAME=RBB 25 | - NETSTATS_API_URL=`http://`:3030 26 | - DS_URL=``:6020 27 | - DS_USER=frontend 28 | - DS_PASS=password 29 | 30 | Ajustar as portas de acesso. 31 | 32 | - ports: 33 | - 3000:3000 34 | - 3030:3030 35 | - 8888:8888 36 | - 6020:6020 37 | - 80:80 38 | 39 | Arquivo fica em `ethstats-network-server/docker/lite-mode/memory-persistence/docker-compose.yml` 40 | 41 | Conteúdo do arquivo `docker-compose.yml` utilizado: 42 | 43 | ~~~yaml 44 | version: '3.7' 45 | services: 46 | server: 47 | container_name: ethstats-network-server 48 | image: alethio/ethstats-network-server:latest 49 | restart: always 50 | depends_on: 51 | - deepstream 52 | ports: 53 | - 3000:3000 54 | - 3030:3030 55 | - 8888:8888 56 | environment: 57 | - NETWORK_ID=648629 58 | - NETWORK_NAME=RBB 59 | - LITE=1 60 | - LITE_DB_PERSIST=0 61 | - LITE_API_PORT=3030 62 | - APP_PORT=3000 63 | - METRICS_PORT=8888 64 | - DEEPSTREAM_HOST=deepstream 65 | command: ["./bin/app.js", "-v"] 66 | deepstream: 67 | container_name: ethstats-network-deepstream 68 | image: deepstreamio/deepstream.io:3.2.2 69 | restart: always 70 | ports: 71 | - 6020:6020 72 | dashboard: 73 | container_name: ethstats-network-dashboard 74 | image: alethio/ethstats-network-dashboard:latest 75 | restart: always 76 | depends_on: 77 | - server 78 | volumes: 79 | - ../../config/nginx/conf.d:/etc/nginx/conf.d 80 | ports: 81 | - 80:80 82 | environment: 83 | - NETSTATS_API_URL=http://:3030 84 | - DS_URL=:6020 85 | - DS_USER=frontend 86 | - DS_PASS=password 87 | ~~~ 88 | 89 | 90 | 91 | Iniciar o servidor EthStats com Docker compose: 92 | 93 | ~~~shell 94 | docker-compose up -d 95 | ~~~ 96 | 97 | Acessar o dashboard em: `http://` no navegador. 98 | 99 | 100 | ### Iniciando o cliente nos nodes da rede. 101 | 102 | Para adaptar o cliente para se comunicar com a nossa rede do Laboratório, foi necessário realizar os seguintes procedimentos em cada um dos servidores (bootnode, writer e validators): 103 | 104 | 105 | 1- Parar/Remover container que esteja em execução com o cliente 106 | 107 | ~~~shell 108 | # Consultar processos em execução com docker ps 109 | docker ps 110 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 111 | 3e68206d5644 alethio/ethstats-cli "./bin/ethstats-cli.…" 5 weeks ago Up 12 days silly_wiles 112 | 113 | # Parar o container 114 | docker stop 3e68206d5644 115 | docker rm 3e68206d5644 116 | ~~~ 117 | 118 | 2- Caso esteja seguinto o roteiro de instalação utilizando o rbb-cli: 119 | 120 | 2.1 : rbb-cli: 121 | 122 | ~~~shell 123 | ./rbb-cli config set nodes.validator.ports+=[\"4546:4546\"] 124 | ./rbb-cli config set nodes.validator.environment.BESU_RPC_WS_ENABLED=true 125 | ./rbb-cli config set nodes.validator.environment.BESU_RPC_WS_PORT=4546 126 | ./rbb-cli config render-templates 127 | 128 | ~~~ 129 | 130 | 2.2 : Caso contrário, criar as variáveis de ambiente no docker-compose (`docker-compose.yml`) 131 | 132 | - environment: 133 | BESU_RPC_WS_ENABLED: "true" 134 | BESU_RPC_WS_PORT: "4546" 135 | - ports: 136 | - 4546:4546 137 | 138 | 139 | docker-compose up -d 140 | 141 | 142 | 3- Modificar no arquivo `/opt/ethstats-cli/ethstats-cli.json`, o `secretKey` com a senha de acesso ao servidor EthStats (configurado em `DS_PASS`) e `firstRun` para `true`. 143 | 144 | ~~~shell 145 | "secretKey": "SenhaDeAcessoAoEthstatsServer", 146 | "firstRun": true 147 | ~~~ 148 | 149 | 3-Iniciar nova instância do `alethio/ethstats-cli`, passando as configurações: 150 | 151 | * --node-name 152 | * --account-email 153 | * --server-url 154 | * --client-url 155 | 156 | Exemplo: 157 | 158 | ~~~shell 159 | docker run -d --restart always --net host -v /opt/ethstats-cli/:/root/.config/configstore/ alethio/ethstats-cli --register --account-email rbb@exemplo.gov.br --node-name "" --server-url http://:3000 --client-url ws://127.0.0.1:4546 160 | ~~~ 161 | 162 | Com tudo configurado adequadamente espera-se obter uma tela parecida com a imagem abaixo: 163 | 164 | ##### EthStats da Rede Teste RBB 165 | 166 | ![EthStats da Rede Teste RBB](imagens/ethstats.JPG) 167 | 168 | 169 | -------------------------------------------------------------------------------- /roteiro_remocao_nos.md: -------------------------------------------------------------------------------- 1 | # Roteiro para remoção de nós de uma rede RBB 2 | 3 | Este roteiro tem como objetivo a remoção de nós de uma rede RBB já estabelecida e funcional. 4 | 5 | **Observação**: **ESTE ROTEIRO AINDA ESTÁ EM ELABORAÇÃO** e ainda pode sofrer alterações. 6 | 7 | 8 | ## 1 - Comunicação 9 | 10 | Comunique aos demais partícipes da rede sobre a remoção de nós na rede. Algumas atividades deverão ser realizadas em conjunto para a correta reconfiguração da rede, logo há necessidade de uma coordenação entre os partícipes. 11 | 12 | 13 | ## 2 - Atualização da documentação do(s) nó(s) removido(s) 14 | 15 | A documentação da RBB deve ser atualizada. O(s) nó(s) a ser(em) removido(s) deve(m) ser sinalizado(s) com `status` de `retired`, para que fique explícito que deixará(ão) de fazer parte da rede. 16 | 17 | Para isso, deve-se atualizar o arquivo `nodes.json`, que se encontra em `https://github.com/RBBNet/participantes/tree/main/`**${rede}**`/nodes.json`, onde `${rede}` pode assumir o valor `lab` (laboratório) ou `piloto`, a depender de qual rede o(s) nó(s) será(ão) removido(s). 18 | 19 | 20 | ## 3 - Remoção de nó validator 21 | 22 | Caso seja necessário remover um nó validator, **antes de seu desligamento**, é necessário retirá-lo do algoritmo de consenso. Para isso, os partícipes associados precisam realizar uma votação para tal fim. Atingindo-se a metade mais um dos votos, o validator é retirado do consenso. 23 | 24 | **Observações**: 25 | - O desligamento de um validator antes que seja retirado do algoritmo de consenso é **prejudicial ao bom desempenho da rede**, pois **aumenta o tempo médio de produção de blocos**. Portanto, **a votação para remoção do validator é pré-requisito essencial para seu desligamento**. 26 | - Uma vez iniciada uma votação, ela deve ser terminada em um determinado limite de tempo. Portanto, esta precisa ser uma atividade coordenada. 27 | 28 | A votação deve ser realizada no nó validator de cada partícipe associado através do comando: 29 | 30 | ```bash 31 | curl -X POST --data '{"jsonrpc":"2.0","method":"qbft_proposeValidatorVote","params":["",false], "id":1}' : 32 | ``` 33 | 34 | Os identificadores dos validators pode ser obtido em `https://github.com/RBBNet/participantes/tree/main/`**${rede}**`/nodes.json` no atributo `id` de cada nó. 35 | 36 | 37 | # 4 - Permissionamento do(s) nó(s) removido(s) 38 | 39 | De forma a manter a configuração da rede atualizada e a zelar pela segurança, o(s) nó(s) removido(s) deve(m) ter seu permissionamento revogado. Esta revogação deve ser feita através de execução dos *smart contracts* da RBB específicos para essa função, que devem ser executados por uma conta de administração. 40 | 41 | Solicite que um administrador da rede realize a(s) devida(s) revogação(ões). 42 | 43 | 44 | ## 5 - Regras de firewall 45 | 46 | De forma a manter a configuração da rede atualizada e a zelar pela segurança, os partícipes devem atualizar suas regras de firewall, impedindo os acessos ao(s) nó(s) removido(s). 47 | 48 | ## 5.1 - Configurações na instituição que estiver removendo nó(s) 49 | 50 | As seguintes regras de firewall deverão ser **excluídas** por sua instituição: 51 | 52 | - **Excluir** regras para seus validators removidos: 53 | - Conexão (inbound) no `:` do seu validator. 54 | - Conexão (outbound) para os `:` dos outros validators que integram a RBB. 55 | - **Excluir** regras para seus boots removidos: 56 | - Conexão (inbound) no `:` do seu boot. 57 | - Conexão (outbound) para os `:` dos outros boots que integram a RBB, além dos writers dos **partícipes parceiros**. 58 | - **Excluir** regras para seus observer-boots removidos: 59 | - Conexão (inbound) no `:` do seu observer-boot. 60 | - **Excluir** regras para seus Prometheus removidos: 61 | - Conexão (inbound) no `:` do seu Prometheus. 62 | - Conexão (outbound) para os `:` dos outros Prometheus que integram a RBB. 63 | 64 | ## 5.2 Configurações pelos demais partícipes 65 | 66 | As seguintes regras de firewall deverão ser excluídas pelas demais instituições: 67 | 68 | - **Excluir** regras para seus validators: 69 | - Conexão (inbound) nos `:` dos seus validators a partir dos validators removidos da RBB. 70 | - Conexão (outbound) para os `:` dos validators removidos da RBB. 71 | - **Excluir** regras para seus boots: 72 | - Conexão (inbound) nos `:` dos seus boots a partir dos boots removidos da RBB. 73 | - Conexão (outbound) para os `:` dos boots removidos da RBB. 74 | - Os **partícipes parceiros** devem **excluir** regras para seus writers: 75 | - Conexão (inbound) nos `:` dos seus writers a partir dos boots removidos da RBB. 76 | - Conexão (outbound) para os `:` dos boots removidos da RBB. 77 | - Os **partícipes parceiros** devem **excluir** regras para seus observer-boots: 78 | - Conexão (outbound) para os `:` dos boots removidos da RBB. 79 | - **Excluir** regras para seus Prometheus: 80 | - Conexão (inbound) no `:` dos seus Prometheus a partir dos Prometheus removidos da RBB. 81 | - Conexão (outbound) para os `:` dos Prometheus removidos da RBB. 82 | 83 | 84 | # 6 - Ajustar genesis e static-nodes dos nós dos partícipes associados remanescentes 85 | 86 | As atividades a seguir deverão ser executadas pelos **partícipes associados** para cada nó removido por outro partícipe associado, de acordo com seu tipo. 87 | 88 | Obs.: A remoção de nós de partícipes parceiros não impactam o genesis e o static-nodes de nenhum partícipe. 89 | 90 | ## 6.1 Remoção de boot 91 | 92 | - **Remova** na seção apropriada do arquivo `.env.configs/genesis.json` do boot da instituição o enode do boot removido da rede: 93 | 94 | ```json 95 | "discovery": { 96 | "bootnodes" : 97 | [ 98 | ... 99 | "enode://@:" 100 | ] 101 | }, 102 | ``` 103 | 104 | ## 6.2 Remoção de validator 105 | 106 | - **Remova** do arquivo `volumes/validator/static-nodes.json` do validator da instituição o enode do validator removido da rede: 107 | 108 | ```json 109 | [ 110 | ... 111 | "enode://@:" 112 | ] 113 | ``` 114 | 115 | 116 | # 7 - Ajustar genesis dos nós dos partícipes parceiros 117 | 118 | As atividades a seguir deverão ser executadas pelos **partícipes parceiros** para cada nó removido por um partícipe associado, de acordo com seu tipo. 119 | 120 | Obs.: A remoção de nós de partícipes parceiros não impactam o genesis e o static-nodes de nenhum partícipe. 121 | 122 | ## 7.1 - Remoção de boot 123 | 124 | - **Remova** na seção apropriada do arquivo `.env.configs/genesis.json` do writer e do observer-boot (se houver) da instituição o enode do boot removido da rede: 125 | 126 | ```json 127 | "discovery": { 128 | "bootnodes" : 129 | [ 130 | ... 131 | "enode://@:" 132 | ] 133 | }, 134 | ``` 135 | 136 | 137 | # 8 - Ajuste na monitoração pelos demais partícipes 138 | 139 | Os demais partícipes devem ajustar a configuração de seus Prometheus, para que deixem de capturar as métricas do(s) nó(s) removido(s) da rede. Para tanto, faz-se necessário a **remoção** do alvo (*target*) cadastrado para o Prometheus que foi removido da rede, no job `rbb-federado`, cadastrado no arquivo `prometheus.yml`: 140 | ``` 141 | ... 142 | scrape_configs: 143 | ... 144 | # Job para coletar as métricas de outras organizações. 145 | # Inclua aqui os alvos das outras organizações (Prometheus expostos). 146 | - job_name: rbb-federado 147 | ... 148 | static_configs: 149 | ... 150 | - targets: [ ':' ] 151 | labels: 152 | organization: '' 153 | ``` 154 | 155 | Após o ajuste no arquivo, deve-se realizar a recarga da configuração no Prometheus. Recomendamos que o contêiner Docker do Prometheus seja reiniciado: 156 | ``` 157 | docker-compose restart 158 | ``` 159 | 160 | **Observação**: Esse comando deve ser executado na pasta onde estiver o arquivo `docker-compose.yml` do Prometheus. 161 | 162 | Opcionalmente, caso não se queira reiniciar o contêiner, é possível sinalizar ao Prometheus a necessidade de recarga de configuração durante sua execução, sem parada do serviço. Mais informações sobre esse procedimento podem ser obtidas na [documentação do Prometheus](https://prometheus.io/docs/prometheus/latest/configuration/configuration/). 163 | 164 | -------------------------------------------------------------------------------- /versionamento.md: -------------------------------------------------------------------------------- 1 | # Método de versionamento 2 | 3 | O Versionamento Semântico fornece um sistema claro e consistente para gerenciar versões de software, facilitando a comunicação de mudanças e garantindo a compatibilidade com versões anteriores. As releases da RBB seguem o _semantic versioning_, cujo guia completo pode ser encontrado neste link (https://semver.org). 4 | 5 | 6 | ## Regras de versionamento 7 | 8 | **Declaração de API Pública** 9 | * Software usando Versionamento Semântico DEVE declarar uma API pública. _A definição de API depende do caso, mas no geral, é uma biblioteca, aplicativo, documentação ou qualquer coisa que fornece funcionalidades para uso externo. De qualquer maneira, é importante que esta API seja clara e precisa._ 10 | 11 | **Formato de versão** 12 | * Um número de versão normal DEVE ter o formato de X.Y.Z, onde X, Y e Z são inteiros não negativos, e NÃO DEVE conter zeros à esquerda. 13 | * Quando um software está na versão 0.x.x, ele geralmente está em desenvolvimento inicial ou está passando por testes iniciais. Isso significa que o software ainda não atingiu um estado estável ou uma API pública bem definida. 14 | * X é a versão Major, Y é a versão Minor, e Z é a versão de Patch. 15 | * Versão Major X (X.y.z | X > 0) DEVE ser incrementada se forem introduzidas mudanças incompatíveis na API pública. PODE incluir alterações a nível de versão Minor e de versão de Patch. Versão de Patch e Versão Minor DEVEM ser redefinidas para 0(zero) quando a versão Major for incrementada. 16 | * Versão Minor Y (x.Y.z | x > 0) DEVE ser incrementada se uma funcionalidade nova e compatível for introduzida na API pública. DEVE ser incrementada se qualquer funcionalidade da API pública for definida como descontinuada. PODE ser incrementada se uma nova funcionalidade ou melhoria substancial for introduzida dentro do código privado. PODE incluir mudanças a nível de correção. A versão de Patch DEVE ser redefinida para 0(zero) quando a versão Minor for incrementada. 17 | * Versão de Patch Z (x.y.Z | x > 0) DEVE ser incrementado apenas se mantiver compatibilidade e introduzir correção de bugs. 18 | * No contexto do versionamento semântico, as "builds" são um campo opcional na versão que pode ser usado para incluir informações adicionais. Então, a estrutura de uma versão com build é **MAJOR.MINOR.PATCH+BuildMetadata**. Estão sendo usadas para marcar implementações intermediárias com a data de criação da release. Exemplo: _1.1.0+2023-02-30_. 19 | 20 | * Cada elemento DEVE aumentar numericamente. 21 | * Versão 1.0.0 define a API como pública. A maneira como o número de versão é incrementado após este lançamento é dependente da API pública e como ela muda. 22 | 23 | **Imutabilidade das versões** 24 | * Uma vez que um pacote versionado foi lançado (released), o conteúdo desta versão NÃO DEVE ser modificado. Qualquer modificação DEVE ser lançado como uma nova versão. 25 | 26 | ## Dinâmica 27 | 28 | * A branch _main_ é a padrão. Ela deve ser protegida de novas alterações diretas, ou seja, qualquer nova funcionalidade deverá ser primeiro implantada em outra branch. A branch nova para implementação de features é denominada _feature branch_ e é gerada a partir da _main_. 29 | * Após a implementação e testes da nova funcionalidade, deverá ser feito um _pull request_. Releases após isso são opcionais, e tags são desejáveis e recomendadas. Dessa forma, tags e releases são geradas a partir da _main_. 30 | * Para o caso de incidentes: haverá a recuperação da release ou tag em questão para a _incident branch_, e após o conserto do erro, realizar outro _pull request_ para a main, com a geração de uma nova release. 31 | * Na criação de releases, deve-se ter em mente os recursos que serão usados por outros repositórios. As _Actions_ geram artefatos nas releases. A importação desses recursos se dá no yarn install. 32 | --------------------------------------------------------------------------------