mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-21 12:16:44 +00:00
add debug logs for netstore procedure and DPA storeloop when storage finishes
This commit is contained in:
parent
3e3955567a
commit
d853c6fe3a
2 changed files with 22 additions and 7 deletions
15
bzz/dpa.go
15
bzz/dpa.go
|
|
@ -153,13 +153,14 @@ func (self *DPA) storeLoop() {
|
|||
go func() {
|
||||
STORE:
|
||||
for ch := range self.storeC {
|
||||
// go func(chunk *Chunk) {
|
||||
self.ChunkStore.Put(ch)
|
||||
if ch.wg != nil {
|
||||
ch.wg.Done()
|
||||
}
|
||||
// self.ChunkStore.Put(chunk)
|
||||
// }(ch)
|
||||
go func(chunk *Chunk) {
|
||||
self.ChunkStore.Put(ch)
|
||||
if ch.wg != nil {
|
||||
dpaLogger.Debugf("DPA.storeLoop %064x", chunk.Key)
|
||||
ch.wg.Done()
|
||||
}
|
||||
self.ChunkStore.Put(chunk)
|
||||
}(ch)
|
||||
select {
|
||||
case <-self.quitC:
|
||||
break STORE
|
||||
|
|
|
|||
|
|
@ -108,11 +108,15 @@ func (self *NetStore) Get(key Key) (chunk *Chunk, err error) {
|
|||
} else {
|
||||
return
|
||||
}
|
||||
// TODO: use self.timer time.Timer and reset with defer disableTimer
|
||||
timer := time.After(searchTimeout)
|
||||
select {
|
||||
case <-timer:
|
||||
dpaLogger.Debugf("NetStore.Get: %064x request time out ", key)
|
||||
err = notFound
|
||||
case <-chunk.req.C:
|
||||
dpaLogger.Debugf("NetStore.get: %064x retrieved", key)
|
||||
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
@ -156,10 +160,13 @@ func (self *NetStore) addRetrieveRequest(req *retrieveRequestMsgData) {
|
|||
dpaLogger.Debugf("Is %v == %v?", send, storeRequestMsg)
|
||||
|
||||
if send == storeRequestMsg {
|
||||
dpaLogger.Debugf("NetStore.addRetrieveRequest: %064x - content found, delivering...", req.Key)
|
||||
self.deliver(req, chunk)
|
||||
} else {
|
||||
// we might need chunk.req to cache relevant peers response, or would it expire?
|
||||
self.peers(req, chunk, timeout)
|
||||
dpaLogger.Debugf("NetStore.addRetrieveRequest: %064x - searching.... responding with peers...", req.Key)
|
||||
|
||||
if timeout != nil {
|
||||
self.startSearch(chunk, int64(req.Id), timeout)
|
||||
}
|
||||
|
|
@ -170,6 +177,7 @@ func (self *NetStore) addRetrieveRequest(req *retrieveRequestMsgData) {
|
|||
// it's assumed that caller holds the lock
|
||||
func (self *NetStore) startSearch(chunk *Chunk, id int64, timeout *time.Time) {
|
||||
chunk.req.status = reqSearching
|
||||
dpaLogger.Debugf("NetStore.startSearch: %064x - getting peers from cademlia...", chunk.Key)
|
||||
peers := self.hive.getPeers(chunk.Key)
|
||||
req := &retrieveRequestMsgData{
|
||||
Key: chunk.Key,
|
||||
|
|
@ -177,6 +185,7 @@ func (self *NetStore) startSearch(chunk *Chunk, id int64, timeout *time.Time) {
|
|||
timeout: timeout,
|
||||
}
|
||||
for _, peer := range peers {
|
||||
dpaLogger.Debugf("NetStore.startSearch: sending retrieveRequests to peer [%064x]", req.Key)
|
||||
peer.retrieve(req)
|
||||
}
|
||||
}
|
||||
|
|
@ -192,6 +201,7 @@ only add if less than requesterCount peers forwarded the same request id so far
|
|||
note this is done irrespective of status (searching or found/timedOut)
|
||||
*/
|
||||
func (self *NetStore) addRequester(rs *requestStatus, req *retrieveRequestMsgData) {
|
||||
dpaLogger.Debugf("NetStore.addRequester: key %064x - add peer [%#v] to req.Id %064x", req.Key, req.peer, req.Id)
|
||||
list := rs.requesters[int64(req.Id)]
|
||||
rs.requesters[int64(req.Id)] = append(list, req)
|
||||
}
|
||||
|
|
@ -209,6 +219,7 @@ this is the most simplistic implementation:
|
|||
! in the last case as well, we should respond with reject if already got requesterCount peers with that exact id
|
||||
*/
|
||||
func (self *NetStore) strategyUpdateRequest(rs *requestStatus, req *retrieveRequestMsgData) (msgTyp int, timeout *time.Time) {
|
||||
dpaLogger.Debugf("NetStore.strategyUpdateRequest: key %064x", req.Key)
|
||||
|
||||
switch rs.status {
|
||||
case reqSearching:
|
||||
|
|
@ -224,8 +235,10 @@ func (self *NetStore) strategyUpdateRequest(rs *requestStatus, req *retrieveRequ
|
|||
}
|
||||
|
||||
func (self *NetStore) propagateResponse(chunk *Chunk) {
|
||||
dpaLogger.Debugf("NetStore.propagateResponse: key %064x", chunk.Key)
|
||||
for id, requesters := range chunk.req.requesters {
|
||||
counter := requesterCount
|
||||
dpaLogger.Debugf("NetStore.propagateResponse id %064x", id)
|
||||
msg := &storeRequestMsgData{
|
||||
Key: chunk.Key,
|
||||
Data: chunk.Data,
|
||||
|
|
@ -234,6 +247,7 @@ func (self *NetStore) propagateResponse(chunk *Chunk) {
|
|||
}
|
||||
for _, req := range requesters {
|
||||
if req.timeout.After(time.Now()) {
|
||||
dpaLogger.Debugf("NetStore.propagateResponse store -> %064x with %v", req.Id, req.peer)
|
||||
go req.peer.store(msg)
|
||||
counter--
|
||||
if counter <= 0 {
|
||||
|
|
|
|||
Loading…
Reference in a new issue