가비지 컬렉션
2 대답
- 투표
-
- 2019-01-30
각 Tezos 노드는 원장의 현재 상태를 유지합니다. 이 상태에는 각 계약의 저장,서로 다른 주소의 잔액 등과 같은 것들이 포함됩니다. 블록 체인의 목표는 탈 중앙화 된 참여자 네트워크가 해당 상태에 대한 합의에 도달 할 수 있도록하는 것입니다.
체인에 재구성이있을 수 있으므로 노드가 몇 블록 씩 시간을 거슬러 올라가 다른 상태를 계산해야하는 경우가 있습니다. 이렇게 효율적으로 수행하려면 몇 블록 전 상태가 어땠는지 빠르게 기억할 수 있어야합니다.
현재 구현에서 노드는 겪었던 모든 상태를 기억합니다. 이것은 모든 블록을 기억하는 것입니다!
가비지 수집은 노드에 더 이상 필요하지 않은 과거 상태를 버리고 귀중한 디스크 공간을 차지하는 것을 의미합니다. 설계 상 프로토콜은 5주기 이상의 재구성을 허용하지 않으므로 그보다 오래된 모든 상태를 폐기하는 것이 안전합니다. 그러나 대규모 재구성은 거의 불가능하므로 상태를보다 적극적으로 삭제할 수 있습니다.
실제로 좋은 접근 방식은 최근 상태 몇 개를 우물과 함께 저장하고 희소 한 오래된 상태 몇 개를 저장하는 것입니다. 긴 재구성이 발생하면 노드는 재구성 지점 이전에 알고있는 상태를 선택하고 해당 지점까지 상태를 재구성합니다.
지난 5 주기만 유지하면 차지하는 디스크 공간이 10 배 이상 작아집니다.
Each Tezos node maintains a representation of the current state of the ledger. That state includes things like the storage of each contract, the balance of different addresses, etc. The goal of the blockchain is to allow a decentralized network of participants to reach consensus on what that state is.
Since the chain can have reorganizations, it's sometimes necessary for the nodes to go back in time by a few blocks and compute a different state. In order to do so efficiently, they need to be able to quickly remember what the state was as off a few blocks ago.
In the current implementation, the node remembers every single state it ever went through. This is in addition to remember all the blocks!
Garbage collection means discarding past states which are no longer needed by the node and take up valuable disk space. By design, the protocol does not allow reorganizations longer than 5 cycles, therefore it is safe to discard all states older than that. However, states can be discarded more aggressively since large reorganizations are very unlikely.
In practice, a good approach is to store a few recent states as a well and a few, sparse, old ones. If a long reorganization happens, the node will pick whichever state it knows about prior to the reorganization point and reconstruct the state up to that point.
When only the past 5 cycles are kept, the disk space occupied is at least 10 times smaller.
-
테 조스 블록 체인에 대한 가비지 수집 계획이 있다고 들었습니다.이것이 정확히 무엇을 의미합니까?수거해야하는 "쓰레기"는 무엇입니까? 애초에 왜 거기에 있습니까?가비지 수집은 전체 노드가 아닌 노드에만 사용됩니까,아니면 모든 노드에 대해 사용됩니까?가비지 수집에서 얼마나 많은 공간을 절약 할 수 있습니까?