Quer Trabalhar na Web3 - "Parte 3".
Neste artigo, continuamos a abordar os conceitos básicos que precisas de saber antes de fazeres uma entrevista para um emprego na Web3.
Ethereum
O que é o Ethereum?
Ethereum é um blockchain descentralizado e de código aberto com funcionalidade de contrato inteligente.
O que é o Ether?
Ether é a moeda criptográfica nativa do Ethereum. Proporciona incentivos para que os nós validem blocos na cadeia de blocos Ethereum.
Menciona alguns ambientes de desenvolvimento e teste do Ethereum.
- Trufa
- Hardhat
- Brownie
Qual é o tamanho do bloco Ethereum?
O Ethereum não tem um limite de tamanho de bloco; os blocos utilizam limites de gás.
Qual é a recompensa do bloco Ethereum?
Atualmente, é de 2 ETH. Mas este número pode mudar no futuro.
Qual é o tempo de bloqueio do Ethereum?
O tempo médio de bloqueio é de cerca de 13,2 segundos. Mas este valor pode flutuar.
Qual é a unidade mais pequena de Ether?
1 Wei (10 ** 18 Wei = 1 Ether).
Ordena corretamente as denominações: Gwei, Mwei, Kwei, Éter, Wei, microéter, miliéter.
Wei, Kwei, Mwei, Gwei, microether, milliether, Ether.
Quem fundou o Ethereum?
O Ethereum foi fundado por Vitalik Buterin, juntamente com outros sete co-fundadores. Um deles é Gavin Wood.
Quando é que o Ethereum foi lançado?
2015.
Em que é que o Ethereum é diferente do Bitcoin?
O Ethereum utiliza a tecnologia blockchain não só para manter uma rede de pagamentos descentralizada, mas também para armazenar código informático que pode ser utilizado para executar contratos inteligentes descentralizados e invioláveis.
O que são contratos inteligentes?
Um contrato inteligente é um programa que é executado num endereço no Ethereum. São compostos por dados e funções que podem ser executados após a receção de uma transação.
O que é EVM?
EVM é o acrónimo de Ethereum Virtual Machine. A EVM actua como um computador global que empresta o seu poder de computação acumulado aos programadores. A EVM pode ser acedida a partir de qualquer parte do mundo através dos nós Ethereum participantes.
O que é a Enterprise Ethereum?
A Enterprise Ethereum é uma versão autorizada da Ethereum. Permitida significa que apenas os nós autorizados podem aderir. A rede principal Ethereum não tem permissões, uma vez que qualquer pessoa pode criar um nó. Além disso, podem ser criadas cadeias privadas com acesso restrito aos seus dados.
O que é um nó no Ethereum?
Um nó é um computador ligado à rede Ethereum, responsável pelo processamento de transacções.
Como se pode ligar a um nó?
Pode ligar-se a um nó através de WS-RPC, JSON-RPC e IPC-RPC.
Que mecanismo de consenso é utilizado pelo Ethereum?
O Ethereum utiliza atualmente a prova de participação, embora originalmente utilizasse a prova de trabalho. Esta alteração ficou conhecida como "Merge" ou "Ethereum 2.0".
Que linguagem de programação é utilizada para escrever contratos inteligentes no Ethereum?
Solidity é a principal linguagem de programação utilizada para escrever contratos inteligentes e dApps. O Vyper também é utilizado.
Menciona as normas comuns dos contratos inteligentes.
- ERC-20: Norma para os tokens
- ERC-165: Norma para publicar e detetar as interfaces que implementam um contrato inteligente.
- ERC-721: Norma de token não fungível
- ERC-1155: Norma multi-token
O que é um estouro/sobrefluxo de um número inteiro?
Os transbordos e subtransbordamentos de números inteiros ocorrem devido a entradas cujo tamanho não está em conformidade com os limites das variáveis inteiras. Para evitar esta situação, certifique-se de que utiliza uma versão do compilador Solidity > 0.8, que verifica automaticamente a existência de overflows e underflows.
O que é frontrunning?
As transacções demoram algum tempo até serem mineradas. Um atacante pode olhar para o pool de transacções e enviar uma transação, incluindo-a num bloco antes da transação original. Este mecanismo pode ser utilizado de forma abusiva para reordenar as transacções a favor do atacante.
O que é a contagem de nonce no Ethereum?
É a contagem de transacções de uma conta. Evita ataques de repetição.
Como se pode obter éter?
O éter pode ser obtido através da extração ou troca de éter com outras criptomoedas.
Quais são os dois tipos de redes Ethereum que existem?
- Redes públicas (mainnet, redes de teste: Ropsten, Goerli, Kovan, Rinkeby)
- Redes privadas (Enterprise Ethereum, redes locais)
Porque é que as tarifas de gás são cobradas?
A criação de consenso num sistema descentralizado deve ter um custo, porque motiva todos os participantes a manter a realidade óptima.
Quanto gás custa uma simples transação no Ethereum?
Uma simples transferência de valor requer 21.000 gases.
Quantas transacções cabem num bloco Ethereum?
Não existe uma resposta geral para esta questão, uma vez que as transacções utilizam diferentes quantidades de gás e o tamanho de um bloco é variável (dependendo da procura da rede).
Como são calculadas as taxas de transação no Ethereum após a atualização de Londres?
Unidades de gás (limite) * (taxa de base (em Gwei) + taxa de prioridade (gorjeta)). Os mineiros recebem a gorjeta e a taxa de base é queimada.
O que é um ABI?
ABI é o acrónimo de Application Binary Interface (Interface Binária de Aplicação). A ABI é a interface para interagir com o nosso contrato inteligente. A ABI pode ser gerada a partir do código fonte do seu contrato inteligente (é necessário compilá-lo).
O que é necessário para interagir com um contrato inteligente implementado?
Precisa do endereço do contrato e da ABI. O endereço do contrato indica onde o bytecode está localizado na blockchain. A ABI define as funções que podem ser invocadas.
Como é que os contratos inteligentes são armazenados na blockchain?
São armazenados como bytecode (dados binários) num endereço específico, também conhecido como endereço do contrato.
Solidez
Porque é que um programador deve definir uma versão do Solidity no início de um ficheiro?
Reduz os problemas de incompatibilidade que podem ocorrer ao compilar com outra versão.
Porque é que é difícil gerar números aleatórios num contrato inteligente?
Os contratos Solidity são determinísticos. Qualquer pessoa que descubra como o seu contrato produz aleatoriedade pode antecipar os seus resultados e usar essa informação para explorar a sua aplicação.
Como podem ser gerados números aleatórios num contrato inteligente?
Para tornar os números aleatórios imprevisíveis, é necessário utilizar um oráculo para produzir aleatoriedade fora da cadeia. Uma forma popular é usar o ChainLink VRF.
Porque é que os contratos inteligentes escritos em Solidity ou Vyper precisam de ser compilados?
O EVM não compreende estas linguagens de alto nível. Por conseguinte, o código fonte tem de ser traduzido para linguagem de máquina (bytecode) que o EVM possa executar.
Explique as convenções de nomeação de contratos e funções em Solidity.
Os nomes dos contratos têm de ser escritos em maiúsculas (por exemplo, TestContract). Os nomes das funções têm de estar em maiúsculas (por exemplo, superDuperFunction).
Todas as funções de um contrato inteligente custam gás?
As funções que modificam o estado do EVM custam gás, enquanto as funções que apenas lêem o estado são gratuitas.
Liste todos os tipos de dados válidos em Solidity.
Boolean, Integer, Address, Byte/String, Enum. O tipo de dados "Números de Ponto Fixo" também existe, mas ainda não é totalmente suportado.
Qual é o resultado de 7/2 no Solidity?
É 3 porque o decimal está truncado.
Que tipos de dados não são chaves válidas num mapeamento?
A chave pode ser qualquer tipo de dados incorporado, mas não são permitidos tipos de referência. Não são permitidos: Mapping, Struct, Enum ou Array de tamanho dinâmico.
Qual é a vantagem de definir uma função de recurso no Solidity?
Ela nos ajuda a proteger a função de lançar um erro.
Em que dois cenários é que uma função de recurso (definida como payable) é chamada no Solidity?
- Um contrato recebe apenas éter e nenhum dado(msg.data).
- Nenhum nome de função corresponde à função chamada.
O que é que a função de recurso tem de especial no Solidity?
- Não tem nome, nem argumentos, nem identificador.
- Não pode devolver nada.
- Só pode ser definida uma vez por contrato.
- Tem de ser marcada como externa.
- É limitada a 2300 gases quando chamada por outra função.
Qual é a diferença entre ERC e EIP?
- O Ethereum Request for Comments (ERC) define normas para a utilização do Ethereum.
- As Propostas de Melhoria do Ethereum (EIP) melhoram o próprio protocolo Ethereum.
Ficam assim concluídos os conceitos básicos e não tão básicos. Se quiseres saber mais sobre o assunto, convido-te a ver os cursos que o Fin Guru tem disponíveis para os amantes do mundo blockchain!
Deixa um comentário se achaste este conteúdo útil.
Comentários