les: fixed cost table update (#19546)

This commit is contained in:
Felföldi Zsolt 2019-05-13 13:26:47 +02:00 committed by Péter Szilágyi
parent 751effa35e
commit f4fb1a1801
3 changed files with 13 additions and 8 deletions

View File

@ -346,12 +346,14 @@ func (table requestCostTable) getCost(code, amount uint64) uint64 {
} }
// decode converts a cost list to a cost table // decode converts a cost list to a cost table
func (list RequestCostList) decode() requestCostTable { func (list RequestCostList) decode(protocolLength uint64) requestCostTable {
table := make(requestCostTable) table := make(requestCostTable)
for _, e := range list { for _, e := range list {
table[e.MsgCode] = &requestCosts{ if e.MsgCode < protocolLength {
baseCost: e.BaseCost, table[e.MsgCode] = &requestCosts{
reqCost: e.ReqCost, baseCost: e.BaseCost,
reqCost: e.ReqCost,
}
} }
} }
return table return table

View File

@ -479,7 +479,7 @@ func (p *peer) Handshake(td *big.Int, head common.Hash, headNum uint64, genesis
costList = testCostList() costList = testCostList()
} }
send = send.add("flowControl/MRC", costList) send = send.add("flowControl/MRC", costList)
p.fcCosts = costList.decode() p.fcCosts = costList.decode(ProtocolLengths[uint(p.version)])
p.fcParams = server.defParams p.fcParams = server.defParams
} else { } else {
//on client node //on client node
@ -571,7 +571,7 @@ func (p *peer) Handshake(td *big.Int, head common.Hash, headNum uint64, genesis
} }
p.fcParams = params p.fcParams = params
p.fcServer = flowcontrol.NewServerNode(params, &mclock.System{}) p.fcServer = flowcontrol.NewServerNode(params, &mclock.System{})
p.fcCosts = MRC.decode() p.fcCosts = MRC.decode(ProtocolLengths[uint(p.version)])
if !p.isOnlyAnnounce { if !p.isOnlyAnnounce {
for msgCode := range reqAvgTimeCost { for msgCode := range reqAvgTimeCost {
if p.fcCosts[msgCode] == nil { if p.fcCosts[msgCode] == nil {
@ -604,7 +604,10 @@ func (p *peer) updateFlowControl(update keyValueMap) {
} }
var MRC RequestCostList var MRC RequestCostList
if update.get("flowControl/MRC", &MRC) == nil { if update.get("flowControl/MRC", &MRC) == nil {
p.fcCosts = MRC.decode() costUpdate := MRC.decode(ProtocolLengths[uint(p.version)])
for code, cost := range costUpdate {
p.fcCosts[code] = cost
}
} }
} }

View File

@ -13,7 +13,7 @@ import (
const ( const (
test_networkid = 10 test_networkid = 10
protocol_version = 2123 protocol_version = lpv2
) )
var ( var (