Pular para o conteúdo
buybitcoinsmart

Glossário / Protocolo e atualizações

Cluster mempool

O que é o cluster mempool?
Cluster mempool é o redesenho da sala de espera do Bitcoin Core que mantém cada grupo de transações não confirmadas conectadas entre si ordenado, de modo que o nó sempre sabe quais um minerador realmente escolheria.

Transações não confirmadas que gastam umas às outras formam um grafo de dependências, e durante anos o software só podia raciocinar sobre ele por meio de limites grosseiros de quantos ancestrais e descendentes cada entrada podia ter. A versão 31.0 substituiu esses limites por uma única regra: nenhum grupo conectado com mais de 64 transações ou 101 kB de tamanho virtual. O aumento de taxa e a substituição se tornaram mais previsíveis como resultado.

Como funciona

Um cluster é um componente conectado da mempool. Pegue qualquer transação não confirmada, siga cada vínculo de pai e de filho nos dois sentidos, e tudo o que você alcançar pertence ao mesmo cluster.

O projeto antigo rastreava ancestrais e descendentes separadamente e limitava cada um a 25, com um teto de tamanho ao lado. Isso era barato de calcular e errado em um aspecto importante. Dizia a um nó qual era o tamanho de uma família sem dizer em que ordem um minerador racional pegaria essa família, então a mempool não conseguia responder à sua própria pergunta central: se eu tivesse que montar um bloco agora mesmo, o que entraria nele?

O cluster mempool responde a isso mantendo cada cluster linearizado o tempo todo. Uma linearização é uma ordenação dividida em chunks, cada chunk sendo um conjunto de transações que seriam mineradas juntas e que compartilham uma mesma taxa efetiva. Ordenar esses chunks produz um diagrama de taxas para toda a mempool, e é contra esse diagrama que as decisões agora são medidas.

Os limites são 64 transações e 101 kB de tamanho virtual por cluster, e substituíram por completo as contagens de ancestrais e descendentes. A exceção CPFP carveout, que antes permitia que uma transação filha adicional passasse do limite de descendentes, foi excluída junto com os limites, porque nada pode contornar a contagem do cluster.

O ganho aparece na substituição. As regras antigas de substituição por taxa eram um punhado de condições emendadas umas nas outras, e podiam ser burladas anexando lixo barato a uma transação compartilhada até que substituí-la se tornasse absurdamente caro. Comparar diagramas de taxas oferece um único teste: uma substituição é aceita quando não deixa o diagrama pior em nenhum ponto e melhor em algum. Dois novos RPCs expõem o mecanismo, getmempoolcluster para o conteúdo e a ordenação de um cluster e getmempoolfeeratediagram para o próprio diagrama.

Onde você vê isso

O cluster mempool aparece como uma mensagem de erro quando você encadeia gastos não confirmados demais, e como um aumento de taxa que dá certo onde você esperava problema.

Os usuários de carteiras encontram o limite em uma situação comum: gastar o troco não confirmado repetidas vezes durante um período movimentado. Sessenta e quatro transações é generoso para uma pessoa e apertado para um serviço que agrupa pagamentos em lote, que é mais ou menos para quem o número foi escrito. Quando uma carteira recusa um gasto e menciona um cluster, a solução é esperar uma confirmação em vez de aumentar a taxa.

O benefício mais discreto é que o child-pays-for-parent agora faz o que promete. Aumente a taxa de uma transação presa gastando sua saída a uma taxa alta e o nó consegue ver imediatamente se o par supera o que já está na fila, então você obtém uma resposta direta em um passo em vez de uma aproximação.

Cluster mempool vs mempool

A mempool é o conjunto de transações que um nó mantém; o cluster mempool é como um programa organiza esse conjunto internamente. Nenhuma regra de consenso mudou, nenhum fork aconteceu, e um nó que ainda executa uma versão anterior mantém as mesmas transações com uma contabilidade pior. A distinção importa porque a mudança às vezes é noticiada como se o bitcoin tivesse ganhado uma nova regra de rede sobre cadeias de transações. Ele não ganhou. Isso é política, escolhida nó por nó, e qualquer operador pode mover os limites na própria máquina com um argumento de linha de comando.

Não confundir com

Perguntas frequentes

O cluster mempool muda alguma regra de consenso do bitcoin?

Não. É política de mempool dentro de uma única implementação, então muda o que um nó mantém e retransmite, nunca o que conta como bloco válido. Nós que executam versões anteriores permanecem na mesma cadeia com as mesmas transações.

Por que minha carteira disse que uma transação excede um limite de cluster?

Você criou uma cadeia de gastos não confirmados cujo grupo conectado atingiu o teto de 64 transações ou 101 kB de tamanho virtual. Aumentar a taxa não vai ajudar. Espere que uma das transações anteriores seja confirmada, o que separa o grupo.

Termos relacionados

Mais em Protocolo e atualizações

Ler esta página em inglês