mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
les: address comments
This commit is contained in:
parent
185bbd9202
commit
a9e60ba852
2 changed files with 9 additions and 6 deletions
|
|
@ -46,7 +46,7 @@ import (
|
||||||
"github.com/ethereum/go-ethereum/trie"
|
"github.com/ethereum/go-ethereum/trie"
|
||||||
)
|
)
|
||||||
|
|
||||||
var errTooMuchInvalidRequest = errors.New("too much invalid requests made")
|
var errTooManyInvalidRequest = errors.New("too many invalid requests made")
|
||||||
|
|
||||||
const (
|
const (
|
||||||
softResponseLimit = 2 * 1024 * 1024 // Target maximum size of returned blocks, headers or node data.
|
softResponseLimit = 2 * 1024 * 1024 // Target maximum size of returned blocks, headers or node data.
|
||||||
|
|
@ -1152,8 +1152,8 @@ func (pm *ProtocolManager) handleMsg(p *peer) error {
|
||||||
}
|
}
|
||||||
// If the client has made too much invalid request(e.g. request a non-exist data),
|
// If the client has made too much invalid request(e.g. request a non-exist data),
|
||||||
// reject them to prevent SPAM attack.
|
// reject them to prevent SPAM attack.
|
||||||
if atomic.LoadUint64(&p.invalidReq) > maxRequesetErrors {
|
if atomic.LoadUint64(&p.invalidReq) > maxRequestErrors {
|
||||||
return errTooMuchInvalidRequest
|
return errTooManyInvalidRequest
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
maxRequesetErrors = 20 // number of invalid requests tolerated (makes the protocol less brittle but still avoids spam)
|
maxRequestErrors = 20 // number of invalid requests tolerated (makes the protocol less brittle but still avoids spam)
|
||||||
maxResponseErrors = 50 // number of invalid responses tolerated (makes the protocol less brittle but still avoids spam)
|
maxResponseErrors = 50 // number of invalid responses tolerated (makes the protocol less brittle but still avoids spam)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -71,8 +71,12 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
type peer struct {
|
type peer struct {
|
||||||
*p2p.Peer
|
// WARNING: The `invalidReq` field is accessed atomically. On 32 bit platforms, only
|
||||||
|
// 64-bit aligned fields can be atomic. The struct is guaranteed to be so aligned,
|
||||||
|
// so take advantage of that (https://golang.org/pkg/sync/atomic/#pkg-note-BUG).
|
||||||
|
invalidReq uint64
|
||||||
|
|
||||||
|
*p2p.Peer
|
||||||
rw p2p.MsgReadWriter
|
rw p2p.MsgReadWriter
|
||||||
|
|
||||||
version int // Protocol version negotiated
|
version int // Protocol version negotiated
|
||||||
|
|
@ -92,7 +96,6 @@ type peer struct {
|
||||||
// RequestProcessed is called
|
// RequestProcessed is called
|
||||||
responseLock sync.Mutex
|
responseLock sync.Mutex
|
||||||
responseCount uint64
|
responseCount uint64
|
||||||
invalidReq uint64
|
|
||||||
|
|
||||||
poolEntry *poolEntry
|
poolEntry *poolEntry
|
||||||
hasBlock func(common.Hash, uint64, bool) bool
|
hasBlock func(common.Hash, uint64, bool) bool
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue