dir : miner/worker.go
worker 인스턴스 생성
worker := &worker{...}
subscription for tx pool, chainhead
// 필요한 chan을 subscribe
worker.txsSub = eth.TxPool().SubscribeNewTxsEvent(worker.txsCh)
worker.chainHeadSub = eth.BlockChain().SubscribeChainHeadEvent(worker.chainHeadCh)
// main chain이 아닌 side chain event도 일단은 subscribe 함.
// main이 아닌 side chain은 나중에 stale 된다.
worker.chainSideSub = eth.BlockChain().SubscribeChainSideEvent(worker.chainSideCh)
recommit 관련 설정
recommit은 block에 들어갔지만 나중에 빠진 tx를 다시 선택하는 process이다.
(orphan block이나 chain replacement 등의 이유로..)
이 recommit의 텀이 너무 짧다면 변경해준다.
recommit := worker.config.Recommit
if recommit < minRecommitInterval {
// ...
recommit = minRecommitInterval
}
worker.recommit = recommit