A, B 블록이 동시에 생성되었다고 가정해보자.
일부 노드는 A 블록을, 다른 노드는 B 블록을 받아들이게 될 것이다.
이렇게 되면 두개의 다른 체인 ( chain split ) 이 존재하게 된다. 그렇다면 어떤게 유효한 체인일까?
바로 다음 블록이 더 빨리 생성되는 체인이 유효한 체인으로 받아들여진다.
A 블록을 받아들인 체인에 다음 블록이 더 빠르게 생성되었다면, B 블록을 받아들인 다른 모든 노드들은
A 블록을 갖는 체인을 새롭게 받아들이게 된다.
이러한 일련의 과정을 chain reorganisation 이라고 하며, 이때 deprecated 된 B 블록을 orphan block 이라고 한다.
[chain reorganisation] https://learnmeabitcoin.com/technical/chain-reorganisation
reindex 를 통해서 다운로드 받은 노드들에 대한 확인을 진행해야한다.
위와 같은 상황에 대비하여 대부분의 블록체인 데몬에서 -reindex
옵션을 제공한다.
rescan
블록체인 wallet 에 누락된 transaction 이 있는지 확인하는 작업.
다음과 같은 상황에 주로 사용한다
reindex
genesis block ( from scratch ) 부터 확인하는 rescan 과 다르게, reindex 는 다운로드 받은 블록( blk.dat ) 에 대한 확인을 진행.
전체의 데이터가 아닌 해당 노드가 다운로드한 데이터의 무결성만 보장하고 싶은 경우 사용하도록 한다.
https://coinmarketcap.com/community/articles/31984/
https://cryptotrends.in/refresh-rescan-reindex-bitcoin-wallet/