Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
835fe06f
Unverified
Commit
835fe06f
authored
May 21, 2021
by
Péter Szilágyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
les: generate random nums directly, not via strange conversions
parent
81662fe8
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
10 additions
and
16 deletions
+10
-16
client_handler.go
les/client_handler.go
+4
-3
fetcher.go
les/fetcher.go
+1
-1
odr.go
les/odr.go
+3
-2
retrieve.go
les/retrieve.go
+0
-9
txrelay.go
les/txrelay.go
+2
-1
No files found.
les/client_handler.go
View file @
835fe06f
...
...
@@ -19,6 +19,7 @@ package les
import
(
"context"
"math/big"
"math/rand"
"sync"
"sync/atomic"
"time"
...
...
@@ -388,7 +389,7 @@ func (pc *peerConnection) RequestHeadersByHash(origin common.Hash, amount int, s
return
dp
.
(
*
serverPeer
)
==
pc
.
peer
},
request
:
func
(
dp
distPeer
)
func
()
{
reqID
:=
genReqID
()
reqID
:=
rand
.
Uint64
()
peer
:=
dp
.
(
*
serverPeer
)
cost
:=
peer
.
getRequestCost
(
GetBlockHeadersMsg
,
amount
)
peer
.
fcServer
.
QueuedRequest
(
reqID
,
cost
)
...
...
@@ -412,7 +413,7 @@ func (pc *peerConnection) RequestHeadersByNumber(origin uint64, amount int, skip
return
dp
.
(
*
serverPeer
)
==
pc
.
peer
},
request
:
func
(
dp
distPeer
)
func
()
{
reqID
:=
genReqID
()
reqID
:=
rand
.
Uint64
()
peer
:=
dp
.
(
*
serverPeer
)
cost
:=
peer
.
getRequestCost
(
GetBlockHeadersMsg
,
amount
)
peer
.
fcServer
.
QueuedRequest
(
reqID
,
cost
)
...
...
@@ -429,7 +430,7 @@ func (pc *peerConnection) RequestHeadersByNumber(origin uint64, amount int, skip
// RetrieveSingleHeaderByNumber requests a single header by the specified block
// number. This function will wait the response until it's timeout or delivered.
func
(
pc
*
peerConnection
)
RetrieveSingleHeaderByNumber
(
context
context
.
Context
,
number
uint64
)
(
*
types
.
Header
,
error
)
{
reqID
:=
genReqID
()
reqID
:=
rand
.
Uint64
()
rq
:=
&
distReq
{
getCost
:
func
(
dp
distPeer
)
uint64
{
peer
:=
dp
.
(
*
serverPeer
)
...
...
les/fetcher.go
View file @
835fe06f
...
...
@@ -507,7 +507,7 @@ func (f *lightFetcher) requestHeaderByHash(peerid enode.ID) func(common.Hash) er
getCost
:
func
(
dp
distPeer
)
uint64
{
return
dp
.
(
*
serverPeer
)
.
getRequestCost
(
GetBlockHeadersMsg
,
1
)
},
canSend
:
func
(
dp
distPeer
)
bool
{
return
dp
.
(
*
serverPeer
)
.
ID
()
==
peerid
},
request
:
func
(
dp
distPeer
)
func
()
{
peer
,
id
:=
dp
.
(
*
serverPeer
),
genReqID
()
peer
,
id
:=
dp
.
(
*
serverPeer
),
rand
.
Uint64
()
cost
:=
peer
.
getRequestCost
(
GetBlockHeadersMsg
,
1
)
peer
.
fcServer
.
QueuedRequest
(
id
,
cost
)
...
...
les/odr.go
View file @
835fe06f
...
...
@@ -18,6 +18,7 @@ package les
import
(
"context"
"math/rand"
"sort"
"time"
...
...
@@ -156,7 +157,7 @@ func (odr *LesOdr) RetrieveTxStatus(ctx context.Context, req *light.TxStatusRequ
var
(
// Deep copy the request, so that the partial result won't be mixed.
req
=
&
TxStatusRequest
{
Hashes
:
req
.
Hashes
}
id
=
genReqID
()
id
=
rand
.
Uint64
()
distreq
=
&
distReq
{
getCost
:
func
(
dp
distPeer
)
uint64
{
return
req
.
GetCost
(
dp
.
(
*
serverPeer
))
},
canSend
:
func
(
dp
distPeer
)
bool
{
return
canSend
[
dp
.
(
*
serverPeer
)
.
id
]
},
...
...
@@ -200,7 +201,7 @@ func (odr *LesOdr) RetrieveTxStatus(ctx context.Context, req *light.TxStatusRequ
func
(
odr
*
LesOdr
)
Retrieve
(
ctx
context
.
Context
,
req
light
.
OdrRequest
)
(
err
error
)
{
lreq
:=
LesRequest
(
req
)
reqID
:=
genReqID
()
reqID
:=
rand
.
Uint64
()
rq
:=
&
distReq
{
getCost
:
func
(
dp
distPeer
)
uint64
{
return
lreq
.
GetCost
(
dp
.
(
*
serverPeer
))
...
...
les/retrieve.go
View file @
835fe06f
...
...
@@ -18,8 +18,6 @@ package les
import
(
"context"
"crypto/rand"
"encoding/binary"
"fmt"
"sync"
"time"
...
...
@@ -430,10 +428,3 @@ func (r *sentReq) stop(err error) {
func
(
r
*
sentReq
)
getError
()
error
{
return
r
.
err
}
// genReqID generates a new random request ID
func
genReqID
()
uint64
{
var
rnd
[
8
]
byte
rand
.
Read
(
rnd
[
:
])
return
binary
.
BigEndian
.
Uint64
(
rnd
[
:
])
}
les/txrelay.go
View file @
835fe06f
...
...
@@ -18,6 +18,7 @@ package les
import
(
"context"
"math/rand"
"sync"
"github.com/ethereum/go-ethereum/common"
...
...
@@ -117,7 +118,7 @@ func (ltrx *lesTxRelay) send(txs types.Transactions, count int) {
ll
:=
list
enc
,
_
:=
rlp
.
EncodeToBytes
(
ll
)
reqID
:=
genReqID
()
reqID
:=
rand
.
Uint64
()
rq
:=
&
distReq
{
getCost
:
func
(
dp
distPeer
)
uint64
{
peer
:=
dp
.
(
*
serverPeer
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment