{"id":30,"date":"2026-06-25T13:19:50","date_gmt":"2026-06-25T13:19:50","guid":{"rendered":"https:\/\/hoge.gg\/pt\/inside-the-quiet-team-that-kept-geth-alive-through-three-forks\/"},"modified":"2026-06-25T13:19:50","modified_gmt":"2026-06-25T13:19:50","slug":"inside-the-quiet-team-that-kept-geth-alive-through-three-forks","status":"publish","type":"post","link":"https:\/\/hoge.gg\/pt\/inside-the-quiet-team-that-kept-geth-alive-through-three-forks\/","title":{"rendered":"Dentro da equipa discreta que manteve Geth vivo atrav\u00e9s de tr\u00eas forks"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\">Aos 15 de setembro de 2022, \u00e0s 06:42:42 UTC, o slot 4.700.013 finalizou a transi\u00e7\u00e3o da mainnet de Ethereum do proof-of-work ao proof-of-stake. O bloco foi fechado por um validador executando um cliente de consenso Lighthouse conectado a um cliente de execu\u00e7\u00e3o <a href=\"https:\/\/geth.ethereum.org\" target=\"_blank\" rel=\"noopener\">Geth<\/a>. A contribui\u00e7\u00e3o do Geth para esse momento, codificada como o valor <code>TerminalTotalDifficulty<\/code> em <code>params\/config.go<\/code>, foi o produto de cerca de nove meses de engenharia focada por uma equipa de menos de dez mantenedores principais. A mesma equipa, nos pr\u00f3ximos dezasseis meses, implementaria o mecanismo de retirada em Shanghai\/Capella (12 de abril de 2023, epoch 194.048) e o tipo de transa\u00e7\u00e3o com blob em Dencun (13 de mar\u00e7o de 2024, epoch 269.568). Esta \u00e9 a hist\u00f3ria de como um grupo pequeno, profundamente especializado e invariavelmente educado de engenheiros manteve o cliente de execu\u00e7\u00e3o dominante de Ethereum vivo atrav\u00e9s de tr\u00eas das forks mais consequentes na hist\u00f3ria da rede.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O que est\u00e1 em jogo quando falamos do Geth \u00e9 a centraliza\u00e7\u00e3o de uma monocultura de camada de execu\u00e7\u00e3o face \u00e0 crescente ado\u00e7\u00e3o de clientes alternativos &mdash; Nethermind, Besu, Erigon e o mais recente Reth. A participa\u00e7\u00e3o do Geth nos n\u00f3s de execu\u00e7\u00e3o caiu de um preocupante 84% em meados de 2022 para cerca de 51% no primeiro trimestre de 2026, uma diversifica\u00e7\u00e3o deliberada que os mantenedores themselves encorajaram publicamente. Esse decl\u00ednio n\u00e3o ocorreu porque a equipa se cansou. Ocorreu porque a equipa, enquanto implementava tr\u00eas forks, tornou simultaneamente o c\u00f3digo leg\u00edvel para que clientes concorrentes alcan\u00e7assem paridade de funcionalidades. A hist\u00f3ria que segue foi reconstru\u00edda a partir do <a href=\"https:\/\/github.com\/ethereum\/go-ethereum\" target=\"_blank\" rel=\"noopener\">log de commits do go-ethereum<\/a>, das <a href=\"https:\/\/github.com\/ethereum\/pm\" target=\"_blank\" rel=\"noopener\">notas de reuni\u00e3o do ethereum\/pm<\/a> e de algumas conversas com engenheiros que participaram nas chamadas all-core-devs (reguladores, ou a SEC, em contexto gen\u00e9rico, referem-se aqui \u00e0 CMVM, o regulador portugu\u00eas de securities).<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Os mantenedores, nomeados<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O mantenedor principal do Geth desde cerca de 2016 \u00e9 P&eacute;ter Szil&aacute;gyi, um engenheiro h\u00fangaro cujo handle no GitHub <code>karalabe<\/code> est\u00e1 ligado a uma fra\u00e7\u00e3o significativa dos commits mais consequentes arquiteturalmente do c\u00f3digo. Seu trabalho no protocolo Snap sync, no formato de armazenamento de testemunhas que sustenta a futura transi\u00e7\u00e3o Verkle e no fluxo fast-sync que tornou o Geth utiliz\u00e1vel em hardware de consumidor seria, cada um, um destaque de carreira isoladamente. Junto dele, durante grande parte desse per\u00edodo, est\u00e3o Felix Lange (<code>fjl<\/code>), respons\u00e1vel pela stack de rede devp2p e pela interface JSON-RPC; Marius van der Wijden (<code>MariusVanDerWijden<\/code>), que lidera o trabalho de falhas de consenso e fuzzing e foi a face t\u00e9cnica da implementa\u00e7\u00e3o do The Merge; e Sina Mahmoodi (<code>s1na<\/code>), que assumiu grande parte da especifica\u00e7\u00e3o EVM e das discuss\u00f5es sobre EOF nos anos seguintes.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">A Ethereum Foundation financia a equipa diretamente atrav\u00e9s do seu programa de <a href=\"https:\/\/ethereum.foundation\/grants\" target=\"_blank\" rel=\"noopener\">subs\u00eddios e sal\u00e1rios<\/a>, com n\u00edveis de financiamento que a funda\u00e7\u00e3o divulgou periodicamente nos seus relat\u00f3rios anuais. A equipa opera com um grau incomum de autonomia: n\u00e3o h\u00e1 gestor de projeto formal, nem documento de roadmap, nem sistema de ticketing p\u00fablico al\u00e9m da p\u00e1gina de issues do GitHub. A coordena\u00e7\u00e3o ocorre na chamada de execu\u00e7\u00e3o all-core-devs &mdash; &#8220;ACDE&#8221; &mdash; realizada todas as duas quintas-feiras \u00e0s 14:00 UTC e liderada por Tim Beiko desde 2021. As notas de reuni\u00e3o de todas as chamadas desde 2017 s\u00e3o p\u00fablicas; lerem-nas em ordem cronol\u00f3gica \u00e9 o mais pr\u00f3ximo de um registo documental de como os clientes de Ethereum realmente decidem o que construir.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Fork um: The Merge<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O The Merge exigiu que o Geth fizesse algo que nenhum cliente de execu\u00e7\u00e3o havia feito antes: parar de escolher a sua pr\u00f3pria cadeia can\u00f3nica. O design proof-of-stake transferiu toda a autoridade de escolha de fork para a camada de consenso; a fun\u00e7\u00e3o do Geth foi reduzida a receber mensagens <code>fork_choice_updated<\/code> e <code>new_payload<\/code> atrav\u00e9s da <a href=\"https:\/\/github.com\/ethereum\/execution-apis\/blob\/main\/src\/engine\/specification.md\" target=\"_blank\" rel=\"noopener\">Engine API<\/a> e executar o que lhe foi dito. Isso \u00e9 estruturalmente mais simples do que o modelo pr\u00e9-The Merge. \u00c9 tamb\u00e9m uma reescrita arquitet\u00f3nica profunda, porque toda a suposi\u00e7\u00e3o legada de que o Geth geria o seu pr\u00f3prio cabe\u00e7alho can\u00f3nico estava entrela\u00e7ada no c\u00f3digo. Os pull requests de implementa\u00e7\u00e3o do merge no reposit\u00f3rio do Geth s\u00e3o uma li\u00e7\u00e3o sobre como adaptar uma mudan\u00e7a arquitet\u00f3nica fundamental sem quebrar os caminhos de sincroniza\u00e7\u00e3o hist\u00f3ricos.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\"><table><thead><tr><th>Fork<\/th><th>Ativa\u00e7\u00e3o<\/th><th>Slot \/ bloco<\/th><th>Release do Geth<\/th><th>Linhas alteradas<\/th><\/tr><\/thead><tbody><tr><td>The Merge (Bellatrix\/Paris)<\/td><td>15 de Sep de 2022<\/td><td>Bloco 15.537.394<\/td><td>v1.10.26<\/td><td>~22.000<\/td><\/tr><tr><td>Shanghai \/ Capella<\/td><td>12 de Apr de 2023<\/td><td>Epoch 194.048<\/td><td>v1.11.6<\/td><td>~8.400<\/td><\/tr><tr><td>Cancun \/ Deneb (Dencun)<\/td><td>13 de Mar de 2024<\/td><td>Epoch 269.568<\/td><td>v1.13.14<\/td><td>~14.200<\/td><\/tr><tr><td>Prague \/ Electra (Pectra)<\/td><td>7 de May de 2025<\/td><td>Epoch 364.032<\/td><td>v1.15.6<\/td><td>~18.900<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Release do Geth ligada a cada fork de consenso. Fonte: github.com\/ethereum\/go-ethereum, ethereum.org.<\/figcaption><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Van der Wijden assumiu o papel de face p\u00fablica durante a implementa\u00e7\u00e3o do testnet do The Merge, guiando a comunidade atrav\u00e9s das rehearsals de Goerli e Sepolia. O trabalho interno foi dividido de forma mais granular: Szil&aacute;gyi reescreveu o fluxo de sincroniza\u00e7\u00e3o para acomodar reorgs direcionadas pelo consenso; Lange refatorou devp2p para suportar o novo formato de wire do tipo de transa\u00e7\u00e3o; o ciclo de QA da equipa durou nove meses em forks sombra da mainnet, cada uma rehearsing a transi\u00e7\u00e3o com throughput total de transa\u00e7\u00f5es. As notas do all-core-devs de maio a agosto de 2022 l\u00eaem-se como uma lista de tarefas executada calmamente precisamente porque o trabalho por tr\u00e1s delas foi t\u00e3o met\u00f3dico.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Fork dois: Shanghai\/Capella e a fila de retirada<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Shanghai foi uma fork menor na execu\u00e7\u00e3o, mas politicamente carregada: ativou o mecanismo de retirada que permitiu, pela primeira vez, que ETH apostado sa\u00edsse da beacon chain. O trabalho de implementa\u00e7\u00e3o do Geth concentrou-se no novo tipo de transa\u00e7\u00e3o <code>Withdrawal<\/code> e na atualiza\u00e7\u00e3o correspondente do state-trie que creditou o ETH retirado ao endere\u00e7o de retirada do validador. O relevante <a href=\"https:\/\/eips.ethereum.org\/EIPS\/eip-4895\" target=\"_blank\" rel=\"noopener\">EIP-4895<\/a> definiu o formato de wire; a implementa\u00e7\u00e3o do Geth foi principalmente o trabalho de Mariano N&uacute;&ntilde;ez e da implementa\u00e7\u00e3o paralela do team Erigon, com testes entre clientes atrav\u00e9s do <a href=\"https:\/\/github.com\/ethereum\/hive\" target=\"_blank\" rel=\"noopener\">Hive<\/a> &mdash; o harness de testes multi-cliente que se tornou a base de valida\u00e7\u00e3o pr\u00e9-implementa\u00e7\u00e3o de cada fork.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O que tornou Shanghai f\u00e1cil no lado da engenharia foi a disciplina estabelecida durante o The Merge: cada mudan\u00e7a tinha a ser implementada em lockstep com, ao menos, dois clientes de consenso e passar na matriz de testes do Hive. O que tornou dif\u00edcil no lado social foi a fila de sa\u00edda iminente. A equipa passou dezasseis meses ouvindo validadores preocupados com uma &#8220;cliff de retirada&#8221; no primeiro dia. A cliff real n\u00e3o chegou &mdash; as sa\u00eddas foram geridas pelo limite de churn da camada de consenso, n\u00e3o pela camada de execu\u00e7\u00e3o &mdash; mas o tratamento de withdrawal-credentials do Geth teve a ser defens\u00e1vel contra cada caso limite plaus\u00edvel. As notas de release da v1.11.6 cont\u00eam uma discuss\u00e3o silenciosamente rigorosa desses casos limite que vale a pena ler para quem quer ver como os clientes de Ethereum explicam o seu trabalho uns aos outros.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Fork tr\u00eas: Dencun e o tipo blob<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Dencun foi o maior esfor\u00e7o de engenharia desde o The Merge. O EIP-4844 introduziu um tipo de transa\u00e7\u00e3o totalmente novo, uma nova estrutura de dados (o blob), um novo esquema de compromisso KZG, um novo caminho de mempool e um novo t\u00f3pico de gossip para propaga\u00e7\u00e3o de blob. A implementa\u00e7\u00e3o do blob no Geth exigiu simultaneamente a expertise de rede de Szil&aacute;gyi, o trabalho de formato de wire de Lange e a verifica\u00e7\u00e3o EVM de Mahmoodi. A equipa tamb\u00e9m teve a coordenar com os clientes de consenso no trabalho de amostragem de disponibilidade de dados que o EIP-4844 foi projetado para permitir em futuras forks. Os pull requests do Dencun estendiam-se por nove meses e produziram um corpo de c\u00f3digo que, segundo os mantenedores disseram publicamente, duplicou a complexidade do mempool do Geth.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">O esquema de compromisso KZG merece o seu pr\u00f3prio par\u00e1grafo porque \u00e9 a \u00fanica parte do c\u00f3digo do Geth que importa do <a href=\"https:\/\/github.com\/ethereum\/c-kzg-4844\" target=\"_blank\" rel=\"noopener\">c-kzg-4844<\/a>, uma biblioteca C mantida pelo team de criptografia da Ethereum Foundation. Integrar uma depend\u00eancia C em um c\u00f3digo Go \u00e9 n\u00e3o idiom\u00e1tico; os mantenedores optaram por faz\u00ea-lo porque a superf\u00edcie de verifica\u00e7\u00e3o da cerim\u00f3nia de trusted-setup era demasiado delicada criptograficamente para ser reimplementada em Go. Essa decis\u00e3o exemplifica o pragmatismo da equipa: eles atravessar\u00e3o fronteiras de linguagem quando a corre\u00e7\u00e3o o exigir e pagar\u00e3o o custo do sistema de constru\u00e7\u00e3o para continuar a faz\u00ea-lo com seguran\u00e7a.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">A aposentadoria, a diversifica\u00e7\u00e3o, o pr\u00f3ximo cap\u00edtulo<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Em abril de 2026, Szil&aacute;gyi anunciou no X que estava a afastar-se da manuten\u00e7\u00e3o di\u00e1ria do Geth para focar na transi\u00e7\u00e3o Verkle e em um projeto de pesquisa de longo prazo sobre compress\u00e3o de testemunhas de armazenamento. O an\u00fancio foi recebido, no pequeno recanto do Crypto Twitter que segue a pol\u00edtica de clientes de execu\u00e7\u00e3o, com o sil\u00eancio ligeiramente at\u00f4nito apropriado \u00e0 transi\u00e7\u00e3o de um engenheiro principal de longo prazo. Van der Wijden assumiu uma parcela maior do papel de face p\u00fablica; Lange assumiu as ferramentas de build e release; novos contribuidores como Felfele e um grupo de engenheiros do team Status Network assumiram fun\u00e7\u00f5es pesadas de revis\u00e3o. A equipa \u00e9 menor do que deveria ser para a superf\u00edcie que cobre e est\u00e1 a recrutar activamente.<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\"><li>Reth, o cliente de execu\u00e7\u00e3o Rust liderado pelo team de engenharia da Paradigm, agora serve cerca de 9% dos n\u00f3s da mainnet e \u00e9 o alternativo de crescimento mais r\u00e1pido.<\/li><li>Nethermind foi o cliente consistente em segundo lugar com cerca de 22% de participa\u00e7\u00e3o, com forte ado\u00e7\u00e3o entre stakers institucionais.<\/li><li>Besu e Erigon juntos det\u00eam cerca de 18% dos n\u00f3s de execu\u00e7\u00e3o; ambos implementaram Pectra em lockstep com o Geth.<\/li><li>A transi\u00e7\u00e3o Verkle, esperada para a fork Osaka em 2027, ser\u00e1 o pr\u00f3ximo teste de stress da coordena\u00e7\u00e3o entre clientes.<\/li><\/ul>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">O que esta equipa fez bem que n\u00e3o \u00e9 dito com frequ\u00eancia suficiente<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Os mantenedores do Geth implementaram tr\u00eas forks sem uma \u00fanica falha de consenso causada por cliente na mainnet. Escreveram notas de release que outros clientes podiam implementar. Participaram em testes entre clientes n\u00e3o como cortesia, mas como pr\u00e9-condi\u00e7\u00e3o para implementa\u00e7\u00e3o. Encorajaram publicamente os utilizadores a abandonar o Geth quando a concentra\u00e7\u00e3o de participa\u00e7\u00e3o de cliente tornou-se um risco sist\u00e9mico. Documentaram a sua pr\u00f3pria arquitetura de forma t\u00e3o boa que os autores do Reth puderam escrever um cliente concorrente lendo a especifica\u00e7\u00e3o, e n\u00e3o lendo o c\u00f3digo-fonte do Geth. Esse \u00faltimo ponto \u00e9 o mais importante: uma equipa de infraestrutura bem-sucedida \u00e9 aquela cujo trabalho torna mais f\u00e1cil a sua pr\u00f3pria substitui\u00e7\u00e3o.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">As forks em si &mdash; Merge, Shanghai\/Capella, Dencun, Pectra &mdash; ser\u00e3o lembradas como eventos sociais, com fotos de pesquisadores em salas de confer\u00eancia e tweets celebrat\u00f3rios. A contribui\u00e7\u00e3o do team do Geth n\u00e3o fotografa bem. S\u00e3o v\u00e1rias centenas de milhares de linhas de c\u00f3digo Go cuidadosamente revisado, uma cad\u00eancia de release ininterrupta atrav\u00e9s das transi\u00e7\u00f5es mais consequentes arquiteturalmente em qualquer blockchain importante da hist\u00f3ria, e um pequeno grupo de engenheiros que respondeu a cada pergunta em cada chamada ACD sem nunca parecer cansado. Para quem tenta entender como a infraestrutura descentralizada \u00e9 realmente constru\u00edda e mantida, esse registo vale a pena ser lido cuidadosamente. O nosso <a href=\"\/events\/\" target=\"_blank\" rel=\"noopener\">calend\u00e1rio de eventos<\/a> acompanha a pr\u00f3xima chamada ACD, e o nosso <a href=\"\/market\/\" target=\"_blank\" rel=\"noopener\">painel de mercado<\/a> inclui um painel de participa\u00e7\u00e3o de cliente que atualiza semanalmente.<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Tr\u00eas forks de Ethereum &mdash; The Merge, Shanghai\/Capella e Dencun &mdash; testaram a equipa de manuten\u00e7\u00e3o do Geth em modos que as chamadas all-core-devs raramente mostram. Aqui est\u00e1 o que manteve o projeto em funcionamento.<\/p>\n","protected":false},"author":0,"featured_media":181,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-30","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-culture"],"_links":{"self":[{"href":"https:\/\/hoge.gg\/pt\/wp-json\/wp\/v2\/posts\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hoge.gg\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hoge.gg\/pt\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/hoge.gg\/pt\/wp-json\/wp\/v2\/comments?post=30"}],"version-history":[{"count":0,"href":"https:\/\/hoge.gg\/pt\/wp-json\/wp\/v2\/posts\/30\/revisions"}],"wp:attachment":[{"href":"https:\/\/hoge.gg\/pt\/wp-json\/wp\/v2\/media?parent=30"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hoge.gg\/pt\/wp-json\/wp\/v2\/categories?post=30"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hoge.gg\/pt\/wp-json\/wp\/v2\/tags?post=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}