Criptografia
Estruturas de Dados
Redes, P2P e Sistemas Distribuídos
Básicos do Desenvolvimento de Software
Ethereum como Plataforma
Inevitable Ethereum - World Computer
O que é Ethereum? https://i.imgur.com/W8AtHjV.png
Para entender o design do Ethereum, precisamos aprender sobre os predecessores e a cultura na qual ele se baseia.
O ecossistema moderno de criptomoedas se apoia em décadas de trabalho de cientistas da computação, criptógrafos e ativistas.
Começando lá atrás, na década de 1960, UNIX é um sistema operacional e filosofia que redefiniu todo o paradigma da computação. Seu conceito fundamental de modularidade é importante para o design do Ethereum e o ambiente colaborativo aberto é semelhante ao desenvolvimento do Ethereum hoje.
Documentário com Dennis Ritchie e Ken Thompson, que captura as ideias por trás do UNIX:
https://yewtu.be/watch?v=tc4ROCJYbm0
O movimento do Software Livre é fundamental para o Ethereum e todas as criptomoedas. A cultura de desenvolvimento aberta, independente e colaborativa do Ethereum está fortemente enraizada no FOSS (Software Livre e de Código Aberto).
É necessário que o Ethereum seja implementado de forma transparente em software que ofereça total liberdade aos seus usuários.
Usar Software livre e de código aberto pode empoderar os usuários e os desenvolvedores, mas com isso é necessário a segurança, neutralidade e o confiar sem confiança do Ethereum.
https://yewtu.be/watch?v=Ag1AKIl_2GM
http://www.catb.org/~esr/writings/cathedral-bazaar/
A invenção da criptografia assimétrica marca o nascimento de um novo paradigma para aplicações de criptografia.
Posteriormente, a ascensão da criptografia na computação para o público geral permitiu que todos utilizassem ferramentas para privacidade digital, comunicação segura e transformou fundamentalmente a cibersegurança.
Movimentos ativistas surgem defendendo e construindo ferramentas de criptografia, enquanto os estados-nação não tinham um quadro para esses novos conceitos.
Em última análise, essas foram pessoas inventando ferramentas e ideias que se tornaram blocos de construção fundamentais das modernas criptomoedas.
Manifesto Cypherpunk
Crypto Anarchy
Cyberspace
Originalmente delineado em seu Whitepaper, o Ethereum busca inspiração no Bitcoin e em seu contexto (explicado acima) para criar uma plataforma de computação baseada em blockchain geral. O design foi tecnicamente especificado no Yellowpaper e evoluiu com o tempo. As mudanças são rastreadas no processo comunitário de EIPs e a especificação atual é implementada em Python como:
Para aprender sobre o consenso.
As mudanças do protocolo ocorrem ao longo do tempo, com cada atualização da rede trazendo novas melhorias. Apesar de suas constantes mudanças, a evolução da arquitetura reflete certos princípios fundamentais. Estes podem ser resumidos da seguinte forma:
Esses princípios fundamentais sempre lideraram o desenvolvimento do Ethereum e devem ser considerados com cada decisão sobre mudança de design. Além disso, ele gerencia a crescente complexidade encapsulando-a e/ou intercalando-a. A atual arquitetura da rede é o resultado de muitas iterações do histórico de atualização da rede.
O Ethereum continua evoluindo para abordar as últimas pesquisas, novos e sempre presentes desafios. Para manter a segurança e a descentralização, a tecnologia blockchain tem certos limites, principalmente sua escalabilidade. Porque o Ethereum precisa sempre aderir aos seus princípios, isso nos motiva a encontrar soluções inteligentes para esses problemas em vez de aceitar compromissos.
A pesquisa e desenvolvimento atuais são resumidos pela visão geral do Roadmap. Não há um único caminho para a P&D do Ethereum, o roadmap apenas resume sua paisagem atual. O ecossistema central é um jardim infinito sempre em crescimento.
Uma visão geral simplificada do design atual do Ethereum pode ser encontrada na documentação sobre arquitetura de nó
Tudo mencionado acima - as ideias, design e especificações - se resume à aplicação real aqui, em sua implementação. Uma implementação da camada de execução (EL) ou da camada de consenso (CL) é chamada de cliente. Um computador executando este cliente e se conectando à rede é chamado de nó.
Um nó é, portanto, um par de clientes EL e CL participando ativamente da rede.
Como o Ethereum é formalmente especificado, ele pode ser implementado de diferentes maneiras em qualquer linguagem. Isso resulta em uma variedade de implementações ao longo dos anos, com algumas já obsoletas e outras em desenvolvimento. A lista atual de implementações prontas para produção pode ser encontrada nos documentos sobre Nós e clientes
Esta estratégia é chamada de diversidade de clientes. O Ethereum não depende de uma única implementação 'oficial', mas os usuários podem escolher qualquer cliente e ter certeza de que ele faz o trabalho. Se ocorrer um problema dentro de uma única implementação de cliente, isso não afeta o restante da rede.
Com mudanças regulares e múltiplas implementações de cliente, o teste é fundamental para a segurança da rede. Há uma variedade de ferramentas de teste e cenários que são todos fortemente utilizados antes de qualquer atualização da rede.
Os testes são gerados com base nas especificações e criam vários cenários. Alguns estão testando clientes individualmente, alguns estão simulando uma testnet com todos os pares de clientes. Há diferentes ferramentas de teste usadas para diferentes partes dos ciclos de desenvolvimento e partes dos clientes. Isso inclui testes de transição de estado, fuzzing, forks sombra, testes RPC, testes de unidade de cliente e CI/CD, etc.
O desenvolvimento do Ethereum é muito diferente de projetos tradicionais, corporativos. Primeiramente, é tudo aberto e público, qualquer pessoa pode revisá-lo ou contribuir.
Ao contrário da tecnologia proprietária, os desenvolvedores do Ethereum não estão competindo, mas sim trabalhando juntos. Com a complexidade sempre crescendo, basicamente não há pessoas que seriam especialistas em todo o Ethereum.
As pessoas desenvolvem expertise em domínios específicos e colaboram com outros. Isso é possível graças à modularidade do Ethereum e permite que os desenvolvedores se concentrem nos desafios que preferem pessoalmente.
O ciclo de desenvolvimento tradicional para novos recursos ou mudanças é 'Ideia - Pesquisa - Desenvolvimento - Teste - Adoção
.
Para ser capaz de enviar atualizações da rede e concordar com o foco atual do desenvolvimento, precisa haver uma certa coordenação. Tudo isso também é público e pode ser seguido por qualquer pessoa interessada em aprender sobre o protocolo central.
A coordenação acontece principalmente via chamadas regulares que são agendadas no repositório PM. Há diferentes tipos de chamadas de desenvolvedor com a maior sendo All Core Devs (ACD).
É onde representantes de todas as equipes envolvidas vêm discutir o desenvolvimento atual da camada de consenso ou de execução.
As ideias e mudanças propostas pela comunidade são coordenadas usando o processo EIP. Além disso, há alguns fóruns de discussão. O maior discutindo atualizações centrais é https://ethresear.ch. Outro fórum que está conectado ao processo EIP e serve para discussão sobre propostas específicas é Ethereum Magicians.
Posted Using InLeo Alpha
Posted Using InLeo Alpha
Obrigado por promover a comunidade Hive-BR em suas postagens.
Vamos seguir fortalecendo a Hive
voltei com tudo! ✨
Niiiiice! Agora sei tudo sobre ethereum 🤙🏽🤙🏽🤙🏽
Your post was manually curated by @CrazyPhantomBR.
Delegate your HP to the hive-br.voter account and earn Hive daily!
🔹 Follow our Curation Trail and don't miss voting! 🔹