como e quando as validações de bloqueio e transação ocorrem?
Tenho algumas perguntas e tentarei explicá-las aqui.
Então, digamos que temos 4 nós em toda a rede.
um dos nós (nó A) obteve transações do pool. antes de colocá-lo em um bloco candidato, eles primeiro validam cada transação, certo? em caso afirmativo, acho que eles verificam o saldo e a assinatura. Algo mais ? e se tudo estiver certo, eles colocam cada transação válida em um bloco candidato e depois disso, eles começam a minerar este bloco ... Eu acho que as transações inválidas desaparecem ou algo assim ..
Digamos que o nó A extraiu o bloco mais rápido. Ele colocou o bloco em seu livro-razão e também o compartilhou com outros nós para que eles também pudessem adicioná-lo ao seu próprio livro-razão. Eu sei que outros nós não irão apenas adicioná-lo ao livro-razão até que eles confirmem que este novo bloco foi realmente extraído (pegará o hash do cabeçalho e verificará se está abaixo do atual). Isso está correto? em caso afirmativo, a questão é: eles também conduzirão uma validação para cada transação desse bloco? se sim - por quê? se não - por quê?
Se eu fizer 2 transações uma após a outra, embora eu só tenha saldo para apenas uma transação, essas 2 irão para o pool primeiro. e eu acho que, quando meu nó verificar a validação de transações antes de colocá-lo em um bloco candidato, eles verão que o que verificarem primeiro é válido e o segundo não é mais válido, pois eles já verificaram o primeiro. Direito ?
Respostas
Geralmente, cada transação é validada quando é adicionada ao mempool do nó. Isso acontece quando o nó vê a transação pela primeira vez, ele não espera até que seja adicionado a um bloco candidato para mineração. O bloco candidato para mineração seria formado a partir das transações já no mempool - aquelas que já foram validadas pelo nó.
Se outro nó receber um bloco, então sim, ele validará a prova de trabalho e outros fatores como o timestamp, e também validará cada transação no bloco que não tenha visto antes. Os que ele viu antes simplesmente serão removidos de seu mempool e não precisam ser revalidados.
Em relação a 3., os nós não aceitarão duas transações conflitantes em seu mempool. Cada nó aceitará qualquer transação válida que virem primeiro. Este pode não ser o que acaba no bloco eventualmente, mas o nó irá corrigir isso assim que uma das duas transações conflitantes for minerada.