獲取區塊獎勵過程

2021-08-08 19:35:43 字數 1213 閱讀 7613

區塊獎勵入口**: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服務端,則客戶端會收到多個位址,此時客戶端必須選擇乙個位址 先到先送到原則 並廣播一條資...

專案實施過程中是要獎勵功勞還是苦勞?

最近一直在招聘實施顧問與專案經理,經常在面試結束的時候,會問一句 請問你還有什麼問題嗎?特別是對於我們公司相關想要了解的問題。順著這個話聊下去,很多來面試的專案經理與實施顧問都比較關注 你們公司的專案實施有沒有專案獎金?專案獎金是怎麼來計算的?確實,據我所知的是,全國許多軟體企業都採用專案獎金的形式...