합의 과정의 중심이 될 consensus reactor, consensus state를 초기화한다. 이 함수 중요함..
consensus reactor는 합의 알고리즘을 관리하고, consensus state는 노드의 합의 알고리즘의 현재 상태를 포함한다.
Consensus Reactor : 네트워크 에서 노드 간 합의 프로세스 관리
proposal, voting을 전파하고 타임 아웃을 관리하는 등 노드 간 상호작용을 조정한다.
리액터는 악의적인 노드가 있어도 블록 체인의 내용에 대해 합의에 도달 할 수 있는 BFT 알고리즘을 포함하며, 합의 프로세스가 문제 없이 작동하고 있고, 네트워크의 모든 노드가 동일한 관점을 가지고 있음을 보장한다.
Consensus State : tendermint node의 합의 알고리즘의 상태를 표시
현재 round, step에 관한 정보를 저장한다.
노드가 합의를 진행시킴에 따라 다른 노드와 합의에 이르는 과정을 추적하면서 consensus state도 업데이트 되고, Consensus state는 리액터가 어떤 액션을 취할지 (e.g. propose block, voting on proposer) 결정하는데 사용한다.
dir : node/node.go
새 consensus State 생성
consensusState := cs.NewState(
config.Consensus,
state.Copy(),
blockExec,
// ...
)