Como funciona a Blockchain | Bootcamp #EthereumRio | Solange Gueiros

Bootcamp Ethereum Rio (2023) · 21 Dec 2022 · 1:20:49

A Portuguese-language bootcamp session introduces how a blockchain works and then has students deploy their first smart contract. Solange Gueiros explains hash-linked blocks, hash functions, Merkle trees, majority consensus, gas as transaction fuel and the unit sizes of Ether, then walks the class through writing a simple registry contract in the Remix online editor and publishing it from a browser wallet. A second contract adds an owner-controlled whitelist, events and modifiers, and she warns that public contracts need access control, repeated testing and audits.

Speakers

Topics

From Bootcamp Ethereum Rio (2023), hosted by Ethereum Brasil.

Transcript

então agora sim a gente vai falar de blockchain e afinal que que é blockchain gente tô aqui nada mais é do que o próprio nome diz uma cadeia de blocos aproveitando no pape do nem existe então a gente tem os blocos ligados uns aos outros através de uma do que eu falei que é que é o hash né então já já me explico melhor esse negócio que é o resto mas ainda assim tudo que tá nesse bloco ele gera um resto aí o que foi gerado no bloco 1 ele vai aparecer no bloco 2 ele influencia o

bloco 2 e assim sucessivamente aí esse último bloco aqui ele tem o resto desse que tem desse que tem interesse se alguém tentar mudar alguma coisa lá naquele primeiro que aconteceu tem que mudar tudo que aconteceu depois e lembra da história inconsciente toda a rede tem que gostar disso tem que aceitar se não consegue mudar por causa disso que a gente fala tinha imutável aqui para você conseguir mudar alguma coisa que já está lá e já foi validada você teria que ter aí um com o uso da rede lá alguma coisa negativa de mais da metade da rede querendo fazer coisa errada e o mais legal o custo de fazer coisa errada é muito caro gente é mais barato ser certo e isso é fantástico o negócio foi criado

de maneira que o certo é o melhor é o mais barato é o melhor que você ia fazer e bom eu falei para vocês as transações né Principalmente quando a gente tá falando de terem eu gosto de falar até as transações elas o Entendo ele é uma máquina de Estado então a gente tem fotografias de algumas situações que estão acontecendo que são as fotografias do blockchain Então o que muda o teu de um bloco com outro de um estado para o outro ele é chamado de transação então se eu estou por exemplo deste lado da sala eu posso ter uma fotografia aqui se eu vou para este lado da sala e eu tenho outra fotografia O que que tem que

acontecer para eu sair de lá e vir para cá uma transação Então tem que ter uma transação essa transação vai sair com a validade no blockchain e na próxima fotografia Eu agora estou do lado de cá e eu não paro nesse ponto que eles fizeram para mim [Música] E aí essas transações que alteram esses estados é que fazem isso então nos blocos Então a gente tem as fotografias dos Estados globais que seriam esses produtos em determinadas posições né com as contas com determinado saldos com determinados situações e a gente tem os blocos com as transações que estão fazendo essas alterações

então bom quando a gente fala em blockchain a gente pode falar algumas coisas assim eu posso falar que ele não é uma tecnologia só a gente pode falar num conjunto E a gente tem três pilares básicos que é a questão da Computação distribuída a questão da teoria dos jogos e como eu falei e a criptografia tá e gente eu descobri interrom consigo ficar ali porque vocês vão olhar o que tá escrito aqui então quando a gente fala nesse sistema distribuído é só para a gente fazer essa diferenciação então do que é Centralizado onde se eu quiser destruir eu vou jogar uma bomba no lugar só para o que é descentralizado onde eu tenho alguns copos e eu vou ter que jogar

então 10 bombas não uma só ou quando eu tô falando no distribuído eu tô falando que todo mundo se conecta com todo mundo isso significa que para você conseguir destruir uma rede você tem que destruir todos não pode destruir só um ou só os maiores tem que descobrir tudo e por isso que a gente fala que o conceito do distrito no blockchain é o que dá força para que ele nunca seja destruído para que eles estavam sempre E aí lembra que a gente falou então do livro razão que é essa esse registro de transações a gente tem ele distribuído espalhado por todos os nós que querem então

a ter uma cópia disso ainda intervalo um menino me perguntou como é que o Mod escolhe outro nome eu já não sei quem foi mas eu pego na minha cabeça né daí a gente já resolve Então como é que que acontece o software que a gente rodar o nó ele tem várias coisas Então imagina que assim existem softwares distintos né que o próprio etéreo o mais popular é o GF muitas vezes eu crie uma rede privada na turma eu não vou fazer isso dessa vez não precisarei do curso de 48 horas mas nessa nesse software uma das coisas que ele tem aquela área das transações não validadas que ela impun outra coisa que

ele tem é uma parte que a gente chama de broadcast que é para enviar o grupo faz duas coisas ele pega a transação que ele recebeu através dele e manda para todo mundo e avisa aí eu tenho uma transação aqui também e ao mesmo tempo ele fala para os outros nós do tipo e eu existo geralmente esse Sinop principal esse software ele já tem dentro dele alguns nós alguns endereços alguns Ipês de nós que estão na Rede que são válidos que são uma queda dos próprios criadores desse desse tipo de programa que tá rodando nó então por exemplo o gaf que eu falei que a

gente mais usa né então dentro do GAP ele já tem os Ipês de outros nós válidos por eles então esses são os primeiros nomes a partir desses nós você vai ser identificado por eles e você vai ser identificado pela renda inteira Então é assim que nós descobre o outro geralmente você consegue configurar quantos nós você quer descobrir então eu quero me comunicar com 5 hotéis com 25 depende até da capacidade do seu computador também quando a gente vai ser de privada a gente até pega o a identificação de cada um e passa para os outros para que todo mundo esteja na mesma identificação tá eu e uma

curiosidade por exemplo de rede privada para vocês não sei se vocês já ouviram falar do desse CNPJ que é do governo criado pelo Dataprev e que é a atualização do CPF e do cnpjs através de uma rede eles nunca vão simplesmente para guardar o CPF eles usam para fazer um broadcast para os outros órgãos públicos das atualizações do que é o que aconteceu no CPF e no CNPJ de alguém eu comecei a dar aula para eles te der logo que tinha acabado em 2018 eu dei muitas aulas para eles eles têm um Centro de Formação em Florianópolis já fui lá dar aula para eles e eu tenho super orgulho desse projeto porque é uma rede privada de

célula gente não é outras coisas até mais corporativas é uma rede que a gente conseguiria construir aqui uma igualzinha e só a gente ter acesso a eles usam lá uma rede desse tipo que sobreviveu as atualizações monstruosas da pandemia Por Exemplo foi muito legal isso não tá ligado [Música]

eu vou deixar isso para sei lá alguma algum outro momento porque não é foco no nosso curso nosso foco é eterno e coisas relacionadas a etéreo e no máximo que eu posso falar é coisas como isso que assim eu posso usar toda a estrutura dele para criar uma coisa privada mas eu não vou entrar nos outros não tá bom não agora é possível sim E aí bom falando das coisas técnicas né então a gente falou de sistema distribuído criptografia o que interessa para vocês são esses três carinhas são parentes os três que estão

distribuindo um monte de adesivo nas mesas e eu quero uns 10 20 aqui comigo tem gente que não recebeu o Jordan deu suplementar ele tá todo mundo querendo e volta aqui então é determinite ou seja ele é sempre gerado igual da mesma forma gerar um resto é uma coisa muito rápida ele é de mão única Então a partir do hashi a partir do valor original ou gera um hashi a partir do hashi eu não volto ao valor original E como eu até comentei com vocês antes Se eu colocar um espaço que ninguém vê a saída do Hatch é uma coisa completamente diferente não parece que é na agulha e ele depende do tipo de resto tá mas o

que a gente usa em meu ok ele é resistente à colisão não me falem de complicação quântica Agora não vou entrar nesse encontro tá mas ele é resistente a colisão ou seja duas coisas não geram o mesmo e eu vou até sair um pouquinho daqui para a gente fazer uma brincadeira prática de novo e eu sei que eu lembrei que a minha tela sumiu hoje é uma grande evolução que é o seguinte a gente vai a gente vai aqui ó nesse bloquinho demo tô colocando ele lá no pet para vocês ó que legal a Barbara já colocou todo o

material da marca mesclar ali embaixo agora linha 18 e meia e cola o link do hash Deixa eu fazer isso aqui com vocês e eu vim direto nesse Tem várias coisas aqui em bloco bloquinho eu não vou fazer todos vocês podem brincar depois mas aqui por exemplo eu vou escrever documento e poderia ser uma transação poderia ser o que foi que eu tenho um determinado do hash gerado aqui embaixo se eu mudar para documento um muda tudo gente muda o início mundo final e se um lugar para documentos já era outra coisa completamente diferente e eu posso pegar e escrever isso 500 mil vezes uma bagunça mas que legal

não interessa o tamanho da minha entrada a minha saída é sempre igual Então isso é outra coisa super legal aí eu tenho a mesma saída então a gente pode ter deveria do tamanho da transação das informações que tenham nela a sair é sempre do mesmo tamanho a igreja que eu queria que vocês brincassem um pouco depois a gente tem a ligação dos blocos eu vou passar um pouquinho rapidinho até sobre isso mas eu tenho ó meus blocos aqui nesse data eu colocaria as linhas transações por exemplo e essa mineração ele tá gerando um teste se ele tá velhinho porque já tem agora se eu escrever então aqui a transação ficou bem fraquinho Tá mas ficou

vermelho em volta porque agora esse resto que tá aqui embaixo ele não é mais válido aí eu vou pedir para minerar que que ele vai fazer ele vai achar um monstro que vai deixar o meu bloco válido de novo o bloco inválido os outros nós da rede não vão aceitar o seu Bloco eles não vão querer então você tem um bloco que você tem ele tá até um determinado da rede mas a rede não cresce a partir do seu Bloco ninguém quer saber de você então não serve para nada a rede ela cresce de acordo com os blocos válidos porque as

pessoas só adicionam blocos válidos nas suas cadeias né nos seus nós o próprio software faz isso né quando eu falo pessoa eu tô falando do problema então a função de resto assim algoritmo que gera o resto isso é público qualquer um pode ter então eu não consegui entender a pergunta Olha ela tá indo embora com o menino isso

não então não é aleatória assim cuidado com isso parece aleatório mas não é você tem uma determinada entrada e você tem uma função de resto ele vai te gerar uma determinada saída a mesma entrada sempre gera a mesma saída portanto depois para gerar é tentativa e erro porque você tem que fazer aquela regra de que o resto tem que começar com XL por exemplo Tá mas depois que você já sabe qual é o nome que gera o bloco com aquele x Zero qualquer outra pessoa da rede verifica isso com uma facilidade muito grande então demora para gerar e é fácil de verificar pela rede essa ideia mas cuidado que assim não é aleatório

existe uma reta vou é uma função matemática e você pode eu não vou explicar essa função mas você pode estudar e ver qual é enquanto eu tava falando com vocês vocês viram que assim ele cabelinho do novo de novo ou não sei que aquele 7187 e o resto tem quatro zeros No início tem que ter um mínimo isso para o meu bloco nesse caso se eu mudar agora de novo colocar qualquer coisa na minha transação tem que gerar de novo isso E aí imagina que isso cai em todos os nós da rede os outros Nós Tem que olhar minhas transações aprovar e ver que aquele resto de realmente para

correspondente tá tudo certo eu falei para vocês um outro ponto importante também da criptografia é a Madison Tree que ela é uma árvore de hashis então A ideia é isso é a forma como eu pego os restos das transações e compacto para eu ter um resto único no bloco então eu vou direto para a parte prática disso que seria isso aqui então por exemplo eu tenho esse bloco aqui essa raiz de transações ela tem o resto de várias transações aqui tem quatro transações aí eu tenho o resto de cada uma A cada dois restos já era um hashi para cima então a gente tá com animais em dois até que lá no bloco eu guardo

somente um resto com todas as transações Mudou alguma coisa nessa transação O que que tem que acontecer vai recalcular esse e esse de cima e aí a gente garante a gente tem a confiabilidade dos dados em função de que para mudar alguma coisa numa transação você tem que mudar tudo basicamente tá E aqui eu tenho por exemplo o resto do banco anterior que garante se alguém tenta mudar alguma coisa do ano passado tem que mudar nesse também e normalmente são essas quatro informações principais a data a hora do golpe esse nome se tem a tentativa para e isso por exemplo por validação às vezes se você tem os restos de cima

calculados se eu quiser por exemplo validar esta transação eu não precisaria recalcular tudo né eu poderia ter calcular o resto dela mesmo e da do Lago recalcular esse mas se eu já tenho esse resto aqui eu não preciso recalcular também do lado de lá eu não preciso fazer aqueles quatro posso pegar direto a raiz para daí delicar com aquele de cima tá Válido por exemplo então isso aqui em verificação ele é rápido aí a última coisa que eu queria falar para vocês para falar a verdade eu já falei muito mas quando eu falo sobre consenso eu tô falando sobre a teoria dos jogos que a gente está falando então sobre esse estudo de tomada decisão entre os indivíduos e as probabilidades

aí assim das coisas serem válidas né quando a gente está falando em blockchain relacionado a isso então geralmente para esse tipo de coisa que a gente tá fazendo aqui a gente fala em 50% mais um então a metade da Rede Mais um computador tem que concordar para que um bloco seja válido E é isso que eu já falei então já falamos um pouquinho isso por uma flor que eu já falei isso para vocês também o novo detalhe a mais mineração a gente já falou por você tem que falar então um pouquinho só do que é E aí vocês vão ver mais detalhes disso no etéreo com Skype falar de tium 10 minutos para daí a

gente fazer nossas contas tá vou deixar tudo para vocês verem depois lançamento de time como é que funcionou então a gente tá falando de novo de um bloco tinha que é público como Bitcoin descentralizado já falei a diferença de que os artesão gerados o tempo inteiro não tem um limite de éter E por que isso né para quando a gente tá pensando em etéreo a gente tá pensando muito na questão de um éter eterno a gente precisa do éter para ele é a gente gasta é mulheres da transação tá então eu preciso dietas

para mandar a transação na rede [Música] quando eu tô falando disso ele não pode ter limite porque a ideia para rede não é interessante que não é que seja caro porque é caro significa é aplicações descentralizadas caras transações caras na rede e então não ter um limite de étese que os etc serem gerados o tempo inteiro isso é positivo para rede para que a gente não tenha uma super valorização do hétero então aí natural qualquer coisa O Alex vai falar a minha

vida mais conhecida depois né Então isso que eu falei para vocês é o blockchain aí fiz estrutura aqui é o éter falando de unidades vocês vão ver algumas horas os números muito grandes aí por exemplo Bitcoin ele tem oito casas decimais significa que um Bitcoin ele tem um e 8 zerinhos Porque existe a vírgula do Valtinho tá no caso do etéreo são 18 então ele tem um e mais 18 zeros ali a menor unidade do Bitcoin ou satosh a menor unidade do éter é o Way então esses nomes é importante vocês saberem essa quantidade de zeros também porque quando a gente manda ações a gente tem

que mandar com esse zerinhos que eu não tinha explicado o detalhes para vocês eu só falei da diferença assim de Bitcoin em dieta eu gosto de definir o gás da seguinte forma então ele é um combustível para enviar transação para rede quando a gente fala em combustível eu vou fazer uma analogia com k tá em São Paulo eu venho para o Rio de Janeiro quantos litros de gasolina eu vou gastar para vir até aqui 40 Então isso é a quantidade de gás gasta existe uma quantidade mínima fixa para enviar um para enviar essa por exemplo opção 20 Não diga 21 mil tá E existe também a

quantidade por transação por Smart contas então fazer uma multiplicação gasta x x em inglês fazer uma divisão gastar outra coisa guardar uma variável ao conteúdo de uma variável eu guardo É outra coisa então quantos litros de gasolina quanto eu preciso para executar uma transação isso é uma coisa qual é o preço do litro de gasolina isso é outra coisa mas é diferença é que a gente não vai no posto mais barato se você quer que a sua transação seja validada na rede rápido você vai pagar mais caro como mais caro você paga mais [Música]

depois que as Finanças descentralizadas ficaram mais populares porque por exemplo você quer fazer um trade de criptomoeda Então você quer trocar éter por trás por exemplo você não pode esperar sua transação levar 10 minutos para confirmar porque a cotação já mudou então você precisa ter atenção aconteça no próximo bloco nos próximos 15 segundos que que você faz pagam depress mais caro e quanto mais finas realizadas as transações a gente faz tempo mas fica Então é isso que acontece essas trocas esses três depois esses sites são interessantes a gente dar uma olhadinha neles tá falando

de Bitcoin com éter Eu gosto muito de falar que o Bitcoin ele é a reserva de valor do mercado de Milton moedas ele é a base que ele tem na última hora do sangue festival é a quantidade de computadores tá e por outro lado eu a gente tem assim o que vem o entero até legal porque eu posso te falar que o Entendo ele foi inventado que ele era bem envolvido que ele entregador de etéreo ele era bem envolvido até com a comunidade do Bitcoin Mas ele já enxergava que o Bitcoin podia além de transações financeiras e podia executar programas de computador que são os mais contas no

bloco de quem mas não houve consenso no Bitcoin para que o Bitcoin fosse atualizado o suficiente para isso que ele fez dele basicamente estrutura por trás mas é assim que veio até então ele pega ele vem com fome de você executar programas de computador e eu já vou adiantar toda a parte de cima de conta de falando agora sem mostrar slide e que é um Smart conte smartphone programa de computador que está publicado no bloqueio ou seja depois que eu publiquei em smartphone que eu não altero mais o voto na fonte dele e dessa forma eu tenho uma certa confiança também de que o programa não vai mudar

no meio do caminho de que ninguém vai atualizar no meio do caminho tá E aí basicamente é isso então isso mais de contas é um problema de computador ele é Smart Não não é ele vai fazer exatamente o que foi programado ele é um contrato no sentido jurídico não ele não é um contrato ele é a um problema de computador ele pode ser usado para representar um contrato sim ele pode ser usado como um contrato digital para dar até mais segurança para o nível jurídico sim mas ele é um problema de computador é isso que a gente tem que deixar bem claro para a gente e é isso eu já falei que eu queria falar

de Smartphone vocês vão ver slide então agora a gente vai de novo agora vou fazer duas coisas com vocês lembram que a gente falou de olhar as Oi Ai que bom obrigada Daniel lembra que eu falei para vocês que tem esses explorers ou seja se o éter Scan sair do ar o bloquinho veterinário não ele é só um site que tá indecisão das transações para a gente ver então vamos ver por exemplo aqui eu vou pegar o Igor

cadê o Igor Gente esse livro aqui então [Música] Igor eu vou pegar a sua carteira e vou olhar sua carteira tá então aqui ó eu peguei a carteira dele lá vou pesquisar bom então eu tô aqui no éter Scan peguei

o endereço do Igor e a gente vai ver que ele recebeu 0.5z a 45 minutos atrás E aí a gente pode ficar agora passar o dia inteiro olhando tudo comigo ele tá fazendo se a gente fizer ou olhando qualquer Transação da rede qualquer coisa de qualquer pessoa é que normalmente pega uma carteira eu não saberia que a carteira é de uma pessoa no caso a gente sabe nem porque estão todas na nossa aula mas parte do aprendizado isso mas é assim que a gente pode olhar endereços e daqui a pouco a gente vai publicar o nosso smartphone desde aqui também tá

que é o que a gente vai fazer exatamente agora imediatamente vou pedir para vocês entrarem no remix ponto é nem o sítio eu vou desconectar um pouquinho tá já volto agora a gente vai no remix ponto

etéreo.org vou colocar os links no tênis tá e você pode ir no com segurança ou sem Alguém já tinha colocado muito bom aqui eu já tenho até vou falar

um pouquinho do remix para vocês tem o remix ele é uma ideia ou seja ele é um ambiente de desenvolvimento no caso online ele facilita muito a nossa vida para publicar Smart contas para interagir com em cima de pontos existentes Então a gente vai criar o nosso primeiro Smart contact para registrar uma informação no bloquinho e depois alterar essa informação essa ideia vou fazer uma coisa mais simples agora e como é que eu vou publicar isso no Valtinho o limite em si ele a gente pode falar que ele é uma aplicação descentralizada no sentido de que ele não tem uma carteira nada lá dentro a gente vai pegar o limites e se conectar com a meta Mas a nossa carteira então

através que a gente vai enviar a transação do remix para o bloqueio então aqui quando vocês entram a primeira vez ele vai estar desse jeito eu tenho esse roubo em cima é o como que eu vou fechar e a gente tem os file Explorer nessa parte embaixo do Space tem um sinalzinho para a gente criar um arquivo novo não é aqui que vocês vão para criar um arquivo novo e vocês vão criar um arquivo chamado régister e eu vou escrever as coisas aqui para

vocês tá Régis só esse som não é de Solange tá não é meu é isso ali de que a linguagem de programação Eu acho que eu vou e eu vou colocar o nosso Smart contas aqui ó entre o início e o fim vamos ver se aparece para vocês se eu

desconector a gente tem o remix com segurança ou sem aqui é o smartphone de novo eu vou colocar essas essas barrinhas elas são as barrinhas de comentários Então você vai colocar o que tá entre o início e o fim e eu vou explicar para vocês o que que é

isso [Música] meninos que fica melhor agora para eu mostrar Só me fala se as melhores

nesse Tá bom então tá bom normalmente o remix é uma é uma boa prática a gente colocar Qual é a licença que tipo de licença a gente tá usando no nosso Smart compras então a gente tá usando uma licença então eu coloquei meu identificador de licença em seguida eu tô dizendo o que que eu tô qual é a versão da linguagem do compilador que eu estou usando no caso eu tô dizendo esse pragma ele serve para eu usar para eu definir essa versão Então eu estou usando a língua na versão 0.8.7

depois eu tenho a palavra contra ti a palavra contat ela serve para eu definir o meu Smartphone Eu Tenho Em seguida o nome dele que é esse registro é 01 e o que está entre aquela primeira chave eu vou mandar só para vocês verem aqui o que está entre as duas Chaves é o meu smart conta de ensino então aqui tudo que tá aqui dentro é o meu smartphone normalmente eu não precisaria dentro desses mais de conta já tem uma variável do tipo string Ou seja que cabe qualquer coisa lá dentro e eu coloquei essa

variável como privada o nome dela é significa colocar uma variável privada no bloqueio público gente interessante isso né Isso é só para fins didático Tá mas assim não é muito útil não eu faço para você porque o que acontece assim isso significa que eu tenho acesso a variável dentro do smartcoint eu não teria acesso externo para ver o que tá acontecendo mas quando eu estou enviando uma transação para guardar um valor na variável essa transação Pode ser monitorada então o valor que está sendo enviado para acessar lá dentro ele fica público então no caso aqui vocês vão ver que eu tenho

uma função chamada certinho que é para salvar a informação Então essa transação 75 Ela tá mandando a informação que eu quero guardar quem olhar transação setinha que vai saber que informação eu guardei então ela não é tão privada assim tá é só para vocês entenderem isso ela é útil para eu colocar informações que eu só vou usar dentro do Smartphone mas saibam que a hora que você tá salvando a informação essa transação pode ser monitorada tá depois eu criei uma função quietinho que se eu faço uma variável público eu não preciso ter essa função Gadinho porque automaticamente o seu libid te gera pra gente ver a gente chama de

quites que é para todas as variáveis públicas o próprio nome da variável com parentes ali como se fosse uma função te retorna O valor da função então eu tô fazendo dessa forma como sendo uma variável privada e criando um gatinho para mostrar para vocês as duas coisas uma criação de uma variável que é privada para descobrir como é que acessa eu tô mostrando também para vocês uma função que é do tipo viu que é uma função que não altera nada no blockchain ela só retorna uma informação que está no Smartphone E aí sim eu tenho uma

função que é vai alterar informações no bloqueio Pergunta aí para vocês me dizerem aqui que vocês acham essa vietn que só vai olhar a informação que tá lá no blockchain ela eu gosto do Guedes para te chamar o que vocês acham não não gasto porque eu não tô alterando nada no bloqueio a outra função a setinha é uma transação enviada para o blockchain e essa sim eu gasto Yes tá Então vai ter já um minutinho Já deixa você fazer sua pergunta eu só queria Então mostrar para vocês ainda então sobre

falamos da definição do contrato falando um pouco da sintaxe vocês vão aprender muito na prática as coisas que a gente está fazendo e depois eu passo o manual do seu link para vocês verem mais detalhes tá ainda que nós vamos só é puxado mas vocês não vê então essa coisa de como que a gente usa né então primeiro tipo da variável pública ou privada o nome dela função palavra função para dizer que eu tô querendo uma função nome da minha função se tiver parâmetros como tem na de baixo uma string logo em seguida vou dizer se a minha função é publicou privada a gente vai fazer uma segunda versão desse smartphone onde a gente vai ter controle quem pode salvar informação Ah nesse

aqui não tem é o meu gente não E além disso eu tenho depois nesse caso a gatinho que eu vou dizer o que que eu retorno então eu estou retornando uma string que é o que a gente quer saber no de baixo eu estou passando parâmetro mas não tô vendo nada só tô valendo lá dentro então tudo isso pode ser um composto né Eu posso salvar alguma coisa retornar a outra posso ter um monte de coisa você como eu falei no controle de quem tá salvando a informação que vai ser a segunda a segunda parte desse aqui e perguntar [Música]

não senti nenhuma diferença em cima do meu trabalho não sei em qual foi a versão que por exemplo a gente tem o controle de houve inteiro já implementada e daí você não precisa criar funções de matemáticas seguras para o seu inteiro não estourado por exemplo eu não lembro se essa seleção Tá

mas eu vi ontem que a gente tá na 13 agora e tá sempre evoluindo então assim é de cada um você atualizar ou não na sua versão e você sabe se você tem mais chance de publicado numa versão antiga ele vai estar lá no bloquinho na sua versão antiga o tempo inteiro ele não vai mudar e para você por exemplo fazer uma atualização tem todo uma estratégia em volta né Eu recomendo usar os mais novos Possíveis quando você tá fazendo alguma coisa eu nem sabia que os outros falam a partir do 087 não Então vamos lá vocês conseguiram criar um Smart content Eu espero que sim tem uma outra pergunta ali

Ah é que eu não gosto disso mas Beatriz agora me fala uma coisa muito interessante assim porque depois vocês vão estudar lá no alto joguetes que você pode definir a versão de várias formas né então estava falando de a gente usar o chapeuzinho quer dizer a partir da versão 08 0.10 você vai pegar uma versão lá na frente por mais que ele mantenha a mesma base às vezes não tão compatíveis assim então todos os meses de contas eu uso uma versão fixa principalmente nada de publicar para você não ter incompatibilidade quando alguém que pega seu código ele tenta usar em outra versão tá então boa prática de publicação de smart conta de introdução fixação não usa esses que

pode ter outro para frente tá então eu sei que tem pergunta mas é o seguinte se for alguma dúvida do tipo não consegui criar o smartphone não consegui copiar alguma coisa pede para os monitores monitores de novo cadê vocês tem um ali tem a Beatriz tem o David está em algum lugar e lembra também gente pergunta para amiguinho do lado ah eu amiguinhos se ajudem ajuda quem tá do seu lado principalmente da pessoa tá muito fácil aí do seu lado e aí vai mais rápido para a gente poder continuar o curso tá bom ó lá o David lá também ó então tem dúvida Chama ele para mim só se for uma pergunta genérica tá daqui a

pouco eu abro a pergunta de novo bom nosso sistema de conta de falar aí vocês vão ver eu vou abrir de novo essa parte esquerda aqui que o meu terceiro ícone né o segundo botão ele é um compilador sonite o meu ele já tem um verdinho aqui do lado que meu Smartphone congelado provavelmente de vocês não porque porque vocês podem clicar nesse alto com o pai aí aí ele vai cumpilar automaticamente a cada mudança que você fizer tá vocês vão ver também que a versão já está selecionada de onde ele pegou a versão ele pegou da minha primeira linha do pragma

não tem nada aqui então se você não clicou com o pai ou clica ou também dar uma garantia se você quiser não compare o registro de ponto só aí depois disso a gente vai para o próximo ícone que a gente tem aqui que é o Deploy and Transit Este é o mais importante que é aqui que a gente vai fazer a publicação e eu posso fazer a publicação de várias formas eu posso fazer a publicação aqui nesse javas que a gente tiver ele que que é isso isso é um simulador de memória que tem dentro do remix serve para eu publicar meu smart conta de

fazer alguns testes de lógica com as funções e eu não publico em rede nenhuma então é menos de um segundo para você ter interação mas se você tá interagindo com outros Smart contas Aí complica a sua vida também porque se você tem smartphones publicados na rede Você tem que estar na mesma rede desses outros smartphones agora qual é o nosso objetivo publicar na gangue usando a nossa carteira do letra Max eu vou mudar o inválido no mês para injector que a carteira que está

injetada no meu braço mudei uma tarefa vai abrir uma janelinha apresentando ele esse site que é se conectar comigo Deixa então pode falar que sim aí você vai ver aqui embaixo do inject do m3 você tem agora o a sua rede Dani o número 5 Então ela selecionada bonitinho e em seguida você vai ver também que a conta que aparece aqui agora é a sua própria conta então a minha esse final

79 tem 45 héteros eu vim aqui Ah isso muito bom não precisamos mexer nesses limites de gás mas só para você saber o que que é isso quando eu vi uma transação para ele a gente falou de gesso Price falou de quantidade de viés e o resto usado por um Smart contra então ele é multiplicação para esse que você tá pagando pela quantidade de gases você tá gastando e as limite é a quantidade é o gás máximo gasto pela minha transação então eu posso definir também existe um gás limite por bloco existe um por transação que eu quero

fazer um look loop não vai ser infinito porque o limite é o que tiver no gás limite Ou no máximo o limite do bloco tá então essa ideia a gente não vai parar ele inteira fazendo um esmalte a falta por exemplo então mais para baixo eu tenho lá selecionado o meu smart contas se a gente tem vários a gente tem que tomar um cuidado de selecionar o certo e eu vou clicar no botão de ploy é isso que todos nós vamos fazer ainda mais que ele abriu a janelinha que eu tenho que autorizar a minha transação então eu vou lá ele tá me falando quantidade de gás eu aqui agora eu não

vou olhar essas coisas de S porque a gente tá melhor mas agora eu só vou confirmar transação conferir a gente pode ver aqui embaixo na direita tem uma área está branquinha para mim mas que se eu olhar apareceria a transação aqui também deveria estar aqui um pouquinho mais para cá a criação pendente agora ela tá pequenininha que essa janelinha debaixo da direita você tem os status do que tá acontecendo para olhar lá naquele instante se você quiser ver sua própria transa eu voltei aqui no remix eu vou ver que a

minha transação agora já tem aqui então ela já aconteceu mesmo e do lado esquerdo embaixo na parte detróleo contra você tem o meu smart contra ti aqui e ele deu o endereço para o meu smart contas então todo o smartphone a gente criado na rede tem o seu próprio endereço então ele é uma conta que ele pode receber aí se você não criou um mecanismo lá dentro vai retirar nunca mais sai de lá tá cuidado com isso e importante também é que para você interagir com qualquer Smart conta de novo que já tá complicado você precisa de duas coisas o endereço dele dois que a gente chama de adi que é o application

vai interface ou saber quais são as funções que ele tem então é uma interface ou se eu tenho o código fonte eu consigo interagir com outros já publicados que a gente vai fazer isso dois minutos então o que que eu quero de vocês agora eu vou pegar a primeira lista aqui do Pet se o nome de vocês não está aqui aí vocês coloquem que a gente usa essa lista de novo depois então e a ideia você colocar o seu nome e o endereço do seu Red ser aqui do lado então meu nome tá lá eu venho lá no

remix eu vou clicar nesse copo pegar o endereço no meu smart contas voltar no pet colocar lá esse é o endereço do aí eu voltei aqui no remix a gente tem uma setinha do lado que eu vou expandir que eu vou abrir o meu Smartphone que que eu tenho lá dentro Eu tenho Então as funções que a gente queria olha lá o gatinho alguém me fala porque que o gatinho foi azul e o certinho foi laranja É isso mesmo então o gatinho full ela é uma viu ele não altera o estado por isso

que ele tá só olhando e os sete info ele troca a informação já já vejo com quem levantou a mão aí deixa eu só terminar esse pedacinho então o que que eu vou fazer agora eu vou no gatinho tem alguma informação lá dentro não tem então eu vou colocar uma informação lá dentro Vou mandar uma transação para o blockchain que que vai acontecer agora aqui o metamaxic tá pedindo autorização Ei você quer mandar isso para rede mesmo posso mandar eu confio tô mandando uma

transação para rede para salvar informação lá dentro da transação confirmar eu posso chegar pelo metanesp também nossa transação confirmada volta no gatinho aí a informação e tire um mil instala dentro agora É isso aí eu vou fazer mais uma coisa antes até de responder umas duas perguntas que é o seguinte eu vou ver o contrato do Roberto Cadê o Roberto Oi Roberto vou olhar seu contrato tá E

assim vocês vêm como é que a gente mexe o óleo contrato dos outros então eu tô aqui o primeiro é o meu né agora que que eu faço ao invés de fazer Deploy desse Éder esse que tá aqui embaixo eu vou colar o endereço do contrato do Roberto para esse mesmo código fonte ele não tenha cuidado rápido então eu vou aqui no adiadas clico na tchecas Agora eu tenho outro Instância ou será cópia desse smartphone de publicado e eu vou expandir o dele eu vou ver que informação ele colocou lá e ele não foi nada ainda não é então eu vou escrever sol no smart

tô mandando uma transação para alterar o exame de consciência [Música] agora eu estou dentro do smartphone aqui do Roberto só e a gente pode mexer no de qualquer pessoa pode mexer de qualquer pessoa eu tinha uma pergunta lá do lado de lá já

resolveu [Música] Já resolveu Tá bom tá ótimo tá bom é muito bom Alguém tem uma pergunta assim genérica que não seja eu não consegui publicar o meu porque daí alguém te ajudar Então você tem uma menina igual de dança então tá bom Tem um aqui e ela foi para lá primeiro depois a gente no próximo

tinha Quem queria perguntar Levanta a mãozinha para ela para ela tirar o microfone se ficar melhor para eles para vocês tudo bem então você quer fazer sua pergunta ela tá escrevendo endereço do cara legal interessante isso gente ó lembra que eu falei para vocês que assim o bloco tinha ele é público o Smart conta de meu tá publicado em uma rede

pública o documento também se eu sei qual é o endereço do Smart code dele e eu sei qual é ou as funções que tem lá dentro eu posso acessar o smartphone dele tem algum controle de segurança no Smartphone dele não porque não tem nenhum controle eu vou lá e alterar a informação dele a gente vai criar uma outra versão agora com controle com uma White list a gente vai definir quem pode mexer no nosso Smartphone tá mas esse ele é público mesmo para a gente mostrar como é que funciona isso tá já a gente tem mais e eu poderia olhar de qualquer um Essa

guerra pode falar publicamente [Música] acessada é privada eu queria um gatinho que é para você poder ver aí já tem a primeira coisa segundo se eu pegar a última transação que eu fiz aqui vou ver no blog da própria Brasil né então se eu vier aqui para baixo a pedir para ver mais vou pedir para ver depois é isso aí ó tá aqui ó que tinha um

parâmetro chamado info do tipo string que eu mandei a informação só lá dentro então isso então cada vez que você manda uma transação por mais que avaliar não seja privada a hora que você tá salvando a informação isso é público isso que é a diferença entre uma coisa e outra Qual o sentido disso é como eu falei é um negócio didático para mostrar para vocês explicar tudo isso para vocês pode ter situação que faça sentido a gente usa variável privada quando você só vai acessar avaliar dentro do smartphone isso mas econômico Esse é um problema que a gente tem o limite o tamanho do Smart que cabe dentro de uma transação ele não é tão grande assim gente eu volte mesmo a

gente tem fazer otimizações dos smartconds para que eles caiam no blockchain e para que eles também custem menos para publicar tá eu lembro uma vez um projeto meio de 2018 que tava tudo bonitinho numa peste até nem era rede privada aí na hora de publicar em rede pública Cadê que eu não consigo por causa do limite da rede tive que pegar três smartphones de vida em cinco para conseguir fazer a publicação ver o que não como né com quem então essa coisa de otimizar esse smartphone também é uma coisa importante para vocês Para o Futuro tá então a última e daí eu vou para o outro smartphone

Ah tem uma lá também legal mas aí quando pode fazer [Música] [Música] publicou errou já era Tem que publicar outro outro endereço se você tiver um monte de que já utilizava o seu smartphone aquela aplicação do centralizada pede um microfone daí já usava aplicação descentralizada você vai ter que avisar o endereço novo se

mudou alguma coisa na Bi que eu falei que são as funções você tem que avisar qual é a sintaxe que mudou então é bem completo vocês vão de contas mais conversas algumas perguntas que vocês estão fazendo agora elas vão ser respondidas com os esmaltes mais complexos que a gente vai fazer tá [Música] os comportamentos daquele Contrato ou no momento que eu adicionei aqui no remix e ele já Reconhece todos os métodos daquele todas as ações daquele contrato se você adicionar o endereço aí que está associando este endereço com

esta esse código fonte que você colocou Então você tá dizendo que aquele endereço tem esse código fonte existem outras formas deixa para aprender depois tá eu tô no básico vocês estão fazendo perguntas avançadas e eu não consigo ir para o próximo passo tá vamos seguir mais a última pergunta dele aqui e aí eu quero seguir aqui não vai embora não a única coisa que garante que a gente não vai fazer uma lógica que vai travar a Rede Augusto isso Então vamos lá eu quero fazer outro Smart contas com vocês agora que tenha que vai ser mais complexo que tenha funções mais complexas estruturas de

dados mais complexas é o registro ainda tá mas a gente vai aprender um monte de coisa ao mesmo tempo agora com uma aplicação uma coisa mais complexa remix e a gente vai fazer na minha numeração é uma raiz específica Então agora vocês vão criar a maioria fez né depois quem sabe até no almoço a gente vê quem falta mas quem é o pessoal que não publicou gente pergunta para o vizinho pega uma

ajudinha aí vamos tentar fazer Ah não fica para trás não a gente quer vocês todos juntos então aqui ó entre o Início o Fim agora você vai criar o resto T5 que que tem no Régis T5 Cuidado para não fazer com x não recortar tá só copia Enquanto vocês estão copiando eu explico o registro 5 para vocês então o registro

T5 ele fala aqui em Array mas eu faço muito mais do que isso tá bom o nome do contrato no caso é cinco que que eu tenho aqui ao invés de eu ter uma string única eu tenho um arranque Strings então eu posso ter várias ainda são várias caixinhas conectadas e eu tenho índice na caixinha zero e tem uma coisa não tem outra na dois tem outra ainda eu tenho uma rave Strings Além disso eu tenho uma variável do tipo adress Olha apareceu tipo novo de variável gente que que esse cara Esse é uma variável que guarda o tipo endereço do eterno então tanto faz se é

uma conta se é um endereço de um Smart ou endereço de uma conta externa que é de uma pessoa mas eu contei uma vale um tipo específica de variável para guardar isso Depois tem mais um conceito ali para vocês agora um map o map ele é o conceito de chave e valor então para cada chave Eu tenho um valor e no caso eu tô dizendo que para cada endereço Eu tenho um valor que quer dizer sim ou não que é um boleando verdadeiro ou falso e repara que assim a info agora não é única ou tem um Mac and de info eu tenho

o egres ele é o ouner ou seja vou guardar o endereço de quem está publicando no smart contas nessa variável que é o do Smart contact e não é pin eu tô para cada endereço que eu adicionar no meu maping eu vou dizer se esse cara tem acesso ao meu Smartphone então por isso que ele é o whitelist nesse caso se eu quero que ele acesse eu vou dizer sim o padrão o Deadpool é que ele não tenha acesso então se você não disse nada retorna não retorna não ali retorna falso tá não Construtora a outro cara nova eu tenho

o eu estou definindo as coisas o que se consultou Gente esse consultor ele é uma função que só é executada na publicação do smartphone somente no The Voice nunca mais E então a gente usa o consultor para definir variáveis para deixar algumas coisas definidas no seu Smart Control então o que que eu tô definindo que o ouro é o mais seja de ponto Center isso é Messenger é a transação então mandar uma transação era como se fosse uma mensagem para o Blog existem alguns parâmetros que já existem na própria organização um é um endereço de Quem enviou a transação é o sim pode ter

valor pode ter outros que eu não vou falar todos agora não tá então quando eu tô gravando no consultor quem tá enviando a transação e eu tô colocando esse cara também não é triste para que ele possa depois alterar o meu smartphone aí a gente vai um pouquinho mais para baixo a gente tem esse negócio que chama Ivete então evento evento é uma um aviso que o smartphone te dá para o mundo externo então você pode ter funções aí Extra fora do blockchain e javas em qualquer outra coisa que monitore nos eventos que estão

acontecendo no blockchain para fazer determinadas coisas então é muito comum por exemplo que na transferência no padrão para transferência de docing existe uma função transfer que você pode monitorar isso e ver quando um tom quem foi transferido por exemplo então a gente chama de ventos né Essas são blogs são avisos que você pode monitorar do mundo externo E aí eu criei esse evento que chama informação alterada né o info Change que vai dizer qual era a informação que tava antes qual é a informação nova aí depois eu tenho o modificador onde então

o primeiro que que é um modificador o modificador é uma coisa que eu Posso acoplar em alguma função e é comum a gente criar como modificador porque você pode ter várias funções que usa aquele modificador e você não tem que colocar a mesma lógica em todas as funções embora na hora da compilação essa lógica é confiável mas quando você lê o código é mais fácil Então olhe onde ele tá dizendo ele tá usando rituaire e bom o que que é o rico então ele também é outra palavrinha interna ali do seu limite que ele diz que se quem tá enviando a transação que a gente não sabe qual é for igual ao homem que a

gente já gravou legal se não for ele vai mandar uma mensagem como se você tem um eleito Mas é uma mensagem na transação ele vai dar erro e vai mandar um de outras avisa ndo o corpo passou nisso ou seja o cender é o oner ele tem aquele tracinho para sua pele continuar o código aonde ele tiver colocado tá tem outro igualzinho para ver se o cara tá não vai tirar ou não aí quietinho nada mudou a ideia da setinha fora é que eu vou atualizar uma informação existente então

eu vou usar setinha info passando lembrando a Ray de informações Então eu tenho uma caixinha com várias posições tem que dizer qual é a posição Qual a informação que eu quero colocar lá dentro ai o que que acontece se eu tentar alterar uma caixinha que eu não fiz informação ainda vai daí quando eu altero a informação ele emite Aquela aquele log né o evento info Change e até a informação para eu colocar uma informação nova numa caixinha que que eu vou usar o jeans estou passando a informação igual era antes tá o nosso time favorito de ser um prato Mas seria que tanto certinho quando a guinfo só quem tá na Light list pode fazer isso agora

ele vai no caso da de infinita retornando o posicionamento do Awake sentar no final mas ele te fala qual é o índice que aquela informação foi colocada então eu tô colocando a informação lá dentro devolvendo isso bom eu tenho uma whitelist agora logo eu vou precisar ter funções para adicionar e remover os membros da sua iclist então eu tenho o addemember que aí sim só o ONG ou né só ou não pode adicionar ou remover pessoas que ele fala que então para este endereço agora é tru ou para esse endereço agora é falso lembra do telefone é falso Eu só preciso usar esse se algum momento eu passei muito antes

tá é isso vamos a obra vamos publicar espero que vocês já tenham Smart conta de compilado então eu vou direto para o depoimentos agora o meu contrato selecionado é o reajuste 5 Deploy confirmar [Música]

é que a o mestre não é dois te ensina ele é da transação qualquer transação que você envia dieter vai dar no mesmo assim é para tudo então pode ser daqui a pouco pode ver uma transação foi enviada [Música] o endereço se ele mandou um valor em étte teria ali também o meu já tá aqui confirmado se eu voltar então agora para o meu declayer de conta que você tem um registro T5 aqui eu vou copiar Nossa lista de novo para ver o registo T5 de vocês vocês nunca ele é 5 porque eu queria o

Felipe pois o endereço aqui no lugar errado a primeira lista é só minha e colar Então tá lá a lista para vocês colocarem agora qual é o endereço do seu prédio T5 ainda não terminei uma informação lá dentro então vamos colocar mais de uma até porque vou expandir aqui vamos

brincar com ele adicionar informação primeiro recheio e sou eu mesmo né aí agora repara que eu tenho mais esqueci de falar do lixinho gente então o que que é o lixinho passei direto por ele o Liste info até estava falando de versões de solides né algumas versões antigas não Retornam esse tipo de coisa tá o lixinho ele retorna diretamente uma rave Strings então eu posso ver todas as informações que estão lá dentro e se você olhar o gatinho agora que eu

esqueci de falar para você olhar uma posição específica do raway funciona se tiver um Array com mil posições provavelmente não nunca mais vão usar nunca mais vou ver porque ele não vai ter capacidade para me trazer tudo isso teria que colocar um limite inicial no final tá Então agora eu volto para cá tem um lixinho provavelmente eu já tenho a ideia lá dentro vou colocar outra informação agora que é o rio Então vai estar na outra casinha do lado eu quero ver o que tá na casinha 2 eu

não tenho a casinha 2 tá começando zero então tem o zero e A1 vai dar um erro aqui do meu lado Cada um na sua casinha colocando agora é o meu índice 2 né 012 os três casinhas com informação então é a minha própria carteira Será que o endereço de de alguém tá na

whitelist espera aí eu posso ver o endereço do smartphone da estéreo ele tá na minha Live vamos ver não eu faço faria sentido eu colocar o endereço do smartphone list não porque o Smart dela não tem a capacidade de fazer nada dentro do meu mas poderia [Música] eu poderia olhar de alguma pessoa aqui que eu vou pegar lista de pessoas eu vou pegar o Onde tá o Júnior Ribeiro Oi Júnior eu vou por exemplo vou te adicionar para mexer no meu smart então tô adicionando o aqui eu só tô

olhando né Acho que vamos olhar tá falso ele não tá eu vou adicionar o Júlio agora aqui [Música] confirmar então quando confirmar a minha transação ele vai poder colocar mais uma informação no meu E aí vai ser o exercício de vocês olha para o amiguinho do lado descobre quem que ele é e vocês vão se adicionar um ao outro e alterar o Smart content do seu amiguinho já você já consegue [Música] o Júnior ainda não adicionou nada

aí quando vocês estão fazendo vou fazer um comentário aí de uma pergunta bem interessante que o nosso amigo ele fez Qual é o sentido de deixar isso mais de contas eu nem publiquei ainda mas é até o contrário do que a gente imagina porque quando a gente vem até do tradicional o pessoal não tem essa cultura do pensante né então você não publica no divulga seu código e aqui quando você fornece credibilidade ao mercado se você publicar o seu smartphone então no ambiente publicar no seu Pânico com fonte ou seja colocar a cara para bater significa tá aqui ó pode ver isso te dá confiança no

mercado para que ele queira usar o seu smartphone porque o cara vai usar aquilo que ele pode verificar e conferir funciona ele não vai usar aquele slime de conta que não tá publicado e que você até pode mas você não tá passando confiança para o mercado e da mesma forma que é público que todo mundo pode acessar por isso que a gente tem que ter essas coisas de permissão que eu fiz com vocês qualquer Smart contas tem que ter esse tipo de coisas sempre bibliotecas que fazem isso tá a gente não usou ainda vai usar no futuro mas vocês tem que tomar ter essa consciência tomar um cuidado com isso e se tiver um erro no meu smart contas

alguém vai explorar isso vai com certeza e se seu smartphone está na rede com muito dinheiro você vai perder teu dinheiro vai com certeza então por isso que assim quando a gente tá falando de blockchain do Smart content antes de publicar o smartphone na rede a gente tem a prática de testar testar e testar fazendo teoria de pagar empresas de auditoria é muito importante você fazer o possível e o impossível para evitar erros nos seus Smart compras se alterou agora Legal vamos ver alguma coisa então vamos ver no lixinho

em exposição 3 é a última selecionei então Ó ficou etili um livro Júnior tá bom mas eu quero tirar ele e colocar eu agora no lugar dele então eu vou lá agora no 7 info da posição 3 eu vou expandir para ficar mais bonitinho tá e colocar a Sol aqui confirmar que uma coisa importante gente eu sei que a gente está a aula Ela tá bem puxada assim ela é rápida né você não presta atenção um pouquinho você já perde alguma coisa pelo meio do caminho tudo isso está sendo gravado não tá sendo disponibilizado ao vivo mas quando

acabar o evento a gente vai disponibilizando aos poucos fazendo a publicação do YouTube do e tiro o livro tá para vocês então vocês vão ter acesso a tudo isso depois tá bom e eu acho que a última últimas perguntas é isso e a gente vai almoçar alguém tem alguma pergunta assim genética para permitir [Música] podemos começar se você levar é melhor [Música] depende da de como é que você faz o seu

contrato não existe por exemplo uma função chamada que você poderia colocar no seu contrato e você mesmo destruindo para ninguém mais conseguindo utilizar mas isso causa outros problemas também tá assim a gente já tem carteiras com milhões de héteros aí travados porque foram usados sempre distante mal feito então mas isso é possível você pode às vezes simplesmente bloquear a uso de determinadas funções assim pausa você pode avisar a comunidade inteira gente ó já era só acontece mas aí é realmente vai ser a prática de mercado do que você quiser fazer isso alterar smartphone

[Música] eu não consigo extrair o código fonte e rodar totalmente mas para você produzir fazer teste e tal local geralmente nesses locais