A função principal do mempool é armazenar transações antes de serem validadas.
Bitcoin e Ethereum são exemplos de blockchains que usam mempools.
A congestão da blockchain é a principal razão pela qual as transações ficam presas por um longo tempo.
Se quiser que uma transação seja processada rapidamente, utilize taxas de gás adequadas.
Frequentemente realizamos transações em várias blockchains como Ethereum e Bitcoin, mas podemos não compreender totalmente algumas das suas especificidades. No entanto, saber como alguns componentes das blockchains funcionam pode ajudar-nos a acelerar as nossas transações ou a reduzir os seus custos.
Nesta análise discutimos o Mempool na blockchain e como funciona. Também explicaremos como você pode lidar com transações pendentes ou atrasadas nas redes Bitcoin e Ethereum.
Leia também: O que é um explorador de blockchain?
Mempool, uma forma abreviada de mempool, é um espaço de nó para armazenar informações, como transações não confirmadas. Ele age como uma sala de espera para transações que ainda não foram confirmadas ou aprovadas. Lembre-se de que as transações são incluídas em um bloco apenas quando são verificadas ou aprovadas.
Em outras palavras, uma mempool é um espaço onde as transações pendentes esperam antes de serem adicionadas a um bloco.
Quando a transação é verificada, isso significa que todos os pares na blockchain podem acessar as informações. No entanto, antes que a transação seja aprovada, vários nós verificam a assinatura, verificam se a saída não é maior que a entrada e se o sistema ainda não enviou os ativos digitais. Se alguma dessas condições não for atendida, os validadores ou mineradores rejeitam a transação.
É importante entender que não há um único mempool para uma blockchain. Assim, cada nó na rede blockchain tem sua própria memória compartilhada, também chamada de pool de transações. Portanto, os mempools dos vários nós compõem um pool de memória coletivo da blockchain.
Por exemplo, as transações que são feitas na Bitcoin A rede não adiciona diretamente transações ao blockchain. Cada nó armazena as transações num armazenamento temporário chamado mempool ou txpool. Como resultado, formam uma fila que precisa ser verificada e validada.
Portanto, podemos definir simplesmente um mempool como uma fila organizada de transações que precisam ser ordenadas e adicionadas a um bloco.
Pool de Memória (Mempool) num Nó- Babypips
Lembre-se de que as transações só existem em um mempool antes de serem confirmadas ou embaladas em blocos. No diagrama acima, a seção colorida de azul é o espaço do mempool que existe dentro de um nó. O próximo diagrama mostra a distribuição de mempools em uma rede.
Os nós completos na Rede Bitcoin têm Mempools - Babypips
Como visto na imagem acima, cada nó completo em uma rede como bitcoin ou Ethereum tem uma mempool. No entanto, cada transação será transmitida pelos nós da rede conforme indicado no próximo diagrama.
Uma rede de nós Bitcoin - Babypips
Como observamos no diagrama, o usuário em roxo inicia uma transação de bitcoin que é armazenada no mempool antes da aprovação. É essencial notar que, uma vez que a transação é verificada, ela é adicionada a um bloco, como mostra a próxima ilustração.
Uma transação é adicionada ao arquivo (bloco) - Babypips
A seta azul no diagrama mostra o que acontece quando uma transação é verificada, ela é movida do txpool para um bloco. Nessa fase, todos os computadores terão o arquivo atualizado da transação confirmada.
Em geral, as Mempools não funcionam exatamente da mesma maneira. Como operam depende da arquitetura de cada blockchain. Em outras palavras, funcionam de maneira diferente dependendo dos tipos de mecanismos de consenso das redes. As transações são verificadas por validadores ou mineradores, dependendo das redes.
Como exemplo, transações na blockchain do bitcoin são verificadas por mineradores, pois ela utiliza o mecanismo de consenso de prova de trabalho. Por outro lado, transações na rede Ethereum são aprovadas por validadores, porque a blockchain utiliza o mecanismo de consenso de prova de participação.
Leia também: Moldando o Ethereum e Possíveis Preocupações com a Saúde da Rede
A rede bitcoin requer um mínimo de seis confirmações por transação, enquanto a blockchain do Ethereum precisa de pelo menos sete confirmações. Basicamente, cada transação em um mempool tem um status específico. Está pendente ou na fila. Quando um validador ou minerador valida uma transação na fila, ela se torna pendente.
Leia também: O que é a Lightning Network do Bitcoin?
Vamos dar uma olhada em um exemplo simples do que acontece quando você envia ETH para um amigo. O procedimento envolve inserir o endereço da carteira, definir a taxa de gás e confirmar a transação.
Uma vez que você ute essas ações, sua transação será colocada em fila, aguardando verificação. Nesse ponto, ela será transmitida para toda a rede de nós, mas ainda não fará parte de nenhum bloco.
Se os validadores verificarem a transação e constatarem que ela atende a todas as condições, ela é movida do estado de fila para o estado de pendência, aguardando confirmação. A partir daí, um dos validadores pega a transação no mempool e a adiciona a um novo bloco.
Nessa fase, vários validadores o aprovam, o que permite que seu amigo receba o ETH.
Passo 1: O remetente insere o endereço de destino, aceita as taxas de transação da rede e clica em ‘ENVIAR’
PASSO 2: A transação é adicionada à mempool mais próxima e fica em fila.
PASSO 3: Os dados da mempool são transmitidos para os outros nós na rede.
PASSO 4: Um nó aprova a transação e seu status muda de Enfileirado para Pendente.
PASSO 5: Um minerador escolhe a transação pendente e a adiciona a um bloco.
PASSO 6: O restante dos nós exclui a transação de suas mempools.
PASSO 7: A transação está concluída e o ativo entra na carteira de destino.
Agora que você entende o que atrasa sua transação ao processá-la, vamos analisar as razões pelas quais algumas transações ficam presas e que ação você pode tomar.
A principal razão pela qual as transações estão presas na mempool é a congestão da rede. Quando há uma alta volume de transações, a pressão aumenta no espaço de bloco disponível, o que desencadeia a acumulação na mempool. Isso ocorre se o número de transações pendentes for maior do que a média de transações em um bloco.
Alguns eventos e notícias que afetam o nível de tráfego no blockchain podem causar congestionamento na rede. Por exemplo, airdrops, listagem em mais bolsas ou novas parcerias podem levar ao congestionamento. No entanto, há fatores que podem permitir que os nós priorizem determinadas transações.
Taxa de Transação: A quantidade de taxas aplicadas às diferentes transações determina aquelas que são aprovadas primeiro. Uma vez que os mineiros e validadores são impulsionados pelo lucro, eles priorizam as transações que têm taxas mais altas porque isso lhes permite obter recompensas mais elevadas.
Portanto, os mineradores e validadores organizam a transação em suas mempools com base nas taxas por unidade, como satoshis/byte. No final, eles adicionam aos blocos as transações com as maiores taxas primeiro. Esse sistema obriga os usuários a definir taxas altas para suas transações.
No entanto, dependendo do tráfego de rede, os usuários podem definir taxas de gás ótimas e ainda ter suas transações confirmadas a tempo. O importante para os usuários é verificar fatores como dados históricos, congestionamento de rede, volume de transações e distribuição de taxas na mempool antes de definir suas próprias taxas de gás.
Tempos de confirmação: Os usuários também podem precisar verificar os tempos de confirmação antes de definirem suas taxas. Quando os tempos de confirmação são altos, significa que os mineradores e validadores dão preferência a transações com taxas altas. Em essência, quando a mempool está congestionada, significa que as transações com taxas mais baixas levarão muito tempo para serem processadas.
Espaço de bloco: O espaço do bloco também determina a quantidade de tempo que decorre antes que as transações sejam aprovadas. Como o espaço do bloco é sempre limitado, os mineradores e validadores dão preferência às transações que têm taxas mais altas. Isso significa que as transações com taxas mais baixas passam muito tempo na mempool.
Tamanho da mempool e remoção: Cada transação a ser adicionada ao bloco é um conjunto de dados com um tamanho medido em kilobytes. Portanto, mempools grandes acomodam muitas transações. Normalmente, os nós definem os tamanhos de suas mempools, que frequentemente são de 300MB para o Bitcoin. Quando uma mempool atinge um limite, o nó pode definir uma taxa mínima de transação.
Quando os usuários entendem essas dinâmicas, torna-se fácil para eles definir suas taxas de transação e tê-las aprovadas dentro de um período razoável. Por exemplo, eles podem evitar pagar demais durante períodos de baixa capacidade ou pagar de menos durante os horários de pico quando têm transações sensíveis ao tempo. Eles também podem fazer suposições educadas quase corretas sobre o quão rapidamente suas transações serão validadas.
Muitas vezes, as transações ficam presas na mempool por várias razões, mas a maioria delas está relacionada às taxas de gás. No entanto, a maior razão pela qual algumas transações ficam presas na mempool é a congestão da rede. Quando há congestionamento, as transações com taxas altas são processadas primeiro, deixando as demais presas lá.
Portanto, o melhor a fazer durante os horários de pico da rede é aumentar as taxas de transação. Isso ocorre porque quando há congestionamento, as taxas de gás aumentam. Então, se você processar uma transação durante os horários de pico, deve igualar suas taxas às que outros usuários da rede estão pagando.
A outra razão pela qual as transações estão presas no mempool é uma queda na taxa de hash. Dizemos que a taxa de hash diminuiu quando a rede não tem a potência de computação física para utar um grande número de transações pendentes.
Você tem algumas opções quando sua transação está presa na mempool. A primeira opção é cancelar a transação. Nesse caso, você terá que pagar outra taxa de transação. Por exemplo, você pode reenviar a transação com o mesmo nonce.
Em segundo lugar, você pode optar por acelerar a transação conectando seu Ledger a uma carteira de terceiros, como MetaMask ou Electrum. No entanto, terá de pagar mais por isso.
A terceira opção é esperar um pouco mais para que a transação seja concluída. Ao fazer isso, você aguarda a diminuição do tráfego de rede, o que permitirá que sua transação seja concluída sem custos adicionais.
As transações enviadas para a rede Bitcoin não são adicionadas instantaneamente à blockchain. Primeiro, elas entram na mempool. No passado, tais transações exigiriam apenas taxas medidas em satoshis por byte.
No entanto, isso mudou após a atualização do SegWit, que permite que as transações sejam medidas em unidades de peso. A boa coisa é que os recursos segwit permitem que mais dados sejam adicionados a um bloco do que antes. Especificamente, há 2MB de dados por bloco, embora possa aumentar para 4MB.
Inicialmente, a rede Ethereum exigia que as transações entrassem no mempool antes de serem validadas. No entanto, quando o blockchain mudou do mecanismo de consenso de prova de trabalho para o mecanismo de prova de participação, introduziu o conceito de um construtor de blocos.
Basicamente, os construtores de blocos são jogadores terceiros que compilam as transações em um pacote de transações otimizado que forma um bloco. Nesse caso, as entidades terceiras compilam ou reordenam certas transações de um mempool em pacotes. A partir daí, eles oferecem os pacotes de transações aos validadores para inclusão nos blocos. As entidades terceiras recebem recompensas por realizar essas tarefas.
Em resumo, uma mempool é um espaço onde um nó de blockchain armazena temporariamente transações antes de serem validadas. O tempo que uma transação permanece na mempool no Ethereum depende de vários fatores, como congestionamento de tráfego na rede e a taxa de gás. Tanto as blockchains do Bitcoin quanto do Ethereum usam pools de transações.
Uma mempool é um espaço onde as transações pendentes esperam antes de serem adicionadas a um bloco. Assim que a transação for validada, ela é adicionada a um bloco que existe na blockchain.
Quando algumas transações estão em uma mempool, alguns validadores ou mineradores as selecionam e as adicionam aos blocos. No entanto, algumas das transações podem permanecer na fila ou pendentes por um longo período se houver congestionamento de tráfego na rede.
A mempool do BTC é a sala de espera para transações que são processadas na rede Bitcoin. Normalmente, cada nó da blockchain do bitcoin tem sua própria mempool.
O mempool no Ethereum é o espaço para armazenar transações nos nós do Ethereum antes de serem confirmadas. O tempo que decorre antes dessas transações serem confirmadas depende do tráfego da rede Ethereum dentro de um determinado período.