Programação

  • 22/08 Apresentação do curso

  • 29/08 Introdução à blockchain - Parte 2

  • 12/9 DeFi e CBDCs

  • 19/09 Metamask e Remix

  • 26/09 Prática com contratos inteligentes

    • I) Descrever sucintamente cada etapa da atividade em um arquivo pdf
      1) Carregar o código em https://github.com/joueyama/blockchain2/blob/main/sensitiveData.sol
      2) Executar o contrato
      3) Trocar de conta para verificar que o código não permite alterar dados sensíveis a partir de outra conta
      4) Passar o endereço do contrato para que um colega do lado o execute

      II) Adicionar o jocoin.sol com as seguintes funcionalidades e enviar o novo contrato (.sol) no mesmo pdf da atividade I acima
      a) O investidor só pode vender a quantidade de jocoin que tiver disponível
      b) Apenas o próprio investidor pode executar as transações
      c) A compra é limitada à quantidade máxima disponível que é de 1.000.000 jocoins
      d) Além disso, ele/ela pode vender jocoins até 90% do seu saldo

      Nos testes:
      •Passar o contrato para outro investidor e executar a partir dele/dela
      •Isso pode ser executado informando o endereço do contrato no “At Address”
      •Passar o endereço do contrato para o colega para que ele manipule o mesmo contrato “deployed”

  • 03/10 Desenvolvimento do seminário

  • 10/10 Submissão do vídeo e dos slides do seminário

    • Instruções para a submissão do seminário:

      a) Envie os slides da apresentação conforme o modelo em anexo.

      b) Grave uma apresentação de aproximadamente 10 minutos para cada membro da equipe.

      c) Ative a câmera e inclua o link do vídeo da apresentação no último slide.

      d) Forneça sua autoavaliação.

      e) Anexe os slides da apresentação (junto com o link da gravação e a autoavaliação).

      f) Por favor, assegure-se de cumprir o prazo até 10/10/2022.

      Importante: Não se esqueça de incluir os slides da apresentação com o link da gravação e a autoavaliação. Agradecemos pela colaboração!

      A aula do dia 10/10 será dedicada à gravação e submissão dos seminários por cada equipe.

  • 17/10 Implementação de contratos inteligentes

    • Por favor, desenvolva as questões abaixo e responda-as em um arquivo PDF:

      Observação: O professor compreende que alguns alunos podem ter menos experiência em programação, por isso é solicitado que o aluno responda dentro do prazo, até onde for possível.

      1) Descrever sucintamente o contrato inteligente jocoin.sol que se encontra no link https://github.com/joueyama/blockchain2/blob/main/jocoin.sol

      A discussão não é limitada a estes aspectos, mas deve incluir

      a) o que ele faz

      b) qual a linguagem

      c) as principais variáveis, os tipos e o que armazena

      2) Descreva duas limitações que o contrato apresenta

      3) Altere o contrato de forma que fique com

      a) seu_nome_coin

      b) taxa de conversão para seu NUSP

      4) O que é um modificador e uma instrução require no Solidity?

      5) Explique cada instrução e particularmente as palavras reservadas do código abaixo.

      function addBalance(uint _toAdd) public returns(uint) {

       require(msg.sender == owner);

       balance[msg.sender] += _toAdd; 

       return balance[msg.sender]; 

      }

      6) Carregar o código em https://github.com/joueyama/blockchain2/blob/main/sensitiveData.sol

      a) Executar o contrato

      b) Trocar de conta para verificar que o código não permite alterar dados sensíveis a partir de outra conta

      c) Indicar o erro e citar qual a variável do solidity que permitiu fazer esta verificação

      d) Inserir um print da tela com a mensagem de erro exibida

      e) Fazer o deployment do contrato em uma plataforma pública (como a rede de teste do Goerli) e enviar a chave do contrato a um colega para que ele/ela execute o mesmo contrato

      f) exibir todo o processo com prints de tela

      7) Baixar o código do https://remix-ide.readthedocs.io/en/latest/create_deploy.html

      a) Executar no Remix

      b) Descrever o que é uma função “payable”

      c) O que acontece se transferirmos Ether em uma função “non-payable” (veja a resposta em https://docs.alchemy.com/docs/solidity-payable-functions)

      8) Implemente um modificador para a venda, de modo que a corretagem zero seja aplicada somente quando o investidor mantiver o valor adquirido por 30 dias antes de vendê-lo. Caso a venda ocorra antes desse período, será aplicada uma corretagem de 1% sobre o valor.


  • 31/10 Padrão ERC-20

  • 07/11 Blockchain e segurança em Python

    • a) Estudar os códigos abordados na aula, os quais estão em https://cutt.ly/2bhziPZ 
      b) Criar uma função separada para cifrar e decifrar mensagens para o cripto_symetric
      c) Enviar hash de mensagens usando via "sockets TCP" (no código cripto_hash)
      d) No exercício acima (b), usar códigos de comunicação de redes TCP disponíveis em https://github.com/joueyama/socket.git

      e) O endereço de destino pode ser o IP 127.0.0.1 (loopback - localhost)

      f) No código da blockchain, o aluno deverá modificar o código de forma que o grau de dificuldade do PoW seja um parâmetro de entrada a ser informado.
      g) Submeter os códigos implementados

  • 14/11 DREX e a IA

    • 1) Leia o texto sobre DREX e IA disponível no seguinte link: https://cutt.ly/bwYiFsP1. É importante ressaltar que esse texto serve como base, mas o aluno pode utilizar outras fontes para responder às questões abaixo. Solicita-se que todo o material bibliográfico seja citado adequadamente.

      2) Explique o papel da blockchain e da IA nas futuras aplicações financeiras do Brasil.

      3) Discuta a utilização da IA nessas aplicações e descreva um exemplo prático de como a IA pode ser aplicada na blockchain no contexto das Fintechs.

      4) Quais são os desafios computacionais enfrentados pelos sistemas financeiros diante das novas demandas? Um exemplo de discussão é a escalabilidade, mas esse ponto fica a cargo do aluno.

      5) Você acredita em sistemas descentralizados? Por quê?

  • 21/11 Prática com Hyperledger Besu

    • 1) O professor executou a prática com Hyperledger Besu

      2) As instruções da prática estão no link abaixo

      https://besu.hyperledger.org/private-networks/tutorials/quickstart

      3) Solicita-se que o aluno faça esta prática sem contar presença e nota.

  • 05/12 Projeto II