Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
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
link33
plugin
Commits
83fa966c
Commit
83fa966c
authored
Aug 09, 2019
by
yukang
Committed by
vipwzw
Aug 17, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
correct code style
parent
5cd041d5
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
82 additions
and
82 deletions
+82
-82
para.go
plugin/consensus/para/para.go
+6
-6
para_test.go
plugin/consensus/para/para_test.go
+1
-1
paracommitmsg.go
plugin/consensus/para/paracommitmsg.go
+2
-2
paracreate.go
plugin/consensus/para/paracreate.go
+1
-1
parasync.go
plugin/consensus/para/parasync.go
+66
-66
parasync_test.go
plugin/consensus/para/parasync_test.go
+6
-6
No files found.
plugin/consensus/para/para.go
View file @
83fa966c
...
...
@@ -63,7 +63,7 @@ type client struct {
execAPI
api
.
ExecutorAPI
caughtUp
int32
commitMsgClient
*
commitMsgClient
blockSyncClient
*
B
lockSyncClient
blockSyncClient
*
b
lockSyncClient
authAccount
string
privateKey
crypto
.
PrivKey
wg
sync
.
WaitGroup
...
...
@@ -182,12 +182,12 @@ func New(cfg *types.Consensus, sub []byte) queue.Module {
para
.
commitMsgClient
.
consensStartHeight
=
subcfg
.
ParaConsensStartHeight
-
1
}
para
.
blockSyncClient
=
&
B
lockSyncClient
{
para
.
blockSyncClient
=
&
b
lockSyncClient
{
paraClient
:
para
,
notifyChan
:
make
(
chan
bool
,
1
),
quitChan
:
make
(
chan
struct
{}),
maxCacheCount
:
D
efaultMaxCacheCount
,
maxSyncErrCount
:
D
efaultMaxSyncErrCount
,
maxCacheCount
:
d
efaultMaxCacheCount
,
maxSyncErrCount
:
d
efaultMaxSyncErrCount
,
isPrintDebugInfo
:
false
,
}
if
subcfg
.
MaxCacheCount
>
0
{
...
...
@@ -229,7 +229,7 @@ func (client *client) SetQueueClient(c queue.Client) {
client
.
wg
.
Add
(
1
)
go
client
.
CreateBlock
()
client
.
wg
.
Add
(
1
)
go
client
.
blockSyncClient
.
S
yncBlocks
()
go
client
.
blockSyncClient
.
s
yncBlocks
()
}
func
(
client
*
client
)
InitBlock
()
{
...
...
@@ -258,7 +258,7 @@ func (client *client) InitBlock() {
tx
:=
client
.
CreateGenesisTx
()
newblock
.
Txs
=
tx
newblock
.
TxHash
=
merkle
.
CalcMerkleRoot
(
newblock
.
Txs
)
err
:=
client
.
blockSyncClient
.
C
reateGenesisBlock
(
newblock
)
err
:=
client
.
blockSyncClient
.
c
reateGenesisBlock
(
newblock
)
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"para chain create genesis block,err=%s"
,
err
.
Error
()))
}
...
...
plugin/consensus/para/para_test.go
View file @
83fa966c
...
...
@@ -204,7 +204,7 @@ func TestAddMinerTx(t *testing.T) {
para
.
commitMsgClient
=
new
(
commitMsgClient
)
para
.
commitMsgClient
.
paraClient
=
para
para
.
blockSyncClient
=
new
(
B
lockSyncClient
)
para
.
blockSyncClient
=
new
(
b
lockSyncClient
)
para
.
blockSyncClient
.
paraClient
=
para
para
.
blockSyncClient
.
addMinerTx
(
nil
,
block
,
localBlock
)
assert
.
Equal
(
t
,
1
,
len
(
block
.
Txs
))
...
...
plugin/consensus/para/paracommitmsg.go
View file @
83fa966c
...
...
@@ -314,8 +314,8 @@ func (client *commitMsgClient) isSync() bool {
return
false
}
if
!
client
.
paraClient
.
blockSyncClient
.
S
yncHasCaughtUp
()
{
plog
.
Info
(
"para is not Sync"
,
"syncCaughtUp"
,
client
.
paraClient
.
blockSyncClient
.
S
yncHasCaughtUp
())
if
!
client
.
paraClient
.
blockSyncClient
.
s
yncHasCaughtUp
()
{
plog
.
Info
(
"para is not Sync"
,
"syncCaughtUp"
,
client
.
paraClient
.
blockSyncClient
.
s
yncHasCaughtUp
())
return
false
}
...
...
plugin/consensus/para/paracreate.go
View file @
83fa966c
...
...
@@ -465,7 +465,7 @@ func (client *client) procLocalBlocks(mainBlocks *types.ParaTxDetails) error {
}
}
if
notify
{
client
.
blockSyncClient
.
N
otifyLocalChange
()
client
.
blockSyncClient
.
n
otifyLocalChange
()
}
return
nil
...
...
plugin/consensus/para/parasync.go
View file @
83fa966c
...
...
@@ -16,14 +16,14 @@ import (
)
const
(
//
D
efaultMaxCacheCount 默认local最大缓冲数
D
efaultMaxCacheCount
=
int64
(
1000
)
//
D
efaultMaxSyncErrCount 默认连续错误最大数量
D
efaultMaxSyncErrCount
=
int32
(
100
)
//
d
efaultMaxCacheCount 默认local最大缓冲数
d
efaultMaxCacheCount
=
int64
(
1000
)
//
d
efaultMaxSyncErrCount 默认连续错误最大数量
d
efaultMaxSyncErrCount
=
int32
(
100
)
)
//
B
lockSyncClient 区块同步控制和状态变量
type
B
lockSyncClient
struct
{
//
b
lockSyncClient 区块同步控制和状态变量
type
b
lockSyncClient
struct
{
paraClient
*
client
//notifyChan 下载通知通道
notifyChan
chan
bool
...
...
@@ -41,52 +41,52 @@ type BlockSyncClient struct {
isPrintDebugInfo
bool
}
//
N
extActionType 定义每一轮可执行操作
type
N
extActionType
int8
//
n
extActionType 定义每一轮可执行操作
type
n
extActionType
int8
const
(
//
N
extActionKeep 保持
NextActionKeep
N
extActionType
=
iota
//
N
extActionRollback 回滚到前一区块
N
extActionRollback
//
N
extActionAdd 增加一个新的区块
N
extActionAdd
//
n
extActionKeep 保持
nextActionKeep
n
extActionType
=
iota
//
n
extActionRollback 回滚到前一区块
n
extActionRollback
//
n
extActionAdd 增加一个新的区块
n
extActionAdd
)
//
B
lockSyncState 定义当前区块同步状态
type
B
lockSyncState
int32
//
b
lockSyncState 定义当前区块同步状态
type
b
lockSyncState
int32
const
(
//
B
lockSyncStateNone 未同步状态
BlockSyncStateNone
B
lockSyncState
=
iota
//
B
lockSyncStateSyncing 正在同步中
B
lockSyncStateSyncing
//
B
lockSyncStateFinished 同步完成
B
lockSyncStateFinished
//
b
lockSyncStateNone 未同步状态
blockSyncStateNone
b
lockSyncState
=
iota
//
b
lockSyncStateSyncing 正在同步中
b
lockSyncStateSyncing
//
b
lockSyncStateFinished 同步完成
b
lockSyncStateFinished
)
//
S
yncHasCaughtUp 判断同步是否已追赶上,供发送层调用
func
(
client
*
BlockSyncClient
)
S
yncHasCaughtUp
()
bool
{
//
s
yncHasCaughtUp 判断同步是否已追赶上,供发送层调用
func
(
client
*
blockSyncClient
)
s
yncHasCaughtUp
()
bool
{
return
atomic
.
LoadInt32
(
&
client
.
isSyncCaughtUpAtom
)
==
1
}
//
N
otifyLocalChange 下载状态通知,供下载层调用
func
(
client
*
BlockSyncClient
)
N
otifyLocalChange
()
{
//
n
otifyLocalChange 下载状态通知,供下载层调用
func
(
client
*
blockSyncClient
)
n
otifyLocalChange
()
{
client
.
printDebugInfo
(
"Para sync - notify change"
)
if
client
.
getBlockSyncState
()
!=
B
lockSyncStateSyncing
{
if
client
.
getBlockSyncState
()
!=
b
lockSyncStateSyncing
{
client
.
printDebugInfo
(
"Para sync - notified change"
)
client
.
notifyChan
<-
true
}
}
//
C
reateGenesisBlock 创建创世区块
func
(
client
*
BlockSyncClient
)
C
reateGenesisBlock
(
newblock
*
types
.
Block
)
error
{
//
c
reateGenesisBlock 创建创世区块
func
(
client
*
blockSyncClient
)
c
reateGenesisBlock
(
newblock
*
types
.
Block
)
error
{
return
client
.
writeBlock
(
zeroHash
[
:
],
newblock
)
}
//
S
yncBlocks 区块执行线程
//
s
yncBlocks 区块执行线程
//循环执行
func
(
client
*
BlockSyncClient
)
S
yncBlocks
()
{
func
(
client
*
blockSyncClient
)
s
yncBlocks
()
{
client
.
syncInit
()
//首次同步,不用等待通知
...
...
@@ -109,8 +109,8 @@ out:
}
//批量执行同步区块
func
(
client
*
B
lockSyncClient
)
batchSyncBlocks
()
{
client
.
setBlockSyncState
(
B
lockSyncStateSyncing
)
func
(
client
*
b
lockSyncClient
)
batchSyncBlocks
()
{
client
.
setBlockSyncState
(
b
lockSyncStateSyncing
)
client
.
printDebugInfo
(
"Para sync - syncing"
)
errCount
:=
int32
(
0
)
...
...
@@ -129,7 +129,7 @@ func (client *BlockSyncClient) batchSyncBlocks() {
if
errCount
>
client
.
maxSyncErrCount
{
client
.
printError
(
errors
.
New
(
"para sync - sync has some errors,please check"
))
client
.
setBlockSyncState
(
B
lockSyncStateNone
)
client
.
setBlockSyncState
(
b
lockSyncStateNone
)
return
}
//没有需要同步的块,清理本地数据库中localCacheCount前的块
...
...
@@ -139,7 +139,7 @@ func (client *BlockSyncClient) batchSyncBlocks() {
client
.
printError
(
err
)
}
client
.
setBlockSyncState
(
B
lockSyncStateFinished
)
client
.
setBlockSyncState
(
b
lockSyncStateFinished
)
client
.
printDebugInfo
(
"Para sync - finished"
)
return
}
...
...
@@ -148,67 +148,67 @@ func (client *BlockSyncClient) batchSyncBlocks() {
}
//获取每一轮可执行状态
func
(
client
*
BlockSyncClient
)
getNextAction
()
(
N
extActionType
,
*
types
.
Block
,
*
pt
.
ParaLocalDbBlock
,
int64
,
error
)
{
func
(
client
*
blockSyncClient
)
getNextAction
()
(
n
extActionType
,
*
types
.
Block
,
*
pt
.
ParaLocalDbBlock
,
int64
,
error
)
{
lastBlock
,
err
:=
client
.
paraClient
.
getLastBlockInfo
()
if
err
!=
nil
{
//取已执行最新区块发生错误,不做任何操作
return
N
extActionKeep
,
nil
,
nil
,
-
1
,
err
return
n
extActionKeep
,
nil
,
nil
,
-
1
,
err
}
lastLocalHeight
,
err
:=
client
.
paraClient
.
getLastLocalHeight
()
if
err
!=
nil
{
//取db中最新高度区块发生错误,不做任何操作
return
N
extActionKeep
,
nil
,
nil
,
lastLocalHeight
,
err
return
n
extActionKeep
,
nil
,
nil
,
lastLocalHeight
,
err
}
if
lastLocalHeight
<=
0
{
//db中最新高度为0,不做任何操作(创世区块)
return
N
extActionKeep
,
nil
,
nil
,
lastLocalHeight
,
nil
return
n
extActionKeep
,
nil
,
nil
,
lastLocalHeight
,
nil
}
switch
{
case
lastLocalHeight
<
lastBlock
.
Height
:
//db中最新区块高度小于已执行最新区块高度,回滚
return
N
extActionRollback
,
lastBlock
,
nil
,
lastLocalHeight
,
nil
return
n
extActionRollback
,
lastBlock
,
nil
,
lastLocalHeight
,
nil
case
lastLocalHeight
==
lastBlock
.
Height
:
localBlock
,
err
:=
client
.
paraClient
.
getLocalBlockByHeight
(
lastBlock
.
Height
)
if
err
!=
nil
{
//取db中指定高度区块发生错误,不做任何操作
return
N
extActionKeep
,
nil
,
nil
,
lastLocalHeight
,
err
return
n
extActionKeep
,
nil
,
nil
,
lastLocalHeight
,
err
}
if
common
.
ToHex
(
localBlock
.
MainHash
)
==
common
.
ToHex
(
lastBlock
.
MainHash
)
{
//db中最新区块高度等于已执行最新区块高度并且hash相同,不做任何操作(已保持同步状态)
return
N
extActionKeep
,
nil
,
nil
,
lastLocalHeight
,
nil
return
n
extActionKeep
,
nil
,
nil
,
lastLocalHeight
,
nil
}
//db中最新区块高度等于已执行最新区块高度并且hash不同,回滚
return
N
extActionRollback
,
lastBlock
,
nil
,
lastLocalHeight
,
nil
return
n
extActionRollback
,
lastBlock
,
nil
,
lastLocalHeight
,
nil
default
:
// lastLocalHeight > lastBlock.Height
localBlock
,
err
:=
client
.
paraClient
.
getLocalBlockByHeight
(
lastBlock
.
Height
+
1
)
if
err
!=
nil
{
//取db中后一高度区块发生错误,不做任何操作
return
N
extActionKeep
,
nil
,
nil
,
lastLocalHeight
,
err
return
n
extActionKeep
,
nil
,
nil
,
lastLocalHeight
,
err
}
if
common
.
ToHex
(
localBlock
.
ParentMainHash
)
!=
common
.
ToHex
(
lastBlock
.
MainHash
)
{
//db中后一高度区块的父hash不等于已执行最新区块的hash,回滚
return
N
extActionRollback
,
lastBlock
,
nil
,
lastLocalHeight
,
nil
return
n
extActionRollback
,
lastBlock
,
nil
,
lastLocalHeight
,
nil
}
//db中后一高度区块的父hash等于已执行最新区块的hash,执行区块创建
return
N
extActionAdd
,
lastBlock
,
localBlock
,
lastLocalHeight
,
nil
return
n
extActionAdd
,
lastBlock
,
localBlock
,
lastLocalHeight
,
nil
}
}
//根据当前可执行状态执行区块操作
//返回参数
//bool 是否已完成同步
func
(
client
*
B
lockSyncClient
)
syncBlocksIfNeed
()
(
bool
,
error
)
{
func
(
client
*
b
lockSyncClient
)
syncBlocksIfNeed
()
(
bool
,
error
)
{
nextAction
,
lastBlock
,
localBlock
,
lastLocalHeight
,
err
:=
client
.
getNextAction
()
if
err
!=
nil
{
return
false
,
err
}
switch
nextAction
{
case
N
extActionAdd
:
case
n
extActionAdd
:
//1 db中后一高度区块的父hash等于已执行最新区块的hash
plog
.
Info
(
"Para sync - add block"
,
"lastBlock.Height"
,
lastBlock
.
Height
,
"lastLocalHeight"
,
lastLocalHeight
)
...
...
@@ -226,7 +226,7 @@ func (client *BlockSyncClient) syncBlocksIfNeed() (bool, error) {
}
return
false
,
err
case
N
extActionRollback
:
case
n
extActionRollback
:
//1 db中最新区块高度小于已执行最新区块高度
//2 db中最新区块高度等于已执行最新区块高度并且hash不同
//3 db中后一高度区块的父hash不等于已执行最新区块的hash
...
...
@@ -245,7 +245,7 @@ func (client *BlockSyncClient) syncBlocksIfNeed() (bool, error) {
}
return
false
,
err
default
:
//
N
extActionKeep
default
:
//
n
extActionKeep
//1 已完成同步,没有需要同步的块
return
true
,
nil
}
...
...
@@ -253,7 +253,7 @@ func (client *BlockSyncClient) syncBlocksIfNeed() (bool, error) {
}
//批量删除下载层缓冲数据
func
(
client
*
B
lockSyncClient
)
delLocalBlocks
(
startHeight
int64
,
endHeight
int64
)
error
{
func
(
client
*
b
lockSyncClient
)
delLocalBlocks
(
startHeight
int64
,
endHeight
int64
)
error
{
if
startHeight
>
endHeight
{
return
errors
.
New
(
"para sync - startHeight > endHeight,can't clear local blocks"
)
}
...
...
@@ -282,7 +282,7 @@ func (client *BlockSyncClient) delLocalBlocks(startHeight int64, endHeight int64
}
//最低高度没有设置的时候设置一下最低高度
func
(
client
*
B
lockSyncClient
)
initFirstLocalHeightIfNeed
()
error
{
func
(
client
*
b
lockSyncClient
)
initFirstLocalHeightIfNeed
()
error
{
height
,
err
:=
client
.
getFirstLocalHeight
()
if
err
!=
nil
||
height
<
0
{
...
...
@@ -298,7 +298,7 @@ func (client *BlockSyncClient) initFirstLocalHeightIfNeed() error {
}
//获取下载层缓冲数据的区块最低高度
func
(
client
*
B
lockSyncClient
)
getFirstLocalHeight
()
(
int64
,
error
)
{
func
(
client
*
b
lockSyncClient
)
getFirstLocalHeight
()
(
int64
,
error
)
{
key
:=
calcTitleFirstHeightKey
(
types
.
GetTitle
())
set
:=
&
types
.
LocalDBGet
{
Keys
:
[][]
byte
{
key
}}
value
,
err
:=
client
.
paraClient
.
getLocalDb
(
set
,
len
(
set
.
Keys
))
...
...
@@ -323,7 +323,7 @@ func (client *BlockSyncClient) getFirstLocalHeight() (int64, error) {
}
//清除指定数量(localCacheCount)以前的区块
func
(
client
*
B
lockSyncClient
)
clearLocalOldBlocks
()
(
bool
,
error
)
{
func
(
client
*
b
lockSyncClient
)
clearLocalOldBlocks
()
(
bool
,
error
)
{
lastLocalHeight
,
err
:=
client
.
paraClient
.
getLastLocalHeight
()
if
err
!=
nil
{
return
false
,
err
...
...
@@ -343,7 +343,7 @@ func (client *BlockSyncClient) clearLocalOldBlocks() (bool, error) {
}
// miner tx need all para node create, but not all node has auth account, here just not sign to keep align
func
(
client
*
B
lockSyncClient
)
addMinerTx
(
preStateHash
[]
byte
,
block
*
types
.
Block
,
localBlock
*
pt
.
ParaLocalDbBlock
)
error
{
func
(
client
*
b
lockSyncClient
)
addMinerTx
(
preStateHash
[]
byte
,
block
*
types
.
Block
,
localBlock
*
pt
.
ParaLocalDbBlock
)
error
{
status
:=
&
pt
.
ParacrossNodeStatus
{
Title
:
types
.
GetTitle
(),
Height
:
block
.
Height
,
...
...
@@ -368,7 +368,7 @@ func (client *BlockSyncClient) addMinerTx(preStateHash []byte, block *types.Bloc
}
//添加一个区块
func
(
client
*
B
lockSyncClient
)
addBlock
(
lastBlock
*
types
.
Block
,
localBlock
*
pt
.
ParaLocalDbBlock
)
error
{
func
(
client
*
b
lockSyncClient
)
addBlock
(
lastBlock
*
types
.
Block
,
localBlock
*
pt
.
ParaLocalDbBlock
)
error
{
var
newBlock
types
.
Block
client
.
printDebugInfo
(
fmt
.
Sprintf
(
"Para sync - the len txs is: %v"
,
len
(
localBlock
.
Txs
)))
...
...
@@ -396,7 +396,7 @@ func (client *BlockSyncClient) addBlock(lastBlock *types.Block, localBlock *pt.P
}
// 向blockchain删区块
func
(
client
*
B
lockSyncClient
)
rollbackBlock
(
block
*
types
.
Block
)
error
{
func
(
client
*
b
lockSyncClient
)
rollbackBlock
(
block
*
types
.
Block
)
error
{
client
.
printDebugInfo
(
"Para sync - delete block in parachain"
)
start
:=
block
.
Height
...
...
@@ -439,7 +439,7 @@ func (client *BlockSyncClient) rollbackBlock(block *types.Block) error {
}
// 向blockchain写区块
func
(
client
*
B
lockSyncClient
)
writeBlock
(
prev
[]
byte
,
paraBlock
*
types
.
Block
)
error
{
func
(
client
*
b
lockSyncClient
)
writeBlock
(
prev
[]
byte
,
paraBlock
*
types
.
Block
)
error
{
//共识模块不执行block,统一由blockchain模块执行block并做去重的处理,返回执行后的blockdetail
blockDetail
:=
&
types
.
BlockDetail
{
Block
:
paraBlock
}
...
...
@@ -464,17 +464,17 @@ func (client *BlockSyncClient) writeBlock(prev []byte, paraBlock *types.Block) e
}
//获取同步状态
func
(
client
*
BlockSyncClient
)
getBlockSyncState
()
B
lockSyncState
{
return
B
lockSyncState
(
atomic
.
LoadInt32
(
&
client
.
syncState
))
func
(
client
*
blockSyncClient
)
getBlockSyncState
()
b
lockSyncState
{
return
b
lockSyncState
(
atomic
.
LoadInt32
(
&
client
.
syncState
))
}
//设置同步状态
func
(
client
*
BlockSyncClient
)
setBlockSyncState
(
state
B
lockSyncState
)
{
func
(
client
*
blockSyncClient
)
setBlockSyncState
(
state
b
lockSyncState
)
{
atomic
.
StoreInt32
(
&
client
.
syncState
,
int32
(
state
))
}
//设置是否追赶上
func
(
client
*
B
lockSyncClient
)
setSyncCaughtUp
(
isCaughtUp
bool
)
{
func
(
client
*
b
lockSyncClient
)
setSyncCaughtUp
(
isCaughtUp
bool
)
{
if
isCaughtUp
{
atomic
.
StoreInt32
(
&
client
.
isSyncCaughtUpAtom
,
1
)
}
else
{
...
...
@@ -483,21 +483,21 @@ func (client *BlockSyncClient) setSyncCaughtUp(isCaughtUp bool) {
}
//打印错误日志
func
(
client
*
B
lockSyncClient
)
printError
(
err
error
)
{
func
(
client
*
b
lockSyncClient
)
printError
(
err
error
)
{
plog
.
Error
(
fmt
.
Sprintf
(
"Para sync - sync block error:%v"
,
err
.
Error
()))
}
//打印调试信息
func
(
client
*
B
lockSyncClient
)
printDebugInfo
(
msg
string
,
ctx
...
interface
{})
{
func
(
client
*
b
lockSyncClient
)
printDebugInfo
(
msg
string
,
ctx
...
interface
{})
{
if
client
.
isPrintDebugInfo
{
plog
.
Info
(
msg
,
ctx
...
)
}
}
//初始化
func
(
client
*
B
lockSyncClient
)
syncInit
()
{
func
(
client
*
b
lockSyncClient
)
syncInit
()
{
client
.
printDebugInfo
(
"Para sync - init"
)
client
.
setBlockSyncState
(
B
lockSyncStateNone
)
client
.
setBlockSyncState
(
b
lockSyncStateNone
)
client
.
setSyncCaughtUp
(
false
)
err
:=
client
.
initFirstLocalHeightIfNeed
()
if
err
!=
nil
{
...
...
plugin/consensus/para/parasync_test.go
View file @
83fa966c
...
...
@@ -68,7 +68,7 @@ func createParaTestInstance(t *testing.T, q queue.Queue) *client {
para
.
privateKey
=
priKey
//实例化BlockSyncClient
para
.
blockSyncClient
=
&
B
lockSyncClient
{
para
.
blockSyncClient
=
&
b
lockSyncClient
{
paraClient
:
para
,
notifyChan
:
make
(
chan
bool
),
quitChan
:
make
(
chan
struct
{}),
...
...
@@ -333,7 +333,7 @@ func mockMessageReply(q queue.Queue) {
//测试创世区块写入
func
testCreateGenesisBlock
(
t
*
testing
.
T
,
para
*
client
,
testLoopCount
int32
)
{
genesisBlock
:=
makeGenesisBlockInputTestData
()
err
:=
para
.
blockSyncClient
.
C
reateGenesisBlock
(
genesisBlock
)
err
:=
para
.
blockSyncClient
.
c
reateGenesisBlock
(
genesisBlock
)
switch
testLoopCount
{
case
0
:
...
...
@@ -394,9 +394,9 @@ func testSyncBlocksIfNeed(t *testing.T, para *client, testLoopCount int32) {
//测试SyncHasCaughtUp
func
testSyncHasCaughtUp
(
t
*
testing
.
T
,
para
*
client
,
testLoopCount
int32
)
{
oldValue
:=
para
.
blockSyncClient
.
S
yncHasCaughtUp
()
oldValue
:=
para
.
blockSyncClient
.
s
yncHasCaughtUp
()
para
.
blockSyncClient
.
setSyncCaughtUp
(
true
)
isSyncHasCaughtUp
:=
para
.
blockSyncClient
.
S
yncHasCaughtUp
()
isSyncHasCaughtUp
:=
para
.
blockSyncClient
.
s
yncHasCaughtUp
()
para
.
blockSyncClient
.
setSyncCaughtUp
(
oldValue
)
assert
.
Equal
(
t
,
true
,
isSyncHasCaughtUp
)
...
...
@@ -405,11 +405,11 @@ func testSyncHasCaughtUp(t *testing.T, para *client, testLoopCount int32) {
//测试getBlockSyncState
func
testGetBlockSyncState
(
t
*
testing
.
T
,
para
*
client
,
testLoopCount
int32
)
{
oldValue
:=
para
.
blockSyncClient
.
getBlockSyncState
()
para
.
blockSyncClient
.
setBlockSyncState
(
B
lockSyncStateFinished
)
para
.
blockSyncClient
.
setBlockSyncState
(
b
lockSyncStateFinished
)
syncState
:=
para
.
blockSyncClient
.
getBlockSyncState
()
para
.
blockSyncClient
.
setBlockSyncState
(
oldValue
)
assert
.
Equal
(
t
,
true
,
syncState
==
B
lockSyncStateFinished
)
assert
.
Equal
(
t
,
true
,
syncState
==
b
lockSyncStateFinished
)
}
//执行所有函数测试
...
...
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