Recolección de basura
2 respuestas
- votos
-
- 2019-01-30
Cadanodo de Tezosmantiene una representación delestado actual del libromayor. Eseestadoincluye cosas comoel almacenamiento de cada contrato,el saldo de diferentes direcciones,etc. El objetivo de la cadena debloquesespermitir que una red descentralizada departicipantes llegue a un consenso sobre cuáleseseestado.
Dado que la cadenapuedetener reorganizaciones,a vecesesnecesario que losnodos retrocedanen eltiempo unosbloques y calculen unestado diferente. Para hacerlo demaneraeficiente,deben ser capaces de recordar rápidamente cuáleraelestado hace unas cuadras.
En laimplementación actual,elnodo recuerda cada uno de losestadospor los quepasó. ¡Estoes además de recordartodos losbloques!
La recolección debasura significa descartarestadospasados que yano sonnecesariosparaelnodo y ocupan un valiosoespacioen disco. Por diseño,elprotocolonopermite reorganizaciones demás de 5 ciclos,por lo quees seguro descartartodos losestados anteriores aese. Sinembargo,losestadospueden descartarse demaneramás agresiva ya queesmuypocoprobable que se realicengrandes reorganizaciones.
En lapráctica,unbuenenfoquees almacenar algunosestados recientes como unpozo y algunos viejos,dispersos. Si ocurre una reorganización larga,elnodoelegiráelestado que conozca antes delpunto de reorganización y reconstruiráelestado hastaesepunto.
Cuando solo se conservan los últimos 5 ciclos,elespacioen disco ocupadoes almenos 10 vecesmenor.
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.
-
- 2019-02-22
Siestáinteresadoen unestudio sobreelimpacto de lasmejorasen el almacenamiento,consulte aquí (también hay unenlace hacia unnodotezos de almacenamientoeficiente).
If you are interested in a study on the impact of storage improvements, see here (there is also a link towards a storage-efficient tezos node).
Escuché que hayplanespara la recolección debasurapara la cadena debloques de Tezos.Que significaexactamente?¿Quéesesta "basura" que hay que recoger? ¿Por quéestán ahíen primer lugar?¿La recolección debasura solo se usaparanodosno completos oparatodos losnodos?¿Cuántoespacio ahorraremos de la recolección debasura?