Pregunta 3

index: batch db writes during initial sync by furszy · Pull Reques...

arejula27 19/05/2026 22:38
Pregunta 3-> BaseIndex::Sync() llama a Commit() cada 30 segundos y cuando el índice alcanza el tip. ¿Qué escribe exactamente Commit() en disco? ¿Es lo mismo que los datos del índice escritos en CustomAppend? ¿Qué ocurriría si el nodo se apaga entre una escritura de datos y una llamada a Commit()?
27/05/2026 17:45
👀
Pol Espinasa 27/05/2026 17:46
A ver si no la lio aqui 😛
27/05/2026 17:46
Escribe el locator CBlockLocator
27/05/2026 17:46
si el nodo se apaga o crashea creo que no pasa nada
arejula27 27/05/2026 17:46
efectivamente, escribe únicamente el locator de cadena: un puntero persistido que indica hasta qué bloque ha llegado el índice, para poder reanudar en el punto correcto tras un reinicio
> 27/05/2026 17:47
Esto es porque la db en realidad es un archivo con un buffer larguisimo, no?
27/05/2026 17:47
el locator es un pointer supongo
👍 1
> 27/05/2026 17:48
creo que asi es leveldb si no estoy mal
furszy 27/05/2026 17:49
dato extra: el locator es un poco más que solo un puntero, el objeto supone describir la ubicación del nodo en la blockchain. Y se usa tambien en el proceso de sincronización del node via p2p
😍 1 ❤️ 1
27/05/2026 17:50
es una forma de decirle al otro nodo donde estás, así sabe qué bloques enviarte.
arejula27 27/05/2026 17:50
¿podrias decrime que pasa si escribmos un indcice (flush) pero no actualizamos el locator?
furszy 27/05/2026 17:51
no necesariamente, porque el otro nodo puede no conocer el bloque
furszy 27/05/2026 17:51
pueden estar en distintas cadenas
> 27/05/2026 17:51
el blocklocator es un conjunto de bloques no?
furszy 27/05/2026 17:51
conjunto de hashes
👍 3
> 27/05/2026 17:51
ah claro
Pol Espinasa 27/05/2026 17:52
oh okay, ya veo
27/05/2026 17:53
igual, sidetracked a bit. Sorry
😎 1
27/05/2026 17:55
vamos a la siguiente!
furszy 27/05/2026 17:55
un pequeño agregado a Commit() -> tambien llama al CustomCommit de cada index.
👍 1