 Boa noite! Três horas, então até nove e meia da noite. Você vê que ele seja um pouco mais curto do que isso e claro, vai depender aí da interação que a gente tiver, enfim, de perguntas, coisas nesse sentido, tá? Mas aqui o objetivo é a gente explorar o Hyper-Legia Vbezzo de uma maneira inicial, então aqui a gente não vai precisar de muitos pré-requisitos, tá? Em relação a conhecimento sobre a tecnologia, conhecimento aprofundado, muitas das coisas que vão servir de introdução e mas a gente já vai conseguir fazer coisas práticas aqui que vão ser base para basicamente qualquer tipo de aplicação que a gente queira construir com essa tecnologia, tá? Sobre conteúdo, tá? Sobre conteúdo, a gente vai começar com uma introduçãozinha ao Bezzo, o que é que ele faz, como ele funciona. A gente vai falar um pouco sobre configurações do Bezzo, como a gente configura ele com várias ambientes, arquivo, esse TOML, flags de CLI, flags ocultas, instalação por docker versus instalação binária. E aí a gente vai falar um pouco sobre redes públicas e aí a gente vai ter que entrar um pouquinho em ProfoStake The Merge, que aconteceu em setembro do ano passado e como que isso influencia o Bezzo, porque o Bezzo é um projeto mais antigo do que o The Merge, um projeto que a gente vai falar um pouco do histórico dele aí, mas dentro da Hyper-Legia desde 2019, e como executar um nó Bezzo em redes públicas, tá? E aí a gente vai falar de Bezzo em redes privadas, que vai ser, na verdade, a maior parte do que a gente tá querendo trazer aqui, que vai ser como que a gente executa ele numa rede de desenvolvimento, requisições pro que a gente pode fazer pra interagir com o Bezzo, geração de bloco-gêneses, aí a criação da rede privada com monitoramento e relatório de saúde e utilizando docker-compose pra isso. E no final a gente vai falar sobre como que a gente consegue contribuir com o projeto, mas não só com o projeto, talvez com o ecossistema que tá atrelado a esse projeto. O projeto é uma... Só um segundo que apareceu um negócio aqui na minha tela, que beleza. A gente tem um cor do projeto e a gente tem todo um ecossistema ao redor desse projeto que é possível a gente contribuir até ali com discussões, tá? Falando um pouquinho sobre mim, só pra quem não me conhece, eu trabalho com um blockchain... focado em blockchain permisionados desde 2018. Em 2018 eu comecei a estudar Hyperledger Fabric. Em 2021 eu comecei a estudar Hyperledger Bezzo. Eu estou na GoLedger, que é uma das empresas membro da Hyperledger Foundation. Eu tô na GoLedger desde 2018 e estou como sitio desde 2020. Nós somos membros da Hyperledger Foundation. Juntos com o CPQD, somos as duas únicas empresas membros da Hyperledger Foundation no Brasil. Sou contribuidor do projeto do Hyperledger Fabric e contribuidor da Certificação Oficial de Fabric, que é o HFCP, que tá familiarizado com o Fabric, pra gente já ouvi falar da Certificação, que saiu na metade desse ano. E sou mantenedor da biblioteca de contratos inteligentes do Fabric, que é um projeto Hyperledger Labs, que começou dentro da GoLedger e agora é um projeto dentro da Hyperledger, do contexto do Hyperledger Labs. O que é a Hyperledger Foundation? A Hyperledger Foundation é uma fundação que fomenta, digamos assim, projetos em blockchain, projetos open source em blockchain. Então ela tem uma série de projetos e é muito comum. Não é tão mais comum assim, mas antigamente era muito comum as pessoas chamarem Hyperledger de uma blockchain, falar assim, ah, se conheça a blockchain Hyperledger, qual é o token da Hyperledger? Não tem, a Hyperledger é uma fundação e ela fomenta diversos projetos. É um ecossistema de projetos, uma estufa de projetos, então, e ela se se apoia entre os princípios, o princípio de open source, o princípio de open development e o princípio de open governance. O que significa? Open source, a gente está muito familiarizado com o México em código, que é o código aberto. É o código aberto para consulta, para uso e assim por diante. Open development, no sentido de, o desenvolvimento desse código é aberto também, no sentido de que qualquer uma que tenha interesse e queira contribuir com o desenvolvimento do projeto e literalmente clonar esse projeto na sua máquina, fazer o feature que acha necessário, o fix que acha necessário, fazer um PR, um public request para o repositório e isso vai ser revisado para os mantenedores do projeto e vai ser aprovado. Enfim, desde 2019, eu faço isso com fabric, é realmente um processo bem aberto que acontece. E open governance, que é a direção desses projetos. Então, a partir das discussões que são feitas dentro dos projetos, você consegue opinar e direcionar para onde esse projeto vai, você com pessoa mesmo, ou as empresas que fazem parte da fundação. Então, toda semana, na verdade, toda semana tem reuniões dos projetos, mas especificamente de alguns projetos, elas acontecem de uma vez a cada quatro semanas, e elas são abertas. O link aberto é uma chamada do Zoom que você pode entrar e ouvir, ou então opinar, sem provar nenhum. A HyperHeader Foundation já tem sete anos de idade, ela tem seis projetos graduados, que são os projetos, vamos dizer, em linha de frente, sendo o HyperHeader Best, um deles e o HyperHeader Fabric outro, são os dois mais famosos, são os sete projetos encubados das mais variedades, a gente tem desde projeto de benchmark de blockchain, que é o Kaliper, até projeto de compilador de Solidity para a Solana, que é o Solang. Então, tem vários projetos. E a gente tem 50 projetos HyperHeader Labs, os projetos HyperHeader Labs são os projetos mais experimentais, contribuições da comunidade para o ecossistema de blockchain dentro do contexto da HyperHeader, onde, por exemplo, a GoLeader tem uma contribuição, que é o Cessetruz, que é uma biblioteca para o projeto HyperHeader Fabric. E dentro da HyperHeader Foundation, ainda existem os capítulos regionais, onde no Brasil a gente tem o nosso HyperHeader Chapter Brasil, muitos de vocês podem estar, talvez tenham descoberto esse workshop via HyperHeader Chapter Brasil, mas é uma comunidade muito ativa e que, mais no final, a gente vai falar mais como ter acesso à comunidade, caso você não tenha. Mais uma comunidade muito ativa que faz meet-up semanalmente, que se encontra em eventos e que discute blockchain, discute Bazoo, discute Fabric, discute outras tecnologias. E realmente é uma comunidade muito interessante de se fazer parte se você gosta desse assunto, seja técnico ou não técnico. Deixa eu ver aqui o chat para ver se tem alguma... Ah, tá. Primeira pergunta aqui, onde encontramos o link dessas reuniões? A gente, no final da sessão, eu posso compartilhar, mas os links dessas reuniões, elas ficam na página da wik, da HyperHeader, então você consegue entrar em wik.hyperheader.org e lá você consegue ver os eventos, e aí tem as reuniões contribuidores. No final, tem o link que coloco aqui no chat para você. Beleza. Então, seguindo. Aqui tem um pouquinho do histórico da HyperHeader, a HyperHeader Foundation foi fundada em 2015 e elas, na verdade, se chamavam HyperHeader Project. E o HyperHeader Project ele nasceu de uma outra fundação que é a Linux Foundation. Em algum momento ele virou a sua própria fundação que foi linhado de 2019, se não me engano. Mas desde então ele teve vários projetos como eu falei, que surgiram e que fazem parte desse ecossistema e projetam coisas bem diferentes. O fabrico foi o primeiro dele, foi um projeto que deu kickstart do HyperHeader Project, que talvez é o projeto de blockchain permissonado mais utilizado no mundo hoje, o HyperHeader Fabric, que era um projeto que era da IBM, nasceu dentro da IBM como Open Blockchain e foi doado para a fundação como código aberto no nome HyperHeader Fabric. E a gente tem vários outros projetos que foram surgindo, como eu falei, existe o Kaliper. Em 2019 o HyperHeader Bezo entrou dentro da fundação, doado por uma outra empresa, a ConsenSys. Muitos daqui devem ter ouvido já falar da ConsenSys, uma gigante aí e foi doado pela ConsenSys como código aberto, o HyperHeader Bezo, que agora é mantido pela fundação e pela comunidade ao redor. E a gente tem outros projetos aí, o CACTI que é para a inteira previlidade entre blockchains, só além de que eu falei, tem projetos de identidade descentralizada que a gente tem o Aris e o Anon Crads, enfim, a gente tem o Indy também, e a gente tem vários desses projetos. E o Labs em 2019 também, que é a porta de entrada para você ter um projeto mantido ali pela comunidade. Mas aqui a gente começa por onde? Aqui a gente começa falando de Ethereum, não tem como a gente começar a falar de Bezo sem falar de Ethereum, para quem não sabe acho difícil ninguém saber sobre Ethereum, mas a segunda maior criptomoeda em marketcap, ela teve seu início em 2014. E ela foi a primeira blockchain que adaptou esse vamos chamar de paradigma de computação para que fosse possível programar a lógica de uma regra de negócio acoplado na camada da blockchain, que é o contrato inteligente. Então foi a primeira blockchain que introduziu esse conceito de contrato inteligente, onde você programa um código que vai ser executado da mesma maneira todas as vezes que alguma transação for chamada, em uma camada que o resultado disso depois vai ser registrado numa blockchain. Então essa foi a primeira blockchain que fez isso. E ela tem uma característica bem interessante, que é onde o Bezo vai entrar, é uma característica que suporta, o Ethereum suporta vários clientes diferentes e o que isso significa. E significa que para eu fazer parte da minha rede a maneira que eu me conecto nessa rede ela pode ser implementada de várias maneiras ou posso ter vários clientes conectando nessa rede. Então a gente vai falar um pouco do que isso significa um pouquinho mais para a frente. E aí a gente também tem que falar de enterprise porque a gente sabe das origens do Ethereum a gente sabe de todo o conceito o paradigma de descentralização e de utilização independente sem terceiros, sem um mirror man no meio e a gente sabe da característica pública do Ethereum da característica pública do Ethereum é aquela que você como usuário qualquer pode criar o seu nóis e se conectar na rede da autorização dependendo da autorização de ninguém. E isso para enterprise e a gente percebe que a enterprise a gente tem requisitos diferentes você como empresa vai ter sérias restrições digamos assim com tipo de informação que você coloca dentro de uma blockchain e o tipo de informação que as outras pessoas que estão conectadas nessa blockchain vão ver então se você enterprise está colocando dados, por exemplo, sensíveis dentro de uma blockchain pública tem um existe um conflito aí então em 2017 a enterprise Ethereum Alliance surgiu que foi criada nesse contexto justamente para atender as necessidades de enterprise começar a pensar como que a tecnologia blockchain pode atender os requisitos de enterprise. O Peter Ledger é um membro da enterprise Ethereum Alliance e a gente e aí começou a discutir e a gente tem grandes empresas também dentro dessa aliança a gente tem operadores de cartão de crédito a gente tem bancos Santander, membro enfim e aí a gente tem várias grandes empresas pensando como usar a tecnologia no contexto diferente que é o contexto de enterprise e o contexto de enterprise é também diferente porque o suporte do cliente ele é vital então você precisa de um ambiente onde uma empresa que vai estar utilizando uma tecnologia ela vai ter o suporte necessário caso ela tenha algum problema que no caso de uma rede pública meio que não acontece você como pessoa depende de você mesmo confiar numa determinada empresa que você está utilizando para fazer as suas operações em Web3 mas para enterprise você precisa de um suporte por trás disso e por isso a gente também tem toda a questão de implantação consenso diferente, tem que ser permisionado, então não pode ser público você tem que ter uma rede onde somente as partes autorizadas vão estar participando e vão estar conseguindo ver o que é necessário e também tem toda a parte de segurança que é altamente importante no contexto de enterprise se você precisar fazer uma auditoria dos dados, enfim, gestão desses dados um ecossistema de fornecedores daquela tecnologia então tudo isso influencia e a primeira tentativa de fazer esse modelo acontecer no enterprise foi algo chamado Quorum foi a primeira tentativa de J.P. Morgan no mundo enterprise ele foi desenvolvido pelo J.P. Morgan e após isso foi pela consciência inclusive até hoje é mantido pela consciência o Quorum ele nasceu como um forque do Gath ou seja, o Gath é um dos principais clientes na verdade é o principal cliente de Ethereum e o Quorum nasceu como uma variação do código do Gath que adicionou camadas que seriam interessantes para o enterprise e isso trouxe novos algoritmos de consenso onde antes a gente tinha um profavor que trouxeram outros algoritmos como profiloport que a gente vai tomar um pouquinho mais para frente camada de privacidade nas transações e ele tinha uma licença por conta do Gath, ele tinha uma licença GPL e aí a gente vai falar, vou tocar um pouco nesse assunto da licença porque o Bezos ele muda um pouco isso que traz um pouco mais segurança para enterprise que é um pouco diferente que é a licença Apache 2.0 e existe uma variação sobre o que você mantém aberto ou privado com cada uma dessas licenças e aí a gente tem o HyperHead e Bezos o HyperHead e Bezos é um cliente open source para Ethereum, como por exemplo o Gath é e ele é escrito em Java como ele é um cliente para Ethereum que vai falar sobre o EVM um pouco mais para frente com mais detalhe e ele é um projeto que foi contribuído pela ConsenSys em 2019 ele era conhecido originalmente como Pantheon e aí agora faz parte do acabouço de projetos da HyperHead Foundation desde 2019 e ele é um cliente que pode ser utilizado tanto em redes públicas ou em privadas como a gente vai explorar aqui é o título do nosso workshop bom e aí a gente começa a falar os clientes de Ethereum isso é fundamental para a gente entender o Bezos porque o Bezos é justamente isso na verdade mais precisamente ele é um servidor peer-to-peer é um elemento que você vai rodar um processo dele e ele vai se conectar a outros processos de cliente que estão rodando em certo contexto e ele é um servidor peer-to-peer basicamente o que eu estou querendo dizer com isso ele é um nó que vai se conectar a outros nós e ele é independente então ele não depende mais nada para funcionar uma vez que ele se conecta na rede ele pode fazer todas as trocas que a rede requer no sentido de trocas de mensagens ele vai estar conversando no mesmo protocolo dessa rede ele vai poder submeter transações que é o processo de como se indiscreta o resultado da cadeia então os exemplos de clientes de Ethereum são o GEF que é escrito em Google ele é o principal cliente de Ethereum da rede pública HyperLedge e Bezos eu não tenho certeza agora sobre essa estatística eu posso estar enganado mas o HyperLedge e Bezos ele é o segundo ou terceiro mais utilizado na Mainnet mas eu não tenho certeza agora vale a pena pesquisar e ele é escrito em Java ele é escrito em .NET ele é escrito em Rust e por que a gente tem vários clientes de Ethereum por que isso é interessante por que isso traz um nível de segurança para a nossa rede no sentido de que se algum desses clientes tiver alguma vulnerabilidade que pode ser explorada por uma gente maliciosa o fato de você ter vários clientes significa que você não compromete todos os nós da rede de uma vez só com essa vulnerabilidade então se você tem, por exemplo 50% em GEF 25% em Bezo e 25% em Nevermind se o GEF é comprometido de alguma forma você não compromete tudo, você compromete 50% mas isso é melhor do que comprometer tudo é a mesma coisa para então se traz um elemento de segurança para a rede essa diversidade de clientes bom começa a falar sobre o Bezo vamos imaginar o Bezo como uma caixa preta o Bezo é um nó essencialmente um nó, um cliente que vai estar se comunicando na verdade eu falei que ele se comunica contra os nós mas ele vai ter várias outras maneiras de se comunicar com outros elementos que vão estar ao redor do próprio nó então a gente tem a comunicação peer-to-peer se p2p aqui ela acontece por padrão na porta 3033 e isso vai ser a comunicação que o Bezo vai fazer com outros nós da rede sendo eles nós Bezo ou não dependendo do contexto que a gente vê a gente tem uma porta RPC essa porta RPC é uma API de JSON RPC para você fazer requisições para o seu no Bezo então dessa maneira você consegue pedir informações para o seu no Bezo e interagir com ele para que ele interaja com a rede a gente vai ter um elemento do Straton por exemplo que vai ter uma porta de configuração para comunicação com uma mineração de GPU pensando no profavor e aqui a gente vai ter um serviço de stats de estatísticas do nó onde a gente vai conseguir tanto requisitar estatísticas quanto fazer uma postagem do Bezo para um servidor que vai recuperar essas estatísticas por exemplo um Prometheus Prometheus e Grafana como a gente vai ver um pouquinho mais para frente bom e o Bezo ele também é uma base de dados porque ele tem que guardar coisas a gente vai estar guardando uma blockchain dentro dessa base de dados ele internamente utiliza um modelo do RocksDB que é um modelo de chave valor e uma das estruturas no modelo de Merkel que é um modelo criptográfico onde você tem um modelo de árvore e eu não vou entrar aqui em detalhes mas vale a pena pesquisar a pessoa que quer entender mais sobre Ethereum e como ele guarda as coisas e como que a criptografia de bloco funciona isso vai ser essencial mas é um modelo onde você consegue registrar as informações e vocês vão reparar que a gente tem estado do mundo de receits que são as comprovações de transações a gente consegue registrar isso no modelo de árvore onde para eu provar que algo foi feito eu não necessariamente preciso olhar para o conteúdo completo do que eu tenho registrado eu consigo olhar somente para as hash da minha árvore e comprovar que aquilo realmente aconteceu porque as hash elas são compostas de seus nossos fôleis vale a pena entrar em detalhes aqui tem um link de referência que eu acho bem interessante do Lucca Saudanha ele é um brasileiro que trabalha na Consenso e ele tem no blog dele um post explicando o Yellow Paper do Ethereum e como o Bezos é Ethereum então isso aqui é tudo válido para a gente então tendo uma parte bem interessante lá sobre como os blocos são estruturados isso aqui é basicamente como o bloco é estruturado e como consequentemente como o Bezos vai guardar esse bloco deixa eu ver se eu consigo postar esse link logo aqui porque os slides vão ficar disponíveis depois aí vocês podem pegar o link mas eu vou tentar postar logo aqui que aí vocês já podem abrir deixa eu ver se consigo, beleza beleza então seguindo e o Bezos ele também é uma pul de transações então o Bezos como nó ele vai estar recebendo diversas transações na sua pul de transações e assim como qualquer nó de uma blockchain ele vai ter que pegar essas transações e ordenar elas no possível bloco e lógico depois esse bloco vai passar por um consenso que inicialmente vai ter que ordenar um possível bloco então ele vai receber transações essas transações vão futuar txpull txtransaction para quem não couveu essa denominação e ele vai aplicar um algoritmo de ordenação que vai ser baseado nas fees nas fees dessas transações então basicamente ele vai tentar maximizar a quantidade de fees que ele vai receber e é isso aí a gente está pensando em um contexto de blockchain pública e aí para a gente ter as redes Bezos como cada cliente é independente a gente vai ser necessário configurar esses clientes e a gente vai configurar ele com basicamente bloco genes consenso e boot nodes que são os nodes que a gente vai conectar ao nosso nó para que ele se descubra dentro da rede dependendo do tipo de rede que a gente tiver utilizando e a gente vai entrar em mais detalhes aqui na configuração do Bezos tranquilo certo bom o Bezos ele se comunica ele tem um serviço de discovery basicamente para descobrir outros nodes então a gente vai ter várias maneiras de descobrir outros nodes dependendo do contexto que a gente está ele se conecta a outros nodes via uma conexão o DP, os primeiros nodes quando a gente sobe o nosso Bezos quando a gente se conecta são os boot nodes e o restante dos nodes são expostos pelos boot nodes inclusive tem um errinho aqui boot nodes, eu vou corrigir isso aqui depois e o restante dos nodes são expostos pelos boot nodes tá o Bezos ele guarda esses nodes que ele descobre para evitar algo chamado eclipse attacks ou seja, ataques de eclipse eles são ataques basicamente um ataque uma classe de ataque basicamente visa isolar aquele nó da sua rede de comunicação então aquele nó ele acha que ele está funcionando de maneira saudável mas na verdade ele está sendo alimentado somente por nós maliciosas então o Bezos ele guarda nós numa hash table distribuída que é essa cadêmelha para evitar esses eclipse attacks então a maneira que ele faz é para ele continuar guardando os nodes e descobrindo outros nodes para evitar que ele tenha somente nós por exemplo um nó malicioso duplicado né na lista de nós que ele reconhece tá tem uma que uma pergunta do Pedro como é feita a padronização de todos os clientes ethium existem dores de consistência em redes a padronização de clientes ethium é feita porque o ethium ele tem um padrão basicamente um padrão de protocolo na verdade a rede é o protocolo então se você buscar nas informações do ethium se você entrar lá tem o site ethium.org lá tem toda uma especificação e é a mesma especificação de como é feito as especificações de tokens Rc20 e assim por diante a diferença é que o padrão do ethium ele é definido por algo chamado yellow paper que é justamente é toda a descrição e não é implementação é realmente a descrição do que é uma rede de fio uma descrição que chega até ser matemática a descrição dizendo o que ele tem que ter qual é o comportamento que ele precisa atingir quando ele recebe uma transação quando ele vai aplicar essa transação no estado do mundo para fazer a transição de estado então tem tudo isso descrito no yellow paper ele é um art, basicamente artigo e e lá tem a padronização então todo cliente que vai implementar o protocolo utiliza essas informações como base então essa essa é a diferença e se existem dores de consistência em redes na verdade não você pode utilizar o beso numa rede que só tem gaf no mainnet sem nem perceber sem nem ter nenhum tipo de problema de compatibilidade porque tem clientes diferentes sendo utilizados isso vai mudar quando a gente vai falar de redes privadas porque o beso ele implementa uma camada de redes privadas que tem certas características então isso muda um pouquinho nesse caso mas no caso de rede públicas não é tudo baseado no yellow paper o beso ele ainda tem um modelo aqui de discovery com dns onde ele consegue buscar um servidor dns para fazer indexação dos nodes dos boot nodes e ele tem um modelo aqui de descobrir de informar estaticamente os nodes que ele vai se conectar que é o que a gente chama de endereços enode e o endereço enode ele vai ter um formato onde ele tem esse prefixo ele vai ter uma chave pública e ele vai ter o endereço de conexão e a porta de conexão do node que ele vai se conectar e a gente vai ver isso com detalhes quando a gente for mexer na prática beleza bom e aí a gente tem o beso client quando ele vai se comunicar com o client ele vai utilizar aquela porta p2p e ele vai essencialmente mandar quando ele vai se conectar ele vai mandar uma mensagem hello para outros nodes basicamente ele vai fazer um handshake e ele vai confirmar os sub protocolos suportados incluindo o consenso porque não adianta nada eu estar me conectando numa rede por exemplo eu estou me conectando numa rede pública mas eu estou dizendo para o meu node beso que eu estou conectando numa rede com um consenso qbt que é um consenso de rede privada então ele ele faz essa confirmação e ele vai ter que bater as informações com o que está acontecendo nos outros nodes e o node como eu falei ele vai ser essencial para você encontrar os outros nodes que é essencialmente a chave pública que vai existir que vai ser usada para verificação das assinaturas de mensagem eles se comuniquem assinando mensagens e você quer ter certeza que o node que te mandou uma mensagem é realmente aquele node e então ele vai ter aquela mensagem assinada pela chave privada dele e como você sabe a chave pública dele você usa isso para verificar esse cara crachar entre clientes bom, só beber uma água e dar uma esperada mais alguma pergunta por enquanto pessoal, quando eu bebo uma água certo, então vamos seguir e esse daqui é um ciclo de vida do node hyperledia beso o seu node vai começar no estado inicial que vai ser o nosso genes block ou dados sincronizados ele vai buscar blocos de outros peers que ele estivesse conectando na sincronização de peers em algum momento ele vai alcançar o topo da cadeia então ele basicamente vai estar buscando blocos e apendando esses blocos na sua cópia de blocos na sua cópia de blocos internos eventualmente ele vai criar um novo bloco com transações vai fazer a propagação desses blocos e aí ele vai estar ou no contexto onde ele vai precisar sincronizar outros blocos ou ele vai estar fazendo parte da propagação de blocos e aí ele vai estar mandando blocos e outro node vai ter que sincronizar com o bloco que ele acabou de criar e a gente também tem beso e consenso então beso ele vai suportar diversos modelos de consenso desde o clássico with hash que é o perfect work que atualmente é disponível para o ethereum classic então ethereum classic para quem não sabe ethereum classic é uma blockchain baseada também no ethereum, totalmente no ethereum que na verdade foi um fork da rede do ethereum por conta de um hack que aconteceu há um tempo atrás vocês podem pesquisar a história como o ethereum classic surgiu caso vocês não conheçam mas nesse momento o ethereum classic separou da rede do ethereum normal e mantido por uma série de outras pessoas não pela ethereum foundation e aí ele ainda utiliza proof of work mas a rede do ethereum mais recentemente utiliza um outro modelo que se chama proof of stake e aí teve todo um ano passado teve toda uma grande repercussão foi o processo de fazer o ethereum parar de usar proof of work e começar a utilizar proof of stake e aí isso trouxe duas camadas para a gente uma camada que a gente chama camada de execução e uma outra camada que a gente chama camada de consenso e o hyperled ele trabalha na camada de execução isso é bem importante dizer mas a gente vai tocar um pouquinho na camada de consenso quando falar de um pouco de rede pública e a gente tem outros dois na verdade outros três tipos de consenso um deles é o click que é um proof of authority prova de autoridade na prova de autoridade você basicamente diz de alguma forma quais são os validadores ou assinadores da sua rede e os dados os blocos que verem desses assinadores eles são considerados válidos então basicamente é por isso que chama autoridade, você dá autoridade para certos nós e se esse nó diz que esse bloco é válido esse bloco é válido e existe o click que ele ele é utilizado inclusive tem algumas testes do ethium que utilizam click e a gente tem o ibft e o qbft o ibft é o Istanbul Byzantine Fort Tolerant e o qbft é o Quorum Byzantine Fort Tolerant e o qbft é uma evolução do ibft e eles também são provas de autoridade eles tem alguma diferença com click que eu vou entrar mais a fundo um pouco mais para frente mas o qbft é uma evolução do ibft alguma pergunta até o momento beleza bom e o Bezos é um servidor jason rpc também e e o servidor jason rpc ele vai servir para que a gente se comunique com o Bezos a gente vai ter alguns modelos para se conectar para se comunicar com no Bezos externamente o primeiro deles é um modelo HTTP onde a gente consegue fazer batting de requisições fazer uma requisição que tem várias e ele é um modelo por wallets como metamesk por exemplo a gente consegue conectar o metamesk no no Bezos a gente vai fazer isso eu vou tentar mostrar isso na prática a gente tem um modelo de WebSocket onde a gente consegue fazer basicamente subscriptions de eventos e ficar recebendo logs continuamente externos se você quiser consultar seus logs do Bezos externamente você pode abrir uma conexão WebSocket e começar a puxar esses logs externamente para fazer um tipo de monitoramento alguma coisa assim a gente tem o IPC agora eu estou me fugindo o que significa siga mas ele é um modelo onde você tem um socket que é um arquivo um file socket e que ele é considerado uma opção segura em beta, em your access foi lançada recentemente então nem vou entrar em detalhe e a gente também tem um GraphQL para a gente poder fazer queries específicas dentro do Bezos a gente consegue usar o GraphQL e buscar informações específicas dentro do Bezos então em resumo um resumo bem pequeno para muita coisa que a gente já falou o Bezos, ele é uma base de dados a gente vai guardar informações da blockchain nele usando as Mirko Patricia Tries naquele modelo ele vai guardar uma série de coisas ele guarda bloco, ele guarda estado do mundo ele guarda comprovações de execução e várias coisas ele é uma fila porque ele vai estar recebendo as transações e ele vai estar executando elas em uma certa ordem utilizando ali a IBM que a gente vai falar no próximo slide ele é um agente peer-to-peer então ele vai se comunicar com outros nós peer-to-peer e ele é uma API que foi o que a gente falou que agora ele vai ter diversos modelos para você interagir com ele via API recebi uma pergunta aqui ah boa, interprocess communication muito obrigado Lucas inclusive Lucas Saldanha se você for o Lucas Saldanha que eu estou pensando eu usei o material aqui da explicação do yellow paper muito obrigado tá aqui é legal e o Bezzo ele é EVM o que é EVM? EVM é Ethereum Virtual Machine quem está acostumado a trabalhar com Java consegue imaginar muito bem o conceito de EVM que é um conceito muito parecido com a JVM e a Ethereum Virtual Machine é uma camada construída para realizar as execuções de código de contratos inteligentes então um contrato inteligente ele pode ser escrito em várias linguagens a principal é solid e ele é compilado em algo chamado bytecode que o Java faz que também chama bytecode e o bytecode é uma compilação de diversas instruções que vão ser executadas pela EVM então a EVM vai ter seu modelo de contagem de instruções esse program counter basicamente vai apontar para a instrução que ele vai executar e ele vai seguir sequencialmente instrução por instrução executando em cima da memória e fazendo os registros de storage que foram necessários baseados no código da EVM e aí o resultado disso vai ser validado pelos blocos a gente vai ter atualizações do estado do mundo então para quem quando eu falei ele tem toda uma especificação de como o estado do mundo é atualizado baseado nas state transitions transição de estado então o que é executado pela EVM é central nessa atualização e o resultado dele vai ser o que vai gerar a criação de blocos para a gente tá bom e aí a gente começa a entrar que um pouco não os detalhes um pouco mais técnicos de configuração do hyperlide herbeso então a gente tem uma documentação do hyperlide herbeso que é uma sessão de redes públicas e uma sessão de redes privadas em termos de muitos dos conceitos eles são os mesmos para as duas mas em alguns detalhes específicos as duas documentações vão ser diferentes como por exemplo esse link que eu coloquei aqui ele está apontando especificamente para public networks e ele vai referenciar a parte de command line interface o CLI que serve para privadas também mas é de privadas vai ter coisas específicas do beso para redes privadas mas aqui é basicamente toda a base do modelo técnico do beso para a gente poder consultar certo então o beso tem um modelo de command line interface né então ele vai ter um modelo de suporte a argumentos né então a gente vai rodar o beso passando argumentos para basicamente para o binário do beso né a gente além de argumentos a gente consegue executar com variáveis de ambientes setadas na sessão que a gente tiver executando ou arquivos de configuração e ele vai utilizar essa ordem de prioridade né então argumentos que são passados via linha de comando eles sobrescrevem variáveis de ambientes e as variáveis de ambientes sobrescrevem arquivos de configuração e tudo que pode ser passado por argumentos que é o que está documentado lá na documentação pode ser variável de ambientes e aquele diz inclusive como você pode fazer essa transposição né então você vai você troca tudo para letras maiúsquas troca traço por underline e coloca um prefixo beso underline né e isso vai funcionar como ele dá o exemplo aqui esse miner coinbase e vira um miner coinbase tá e isso deixa muito deixa bem diversa a maneira que você pode configurar o beso tá algumas opções ali essenciais de configuração a gente vai ter as network a rede então o beso ele vai suportar ali a ele vai suportar ali como argumento algumas redes bem conhecidas né então inclusive a main net e várias redes de teste e rede de desenvolvimento que é uma rede local então você pode passar esses argumentos um argumento de onde ele vai estar mapeando os dados esse data path que ele vai mapear para uma pasta que você vai estar colocando esses dados a conexão p2sp dele né então qual o host e qual a porta que você vai estar se comunicando e o you discover se você vai estar com ele habilitado e qual os butnotes que você vai utilizar a gente vai ver isso daqui quando a gente for subir de fato a rede é api rpc que a gente mencionou ela padrão ela desabilitada e vou a gente consegue habilitar ela com esses argumentos aqui e dizendo qual qual origem qual o onde ela vai estar rostiada para que a gente possa fazer essa essa comunicação via rpc e bom a gente tem alguma uma parte aqui também de flags ocultas elas são opções instáveis mas eu acho que é interessante saber que elas existem e elas são representadas por um prefixo começa com x tá se você der um beso traço traço help traço x help né você consegue ver as configurações digamos assim experimentais né e aí é sejam responsáveis e utilizem como como testes e enfim são realmente operações que estão ficou ocultas para o motivo né e aqui é finalmente a gente consegue fazer a nossa configuração com arquivo to ml tá então isso daqui é um modelo sample configuration que vem lá da documentação tá do do uma configuração onde a gente consegue informar as mesmas informações de parâmetros de data path p2p host e assim por diante e aí quando você subir o beso você informa qual o caminho desse arquivo né legal bom e aí agora a gente começa aqui a fazer como como rodar o beso né então você pode fazer isso de algumas formas você pode baixar essa distribuição eu vou só mudar aqui o compartimento da minha tela porque eu vou vou mostrar a tela por completo mais interessante aqui porque aí eu consigo mostrar os sites é pessoal me dei um ok no chat se vocês estão vendo a minha tela inteira por favor na tela do gitarra de aqui só pra mudar e você saber beleza maravilha é então a gente a gente consegue rodar o beso baixando perguntou se vai fazer uma instalação de um beso para uma rede pública ou privada eu vou fazer os dois tá aqui a gente vai ver os dois é então a gente vai então aqui como a gente pode rodar o beso a gente pode baixar a distribuição diretamente aqui das releases do bit hub tá então se a gente for abrir aqui a gente vai ver aqui a última versão do beso e aqui a gente vai ter os links de download que vão baixar o binário do beso pra gente a gente precisa de alguns pré-requisitos instalados tá então a gente vai usar o jdk do java na versão 17 se não me engano e e aí a gente consegue rodar o beso pra quem tiver utilizando mac pode fazer um pode rodar o brew install o beso ou a gente consegue rodar ele também via docker então se tiverem docker instalado a gente consegue baixar a imagem do beso via docker pool em algum momento aqui da nossa da nossa demonstração eu vou usar docker pra fazer o beso também e aí se você tiver utilizando source você pode compilar ele com esse gradle assemble e ele vai fazer o build do binário pra você aqui eu ele tem suporte de 866 eu não tenho certeza se o suporte arme ele tá completo mas se você tiver rodando o mac um mac com m1 por exemplo e você tiver o rozer a 2 instalado ele vai fazer a transpilação lá e vai rodar sem probando nenhum tá e aqui a gente tem algumas opções mais avançadas de configuração e aí aqui a gente começa a entrar algumas partes de que vão ser interessantes pra gente ter redes privadas que é informar por exemplo um arquivo gênesis tá isso daqui na verdade na base ele acontece quando você usar rede pública para usar gênesis que já estão embutidos dentro do beso para as redes públicas tá então uma série de gênesis que já estão embutidos a gente consegue consultar se a gente entrar aqui no repositório do beso a gente vem aqui em config source resources e aí que a gente vai ver na verdade que a gente vê um monte de JSONs que são os json com gênesis gênesis json de cada rede tá então isso daqui a gente consegue informar externamente né isso vai ser muito útil pra gente subir as redes privadas tá aqui tem toda uma questão de rpc né o host que ele vai estar as origens que você quer permitir para o seu rpc não ficar aberto a autenticação jwt se você quiser e uma parte que é interessante que é parte de métricas que quando eu for subir o prometeus conectado no beso a gente vai utilizar também bom aí aqui a gente vai fazer o mais básico de todos tá o mais básico o primeiro primeiro vai ser mais básico de todos que é rodando o beso sozinho numa rede deve tá então eu vou eu vou vim aqui pro meu vs code e aí esse vs code ele tá no repositório tá que é esse repositório que tá aqui embaixo eu vou copiar o link colar no chat é e aí é o meu vs code ele tá tá com esse repositório clonado e aqui eu vou ter uma pasta deve que vou basicamente vou ter um o que eu tô fazendo aqui basicamente vai explicar o que eu tô fazendo é mas é bem é bem direto tá então a gente vai aqui eu já tenho meu beso instalado tá então para verificar a instalação do beso que eu posso dar um beso traço traço verger e aí eu tô com beso instalado aqui e aí eu vou dar rodar um beso traço traço network deve traço traço rpc http enable de que eu vou fazer logo em seguida fazer uma repisição aqui pra ver o que eu tô pra ver por exemplo bala no sujo uma carteira aqui tá o saldo de uma carteira então vou rodar aqui esse beso a gente vai ver iniciando e ele deu pau por que ah porque eu não tô calma vou ver please specify different data directory tá tá tá tá é vamos vamos entrar aqui fazer o data pack que eu acabei não colocando no comando valei não to aqui né então vamos fazer isso aqui eu vou criar uma pasta aqui deira no carteira e eu vou rodar o beso um traço traço vamos ver aqui traço traço deira igual deira beleza então ele tá tá rodando ah isso daqui é porque eu acho que eu tenho alguma coisa de pé tentando chamar o beso deixa eu ver se eu tenho alguma coisa de pé aqui no no dock não tem a mão é bom ou ele tá de pé tá recebendo uma conexão aqui que eu não sei da onde tá vindo é mas enfim a gente consegue vir aqui no nosso web em outro terminal e eu vou executar esse comando aqui pra pegar um balance desde uma carteira específica e a gente já vai ver da onde vem essa carteira tá então vou copiar colar e aí a gente vê aqui que ele eu enviei aqui um um JSON tá no padrão aqui do ele fala que qual padrão JSON RPC 2.0, qual ID o método e quais são os parâmetros desse método e ele me retornou aqui o resultado e esse resultado aqui é um hexadecimal que é o meu saldo se eu não me engano esse hexadecimal aqui é 90 mil é tercio se eu não me engano e da onde vem isso isso vem dessa e aqui ele deve ponto JSON que é uma configuração um gênesis JSON que já tá acetado dentro do beso e aqui ele vai dizer configurações de nid enfim coisas assim e aqui ele aloca algumas carteiras com um saldo então a carteira que eu tô vendo essa meia dois set três e ela tem um balanço aqui de 90 milhões de ways que é 90 mil 90 mil wetters então aqui o beso ele tá rodando e ele já tem essas carteiras alucadas e ele tá numa rede só com ele ele é o único nó dessa rede beleza então isso é o mais básico que a gente consegue fazer com o beso e a gente consegue fazer agora mais coisas mais interessantes a gente passando aqui a gente começa a falar das redes públicas e entender como que a gente consegue utilizar o beso pra falar de redes públicas pra interagem em redes públicas e aí eu queria fazer o som não vou entrar em totais detalhes sobre the merge por false take mas eu acho que é necessário falar o merge ele foi a união de uma camada de execução original do ethereum que é o que existe desde o início com uma camada de consenso e que foi criada de maneira paralela pra fazer consenso de novos blocos né que é a beacon chain então antigamente o beso utilizava um método chamado profile work que eu acho que todo mundo aqui já com certeza já vou falar e aí com the merge a beacon chain que utilizava pro false take passou a ser a camada de consenso da execução das transações do ethereum então basicamente os clientes de ethereum eles desligaram a parte do código que fazia profile work e passaram a utilizar uma outra camada de consenso que foi começada na beacon chain eu acho que vale muito a pena dar uma olhada na parte de merge do da ethereum.org porque lá explica bastante detalhes históricas mas basicamente a diferença que a gente tinha agora a gente tem um mecanismo que não usa mais problemas computacionais pra validar e registrar suas ações né que era o que o profile work fazia né basicamente a prova de trabalho o trabalho é você ficar calculando diversas hatches pra que aquele bloco seja considerado válido né pra que você resolva o problema computacional do bloco e assim por consequência os outros nós confiem que você sabe que você teve o trabalho computacional de validar aquele bloco né e o profile steak ele é um modelo onde você coloca moedas criptomoedas a prova digamos assim né você meio que bloqueia elas como garantia na esperança de você validar um bloco e receber a a recompensa daquele bloco só que você tendo essa garantia caso você de alguma forma faça um mal trabalho validando aquele bloco né então você é basicamente você tem a pele em risco né porque você tem moedas que estão bloqueadas e se você faz um mal trabalho de validação a rede vai e te dá uma posição baseada naquelas moedas que estavam como como estating né que é o chamado chamado estating tá então essa é a diferença base de pro favor e isso influenciou influenciou no beso na seguinte maneira né o beso ele é um cliente de execução ele é chamado entre aspas e film 1.0 que não é um nomenclatura que é utilizada mais né pelo menos pelo menos é o que é o que o e film.org quer né mas várias documentações utilizam essa nomenclatura que é o cliente que vai executar as transações mas que não vai fazer o consenso e aí ele vai funcionar em conjunto com um cliente de consenso que é chamado e film 2.0 que vão compor digamos assim um nó completo do um nó completo do e film e esses dois clientes né o cliente de consenso e cliente de execução vão se comunicar entre si utilizando algo chamado engine API tá e aí como é que isso bom aí é que a gente tem uma modelo de arquitetura pra redes públicas do beso e a gente vai ver um monte de coisa que eu falei lá de storage, de world state account storage, várias coisas nesse sentido mas é que a gente vai ter a parte onde a gente tem um consenso plugável plugable consensus engines e a gente vai ter aqui um proof of stake consensus e aí os consenso eles vão ser plugáveis e vão ser comunicáveis com um nó do beso a partir da engine API e por consequência vai ter as comunicando ali também pra poder depois fazer o consenso das transações que foram executadas e aí como é que isso funciona pra gente aqui né isso vai funcionar enfim os clientes de consenso eles são os mais diversos possíveis e eles são tal qual tal qual os clientes de execução existem vários os clientes de consenso também existem vários né e aqui é como exemplo a gente vai estar utilizando o teco que é um cliente da consenso da consensus então ele é tipo um projeto irmão assim do beso os dois nasceram na consenso e aí pra fazer isso eu vou eu preparei uma máquina virtual aqui na minha AWS pra gente poder executar isso aqui externamente eu colocar um IP externo aqui pra poder tentar conectar numa rede e é que a gente vai subir numa rede que é agorrida então pra isso aqui na parte de rede privada na parte de rede pública eu coloquei um readme com os comandos que a gente vai executar então isso aqui vai servir de consulta e eu vou usar isso aqui pra gente pra gente fazer a nossa execução e aqui ele explica um pouquinho do que que tá acontecendo então deixa eu só entrar na minha VM aqui e aí a gente começa deixa eu pegar o IP dela aqui pra fazer um ssh lá dentro então eu vou aumentar aqui um pouco porque eu acho que tá bem pequeno então aqui eu tô dentro da minha máquina na AWS tá aqui se eu fiz o meu dever de casa eu tenho um beso instalado pra superjumpar meu beso tá instalado e eu também instalei o teco e são processos bem similares de instalação o teco você pode baixar você pode baixar o binário dele também e você precisa do jddk do java assim como o beso e você consegue se você tiver se você estiver no Mac pode usar o bro install o teco também eu posso colocar eu não coloquei aqui como instalar mas depois eu coloco eu coloco no material e aí fica registrado então aqui eu tenho um dos meus dois clientes instalados o beso como cliente de execução e o teco como cliente de consenso tá e aí aqui a gente vai a gente vai precisar fazer alguns passos tá a gente vai como eu falei voltando aqui no nosso slide o modelo que a gente quer é um modelo onde o nosso cliente de execução se comunica com o nosso cliente de consenso via essa end API então se a gente for explorar um pouco aqui é aqui a gente vai ter vários parâmetros eu vou passar um por um aqui mas aqui eu vou ter alguns parâmetros relativos a engine né e é justamente aqui sobre a engine API tanto no tanto no beso quanto aqui no teco eu vou ter uma parte aqui de que são esse ee e aí é que tá pra gente fazer essa conexão fechar a gente vai ter que compartilhar um segredo entre esses dois nós que é um hexadecimal perdão voltar aqui que é um hexadecimal que vai ser utilizado pra fazer assinaturas entre a comunicação entre os dois clientes tá ee então essa é a primeira coisa que a gente vai fazer então a gente consegue pegar esse comando aqui ele vai gerar randomicamente um hexadecimal e colocar num arquivo pra gente vou vir aqui na minha máquina vou pegar e colar esse comando aqui e aí se eu der um cat e a gente tem aqui o nosso segredo tá esse segredo aqui são 32 bits basicamente 32 bits bem mais que 32 bits 256 beleza então a gente tem um segredo aqui e aí agora a gente vai executar o beso e o teco conectados no outro né e aí pra isso que a gente vai fazer pra gente executar o nosso beso a gente vai primeiro chamar o beso a gente vai chamar a gente vai chamar a gente vai passar a nossa rede tá então eu tô passando aqui uma rede de teste que é a goelie tá a gente vai passar aqui o p2sp host que é como que esse nó vai ser descoberto né qual que é o endereço que ele vai vai ser conectável né a partir dele eu vou usar a máquina que eu tô subindo então vou usar o IP external dela a gente a qual é a porta né falei aqui a porta padrão eu tô especificando ela mas aqui é a mesma porta padrão tô dizendo aqui que eu quero o rpc enabled é onde que esse servidor vai tá então vou estar acessando ele é de qualquer lugar é as origens de cores eu tô habilitando tudo aqui como é demonstração então eu tô deixando tudo aberto pra a vida tá é e aqui no teco a gente vai dizer a mesma coisa a gente vai dizer a rede goelie a gente vai dizer qual a gente ponte de conexão aqui entre as duas e essa porta que é a porta específica do é de conexão do teco que o teco vai ter né pra fazer essa comunicação com outros outros nóis de consenso qual é o nosso segredo métricas habilitadas enfim e aqui eu tô colocando um parâmetro de initial state que vai basicamente é pegar o estado finalizado da da rede e sincronizar ele bem mais rapidamente por conta disso é existe um é eu coloquei uma observação aqui existe um uma característica que chama o xubd activity que se você tiver muito atrasado na cadeia ele não sincroniza e aí você tem que pegar uma sincronização mais recente que seja confiado né e aí que eu tenho mais detalhes tá não vou entrar em detalhes nisso daqui não é então a gente vai fazer isso eu vou copiar isso daqui vou executar aqui no no terminal ah tá esqueci de colocar o external IP então vamos pegar o meu IP aqui na AWS copiar colar aqui em cima e esse IP lógico vai ser diferente para todo mundo que tiver subindo nossas próprias máquinas né é então vou executar isso daqui e aí eu vou abrir um outro terminal e eu vou executar vou fazer um login na minha máquina de novo e eu vou executar o teco em outro terminal então as duas são dois processos na mesma máquina tá é então vou copiar aqui o teco e vou executar aqui e aí a gente vai ver aqui vários logos acontecendo a gente vê e aí eu vou deixar rodando aqui um tempo mas existe existe uma certa demora em sincronização pelo menos na experiência que eu tive aqui subindo as coisas em algum momento ele encontra um noque para começar a baixar coisas e ele faz o sync tá então vou deixar aqui e a gente vai ver se daqui a um tempo os logos estão sincronizando tá aí aqui a gente vê que ele subiu o teco ele se conectou no execution client ele falou que está online se eu não estivesse com um bezo rodando ele ia falar que ou ele ia crachar se você inicia ele sem nada ou ele ia falar que ficou offline e aqui a gente vê que o teco ele começou a fazer a sincronizar e se conectar a outros peers então aqui ele já está já está rolando e aqui a gente vai ter que esperar um pouco para ver quanto tempo ele demora aí uma das coisas que eu falei antes né o nó ele vai ter o seu enode né então aqui quando eu subi ele me disse qual é o enode desse nó ele vai ter aqui a chave pública, o IP o IP público e a porta de conexão tá e se eu fazer isso aqui numa rede pública eu tenho que estar com todas as portas necessárias abertas tá então a porta p2p a porta da api rpc para você né tipo para você como usuário se conectar nela mas você vai ter que estar com as portas equivalentes abertas né então se tiver problema que estiver tendo problema de conexão pode ser porta né tranquilo, tranquilo atual momento eu vou deixar ele rodando aqui enquanto a gente prossegue com a e aí eu volto depois aqui para a gente seguir alguma pergunta até o momento pessoal se eu estiver seguindo, se eu estiver sendo muito rápido por favor me falem beleza então eu assumi que estamos ok então seguindo aqui a gente vamos falar um pouco de agora das redes privadas né que eu acho que é um dos grandes interesses no momento, principalmente aqui no Brasil porque por conta do real digital né e o modelo do real digital para redes beso é um modelo de redes privadas tá então toda essa parte de rede pública ela é super interessante, ela é a base da coisa toda mas as coisas mudam um pouco quando você fala de rede privadas né você não tá se conectando a nossa que você não conhece você não tá você não tem um no nosso caso que a gente não vai ter um um cliente de consenso né então a gente tem um modelo diferente né, um modelo de permissionamento né, que é o acesso restrito a membros selecionados né e aí com isso a gente tem maior controle sobre governança e privacidade né, e a gente também tem um modelo de controle de adição em remorção de validadores né então é um modelo de você ter sua rede privada permissionada e se você não tiver dentro dessa rede você não adianta, se não consegue se conectar se não consegue ler o que tá nela e você não consegue fazer parte essencialmente né e então as empresas quando querem fazer uma rede blockchain e querem ter os seus dados dentro dentro de uma estrutura privada entre os participantes não vai usar uma rede pública né a não ser que ele esteja usando um modelo diferente de criptografar os dados mas aí é um modelo totalmente diferente então a gente tem esse modelo de privacidade e aí ele traz o Bezos, ele vai trazer eh eh funcionalidades a mais né de privacidade de transações eh então ele traz modelos de privacidade a mais eh como por exemplo um modelo do TECERA tem eh o algoritmo de consenso diferentes né então tudo isso e uma coisa que é bem interessante né que é o Free Gas né então eh a gente falou de EVM né e parte do que a EVM faz é calcular o quanto que você vai gastar pra consumir pra pra executar aquela determinada transação né então quanto mais operações você utiliza dentro daquela transação né eh mais e aí você vai ter que pagar esse gas de acordo né e esse gas ele vai ser eh vai variar com o preço da criptomoeda da rede né que é o no caso é o é o ETER e isso pode fazer com que as taxas fiquem muito altas não só as taxas da rede mas as taxas de execução fiquem fiquem muito altas né no caso de rede privada eh você tem um modelo de consenso onde você confia parcialmente pelo menos parcialmente nos outros atores que estão nessa rede porque senão vocês não estariam numa rede juntos né fazendo um negócio juntos eh que é diferente do modelo público onde você não confia em ninguém eh e aí você e aí com o modelo de prova de autoridade você os validadores eles não precisam do incentivo pra fazer validação né a prova de autoridade disse que o validador ele valida e e e aquele bloco é considerado válido pelo restante da rede que é diferente do modelo do modelo público né um modelo público você precisa de um incentivo pra que alguém valide aquilo da maneira correta né e aí é por isso que você tem taxas e e bloco rewards e toda essa questão de rede pública então isso é uma característica que é interessante das redes privadas e que muitos negócios olham pra rede privada e falam ah mas então não tem que pagar taxa é não é a sua rede né sua rede privada bom e aí a gente agora a gente tem consenso para redes privadas né então a gente tem um por favor a torte um protocolo de consenso que funciona quando os participantes conhecem ao nível de confiança entre eles né que é o que eu justamente mencionei e o que acontece por exemplo vai acontecer no real digital né você tem o banco central uma autoridade monetária e você tem bancos participando dessa rede e você pelo menos a nível de confiança entre o banco e o banco central né isso já acontece no sistema financeiro brasileiro né então então um modelo onde o consórcio é uma própria de autoridade aí a gente tem três modelos aqui a gente tem um modelo do clique que eu já mencionei ele tem uma característica que não possui finalidade imediata né que significa que na cadeia de blocos você pode ter cadeias divergentes em certos momentos até que seja entre aspas totalmente finalizado né então você tem essa característica onde a sua cadeia você pode ter várias cadeias que são potencialmente confiáveis e que você tem que esperar um tempo até que você decida qual bloco você tem que confiar naquela rede que é uma característica bem similar ao que acontece na vezes pública já né e ele tem uma característica que ele tolera até metade dos validadores se falham isso é uma característica interessante principalmente quando você pensa que uma rede privada é uma rede que normalmente é menor né então quando você tem uma rede menor se você tem quatro validadores dois falhando é diferente de você ter uma rede com 100 validadores e 50 falhando né então você tem realmente entender ele como você vai fazer a arquitetura da sua rede a gente tem um modelo do IBFT que ele possui finalidade imediata isso é muito interessante porque uma vez que o bloco é formado e ele é final e você não tem cadeia divergente e isso é interessante porque em transações bancárias você não quer ter a possibilidade da sua transação passar entre aspas mas depois ser invalidada porque seu bloco estava numa cadeia que se tornou inválida né e ele vai tolera até um terço dos validadores falhando ou seja você precisa de dois terços funcionando sempre né dois terços que é menos do que a clique por exemplo e a IBFT ele tem as mesmas características da IBFT e ele tem e ela é recomendada para a produção em enterprise ele é um modelo o IBFT ele constrói em cima da IBFT e tem alguns tweaks lá específicos vale a pena dar uma olhada no protocolo se você estiver muito interessado a gente vai utilizar para essa demo e é o que o Banco Central está utilizando para a rede do real digital no piloto tá beleza alguma pergunta vamos ver aqui se é que a gente ainda está aqui a gente ainda está aqui está no sincronizar na bagunça tá só estou dando uma checada aqui não deixa mais um tempinho é alguma pergunta pessoal estamos tranquilo vamos seguir e aqui a gente tem um modelo de arquitetura do Bezo para a rede privada e aí a gente vê que é muito similar a gente tem a gente tem a parte de storage que é a mesma coisa a gente tem uma parte de networking que é relativamente parecida com a exceção de coisas aqui como o BFT e aqui embaixo que a gente tem que BFT e BFT clique inclusive a gente pode subir uma rede privada com prova de trabalho tá isso também uma possibilidade é e a gente tem aqui um a gente tem aqui um um novo modelinho aqui que é o modelo de privacidade onde a gente consegue plugar coisas como o tessera né a gente não vou chegar a demonstrar tessera aqui mas eu vou falar com o falar dele um pouquinho é o tessera é essencialmente um modelo basicamente funcionando quase como se fosse um plugin né onde você sobe um nó auxiliar né que é chamado nó do tessera e e a partir do nó do tessera é associado àquele no Bezo você consegue fazer você consegue criar com outros nós coisas que são chamadas privacy groups e esses privacy groups eles são basicamente um conjunto de nós só uma determinada coleção de dados privados então é como se eu estivesse criando uma coleção de dado privado entre por exemplo se eu tenho quatro nós eu posso criar uma coleção entre nó um e nó dois e quando eu executar a minha transação que vai ser uma transação marcada como transação privada o dado ele vai para o nó do tessera e é compartilhado peer-to-peer entre os nós que estão dentro daquele privacy group isso daí é interessante para você ter uma segmentação de dados dentro da sua rede entre os nós e você pode criar vários desses privacy groups então eu posso ter um privacy group com determinado nó e um privacy group com três nós e um outro privacy group com outros cinco nós e você pode criar vários desses e combinar as coisas que você tem dentro desse desse grupo e aí qual que é a característica do tessera a característica que o dado ele não vai para blockchain na verdade o que vai para blockchain é uma prova de execução mas o dado em si ele não vai para o world state ele vai para o tessera então dependendo do que você estiver tentando fazer em termos de o registro que você faz no nó e a utilização desse em outro nó você pode perder um certo nível de programabilidade entre essas entre essas entre esses grupos dependendo do contrato que você estiver utilizando e aí é bem interessante pensar um contrato que mexe com token que você utilizar tokens privados no modelo do tessera onde você registra saldos de maneira privada você acaba perdendo o controle totalmente do supply desse token porque você não consegue mais garantir que alguém enviou um token e esse token ele é consistente entre todos os grupos privados porque às vezes o token foi enviado no grupo privado e o resto da rede não está sabendo então é uma coisa bem interessante pensar pensar sobre soluções de tokens privados e como fazer isso e é por isso que você tem várias soluções de tokens de privacidade como as cash e soluções de zero knowledge e assim por diante então tem várias questões em relação ao tessera que são interessantes de refletir e pensar bom para a gente começar uma rede privada no nosso combeso a gente vai precisar fazer a geração de um gênesis então eu mostrei alguns exemplos de gênesis.json que são aqueles arquivos que são utilizados para fazer eu sou bootstrap subi conectado numa rede específica e aí o Bezo o próprio binário do Bezo ele provê um subcomando aqui que é o comando de operator que ele vai permitir a gente gerar um um gênesis.json com salvando as chaves privadas fazer tudo isso de uma vez só que é o que a gente vai fazer aqui então esse aqui é um comando que a gente vai executar e aí eu quero mostrar aqui a gente já o nosso nó mas a gente vê que ele está fazendo um importe de blocos agora e ele está aqui em 2% então acho que aqui ele está finalmente fazendo o download do que a gente precisa eu não vou deixar isso aqui rodando porque eu acho que essa máquina aqui pode ter história suficiente para sincronizar e a sincronização inclusive pode demorar dias mas é isso, tá? que a gente está com o nosso nó inclusive ele resolveu aqui acho que 192 nós que agora ele conhece então bom, eu vou parar a execução aqui do Bezo, da rede pública vocês podem fazer isso aí ver aqui que o meu execution client morreu e aí o Teco reclamou aqui já também vocês podem fazer isso aqui na máquina de vocês são aqueles comandos simples e aí vocês vão conectar numa rede do gorrilí e vale muito a pena fazer essas explorações se vocês querem trabalhar com rede pública, fazer exploração na rede do gorrilí, tem toda uma parte da rede mesmo do gorrilí que vocês podem ver como é que funciona e tal e o próprio tutorial da documentação do Bezo fazer isso é usando a gorrilí também bom, então vou fechar isso daqui e agora a gente vai falar voltar aqui pra redes privadas então no nosso repositório aqui a gente tem toda uma pasta de redes privadas e aqui pra facilitar eu fiz um script e aí eu vou passar pelos detalhes do script porque na verdade os scripts são os comandos que a gente executaria mais manualmente mas aqui no script é bem interessante porque se você quiser rodar esse script ele vai subir a sua rede a sua rede privada e de Bezo com quatro nós que BFT e vai instanciar um contrato vai fazer o deploy de um contrato dentro dessa rede e aí eu vou executar isso daqui mas eu vou passar, vou explicar os comandos que a gente está executando mas a primeira coisa que a gente vai fazer é dar uma olhada no no nosso no nosso gênesis então aqui em config eu coloquei o arquivo de configuração inicial que a gente tem pra o KBFT e esse arquivo de configuração inicial na verdade é um conjunto do meu gênesis do meu arquivo gênesis com os nós que eu quero gerar chaves privadas que aí o Bezo Operator vai facilitar nossa vida e também as chaves privadas desses nossos pra gente então aqui a gente vai ter o nosso gênesis, ele vai ter um TNAid um 337 ele está aqui com um fork de Berlin block, um block 0 e aqui tem algumas coisas mais importantes aqui tem isso aqui vai ser interessante pra a gente ver a nossa a nossa rede afetivamente funcionando eu vou conectar o metamask e a gente vai ter essas carteiras daqui a gente vai conseguir ver o saldo delas e conseguir fazer alguma transferência de uma carteira pra outra e assim por diante, tá? e aí esse daqui é a base que a gente vai utilizar pra aquele comando onde ele vai criar um gênesis JSON que é o que acontece aqui nesse arquivo e eu já vou explicar qual a diferença desses gênesis JSON porque eu mostrei agora e ele vai gerar uma série de aqui ele vai gerar aqui tem mais coisa, tá? mas ele vai gerar chaves dos nós que eu quero utilizar então pra cada um dos nós que vão ser 4 ele vai gerar chave dos nós que eu vou utilizar tá bom? então aqui se a gente for olhar nosso aqui no nosso script eu vou descer um pouco vou buscar aqui pelo cadê o meu? tá aqui em cima então pra executar esse script daqui vocês vão precisar de alguns pré-requisitos o primeiro pré-requisito é o Bezos tem um pré-requisito do jdk do Java e o segundo pré-requisito aqui é o truffle o truffle eu vou estar utilizando pra instalar o contrato só, tá? se você não quiser instanciar o contrato nenhum você pode remover a parte final do script aqui onde tem um comando de truffle e aí você vai ter a sua rede sem o contrato instanciado e tudo bem e aí aqui eu vou limpar os dados e aqui eu vou fazer o Bezos Operator Generate Config passando o meu quebft config file que é aquele arquivo que eu mostrei ele vai gerar um negócio aqui em network files e vai chamar as minhas chaves privadas de key e aí basicamente que eu vou fazer depois que ele gerar isso é copiar isso tudo pra pastas que eu joguei mais organizadas né? pra motivo de entender o que tá acontecendo então ele vai copiar tudo que ele gerou pra esse Bezos 0, Bezos 1, Bezos 2 Bezos 3 e a chave privada vai ficar lá dentro e esse vai ser a pasta que eu vou utilizar como deira dos arquivos do Bezos como a gente viu que precisa mapear o deira pé, tá? opa chegou a uma pergunta aqui sim o truffle tá sendo descontinuado eu tô utilizando o truffle por motivos de que eu já tinha esse script pronto ao tempo mas o hardware funciona, o Bezos ele consegue comunicar tranquilamente, tá? só tô usando o truffle por motivos de que eu já tinha isso daqui mais ou menos pronto beleza vamos seguir aqui bom, então essa é a primeira coisa que a gente vai fazer é remix também funciona remix também funciona, tá? inclusive você consegue subir uma rede local na sua máquina abrir o remix, conectar via metamesk e fazer deploy de contrato por lá a última vez que eu fiz isso eu tive alguns probleminhas lá mas é mais detalhezinho mas aqui dentro da goled a gente faz o tempo todo com remix e o remix eu não ia conseguir colocar ele no script então eu acabei não usando por causa disso beleza então a gente vai como eu tava falando a gente vai gerar os gênesis e aqui a gente vai fazer o start dos nossos nós, tá? então vamos focar aqui na parte do docker compose então aqui eu vou estar utilizando vai estar rodando o binário na minha máquina, direto o docker compose pra fazer a minha instalação a documentação de como migrar do troca por hatch hatch tá nos comentários aí, obrigado Lucas bom então como é que eu vou fazer pra subir isso aqui no docker, tá? a gente aqui no nosso modelo a gente vai ter dois docker compose a gente vai ter um docker compose para o boot node que vai ser o primeiro node que eu vou subir e aqui eu vou estar basicamente mapeando os volumes para os meus dados então eu vou estar mapeando meu deira para aquela pasta que eu criei e eu vou estar mapeando o meu gênesis também e aí é que eu vou dizer que o meu deira path é deira, o meu gênesis file é o gênesis json, estou colocando que um Mingas price de zero e aí eu estou colocando vários outros argumentos como por exemplo aqui, quais são as APIs que eu quero liberada no rpc api padrão do ethion, net, qbt é allow list para conectar no rpc métricas e host das métricas que vai ser interessante depois quando eu subir o prometeus então esse daqui vai ser o primeiro node que eu vou subir então o modelo de você subir o qbt é um modelo onde você sobe o primeiro node, esse node vai te gerar um enode para a conexão que é basicamente endereço daquele node e de acordo com esse enode você conecta os nossos subsequentes então o meu primeiro docker compose ele vai só tirar isso aqui na minha frente o meu primeiro docker compose vai subir o boot node e o meu segundo docker compose ele vai subir o restante dos nodes e no parâmetro o enode do meu boot node aí você podem se perguntar, mas esse código toda vez que eu gerar uma chave ele vai mudar e aí no script ele substitui isso de acordo com o enode que foi gerado toda vez que você rodar o script ele vai substituir isso no docker compose e vai subir direitinho mas fora isso, a configuração do base node é a mesma ele vai dizer qual path ele vai fazer aqui o rpc, enable e aqui eu vou estar subindo o restante então vou estar subindo base node 1, base node 2 e base node 3 então vou estar subindo os 3 beleza e aí toda essa parte do script é onde ele faz o export do enode e aí até uma coisa interessante porque como que eu faço para o meu script saber o enode do node eu uso api rpc para fazer um request então aqui eu tenho um request curl que se você for ver eu estou passando o método netenode e eu estou chamando ele no meu localhost na porta do no do primeiro no e aí ele vai me retornar o enode daquele no então isso é interessante porque api justamente serve para você interagir com no e pegar informações dele e aí eu pego esse enode e populo ele no restante do docker compose para poder fazer o e aí eu faço e aí eu subo aqui o restante dos nossos com docker compose e aí eu espero todo mundo se conectar minha rede sobe ali de boa e aí e aí eu instalo o contrato aqui eu basicamente estou usando o contrato padrão do open zip link um rc20 normal, não tem nada de mais nele e aí eu faço um truffle migrate para vocês terem ideia é esse goleder token aqui que é um rc20 e ele é importado do open zip link e aí vai ser legal que a gente vai ele tem um single gldr e aí quando eu conectar o metamask eu vou conseguir ver o saldo do do do gldr na minha carteira também, tá bom então para fazer isso a gente vai executar aqui, então para executar eu vou entrar na minha pasta cd private e eu vou dar um start deve aqui, tá, para fazer a execução então ele vai fazer tudo isso que eu passei, tá então ele aqui ele gerou o nosso genesis aí é que ele subiu o primeiro nó aí é que ele fez, tá fazendo request no rpc para pegar o inode o inode foi recuperado com sucesso, ele printa aqui qual que é o inode, sobe os próximos nós tá e aí aqui ele vai rodar um npm install do contrato e aí depois vai fazer vai instanciar o contrato utilizando o truffle, tá então aqui a gente já passou por bastante mais slides, tá então aqui enquanto ele sobe lá, é o que a gente tá fazendo a gente tá fazendo a criação da rede deploy do contrato uma rede com quatro nós lembrando o consenso qbt que é o que tá sendo utilizado no modelo do real digital e esse aqui é a base do comando que tá sendo feito lá no script, tá e aqui logo logo mais a gente entra aqui na parte de monitoramento aí aqui também se vocês entenderem isso que eu tô fazendo é um modelo já documentado do de redes qbt na documentação do beso mas a base a base é construída tudo em cima desse modelo aqui, né uma vez que você tem a rede qbt aí você começa a poder brincar com adição de outros nós adição de validadores, remoção de validadores tem todo modelo de permissionamento que pode ser feito com contratos e a a documentação ela entra em mais detalhes nesse sentido, tá é então vamos ver aqui a gente beleza, então a nossa rede tá de pé ele fez aqui o deploy do contrato e aí a gente pode dar uma olhada no nos nós aqui, né então vamos dar um doc.ps então a gente vai ver aqui que a gente tem quatro nós, né, beso 1 beso 2, beso 0, beso 3 tá todo mundo aqui é uma olhada nos vlogs do beso 0, por exemplo aí a gente vê aqui que ele tá basicamente tá produzindo, né ele tem zero transações pendentes mas ele tá aqui produzindo de acordo com a regra a regra de fumação de bloco dele, tá é isso daqui, acho que no momento que a gente no momento que a gente aqui, no momento que a gente fez o deploy da nossa contrato, ele teve uma transação pendente, pendente e um bloco aqui com uma transação a quantidade de gas que foi utilizada e e aí ele continua produzindo bloco sem transação tá, então aqui a gente acha que a gente tá tá ok e aí que é legal, né, que eu posso vim aqui diretamente no meu metamask então vou abrir o meu metamask aqui deixa eu tirar isso daqui é vamos lá entrar no meu metamask unlock e aí aqui eu tô eu já tô conectado porque eu obviamente eu já tô conectado na minha rede do beso, tá, na minha rede local do beso, então isso daqui é bem interessante que eu posso vim aqui e dar um ad network e aí aqui eu deixa eu ver onde aqui é aqui ad network manually e aqui eu vou dar as informações de network name, o rpc né, justamente o nosso rpc o nosso nó vai estar com o rpc aberto tnyd, curse symbol e aí se tiver um bloco explorer é opcional e aí eu salvo e aí ele vai me conectar diretamente no nó pra eu poder trabalhar enfim, nas account que existem dentro daquela rede, tá, então já tô conectado aqui no meu beso, eu vou voltar aqui agora pra o metamask e aí que a gente vê, eu tô com duas contas, tá, eu tô com uma conta importante, essa aqui é a conta que ele veio direto no metamask que há propósito não uso pra nada e aqui tem a conta que foi importada, que é essa meia 273, né, que se a gente for dar uma olhada no nosso gênesis json é no cadê, fecha contratos fecha aqui as gênesis que se a gente for ver aqui no meu nosso gênesis json, é uma das contas colocadas aqui com seu saldo e aí lembrando, isso daqui tá escrito aqui, essa a private key que tá aqui ela é ignorada no gênesis, ela não serve pra nada e inclusive essas contas aqui elas são tipo conhecidas por serem contas de teste, então não utilize essa chave privada em rede pública até em rede privada de teste net, se você for utilizar vai ter um monte de gente utilizando porque todo mundo conhece a chave privada dessa conta, tá, mas essa chave privada vai servir pra você importar no metamask, né, então posso fazer isso aqui com uma terceira conta, então vou pegar essa chave privada aqui, ela tem um saldo de 90 mil essa daqui tem um saldo de 70 mil e eu vou fazendo aqui um ad account import account, eu vou colocar a chave privada, fazer um import aqui e aí agora eu tenho um account 3 com 90 mil que é justamente a conta que tá escrita aqui, beleza? e aí aqui eu posso fazer o que eu posso fazer, né, de mandar, então eu posso vim aqui fazer um send né, vamos fazer um send aqui send to account 3 não, esse daqui é um send to account 3, eu vou mandar 500z vamos ver que se vai dar certo então ele veio aqui, vou confirmar aí ela veio com o pendente a nossa esperança é que a gente veja uma transação pendente chegando aqui e que ela não fique pendente pra sempre e ela acabou de ser adicionada num bloco, foi produzido e aí em algum momento a gente espera que o metamask atualize e a gente vê que a transação foi confirmada, eu mandei agora tenho 69.500 e a minha outra conta tem 90.500 então estamos transacionando dentro da rede privada e aqui tem uma coisa interessante que eu consigo fazer, né, eu falei que eu fiz um depósito um contrato, que é um token recebinte e aqui eu inclusive já tenho ele importado aqui porque essa conta já tava já tava setada aqui, mas eu consigo por exemplo, vim aqui na minha conta 3, vou fazer nela e eu vou fazer um import tokens aqui então estou conectado na minha rede do Bezo eu vou clicar em import tokens aqui e aí eu vou pegar o token contract address e aí como é que eu sei isso se eu não estiver perdido aqui o o deploy a gente consegue ver o tá aqui quando eu fiz o deploy aqui no trofe, eu tenho um contract address descrito aqui, então vou pegar esse contract address e eu vou adicionar aqui eu tenho que colocar o 0x na frente mesmo no 0x e aí ele já vê aqui que eu estou aqui em símbolo GLDR e eu vou dar um next aqui ele vai importar e eu tenho 0 nessa conta aqui, 0GLDR e na outra conta eu tinha 0.9 então a gente pode fazer uma transferência também de GLDR da conta 2 pra conta 3 e aí a gente vai transferir vamos transferir 0.3 0.4, sei lá a gente vai dar um next, a gente vai confirmar a nossa transação e aqui a gente vai ver aqui nos nossos logs que eu vou voltar aqui que ele teve uma transação pendente, é bem aqui recentemente e aí uma transação que foi produzida logo em seguida, tá e se a gente voltar aqui, a gente deve ver o metamask atualizando em breve, pronto atualizou, foi confirmada e aí agora eu tenho 0.5 GLDR e minha conta 3 tem 0.4 GLDR, tá beleza? alguma pergunta pessoal legal então o que a gente vai fazer agora é passar pra última parte a parte de monitoramento, aí eu vou falar um pouco de contribuições do projeto inclusive o Lucas se ele tiver ainda que quiser contribuir com essa parte porque é um dos mantendedores do projeto né e aí a gente abre pra perguntas, se tiverem perguntas específicas e coisas que vocês gostariam de trazer pra conversa e assim por diante então a parte de monitoramento o Bezos, o nó do Bezos ele vai expor pra gente aqui ele vai expor basicamente um canal pra gente poder fazer monitoramento inclusive e aí você usa ferramentas típicas de monitoramento pra fazer isso né, prometeus pra fazer scraping dessas métricas e o Grafana você usa pra fazer a montagem dos dashboards, inclusive existe um dashboard oficial Full do Bezos que você consegue pegar o JSON da descrição dele importar no seu Grafana e já vim com o dashboard construído aqui a gente vai fazer só o prometeus que ele a parte realmente faz scraping das métricas e aí pra isso aqui eu já no no que eu subi aqui que tá rodando, eu já já deixei ele mais ou menos pronto ali, então se a gente voltar ali no comando de execução que tá dentro da minha pasta do docker aqui no bootnode que é o bootnode que eu estou expondo pra métricas aqui no final do comando eu passei duas dois parâmetros um matrix enabled e um matrix host que aqui no meu caso aí é por questões de, eu tá rodando no docker aqui no meu caso, o host ele é o nome do meu container e aqui eu estou rodando, eu estou fazendo dessa forma porque eu vou subir um container prometeus que vai se conectar via rede do docker no outro container então ele usa o métricas host do nome do container e aqui na minha pasta prometeus a gente vai ter um docker composito prometeus que vai estar pegando prometeus latest aqui, não tem nada demais e vai estar mapeando um arquivo de configuração como config file desse prometeus e ele vai estar utilizando a mesma rede virtual do docker aqui por motivos de um container conseguir se comunicar com outro e aqui no meu com o docker eu vou ter aqui algumas configurações do prometeus, mas o que é importante é esse job aqui do beso que eu vou estar ele basicamente vai se conectar na porta padrão de scraping do beso, que é o 9.545 você pode configurar essa porta que pode mudar ela e ele vai estar chamando matrix path que é o barra matrix e ele vai conseguir buscar para a gente as métricas específicas do beso que a gente vai poder consultar então para fazer isso aqui também não tem nenhum mistério dentro da minha pasta private eu vou dar um cd na minha pasta prometeus e eu vou rodar um docker composito aqui traço D e aí ele vai startar o meu container do prometeus vou dar um docker ps aqui e aí a gente vê o prometeus rodando na porta 90-90 que é a porta onde a gente vai acessar a interface do prometeus para quem nunca usou prometeus ele te dá uma interface que você consegue consultar as coisas não é uma interface bonita no sentido de você conseguir ver várias métricas ao mesmo tempo como dashboard por isso que você pega e coloca no grafano mas o prometeus é a ferramenta de scraping que a gente vai utilizar se eu não me engano tem suporte para outras ferramentas mas a prometeus eu acho que é a mais utilizada nesse contexto e foi a que eu escolhi para fazer aqui o nosso modelo então vou acessar aqui no meu browser localhost 90-90 e aqui eu estou no meu prometeus e aqui eu vou conseguir nessa expression eu vou pegar o gráfico aqui nessa expression eu consigo digitar várias métricas que vão estar sendo consultadas e quais métricas são essas eu posso entrar aqui na documentação do Bezo e a gente vem aqui monitoring vamos ver monitoring e aqui em monitoring com é isso que eu acho que está monitoring configure metrics and monitoring eu quero a parte de prometeus prometeus stopper meteus isso pronto aqui embaixo por aqui eu não sei se é exatamente aqui tem uma tabela acho que não é aqui não tem uma grande tabela com todas as métricas que você pode consultar deixa eu pegar, deixa eu ver se eu acho aqui direito o meteus dashboard deixa eu eu não estou achando aqui agora mas a gente vai... se eu digitar Bezo aqui a gente vai ver um monte de métricas e aí justamente na documentação tem uma lista do que cada uma dessas aí significa tá bem descritivo aqui, mas aqui a gente vai ter na documentação a gente tem a listagem disso aqui então não é só Bezo tem outros que começam com outros nomes mas a partir daqui eu consigo escolher a métrica que eu quero visualizar enfim, tem várias métricas por exemplo, request time do RPC, aí eu venho aqui, clico em execute mostro o gráfico e aí ele vai começar a ver aqui por método então por exemplo a cada método que ele chamou aqui ele tá me retornando o request time dele tá, então eu consigo ver isso eu consigo ver blockchain, vamos ver headgas used vamos ver esse e aí a gente vê aqui ele tá zerado, eu acho que faz sentido porque a gente não tá utilizando gas nenhum mas enfim é aqui que você vem pra dizer como que você vai consultar esse tipo de informação a gente tem message inbound message outbound tem um monte de coisa aqui um monte de coisa então é assim que a gente conecta, eu também não tenho nada de muito complexo conectar um prometeus fazer monitoramento desses nossos é bem é bem direto e bem tranquilo e aí quando você conecta um grafano você vê algo parecido com isso daqui onde você tem block time, blocks behind os nos aqui que você tá conectado e você pode conectar com vários nós monitorar todos eles ao mesmo tempo é porque aqui eu tô usando só um target mas eu poderia ter mais de um target aqui configurado e sobre monitoramento eu acredito que é isso, alguma pergunta sobre essa parte de monitoramento, ou então alguma coisa antes disso de rede privada tá, legal, bom e aí agora que a gente passou por tudo isso, a gente fez deploy, a gente usou subiu um beso cruzão sem nada pra ver como é que ele sobe inclusive conectando metamask nele é a gente subiu uma rede a gente subiu um nó rede pública conectando uma test net com um cliente de consenso, conectado ao beso e aí a gente subiu uma rede privada utilizando um modelo que é BFT com um contrato conectando metamask interagindo com ela e monitorando isso e aí é bastante coisa e é um projeto que é mantido open source pela comunidade, então como é que a gente faz com que isso continue acontecendo e com que esse projeto ele refita digamos assim as necessidades que são sentidas no mercado ou o que seja com contribuições contribuições pro projeto então a gente tem o BASO core que é o repositório principal que é onde o beso inteiro tá implementado dele que a gente baixa o source pra poder compilar se a gente quiser rodar o beso e tem um markdown aqui que tem algumas instruções de contribuição e o processo de contribuição ele vai variar por projetos dentro da hyperlegia mas no geral eles são bem parecidos no sentido de que basta você ter uma conta no github e um sonho de contribuir interagir ali e subir uma issue interagir com os mantenedores que vão estar discutindo os problemas técnicos ou então efetivamente pegar no código e implementar um fix implementar uma feature e isso ser valioso do ponto de vista da onde o projeto tá caminhando e aí os pull requests vão ser avaliados e eventualmente merjados na branch principal e aí com acredito no fabric assim eu tenho um contato bem forte com o pessoal do fabric uma vez que você tem um histórico de contribuição sólido você é considerado pra se tornar mantenedor você passa a fazer parte da lista da lista de pessoas com um nível um pouco maior de poder dentro do repositório inclusive pra revisar outras outras contribuições então aqui a gente tem todo modelo de contribuição e quando eu falo contribuição na verdade contribuição não é só código contribuição interagir também se você tiver só uma pergunta rápida aqui se eu não me engano ele direciona pra e que ou se é pro ele direciona pra o discord então existe um discord da rp ledger que eu vou o link tá nos slides ali eu vou mostrar logo em seguida e que existe uma série de canais de beso pra interação a maioria deles na verdade eu acho que todos eles são pra interação em inglês né a maior parte da comunidade interagem inglês mas tem dos mais diversos assuntos que são os liberais do beso tem um canal só de enterprise do beso tem enfim tem vários tipos de canal lá que é justamente esse discord e eu já me utilizei do discord lá pra fazer várias perguntas e sempre tem alguém lá disposto a responder tá tem os workflow de contribuição tem caso você acha um bug como é que você coloca isso daí pra que os outros saibam e assim por diante code review então aqui a gente tem os links de como você pode contribuir no ponto de vista de código com o projeto tá aqui eu gostaria de aqui a gente também tem contribuição de documentação né que é um outro tipo de contribuição que as vezes as pessoas não pensam que é um tipo de contribuição extremamente válido mas existe um um esforço pra contribuição de documentação então se você acha que tem uma parte da documentação que tá faltando alguma coisa alguma correção a ser feita existe um processo aqui nesse link que eu coloquei nos slides vocês vão conseguir acessar o workflow de contribuição de guidelines enfim até mesmo se você quiser interagir sobre documentação no discord da hyperledger também é válido e aqui a gente tem finalmente o discord da hyperledger tá vou copiar esse link aqui e vou colar no chat que é isso quem não faz parte pode entrar quem tá vendo isso daí depois o link que é bem simples discord.gg barra hyperledger e tem um canal hashtag beso e tem vários outros canais que começam com hashtag beso também que vão estar fazendo coisas similares nos assuntos específicos e pra começar o workshop que é em português a gente tem a comunidade do hyperledger chapter brasil dentro do discord da hyperledger existe um canal do chapter brasil que é o hashtag brasil chapter e a gente tem existe um grupo no whatsapp do chapter que geralmente se você entrar no discord e pedir pro joelho que é o chair da comunidade no brasil ele passa o link do convite do whatsapp por lá ele administra o grupo e lá no whatsapp o grupo é extremamente ativo só tá discutindo o blockchain o tempo todo seja a hyperledger ou tecnologias associadas e o beso tá extremamente em evidência lá no grupo pessoal falando de beso o tempo todo e aí bom e aí eu acho que agora deixa aberto pra perguntas né eu deixei propositalmente um tempo pra que a gente possa interagir explicar mais coisas que venham de vocês mas no momento do que eu tinha pra mostrar a gente passou por tudo é eu queria ver se o eu não sei se o lucas saldanha tá por aí ainda lucas você tem alguma recomendação de contribuições do projeto especificamente você como mantenedor se você tiver quiser colocar no chat aí pro pessoal é muito interessante mas se não tiver tranquilo e aí pessoal se vocês tiverem perguntas fiquem à vontade eu vou mudar aqui o meu share pra sua tela do slides que eu consigo ver as perguntas direito beleza pessoal se vocês não tiverem mais perguntas eu me coloco a disposição caso vocês tenham perguntas depois sem problemas tá se vocês quiserem me adicionar enfim me procurar meu nome ah tá o beleza ah isso daqui é isso daqui é legal que o lucas tá falando falando que tá trabalhando mais no teco atualmente mas no github existem tickets com label indicando eixos que são boas pra primeira contribuição né então isso é bem interessante dá uma explorada nem uma explorada nas eixos e filta em puro boas primeiras primeiras contribuições geralmente é good first contribution que são eixos interessantes que geralmente são mais acessíveis vão requer um entendimento do projeto um pouco menor e eu acho que isso é realmente um bom passo pra começar e claro a Hyperledia é sobre ter uma comunidade a Hyperledia é sobre ter uma comunidade interagir com pessoal então no discord você pode interagir se você tiver dúvida pessoal lá no discord mantenedores e não mantenedores vão estar lá dispostos a responder eu tô lá no discord também da hyperledia se vocês quiserem marcar lá o meu a rouba é a rouba venze e aí eu posso responder perguntas por lá mas se não eu tô disponível aí pra onde vocês quiserem encontrar pra poder interagir mais sobre Bezo e o lucas tá falando aqui que a gente fez no teco também se alguém quiser se envolver que eu acho que é bem interessante pra quem quiser o público e quiser mexer com cliente de concesso é ficar a recomendação do lucas e o Fernando falou que beleza depois pergunta pode ser o Fernando eu tô onde você me encontrar eu tô disponível pra pra poder responder e a gente poder discutir mais sobre o assunto tá pessoal eu acho que ninguém tem mais mais perguntas tá eu acho que é o por isso é é por hoje é isso ficou a disposição pessoal queria agradecer a presença de todo mundo que tá aqui no zoom no zoom e pessoal que assiste depois no youtube também muito obrigado e qualquer coisa também tô disponível posteriormente daqui a um mês daqui a dois dois meses um ano o que for beleza é isso gente muito obrigado pela presença David, eu acho que estamos bons ok, isso é ótimo, obrigado muito e obrigado a todos por participar sim, obrigado muito David sim, espero que a discussão fora bem e obrigado Sam e obrigado a todos e o recordamento será no mesmo link do live stream ok, perfeito e depois vamos compartilhar o link e sim, claro sim, sim, claro sim, obrigado a todos obrigado David, valeu pessoal até mais