Um snapshot nada mais é do que uma cópia da blockchain em um período/bloco especifico.
Digamos que eu quero criar um token ERC20 chamado club21-token e mandar 1 para todas as pessoas que podem assinar uma mensagem de um endereço que hodlava pelo menos 1 BTC no momento que o bloco 30000 foi minerado.
Eu pego o estado da rede no bloco 30000 (ignorando tudo que veio depois), analiso a blockchain e gero uma lista de todos os endereços que tinham >= 1 BTC naquele momento.
Eu tinha entendido o conceito, mas o 'pegar o estado da rede no bloco' era a questão. Na prática, é toda a cópia ou dentro do bloco de um período específico seria possível extrair a informação de todos os endereços com saldo?
Porque por exemplo, um bloco é formado de alguns componente, o block Header, com informações sobre a versão, o hash do bloco anterior, o hash da árvore de Merkle, o timestamp e o nonce. Assim como os os dados das transações que foram incluídas naquele bloco, com as listas de inputs, outputs, valores e etc .
Qual informação dentro do bloco seria capaz de fornecer a info sobre os endereços da rede com saldo? A árvore de Merkle? Ou o snapshot é um full node que requisita pra blockchain inteira essa info e depois extrai os dados e usa no smartcontract?
Tu entendeu o que eu quero entender? rs