區塊獎勵入口**:go-ethereum\core\chain_makers.go line:182
ethash.accumulaterewards(config, statedb, header , uncles)
其中config:
config *params.chainconfig//鏈配置
statedb = state.new(parent.root(), state.newdatabase(db))//狀態db建立
header為該塊頭,可以根據配置、父塊組合出來 header := makeheader(config, parent, statedb),實際使用時,只用到header.number和header.coinbase
parent為*types.block例項,父塊
db即ethdb.database例項
uncles:叔節點,實際使用時,只用到header.number和header.coinbase
makeheader函式:
func makeheader(config *params.chainconfig, parent *types.block, state *state.statedb) *types.header else
return &types.header),
gaslimit: calcgaslimit(parent),
gasused: new(big.int),
number: new(big.int).add(parent.number(), common.big1),
time: time,}}
計算獎勵:
func accumulaterewards(config *params.chainconfig, state *state.statedb, header *types.header, uncles *types.header)
// accumulate the rewards for the miner and any included uncles
reward := new(big.int).set(blockreward)
r := new(big.int)
for _, uncle := range uncles
//reward為最終獎勵額度
state.addbalance(header.coinbase, reward)
}
bean的獲取過程
當通過xml檔案載入所有的bean到ioc容器裡面後,可以通過getbean方法來獲取所需要的類的實類 public public static void main string args public object getbean string name throws bean ception p...
思科獲取DHCP過程
主機如何獲取dhcp的過程?客戶端發布乙個dhcp請求資訊,該資訊會發給網內所有主機,非dhcp伺服器會丟棄資訊。dhcp服務端收到該資訊後,會從位址池內挑選乙個未被使用的位址返回給客戶端。如果網內有多個dhcp服務端,則客戶端會收到多個位址,此時客戶端必須選擇乙個位址 先到先送到原則 並廣播一條資...
專案實施過程中是要獎勵功勞還是苦勞?
最近一直在招聘實施顧問與專案經理,經常在面試結束的時候,會問一句 請問你還有什麼問題嗎?特別是對於我們公司相關想要了解的問題。順著這個話聊下去,很多來面試的專案經理與實施顧問都比較關注 你們公司的專案實施有沒有專案獎金?專案獎金是怎麼來計算的?確實,據我所知的是,全國許多軟體企業都採用專案獎金的形式...