Skip to content

Commit a70fffc

Browse files
authoredJan 29, 2024
Merge pull request #599 from frankcrypto2023/dev/1.2
stats gbt2.0
2 parents d913de8 + b23e554 commit a70fffc

File tree

3 files changed

+25
-8
lines changed

3 files changed

+25
-8
lines changed
 

‎params/params.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ package params
88
import (
99
"encoding/hex"
1010
"errors"
11+
"strings"
12+
"time"
13+
1114
"github.com/Qitmeer/qng/common/hash"
1215
"github.com/Qitmeer/qng/core/protocol"
1316
"github.com/Qitmeer/qng/core/types"
1417
"github.com/Qitmeer/qng/core/types/pow"
1518
"github.com/Qitmeer/qng/ledger"
16-
"strings"
17-
"time"
1819
)
1920

2021
// CheckForDuplicateHashes checks for duplicate hashes when validating blocks.

‎services/miner/api.go

+12-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"bytes"
77
"encoding/hex"
88
"fmt"
9+
"time"
10+
911
"github.com/Qitmeer/qng/common/hash"
1012
"github.com/Qitmeer/qng/core/json"
1113
"github.com/Qitmeer/qng/core/types"
@@ -15,7 +17,6 @@ import (
1517
"github.com/Qitmeer/qng/rpc/api"
1618
"github.com/Qitmeer/qng/rpc/client/cmds"
1719
"github.com/Qitmeer/qng/services/mining"
18-
"time"
1920
)
2021

2122
const (
@@ -171,11 +172,21 @@ func (api *PublicMinerAPI) GetRemoteGBT(powType byte, extraNonce *bool) (interfa
171172
if extraNonce != nil && *extraNonce {
172173
coinbaseFlags = mining.CoinbaseFlagsDynamic
173174
}
175+
start := time.Now().UnixMilli()
176+
api.miner.stats.TotalGbtRequests++
177+
174178
err := api.miner.RemoteMining(pow.PowType(powType), coinbaseFlags, reply)
175179
if err != nil {
176180
return nil, err
177181
}
178182
resp := <-reply
183+
txcount := len(api.miner.template.Block.Transactions)
184+
if err := api.checkGBTTime(txcount); err != nil {
185+
api.miner.stats.MempoolEmptyWarns++
186+
return nil, err
187+
}
188+
api.miner.stats.LastestMempoolEmptyTimestamp = 0
189+
api.miner.StatsGbtRequest(time.Now().UnixMilli()-start, txcount, api.miner.template.Block.Header.ParentRoot.String())
179190
return resp.result, resp.err
180191
}
181192

‎services/miner/miner.go

+10-5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ import (
55
"context"
66
ejson "encoding/json"
77
"fmt"
8+
"math/rand"
9+
"net/http"
10+
"sync"
11+
"time"
12+
813
"github.com/Qitmeer/qng/common/hash"
914
"github.com/Qitmeer/qng/common/roughtime"
1015
"github.com/Qitmeer/qng/config"
@@ -23,10 +28,6 @@ import (
2328
"github.com/Qitmeer/qng/rpc"
2429
"github.com/Qitmeer/qng/services/mempool"
2530
"github.com/Qitmeer/qng/services/mining"
26-
"math/rand"
27-
"net/http"
28-
"sync"
29-
"time"
3031
)
3132

3233
const (
@@ -657,6 +658,8 @@ func (m *Miner) submitBlockHeader(header *types.BlockHeader, extraNonce uint64)
657658
if !IsEqualForMiner(&m.template.Block.Header, header) {
658659
return nil, fmt.Errorf("You're overdue")
659660
}
661+
662+
start := time.Now().UnixMilli()
660663
block, err := m.template.Block.Clone()
661664
if err != nil {
662665
return nil, err
@@ -681,7 +684,9 @@ func (m *Miner) submitBlockHeader(header *types.BlockHeader, extraNonce uint64)
681684
block.Header.Difficulty = header.Difficulty
682685
block.Header.Timestamp = header.Timestamp
683686
block.Header.Pow = header.Pow
684-
return m.submitBlock(types.NewBlock(block))
687+
res, err := m.submitBlock(types.NewBlock(block))
688+
m.StatsSubmit(time.Now().UnixMilli()-start, header.BlockHash().String(), len(block.Transactions)-1)
689+
return res, err
685690
}
686691

687692
func (m *Miner) CanMining() error {

0 commit comments

Comments
 (0)
Please sign in to comment.