• R/O
  • HTTP
  • SSH
  • HTTPS

vapor: Commit

Golang implemented sidechain for Bytom


Commit MetaInfo

Revision37defb19e00bfa2327515a9dc5b2a0693b747fc8 (tree)
Time2019-06-19 17:26:41
AuthorYahtoo Ma <yahtoo.ma@gmai...>
CommiterYahtoo Ma

Log Message

add test info

Change Summary

Incremental Difference

--- a/netsync/chainmgr/fast_sync.go
+++ b/netsync/chainmgr/fast_sync.go
@@ -9,6 +9,7 @@ import (
99 "github.com/vapor/errors"
1010 "github.com/vapor/protocol/bc"
1111 "github.com/vapor/protocol/bc/types"
12+ "fmt"
1213 )
1314
1415 var (
@@ -114,7 +115,7 @@ func (bk *blockKeeper) fetchBodiesParallel() error {
114115 return bk.fetchDataParallel(bk.createFetchBodiesTask, bk.fetchBodies, bk.bodiesTaskQueue)
115116 }
116117
117-func (bk *blockKeeper) fetchBodies(resultCh chan *taskResult, task *requireTask, peerID string) {
118+func (bk *blockKeeper) fetchBodies(resultCh chan *taskResult, task *requireTask) {
118119 task.count++
119120 startHash := task.startHeader.Hash()
120121 stopHash := task.stopHeader.Hash()
@@ -141,7 +142,7 @@ func (bk *blockKeeper) createFetchBodiesTask() {
141142 }
142143 }
143144
144-func (bk *blockKeeper) fetchDataParallel(createTask func(), fetch func(chan *taskResult, *requireTask, string), taskQueue *prque.Prque) error {
145+func (bk *blockKeeper) fetchDataParallel(createTask func(), fetch func(chan *taskResult, *requireTask), taskQueue *prque.Prque) error {
145146 createTask()
146147 resultCh := make(chan *taskResult, 1)
147148
@@ -158,11 +159,13 @@ func (bk *blockKeeper) fetchDataParallel(createTask func(), fetch func(chan *tas
158159 log.WithFields(log.Fields{"module": logModule, "err": err}).Error("failed on select valid peer")
159160 break
160161 }
161- go fetch(resultCh, task, peerID)
162+ task.peerID=peerID
163+ go fetch(resultCh, task)
162164 }
163165
164166 select {
165167 case result := <-resultCh:
168+ fmt.Println("id:",result.task.peerID)
166169 bk.peers.SetIdle(result.task.peerID)
167170 if result.err != nil && result.task.count > 3 {
168171 log.WithFields(log.Fields{"module": logModule, "index": result.task.index, "err": result.err}).Error("failed on fetch data")
@@ -265,6 +268,7 @@ func (bk *blockKeeper) locateHeaders(locator []*bc.Hash, stopHash *bc.Hash, amou
265268
266269 for _, hash := range locator {
267270 header, err := bk.chain.GetHeaderByHash(hash)
271+ fmt.Println("startHash:",header.Height,"startheight:",header.Height)
268272 if err == nil && bk.chain.InMainChain(header.Hash()) {
269273 startHeader = header
270274 break
@@ -273,9 +277,12 @@ func (bk *blockKeeper) locateHeaders(locator []*bc.Hash, stopHash *bc.Hash, amou
273277
274278 var stopHeader *types.BlockHeader
275279 if stopHash != nil {
280+ fmt.Println("stopHash is not nil")
276281 stopHeader, err = bk.chain.GetHeaderByHash(stopHash)
282+ fmt.Println("stophash:",stopHeader.Hash(),"stopheight:",stopHeader.Height)
277283 } else {
278284 stopHeader, err = bk.chain.GetHeaderByHeight(startHeader.Height + uint64((amount-1)*(skip+1)))
285+ fmt.Println("stophash:",stopHeader.Hash(),"stopheight:",stopHeader.Height)
279286 }
280287 if err != nil {
281288 return nil, err
@@ -352,12 +359,14 @@ func (bk *blockKeeper) requireHeaders(locator []*bc.Hash, amount int, skip int)
352359 func (bk *blockKeeper) createFetchHeadersTask() {
353360 for index := 0; index < len(bk.skeleton)-1; index++ {
354361 bk.headersTaskQueue.Push(&requireTask{index: index, length: int(bk.skeleton[index+1].Height - bk.skeleton[index].Height), startHeader: bk.skeleton[index]}, -float32(index))
362+ fmt.Println("task:",index, "start:",bk.skeleton[index].Height, "stop:",bk.skeleton[index+1].Height)
355363 }
356364 }
357365
358-func (bk *blockKeeper) fetchHeaders(resultCh chan *taskResult, task *requireTask, peerID string) {
366+func (bk *blockKeeper) fetchHeaders(resultCh chan *taskResult, task *requireTask) {
359367 task.count++
360368 headerHash := task.startHeader.Hash()
369+ fmt.Println("task:",task.index,"start:",task.startHeader.Height,"length:",task.length)
361370 headers, err := bk.requireHeaders([]*bc.Hash{&headerHash}, task.length, 0)
362371 if err != nil {
363372 log.WithFields(log.Fields{"module": logModule, "error": err}).Error("failed on fetch headers")
@@ -367,7 +376,8 @@ func (bk *blockKeeper) fetchHeaders(resultCh chan *taskResult, task *requireTask
367376
368377 //valid skeleton match
369378 if headers[len(headers)-1].Hash() != bk.skeleton[task.index+1].PreviousBlockHash {
370- log.WithFields(log.Fields{"module": logModule, "error": err}).Error("failed on fetch headers")
379+ fmt.Println("index:", task.index,"start:",headers[0].Height,"stop:",headers[len(headers)-1].Height,"curr:",bk.skeleton[task.index+1].Height)
380+ log.WithFields(log.Fields{"module": logModule, "error": errSkeletonMismatch}).Error("failed on fetch headers")
371381 resultCh <- &taskResult{err: errSkeletonMismatch, task: task}
372382 return
373383 }
@@ -375,7 +385,7 @@ func (bk *blockKeeper) fetchHeaders(resultCh chan *taskResult, task *requireTask
375385 //valid headers
376386 for i := 0; i < len(headers)-1; i++ {
377387 if headers[i+1].PreviousBlockHash != headers[i].Hash() {
378- log.WithFields(log.Fields{"module": logModule, "error": err}).Error("failed on fetch headers")
388+ log.WithFields(log.Fields{"module": logModule, "error": errHeadersMismatch}).Error("failed on fetch headers")
379389 resultCh <- &taskResult{err: errHeadersMismatch, task: task}
380390 return
381391 }
@@ -417,7 +427,7 @@ func (bk *blockKeeper) fetchData(result chan *fastSyncResult) {
417427 }
418428
419429 if err := bk.fetchHeadersParallel(); err != nil {
420- log.WithFields(log.Fields{"module": logModule, "error": err}).Error("failed on fetch headers")
430+ log.WithFields(log.Fields{"module": logModule, "error": err}).Error("failed on fetch headers parallel")
421431 result <- &fastSyncResult{success: false, err: err}
422432 return
423433 }
--- a/netsync/chainmgr/handle.go
+++ b/netsync/chainmgr/handle.go
@@ -6,6 +6,7 @@ import (
66
77 log "github.com/sirupsen/logrus"
88
9+ "fmt"
910 cfg "github.com/vapor/config"
1011 "github.com/vapor/consensus"
1112 "github.com/vapor/event"
@@ -181,11 +182,14 @@ func (m *Manager) handleGetBlocksMsg(peer *peers.Peer, msg *msgs.GetBlocksMessag
181182 }
182183
183184 func (m *Manager) handleGetHeadersMsg(peer *peers.Peer, msg *msgs.GetHeadersMessage) {
185+ fmt.Println("starthash:", msg.GetBlockLocator(), "amount:", msg.GetAmount(), "skip:", msg.GetSkip())
184186 headers, err := m.blockKeeper.locateHeaders(msg.GetBlockLocator(), nil, msg.GetAmount(), msg.GetSkip())
185187 if err != nil || len(headers) == 0 {
186188 log.WithFields(log.Fields{"module": logModule, "err": err}).Debug("fail on handleGetHeadersMsg locateHeaders")
187189 return
188190 }
191+ fmt.Println("starthash:", headers[0].Hash(), "startheight:", headers[0].Height)
192+ fmt.Println("stophash:", headers[len(headers)-1].Hash(), "stopheight:", headers[len(headers)-1].Height)
189193
190194 ok, err := peer.SendHeaders(headers)
191195 if !ok {
--- a/p2p/switch.go
+++ b/p2p/switch.go
@@ -30,7 +30,7 @@ const (
3030 minNumOutboundPeers = 4
3131 maxNumLANPeers = 5
3232 //magicNumber used to generate unique netID
33- magicNumber = uint64(0x054c5638)
33+ magicNumber = uint64(0x054c5639)
3434 )
3535
3636 //pre-define errors for connecting fail
Show on old repository browser