evidence reactor, evidencePool 인스턴스를 생성한다.
여기서 evidence란, 검증자들의 Byzantine behavior 혹은 비건전한 활동의 증거를 의미한다.
증거는 tx처럼 pool에 저장되었다가, block에 commit되면 제거된다.
pool의 role
dir : node/node.go
evidence 영구 보존용 db 인스턴스 생성
evidenceDB, err := dbProvider(&DBContext{"evidence", config})
evidencePool 인스턴스 생성
evidencePool, err := evidence.NewPool(evidenceDB, sm.NewStore(stateDB, sm.StoreOptions{
DiscardABCIResponses : config.Storage.DiscardABCIResponses,
}), blockStore)
evidenceReactor 생성
다른 노드와 로컬 노드의 evidence pool의 정보를 교환한다.
evidenceReactor := evidence.newReactor(evidencePool)
return evidenceReactor, evidencePool, nil