Bitcoin Magazine Kluczowy Problem: Cluster Mempool, Problemy Są Łatwiejsze w Fragmentach Z Kluczowego Problemu: Spojrzenie na Cluster Mempool, przearchitekturyzowanie sposobu działania twojego węzłaBitcoin Magazine Kluczowy Problem: Cluster Mempool, Problemy Są Łatwiejsze w Fragmentach Z Kluczowego Problemu: Spojrzenie na Cluster Mempool, przearchitekturyzowanie sposobu działania twojego węzła

Główny problem: Cluster Mempool, problemy są łatwiejsze w częściach

2026/02/21 03:38
7 min. lektury

Bitcoin Magazine

The Core Issue: Cluster Mempool - Problemy są łatwiejsze w częściach

Cluster Mempool1 to całkowite przebudowanie sposobu, w jaki mempool obsługuje organizowanie i sortowanie transakcji, zaprojektowane i wdrożone przez Suhasa Daftuara i Pietera Wuille'a. Projekt ma na celu uproszczenie ogólnej architektury, lepsze dostosowanie logiki sortowania transakcji do zachęt górników oraz poprawę bezpieczeństwa protokołów drugiej warstwy. Został włączony do Bitcoin Core w PR #336292 w dniu 25 listopada 2025 roku. 

Mempool to ogromny zestaw oczekujących transakcji, które twój węzeł musi śledzić z kilku powodów: szacowanie opłat, walidacja zastępowania transakcji oraz konstrukcja bloków, jeśli jesteś górnikiem. 

To wiele różnych celów dla pojedynczej funkcji twojego węzła. Bitcoin Core do wersji 30.0 organizuje mempool na dwa różne sposoby, aby wspomóc te funkcje, oba z relatywnego punktu widzenia danej transakcji: łączny feerate patrząc w przód transakcji i jej potomków (descendant feerate) oraz łączny feerate patrząc wstecz transakcji i jej rodziców (ancestor feerate). 

Są one używane do decydowania, które transakcje usunąć z twojego mempola, gdy jest pełny, oraz które uwzględnić jako pierwsze podczas tworzenia nowego szablonu bloku. 

Jak zarządzany jest mój Mempool?

Gdy górnik decyduje, czy uwzględnić transakcję w swoim bloku, jego węzeł sprawdza tę transakcję oraz wszystkich przodków, którzy muszą być najpierw potwierdzeni, aby była ona ważna w bloku, i patrzy na średni feerate na bajt dla wszystkich z nich razem, biorąc pod uwagę indywidualne opłaty, które zapłacili jako całość. Jeśli ta grupa transakcji mieści się w limicie rozmiaru bloku, jednocześnie przewyższając innych w opłatach, jest uwzględniana w kolejnym bloku. Odbywa się to dla każdej transakcji.

Gdy twój węzeł decyduje, które transakcje usunąć z mempola, gdy jest pełny, sprawdza każdą transakcję i wszystkich jej potomków, usuwając transakcję i wszystkich jej potomków, jeśli mempool jest już pełny transakcjami (i ich potomkami) płacącymi wyższy feerate. 

Spójrz na powyższy przykładowy wykres transakcji, feerates są pokazane w nawiasach (ancestor feerate, descendant feerate). Górnik patrzący na transakcję E prawdopodobnie uwzględniłby ją w następnym bloku, małą transakcję płacącą bardzo wysoką opłatę z jednym małym przodkiem. Jednak gdyby mempool węzła się zapełniał, spojrzałby na transakcję A z dwoma ogromnymi potomkami płacącymi niską względną opłatę i prawdopodobnie by ją usunął lub nie zaakceptował i nie zachował, jeśli została właśnie otrzymana. 

Te dwa rankingi, lub uporządkowania, są całkowicie ze sobą sprzeczne. Mempool powinien niezawodnie propagować to, co górnicy będą wydobywać, a użytkownicy powinni mieć pewność, że ich lokalny mempool dokładnie przewiduje, co górnicy będą wydobywać. 

Funkcjonowanie mempola w ten sposób jest ważne dla:

  • Decentralizacji wydobycia: dostarczanie wszystkim górnikom najbardziej opłacalnego zestawu transakcji
  • Niezawodności użytkownika: dokładne i niezawodne szacowanie opłat oraz czasy potwierdzania transakcji
  • Bezpieczeństwa drugiej warstwy: niezawodne i dokładne wykonywanie transakcji egzekwujących protokoły drugiej warstwy w łańcuchu

Obecne zachowanie mempola nie jest w pełni zgodne z rzeczywistością zachęt do wydobycia, co tworzy martwe punkty, które mogą być problematyczne dla bezpieczeństwa drugiej warstwy, tworząc niepewność co do tego, czy transakcja dotrze do górnika, a także presję na nieпублiczne kanały nadawania do górników, potencjalnie pogarszając pierwszy problem. 

Jest to szczególnie problematyczne, gdy chodzi o zastępowanie niepotwierdzonych transakcji, czy to po prostu w celu zachęcenia górników do szybszego uwzględnienia zastąpienia, czy jako część protokołu drugiej warstwy egzekwowanego w łańcuchu. 

Zastępowanie zgodnie z istniejącym zachowaniem staje się nieprzewidywalne w zależności od kształtu i rozmiaru sieci transakcji, w której się znajduje twoja. W prostej sytuacji zwiększania opłat może to nie propagować i zastąpić transakcji, nawet gdy wydobycie zastąpienia byłoby lepsze dla górnika. 

W kontekście protokołów drugiej warstwy obecna logika pozwala uczestników potencjalnie wykluczyć niezbędne transakcje przodków z mempola lub uniemożliwić innemu uczestnikowi przesłanie niezbędnej transakcji potomnej do mempola zgodnie z obecnymi zasadami z powodu transakcji potomnych utworzonych przez złośliwego uczestnika lub usunięcia niezbędnych transakcji przodków. 

Wszystkie te problemy są wynikiem tych niespójnych rankingów włączania i usuwania oraz niezgodności zachęt, które tworzą. Posiadanie pojedynczego globalnego rankingu rozwiązałoby te problemy, ale globalne reordering całego mempola dla każdej nowej transakcji jest niepraktyczne. 

To wszystko to tylko graf

Transakcje, które są od siebie zależne, są grafem lub ukierunkowaną serią "ścieżek". Gdy transakcja wydaje outputy utworzone przez inną w przeszłości, jest połączona z tą przeszłą transakcją. Gdy dodatkowo wydaje outputy utworzone przez drugą przeszłą transakcję, łączy obie historyczne transakcje razem. 

Gdy są niepotwierdzone, łańcuchy transakcji takich jak ta muszą mieć wcześniejsze transakcje potwierdzone najpierw, aby późniejsze były ważne. W końcu nie można wydawać outputów, które jeszcze nie zostały utworzone. 

Jest to ważna koncepcja dla zrozumienia mempola, jest on wyraźnie uporządkowany kierunkowo. 

To wszystko to tylko graf. 

Fragmenty tworzą klastry tworzą mempole

W cluster mempool koncepcja klastra to grupa niepotwierdzonych transakcji, które są bezpośrednio ze sobą powiązane, tzn. wydające outputy utworzone przez innych w klastrze lub odwrotnie. Staje się to fundamentalną jednostką nowej architektury mempola. Analiza i uporządkowanie całego mempola to niepraktyczne zadanie, ale analiza i uporządkowanie klastrów to znacznie łatwiejsze zadanie. 

Każdy klaster jest podzielony na fragmenty, małe zestawy transakcji z klastra, które są następnie sortowane w kolejności od najwyższego feerate na bajt do najniższego, respektując zależności kierunkowe. Więc na przykład, powiedzmy, że od najwyższego do najniższego feerate fragmenty w klastrze (A) to: [A,D], [B,E], [C,F], [G, J] i ostatni [I, H]. 

Pozwala to na wstępne sortowanie wszystkich tych fragmentów i klastrów oraz bardziej wydajne sortowanie całego mempola w procesie. 

Górnicy mogą teraz po prostu wziąć fragmenty o najwyższym feerate z każdego klastra i umieścić je w swoim szablonie, jeśli jest jeszcze miejsce, mogą przejść do kolejnych najwyższych fragmentów feerate, kontynuując, aż blok będzie w przybliżeniu pełny i będzie trzeba tylko ustalić ostatnie kilka transakcji, które się zmieszczą. Jest to w przybliżeniu optymalna metoda konstruowania szablonu bloku przy założeniu dostępu do wszystkich dostępnych transakcji. 

Gdy mempole węzłów się zapełnią, mogą po prostu wziąć fragmenty o najniższym feerate z każdego klastra i rozpocząć ich usuwanie z mempola, dopóki nie przekroczy skonfigurowanego limitu. Jeśli to nie wystarczy, przechodzi do kolejnych najniższych fragmentów feerate i tak dalej, aż będzie w granicach limitów mempola. W ten sposób usuwa się dziwne przypadki brzegowe niewspółgrające z zachętami do wydobycia. 

Logika zastępowania jest również drastycznie uproszczona. Porównaj klaster (A) z klastrem (B), gdzie transakcja K zastąpiła G, I, J i H. Jedyne kryteria, które muszą być spełnione, to nowy fragment [K] musi mieć wyższy feerate fragmentu niż [G, J] i [I, H], [K] musi zapłacić więcej w łącznych opłatach niż [G, J, I, H], a K nie może przekroczyć górnego limitu liczby transakcji, które zastępuje. 

W paradygmacie klastrów wszystkie te różne zastosowania są ze sobą zgodne. 

Nowy Mempool

Ta nowa architektura pozwala nam uprościć limity grup transakcji, usuwając poprzednie ograniczenia dotyczące liczby niepotwierdzonych przodków, jakie może mieć transakcja w mempolu, i zastępując je globalnym limitem klastra wynoszącym 64 transakcje i 101 kvB na klaster. 

Ten limit jest niezbędny, aby utrzymać koszt obliczeniowy wstępnego sortowania klastrów i ich fragmentów na tyle niski, aby był praktyczny dla węzłów do wykonywania na stałej podstawie. 

To jest prawdziwy kluczowy wgląd cluster mempool. Utrzymując fragmenty i klastry stosunkowo małe, jednocześnie sprawiasz, że konstrukcja optymalnego szablonu bloku jest tania, upraszczasz logikę zastępowania transakcji (zwiększanie opłat), a tym samym poprawiasz bezpieczeństwo drugiej warstwy i naprawiasz logikę usuwania, wszystko na raz. 

Koniec z drogimi i powolnymi obliczeniami w locie dla budowania szablonów lub nieprzewidywalnym zachowaniem przy zwiększaniu opłat. Naprawiając niezgodność zachęt w sposobie, w jaki mempool zarządzał organizacją transakcji w różnych sytuacjach, mempool funkcjonuje lepiej dla wszystkich. 

Cluster mempool to projekt, który powstawał przez lata i będzie miał znaczący wpływ na zapewnienie, że opłacalne szablony bloków są otwarte dla wszystkich górników, że protokoły drugiej warstwy mają solidne i przewidywalne zachowania mempola, na których można budować, oraz że Bitcoin może nadal funkcjonować jako zdecentralizowany system monetarny. 

Dla tych, którzy chcą zagłębić się w szczegóły tego, jak cluster mempool jest implementowany i działa pod maską, oto dwa wątki Delving Bitcoin, które możesz przeczytać:

Wysokopoziomowy przegląd implementacji (z uzasadnieniem projektowym): https://delvingbitcoin.org/t/an-overview-of-the-cluster-mempool-proposal/393 

Jak działają diagramy feerate Cluster Mempool: https://delvingbitcoin.org/t/mempool-incentive-compatibility/553 

Zdobądź swoją kopię The Core Issue dzisiaj!

Nie przegap swojej szansy, aby posiadać The Core Issue — zawierające artykuły napisane przez wielu Core Developers wyjaśniających projekty, nad którymi sami pracują!

Ten artykuł to List od Redaktora zamieszczony w najnowszym wydaniu drukarskim Bitcoin Magazine, The Core Issue. Udostępniamy go tutaj jako wczesne spojrzenie na idee eksplorowane w całym wydaniu.

[1] https://github.com/bitcoin/bitcoin/issues/27677 

[2] https://github.com/bitcoin/bitcoin/pull/33629 

Ten post The Core Issue: Cluster Mempool - Problemy są łatwiejsze w częściach po raz pierwszy pojawił się na Bitcoin Magazine i został napisany przez Shinobi.

Okazja rynkowa
Logo NODE
Cena NODE(NODE)
$0.01525
$0.01525$0.01525
-0.39%
USD
NODE (NODE) Wykres Ceny na Żywo
Zastrzeżenie: Artykuły udostępnione na tej stronie pochodzą z platform publicznych i służą wyłącznie celom informacyjnym. Niekoniecznie odzwierciedlają poglądy MEXC. Wszystkie prawa pozostają przy pierwotnych autorach. Jeśli uważasz, że jakakolwiek treść narusza prawa stron trzecich, skontaktuj się z service@support.mexc.com w celu jej usunięcia. MEXC nie gwarantuje dokładności, kompletności ani aktualności treści i nie ponosi odpowiedzialności za jakiekolwiek działania podjęte na podstawie dostarczonych informacji. Treść nie stanowi porady finansowej, prawnej ani innej profesjonalnej porady, ani nie powinna być traktowana jako rekomendacja lub poparcie ze strony MEXC.