sql:=fmt.Sprintf("UPDATE c SET real_difficulty=d.realdif"+
" FROM eth_block c"+
" JOIN (SELECT a.height AS height, (CAST(a.difficulty AS decimal(30,0)))*(a.timestamp-b.timestamp)/15 AS realdif"+
" FROM eth_block AS a"+
" JOIN eth_block AS b ON b.height+1=a.height WHERE a.height = '%d') d"+
" ON c.height = d.height",data.Block.Height)
affected,err:=tx.Execute(sql)
sql:=fmt.Sprintf("select d.realdif realdif FROM eth_block as c JOIN (SELECT a.height AS height, (CAST(a.difficulty AS decimal(30,0)))*(a.timestamp-b.timestamp)/15 AS realdif FROM eth_block AS a JOIN eth_block AS b ON b.height+1=a.height WHERE a.height = %d) d ON c.height = d.height",data.Block.Height)
result,err:=tx.QueryString(sql)
iferr!=nil{
log.DetailError(err)
returnerr
}
log.Debug("splitter eth: block %d real difficulty affected %d",data.Block.Height,affected)
for_,v:=rangeresult{
difficulty,_:=strconv.ParseFloat(v["realdif"],64)
sql=fmt.Sprintf(" UPDATE eth_block SET real_difficulty=%f where height=%d",difficulty,data.Block.Height)
_,err=tx.Exec(sql)
iferr!=nil{
log.DetailError(err)
returnerr
}
}
log.Debug("splitter eth: block %d real difficulty",data.Block.Height)