Saltar al contenido
buybitcoinsmart

Glosario / Protocolo y actualizaciones

Cluster mempool

¿Qué es cluster mempool?
Cluster mempool es el rediseño de la sala de espera de Bitcoin Core que mantiene ordenado cada grupo de transacciones sin confirmar conectadas entre sí, de modo que el nodo siempre sabe cuáles elegiría realmente un minero.

Las transacciones sin confirmar que se gastan entre sí forman un grafo de dependencias, y durante años el software solo pudo razonar sobre él mediante topes rudimentarios sobre cuántos ancestros y descendientes se le permitían a cada elemento. La versión 31.0 los reemplazó por una sola regla: ningún grupo conectado de más de 64 transacciones o de 101 kB de tamaño virtual. Como resultado, tanto el aumento de comisión como el reemplazo se volvieron más predecibles.

Cómo funciona

Un clúster (grupo de transacciones conectadas) es una componente conexa de la mempool. Tome cualquier transacción sin confirmar, siga en ambos sentidos cada vínculo entre transacciones padre e hijas, y todo lo que pueda alcanzar pertenece al mismo clúster.

El diseño anterior contaba los ancestros y los descendientes por separado y limitaba cada uno a 25, junto con un tope de tamaño. Era barato de calcular y erróneo en un aspecto importante. Le decía a un nodo lo grande que era una familia sin decirle en qué orden la tomaría un minero racional, así que la mempool no podía responder a su propia pregunta central: si tuviera que construir un bloque ahora mismo, ¿qué entraría en él?

Cluster mempool responde a eso manteniendo cada clúster linealizado en todo momento. Una linealización es un orden dividido en segmentos, cada uno de ellos un conjunto de transacciones que se minarían juntas y que comparten una misma comisión efectiva por vB. Ordenar esos segmentos produce un diagrama de comisión por vB de toda la mempool, y las decisiones se miden ahora contra ese diagrama.

Los límites son 64 transacciones y 101 kB de tamaño virtual por clúster, y reemplazaron por completo los recuentos de ancestros y descendientes. La excepción CPFP (CPFP carve-out), que antes permitía que una transacción hija adicional se colara por encima del límite de descendientes, se eliminó junto con ellos, porque no se permite que nada eluda el recuento del clúster.

La ventaja se nota en el reemplazo. Las reglas anteriores del replace-by-fee eran un puñado de condiciones atornilladas unas a otras, y se podían burlar acoplando basura barata a una transacción compartida hasta que reemplazarla resultaba absurdamente caro. Comparar diagramas de comisión por vB ofrece en su lugar una única comprobación: un reemplazo se acepta cuando no deja el diagrama peor en ningún punto y lo deja mejor en alguno. Dos nuevas llamadas RPC exponen el mecanismo: getmempoolcluster, para el contenido y el orden de un clúster, y getmempoolfeeratediagram, para el propio diagrama.

Dónde aparece

Cluster mempool aparece como un mensaje de error cuando usted encadena demasiados gastos sin confirmar, y como un aumento de comisión que sale bien donde usted esperaba problemas.

Los usuarios de billeteras se topan con el límite en una situación habitual: gastar una y otra vez el cambio sin confirmar durante un período de mucha actividad. Sesenta y cuatro transacciones es un límite generoso para una persona y ajustado para un servicio que agrupa pagos por lotes, que es aproximadamente para quien se escribió esa cifra. Cuando una billetera rechaza un gasto y menciona un clúster, la solución es esperar una confirmación en lugar de aumentar la comisión.

La ventaja más discreta es que el child pays for parent (el hijo paga por el padre) ahora hace lo que promete. Aumente la comisión de una transacción atascada gastando su salida con una comisión por vB alta, y el nodo puede ver de inmediato si las dos juntas superan lo que ya está en cola, así que usted obtiene una respuesta clara en un solo paso en lugar de una aproximación.

Cluster mempool frente a mempool

La mempool es el conjunto de transacciones que conserva un nodo; cluster mempool es la forma en que un programa organiza internamente ese conjunto. No cambió ninguna regla de consenso, no hubo ninguna bifurcación, y un nodo que siga ejecutando una versión anterior conserva las mismas transacciones con una contabilidad peor. La distinción importa porque a veces se informa del cambio como si bitcoin hubiera incorporado una nueva regla para toda la red sobre las cadenas de transacciones. No fue así. Esto es política, elegida nodo por nodo, y cualquier operador puede mover los límites en su propia máquina con un argumento de línea de comandos.

No confundir con

Preguntas frecuentes

¿Cambia cluster mempool alguna regla de consenso de bitcoin?

No. Es política de retransmisión dentro de una sola implementación, así que cambia lo que un nodo conservará y retransmitirá, nunca lo que cuenta como un bloque válido. Los nodos que ejecutan versiones anteriores siguen en la misma cadena con las mismas transacciones.

¿Por qué mi billetera dijo que una transacción supera un límite de clúster?

Usted construyó una cadena de gastos sin confirmar cuyo grupo conectado llegó al tope de 64 transacciones o de 101 kB de tamaño virtual. Aumentar la comisión no servirá de nada. Espere a que se confirme una de las transacciones anteriores, lo que divide el grupo.

Términos relacionados

Más en la sección Protocolo y actualizaciones

Leer esta página en inglés