├── .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 | 
112 |
113 | 
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 |
4 |
5 | Atenção: esta página está em construção e ainda será revisada pelo Comitê Técnico da RBB
6 | |
7 |
8 |
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 |
30 |
31 | |
32 |
33 |
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 |
4 |
--------------------------------------------------------------------------------
/arquitetura/visoes/infra-basica.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Atenção: esta página está em construção e ainda será revisada pelo Comitê Técnico da RBB
6 | |
7 |
8 |
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 | 
14 | 
15 |
16 |
17 | ### Tipos de nós: núcleo (core nodes) e nós satélites (satellite nodes)
18 |
19 | 
20 | 
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 |
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 |
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 |
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 |
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 | 
67 |
68 | 
69 |
70 | 
71 |
72 | 
73 |
74 | 
75 |
76 | 
77 |
78 | 
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 | 
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 | 
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 | )
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 | 
58 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 |
--------------------------------------------------------------------------------