Cluster Mempool은 멤풀을 부모·자식 트랜잭션의 연결 요소로 나누고 위상적으로 유효한 선형 순서를 만든 뒤, 채굴·퇴출·relay·교체 정책에 일관되게 사용합니다.
클러스터는 부모–자식 관계로 이어진 미확인 트랜잭션 그래프의 연결 요소입니다. 독립된 클러스터는 따로 평가할 수 있으므로 한 클러스터의 변화 때문에 나머지 멤풀을 다시 계산할 필요가 없습니다. [2]
노드는 각 클러스터에 대해 위상적으로 유효한 선형 순서를 만들고 가장 유리한 것부터 수수료율이 낮아지는 chunk로 나눕니다. 블록에는 앞쪽의 최선 chunk를 고르고, 퇴출할 때는 뒤쪽의 가장 불리한 chunk부터 제거합니다. [2]
기존 조상·후손 제한과 채굴·퇴출에 쓰인 서로 다른 근사법은 복잡한 패키지의 실제 가치를 항상 표현하지 못했습니다. 클러스터 크기를 제한하면 예측 가능한 작업 한도 안에서 더 나은 순서를 찾을 수 있습니다. [5]
이는 로컬 멤풀 및 채굴 정책이지 새로운 합의 규칙이 아닙니다. 노드는 서로 다른 트랜잭션을 받거나 다른 버전과 설정을 사용해 서로 다른 멤풀을 가질 수 있으며, 블록에 확정된 트랜잭션의 합의 유효성은 바뀌지 않습니다. [2]
Bitcoin Core 31.0은 이전 멤풀 구현을 Cluster Mempool로 교체했습니다. 또한 클러스터와 선형 순서, 수수료율 다이어그램을 살펴볼 수 있는 getmempoolcluster 및 getmempoolfeeratediagram RPC를 추가했습니다. [1]
기본 정책은 한 클러스터를 64개 트랜잭션과 101 kB 가상 크기로 제한합니다. 노드 인자로 제한을 바꿀 수 있지만, 자신의 노드가 수락하거나 relay했다고 해서 이웃 노드와 채굴자도 같은 정책을 쓴다는 보장은 없습니다. [1]
이 모델은 채굴 선택, 퇴출, 트랜잭션 알림, RBF를 일관되게 만듭니다. 교체 결과의 수수료율 다이어그램은 모든 지점에서 최소한 같고 어느 한 지점에서는 엄격히 더 좋아야 하며 다른 교체 규칙도 충족해야 합니다. 기존 CPFP carve-out은 제거되고 TRUC와 sibling eviction이 그 역할을 맡습니다. [3]
특정 트랜잭션의 동작을 판단하기 전에 노드 버전과 설정, 전체 클러스터와 chunk, 수수료율 다이어그램, 나머지 RBF 조건을 확인해야 합니다. 지갑은 네트워크 전체가 같은 로컬 정책을 사용한다고 가정해서는 안 됩니다. [4]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Mempool, Package Relay, CPFP (Child Pays for Parent), Replace-by-Fee (RBF), Transaction Fees, Block Template.
01Cluster Mempool은 합의 변경인가요?+
아닙니다. Bitcoin Core 31.0이 바꾼 것은 로컬 멤풀, 채굴 선택, relay 정책이며 블록 내 트랜잭션의 합의 유효성은 그대로입니다.
02수수료 인상에서는 무엇이 달라졌나요?+
노드는 의존 트랜잭션을 chunk 단위로 평가하고, RBF에서는 다른 교체 조건과 함께 엄격히 더 나은 수수료율 다이어그램을 요구합니다. 결과는 여전히 개별 노드의 정책에 달려 있습니다.