Commit 8b458a6e authored by mdj33's avatar mdj33 Committed by vipwzw

debug log

parent 05ede7af
...@@ -52,6 +52,7 @@ func (client *commitMsgClient) handler() { ...@@ -52,6 +52,7 @@ func (client *commitMsgClient) handler() {
var sendingMsgs []*pt.ParacrossNodeStatus var sendingMsgs []*pt.ParacrossNodeStatus
var readTick <-chan time.Time var readTick <-chan time.Time
var ticker *time.Ticker var ticker *time.Ticker
var authAccountIn bool
client.paraClient.wg.Add(1) client.paraClient.wg.Add(1)
consensusCh := make(chan *commitConsensRsp, 1) consensusCh := make(chan *commitConsensRsp, 1)
...@@ -167,6 +168,12 @@ out: ...@@ -167,6 +168,12 @@ out:
"consensHeight", rsp.status.Height, "finishHeight", finishHeight, "authIn", rsp.authAccountIn, "sync", isSync, "miner", readTick != nil) "consensHeight", rsp.status.Height, "finishHeight", finishHeight, "authIn", rsp.authAccountIn, "sync", isSync, "miner", readTick != nil)
plog.Debug("para consensus rcv", "consensBlockHash", common.ToHex(rsp.status.BlockHash)) plog.Debug("para consensus rcv", "consensBlockHash", common.ToHex(rsp.status.BlockHash))
//每次账户加入nodegroup 重新设置finishHeight 重新发送,防止曾经发送过,又退出group场景
if !authAccountIn && rsp.authAccountIn && finishHeight > consensHeight {
finishHeight = consensHeight
}
authAccountIn = rsp.authAccountIn
if notification == nil || isRollback || !rsp.authAccountIn { if notification == nil || isRollback || !rsp.authAccountIn {
isSync = false isSync = false
continue continue
......
...@@ -403,8 +403,7 @@ func (a *action) Commit(commit *pt.ParacrossCommitAction) (*types.Receipt, error ...@@ -403,8 +403,7 @@ func (a *action) Commit(commit *pt.ParacrossCommitAction) (*types.Receipt, error
clog.Debug("paracross.Commit check input done") clog.Debug("paracross.Commit check input done")
// 在完成共识之后来的, 增加 record log, 只记录不修改已经达成的共识 // 在完成共识之后来的, 增加 record log, 只记录不修改已经达成的共识
if commit.Status.Height <= titleStatus.Height { if commit.Status.Height <= titleStatus.Height {
clog.Debug("paracross.Commit record", "node", a.fromaddr, "titile", commit.Status.Title, clog.Debug("paracross.Commit record", "node", a.fromaddr, "titile", commit.Status.Title, "height", commit.Status.Height)
"height", commit.Status.Height)
return makeRecordReceipt(a.fromaddr, commit), nil return makeRecordReceipt(a.fromaddr, commit), nil
} }
...@@ -430,6 +429,8 @@ func (a *action) Commit(commit *pt.ParacrossCommitAction) (*types.Receipt, error ...@@ -430,6 +429,8 @@ func (a *action) Commit(commit *pt.ParacrossCommitAction) (*types.Receipt, error
stat.MainHeight = commit.Status.MainBlockHeight stat.MainHeight = commit.Status.MainBlockHeight
stat.MainHash = commit.Status.MainBlockHash stat.MainHash = commit.Status.MainBlockHash
} }
//用commit.MainBlockHeight 判断更准确,如果用a.exec.MainHeight也可以,但是可能收到MainHeight之前的高度共识tx,
// 后面loopCommitTxDone时候也是用当前共识高度大于分叉高度判断
if commit.Status.MainBlockHeight >= getDappForkHeight(pt.ForkLoopCheckCommitTxDone) { if commit.Status.MainBlockHeight >= getDappForkHeight(pt.ForkLoopCheckCommitTxDone) {
updateCommitBlockHashs(stat, commit.Status) updateCommitBlockHashs(stat, commit.Status)
} }
...@@ -480,9 +481,9 @@ func (a *action) Commit(commit *pt.ParacrossCommitAction) (*types.Receipt, error ...@@ -480,9 +481,9 @@ func (a *action) Commit(commit *pt.ParacrossCommitAction) (*types.Receipt, error
func (a *action) commitTxDone(nodeStatus *pt.ParacrossNodeStatus, stat *pt.ParacrossHeightStatus, titleStatus *pt.ParacrossStatus, func (a *action) commitTxDone(nodeStatus *pt.ParacrossNodeStatus, stat *pt.ParacrossHeightStatus, titleStatus *pt.ParacrossStatus,
nodes map[string]struct{}, receipt *types.Receipt) (*types.Receipt, error) { nodes map[string]struct{}, receipt *types.Receipt) (*types.Receipt, error) {
clog.Info("paracross.Commit commit", "stat.title", stat.Title, "stat.height", stat.Height, "notes", len(nodes)) clog.Debug("paracross.Commit commit", "stat.title", stat.Title, "stat.height", stat.Height, "notes", len(nodes))
for i, v := range stat.Details.Addrs { for i, v := range stat.Details.Addrs {
clog.Info("paracross.Commit commit detail", "addr", v, "hash", hex.EncodeToString(stat.Details.BlockHash[i])) clog.Debug("paracross.Commit commit detail", "addr", v, "hash", hex.EncodeToString(stat.Details.BlockHash[i]))
} }
commitCount := len(stat.Details.Addrs) commitCount := len(stat.Details.Addrs)
...@@ -491,7 +492,7 @@ func (a *action) commitTxDone(nodeStatus *pt.ParacrossNodeStatus, stat *pt.Parac ...@@ -491,7 +492,7 @@ func (a *action) commitTxDone(nodeStatus *pt.ParacrossNodeStatus, stat *pt.Parac
saveTitleHeight(a.db, calcTitleHeightKey(stat.Title, stat.Height), stat) saveTitleHeight(a.db, calcTitleHeightKey(stat.Title, stat.Height), stat)
return receipt, nil return receipt, nil
} }
clog.Info("paracross.Commit commit ----pass", "most", most, "mostHash", hex.EncodeToString([]byte(mostHash))) clog.Debug("paracross.Commit commit ----pass", "most", most, "mostHash", hex.EncodeToString([]byte(mostHash)))
stat.Status = pt.ParacrossStatusCommitDone stat.Status = pt.ParacrossStatusCommitDone
saveTitleHeight(a.db, calcTitleHeightKey(stat.Title, stat.Height), stat) saveTitleHeight(a.db, calcTitleHeightKey(stat.Title, stat.Height), stat)
...@@ -520,7 +521,7 @@ func (a *action) commitTxDoneStep2(nodeStatus *pt.ParacrossNodeStatus, stat *pt. ...@@ -520,7 +521,7 @@ func (a *action) commitTxDoneStep2(nodeStatus *pt.ParacrossNodeStatus, stat *pt.
} }
saveTitle(a.db, calcTitleKey(titleStatus.Title), titleStatus) saveTitle(a.db, calcTitleKey(titleStatus.Title), titleStatus)
clog.Info("paracross.Commit commit done", "height", nodeStatus.Height, "statusBlockHash", hex.EncodeToString(nodeStatus.BlockHash)) clog.Debug("paracross.Commit commit done", "height", nodeStatus.Height, "statusBlockHash", hex.EncodeToString(nodeStatus.BlockHash))
//parallel chain not need to process cross commit tx here //parallel chain not need to process cross commit tx here
if types.IsPara() { if types.IsPara() {
...@@ -552,7 +553,7 @@ func (a *action) procCrossTxs(status *pt.ParacrossNodeStatus) (*types.Receipt, e ...@@ -552,7 +553,7 @@ func (a *action) procCrossTxs(status *pt.ParacrossNodeStatus) (*types.Receipt, e
} }
if enableParacrossTransfer && status.Height > 0 && haveCrossTxs { if enableParacrossTransfer && status.Height > 0 && haveCrossTxs {
clog.Info("paracross.Commit commitDone do cross", "height", status.Height, "havecross", haveCrossTxs) clog.Debug("paracross.Commit commitDone do cross", "height", status.Height, "havecross", haveCrossTxs)
crossTxReceipt, err := a.execCrossTxs(status) crossTxReceipt, err := a.execCrossTxs(status)
if err != nil { if err != nil {
return nil, err return nil, err
...@@ -588,7 +589,7 @@ func (a *action) loopCommitTxDone(title string) (*types.Receipt, error) { ...@@ -588,7 +589,7 @@ func (a *action) loopCommitTxDone(title string) (*types.Receipt, error) {
stat, err := getTitleHeight(a.db, calcTitleHeightKey(title, loopHeight)) stat, err := getTitleHeight(a.db, calcTitleHeightKey(title, loopHeight))
if err != nil { if err != nil {
clog.Error("paracross.loopCommitTxDone getTitleHeight failed", "err", err) clog.Error("paracross.loopCommitTxDone getTitleHeight failed", "title", title, "height", loopHeight, "err", err.Error())
return receipt, err return receipt, err
} }
//防止无限循环 //防止无限循环
...@@ -613,20 +614,14 @@ func (a *action) checkCommitTxDone(title string, stat *pt.ParacrossHeightStatus, ...@@ -613,20 +614,14 @@ func (a *action) checkCommitTxDone(title string, stat *pt.ParacrossHeightStatus,
receipt := &types.Receipt{} receipt := &types.Receipt{}
status, err := getTitle(a.db, calcTitleKey(title)) status, err := getTitle(a.db, calcTitleKey(title))
if err != nil { if err != nil {
return nil, errors.Wrapf(err, "getTitle:%s", a.fromaddr) return nil, errors.Wrapf(err, "getTitle:%s", title)
} }
//如果是平行链自共识首次切换,可以在正常流程里面再触发 //待共识的stat的高度大于当前status高度+1,说明共识不连续,退出,如果是平行链自共识首次切换场景,可以在正常流程里面再触发
if stat.Height > status.Height+1 { if stat.Height > status.Height+1 {
return nil, nil return nil, nil
} }
updateCommitAddrs(stat, nodes)
most, _ := getMostCommit(stat)
if !isCommitDone(nodes, most) {
return nil, nil
}
return a.commitTxDoneByStat(stat, status, nodes, receipt) return a.commitTxDoneByStat(stat, status, nodes, receipt)
} }
...@@ -635,18 +630,18 @@ func (a *action) checkCommitTxDone(title string, stat *pt.ParacrossHeightStatus, ...@@ -635,18 +630,18 @@ func (a *action) checkCommitTxDone(title string, stat *pt.ParacrossHeightStatus,
func (a *action) commitTxDoneByStat(stat *pt.ParacrossHeightStatus, titleStatus *pt.ParacrossStatus, func (a *action) commitTxDoneByStat(stat *pt.ParacrossHeightStatus, titleStatus *pt.ParacrossStatus,
nodes map[string]struct{}, receipt *types.Receipt) (*types.Receipt, error) { nodes map[string]struct{}, receipt *types.Receipt) (*types.Receipt, error) {
clog.Info("paracross.commitTxDoneByStat", "stat.title", stat.Title, "stat.height", stat.Height, "notes", len(nodes)) clog.Debug("paracross.commitTxDoneByStat", "stat.title", stat.Title, "stat.height", stat.Height, "notes", len(nodes))
for i, v := range stat.Details.Addrs { for i, v := range stat.Details.Addrs {
clog.Info("paracross.commitTxDoneByStat detail", "addr", v, "hash", hex.EncodeToString(stat.Details.BlockHash[i])) clog.Debug("paracross.commitTxDoneByStat detail", "addr", v, "hash", hex.EncodeToString(stat.Details.BlockHash[i]))
} }
updateCommitAddrs(stat, nodes)
commitCount := len(stat.Details.Addrs) commitCount := len(stat.Details.Addrs)
most, mostHash := getMostCommit(stat) most, mostHash := getMostCommit(stat)
if !isCommitDone(nodes, most) { if !isCommitDone(nodes, most) {
saveTitleHeight(a.db, calcTitleHeightKey(stat.Title, stat.Height), stat) return nil, nil
return receipt, nil
} }
clog.Info("paracross.commitTxDoneByStat ----pass", "most", most, "mostHash", hex.EncodeToString([]byte(mostHash))) clog.Debug("paracross.commitTxDoneByStat ----pass", "most", most, "mostHash", hex.EncodeToString([]byte(mostHash)))
stat.Status = pt.ParacrossStatusCommitDone stat.Status = pt.ParacrossStatusCommitDone
saveTitleHeight(a.db, calcTitleHeightKey(stat.Title, stat.Height), stat) saveTitleHeight(a.db, calcTitleHeightKey(stat.Title, stat.Height), stat)
r := makeCommitStatReceipt(stat) r := makeCommitStatReceipt(stat)
...@@ -669,7 +664,6 @@ func (a *action) commitTxDoneByStat(stat *pt.ParacrossHeightStatus, titleStatus ...@@ -669,7 +664,6 @@ func (a *action) commitTxDoneByStat(stat *pt.ParacrossHeightStatus, titleStatus
//add commit done receipt //add commit done receipt
receiptDone := makeDoneReceipt(a.exec.GetMainHeight(), mostStatus, int32(most), int32(commitCount), int32(len(nodes))) receiptDone := makeDoneReceipt(a.exec.GetMainHeight(), mostStatus, int32(most), int32(commitCount), int32(len(nodes)))
receipt = mergeReceipt(receipt, receiptDone) receipt = mergeReceipt(receipt, receiptDone)
clog.Info("paracross.commitTxDoneByStat ----pass", "most", most, "mostHash", hex.EncodeToString([]byte(mostHash)))
return a.commitTxDoneStep2(mostStatus, stat, titleStatus, receipt) return a.commitTxDoneStep2(mostStatus, stat, titleStatus, receipt)
} }
...@@ -718,7 +712,7 @@ func (a *action) execCrossTx(tx *types.TransactionDetail, crossTxHash []byte) (* ...@@ -718,7 +712,7 @@ func (a *action) execCrossTx(tx *types.TransactionDetail, crossTxHash []byte) (*
return nil, errors.Cause(err) return nil, errors.Cause(err)
} }
clog.Info("paracross.Commit WithdrawCoins", "txHash", hex.EncodeToString(crossTxHash)) clog.Debug("paracross.Commit WithdrawCoins", "txHash", hex.EncodeToString(crossTxHash))
return receiptWithdraw, nil return receiptWithdraw, nil
} }
return nil, nil return nil, nil
...@@ -726,7 +720,7 @@ func (a *action) execCrossTx(tx *types.TransactionDetail, crossTxHash []byte) (* ...@@ -726,7 +720,7 @@ func (a *action) execCrossTx(tx *types.TransactionDetail, crossTxHash []byte) (*
} }
func getCrossTxHashs(api client.QueueProtocolAPI, status *pt.ParacrossNodeStatus) ([][]byte, []byte, error) { func getCrossTxHashs(api client.QueueProtocolAPI, status *pt.ParacrossNodeStatus) ([][]byte, []byte, error) {
if !(status.MainBlockHeight >= getDappForkHeight(pt.ForkCommitTx)) { if status.MainBlockHeight < getDappForkHeight(pt.ForkCommitTx) {
return status.CrossTxHashs, status.CrossTxResult, nil return status.CrossTxHashs, status.CrossTxResult, nil
} }
...@@ -752,8 +746,7 @@ func getCrossTxHashs(api client.QueueProtocolAPI, status *pt.ParacrossNodeStatus ...@@ -752,8 +746,7 @@ func getCrossTxHashs(api client.QueueProtocolAPI, status *pt.ParacrossNodeStatus
if !bytes.Equal(status.CrossTxHashs[0], crossCheckHash) { if !bytes.Equal(status.CrossTxHashs[0], crossCheckHash) {
clog.Error("getCrossTxHashs para hash not equal", "paraHeight", status.Height, clog.Error("getCrossTxHashs para hash not equal", "paraHeight", status.Height,
"mainHeight", status.MainBlockHeight, "mainHash", hex.EncodeToString(status.MainBlockHash), "mainHeight", status.MainBlockHeight, "mainHash", hex.EncodeToString(status.MainBlockHash),
"main.crossHash", hex.EncodeToString(crossCheckHash), "main.crossHash", hex.EncodeToString(crossCheckHash), "commit.crossHash", hex.EncodeToString(status.CrossTxHashs[0]),
"commit.crossHash", hex.EncodeToString(status.CrossTxHashs[0]),
"main.baseHash", hex.EncodeToString(baseCheckTxHash), "commit.baseHash", hex.EncodeToString(status.TxHashs[0])) "main.baseHash", hex.EncodeToString(baseCheckTxHash), "commit.baseHash", hex.EncodeToString(status.TxHashs[0]))
for _, hash := range baseHashs { for _, hash := range baseHashs {
clog.Error("getCrossTxHashs base tx hash", "txhash", hex.EncodeToString(hash)) clog.Error("getCrossTxHashs base tx hash", "txhash", hex.EncodeToString(hash))
...@@ -767,8 +760,7 @@ func getCrossTxHashs(api client.QueueProtocolAPI, status *pt.ParacrossNodeStatus ...@@ -767,8 +760,7 @@ func getCrossTxHashs(api client.QueueProtocolAPI, status *pt.ParacrossNodeStatus
//只获取跨链tx //只获取跨链tx
rst, err := hex.DecodeString(string(status.CrossTxResult)) rst, err := hex.DecodeString(string(status.CrossTxResult))
if err != nil { if err != nil {
clog.Error("getCrossTxHashs decode string", "CrossTxResult", string(status.CrossTxResult), clog.Error("getCrossTxHashs decode rst", "CrossTxResult", string(status.CrossTxResult), "paraHeight", status.Height)
"commit.height", status.Height)
return nil, nil, types.ErrInvalidParam return nil, nil, types.ErrInvalidParam
} }
...@@ -789,7 +781,7 @@ func (a *action) execCrossTxs(status *pt.ParacrossNodeStatus) (*types.Receipt, e ...@@ -789,7 +781,7 @@ func (a *action) execCrossTxs(status *pt.ParacrossNodeStatus) (*types.Receipt, e
} }
for i := 0; i < len(crossTxHashs); i++ { for i := 0; i < len(crossTxHashs); i++ {
clog.Info("paracross.Commit commitDone", "do cross number", i, "hash", hex.EncodeToString(crossTxHashs[i]), clog.Debug("paracross.Commit commitDone", "do cross number", i, "hash", hex.EncodeToString(crossTxHashs[i]),
"res", util.BitMapBit(crossTxResult, uint32(i))) "res", util.BitMapBit(crossTxResult, uint32(i)))
if util.BitMapBit(crossTxResult, uint32(i)) { if util.BitMapBit(crossTxResult, uint32(i)) {
tx, err := GetTx(a.api, crossTxHashs[i]) tx, err := GetTx(a.api, crossTxHashs[i])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment