Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
chain33-pai
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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
szh
chain33-pai
Commits
9afb71e7
Commit
9afb71e7
authored
Nov 10, 2021
by
szh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加空头地址记录
parent
a8c408b1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
89 additions
and
67 deletions
+89
-67
.gitignore
.gitignore
+1
-1
pai.go
service/pai_service/pai.go
+88
-66
No files found.
.gitignore
View file @
9afb71e7
.idea/
.DS_Store
*.exe
build
runtime/*
!runtime/qrcode/bg.jpg
...
...
service/pai_service/pai.go
View file @
9afb71e7
package
pai_service
import
(
"os/exec"
"fmt"
"io"
"strings"
"bufio"
"chain33-pai/models"
"chain33-pai/pkg/chain33"
"chain33-pai/pkg/logging"
"github.com/33cn/chain33/types"
"chain33-pai/models"
"fmt"
"io"
"os/exec"
"strings"
"time"
"github.com/33cn/chain33/types"
"encoding/json"
)
...
...
@@ -19,40 +20,38 @@ var (
pai_serial
string
)
type
Pai
struct
{
Hardware
string
`json:"hardware"`
Revision
string
`json:"revision"`
Serial
string
`json:"serial"`
LocalLastHeight
int64
`json:"local_last_height"`
LastHeight
int64
`json:"last_height"`
IsNtpSync
bool
`json:"is_ntp_sync"`
WalletStatus
*
types
.
WalletStatus
`json:"wallet_status"`
NetInfo
*
types
.
NodeNetInfo
`json:"net_info"`
BtyVersion
*
types
.
VersionInfo
`json:"bty_version"`
Err
string
`json:"err"`
Arch
string
`json:"arch"`
Hardware
string
`json:"hardware"`
Revision
string
`json:"revision"`
Serial
string
`json:"serial"`
LocalLastHeight
int64
`json:"local_last_height"`
LastHeight
int64
`json:"last_height"`
IsNtpSync
bool
`json:"is_ntp_sync"`
WalletStatus
*
types
.
WalletStatus
`json:"wallet_status"`
NetInfo
*
types
.
NodeNetInfo
`json:"net_info"`
BtyVersion
*
types
.
VersionInfo
`json:"bty_version"`
Err
string
`json:"err"`
Arch
string
`json:"arch"`
}
type
MinedInfo
struct
{
MinedAmount
int64
`json:"mined_amount"`
MinedTicketCount
int64
`json:"mined_ticket_count"`
MiningTicketCount
int64
`json:"mining_ticket_count"`
MinerStartTime
int64
`json:"miner_start_time"`
MinerEndTime
int64
`json:"miner_end_time"`
ServeTime
int64
`json:"serve_time"`
MinedList
[]
*
MinedTxInfo
`json:"mined_list"`
MinedTotal
int64
`json:"mined_total"`
MinedAmount
int64
`json:"mined_amount"`
MinedTicketCount
int64
`json:"mined_ticket_count"`
MiningTicketCount
int64
`json:"mining_ticket_count"`
MinerStartTime
int64
`json:"miner_start_time"`
MinerEndTime
int64
`json:"miner_end_time"`
ServeTime
int64
`json:"serve_time"`
MinedList
[]
*
MinedTxInfo
`json:"mined_list"`
MinedTotal
int64
`json:"mined_total"`
}
type
MinedTxInfo
struct
{
Height
int64
`json:"height"`
Hash
string
`json:"hash"`
Amount
int64
`json:"amount"`
BlockTime
int64
`json:"block_time"`
Height
int64
`json:"height"`
Hash
string
`json:"hash"`
Amount
int64
`json:"amount"`
BlockTime
int64
`json:"block_time"`
}
type
ReqMineTime
struct
{
Addr
string
`json:"addr" binding:"required"`
Flag
string
`json:"flag"`
...
...
@@ -73,11 +72,11 @@ func (p *Pai) GetConfig() bool {
if
p
.
Serial
!=
""
{
return
true
}
config
,
err
:=
getPaiConfig
(
"cat"
,
"/proc/cpuinfo"
)
config
,
err
:=
getPaiConfig
(
"cat"
,
"/proc/cpuinfo"
)
if
err
!=
nil
{
return
false
}
if
_
,
ok
:=
config
[
"serial"
];
ok
{
if
_
,
ok
:=
config
[
"serial"
];
ok
{
p
.
Serial
=
config
[
"serial"
]
p
.
Hardware
=
config
[
"hardware"
]
p
.
Revision
=
config
[
"revision"
]
...
...
@@ -88,13 +87,13 @@ func (p *Pai) GetConfig() bool {
func
(
p
*
Pai
)
GetDevstatus
()
error
{
client
:=
&
chain33
.
PaiClient
{}
peerinfo
,
err
:=
client
.
GetPeerInfo
()
peerinfo
,
err
:=
client
.
GetPeerInfo
()
if
err
!=
nil
{
logging
.
Error
(
"GetDevstatus peerinfo err"
,
err
)
logging
.
Error
(
"GetDevstatus peerinfo err"
,
err
)
return
err
}
for
_
,
v
:=
range
peerinfo
.
Peers
{
for
_
,
v
:=
range
peerinfo
.
Peers
{
if
p
.
LastHeight
<
v
.
Header
.
Height
{
p
.
LastHeight
=
v
.
Header
.
Height
}
...
...
@@ -102,28 +101,28 @@ func (p *Pai) GetDevstatus() error {
p
.
LocalLastHeight
=
v
.
Header
.
Height
}
}
sync
,
err
:=
client
.
IsNtpClockSync
()
sync
,
err
:=
client
.
IsNtpClockSync
()
if
err
!=
nil
{
logging
.
Error
(
"GetDevstatus IsNtpClockSync err"
,
err
)
logging
.
Error
(
"GetDevstatus IsNtpClockSync err"
,
err
)
return
err
}
p
.
IsNtpSync
=
sync
.
IsOk
netinfo
,
err
:=
client
.
GetNetInfo
()
netinfo
,
err
:=
client
.
GetNetInfo
()
if
err
!=
nil
{
logging
.
Error
(
"GetDevstatus GetNetInfo err"
,
err
)
logging
.
Error
(
"GetDevstatus GetNetInfo err"
,
err
)
return
err
}
p
.
NetInfo
=
netinfo
walletstatus
,
err
:=
client
.
GetWalletStatus
()
walletstatus
,
err
:=
client
.
GetWalletStatus
()
if
err
!=
nil
{
logging
.
Error
(
"GetDevstatus GetWalletStatus err"
,
err
)
logging
.
Error
(
"GetDevstatus GetWalletStatus err"
,
err
)
return
err
}
p
.
WalletStatus
=
walletstatus
return
nil
}
func
getPaiConfig
(
command
string
,
arg
...
string
)
(
config
map
[
string
]
string
,
err
error
)
{
func
getPaiConfig
(
command
string
,
arg
...
string
)
(
config
map
[
string
]
string
,
err
error
)
{
//获取操作系统版本信息
list
:=
make
(
map
[
string
]
string
,
0
)
...
...
@@ -132,19 +131,19 @@ func getPaiConfig(command string ,arg ...string) (config map[string]string,err e
//fmt.Println(stdout)
if
err
!=
nil
{
fmt
.
Println
(
err
)
return
nil
,
err
return
nil
,
err
}
defer
stdout
.
Close
()
if
err
:=
cmd
.
Start
();
err
!=
nil
{
fmt
.
Println
(
err
)
return
nil
,
err
return
nil
,
err
}
rd
:=
bufio
.
NewReader
(
stdout
)
for
{
line
,
err
:=
rd
.
ReadString
(
'\n'
)
if
err
!=
nil
||
io
.
EOF
==
err
{
if
err
!=
nil
||
io
.
EOF
==
err
{
break
}
else
{
}
else
{
//fmt.Println("line", line)
l
:=
strings
.
Split
(
line
,
":"
)
...
...
@@ -165,23 +164,23 @@ func getPaiConfig(command string ,arg ...string) (config map[string]string,err e
return
list
,
nil
}
func
(
p
*
Pai
)
GetTicketInfo
(
req
*
models
.
ReqTicketInfo
)
(
*
MinedInfo
,
error
)
{
func
(
p
*
Pai
)
GetTicketInfo
(
req
*
models
.
ReqTicketInfo
)
(
*
MinedInfo
,
error
)
{
var
info
MinedInfo
txsList
:=
make
([]
*
MinedTxInfo
,
0
)
stat
,
err
:=
models
.
GetAddr
(
req
.
Addr
)
txsList
:=
make
([]
*
MinedTxInfo
,
0
)
stat
,
err
:=
models
.
GetAddr
(
req
.
Addr
)
if
err
!=
nil
{
logging
.
Error
(
"models.GetAddr err"
,
err
)
return
nil
,
err
logging
.
Error
(
"models.GetAddr err"
,
err
)
return
nil
,
err
}
if
req
.
Detail
{
count
,
err
:=
models
.
GetMinerTxsTotal
(
req
.
Addr
)
count
,
err
:=
models
.
GetMinerTxsTotal
(
req
.
Addr
)
if
err
!=
nil
{
logging
.
Error
(
"models.GetMinerTxsCount err"
,
err
)
logging
.
Error
(
"models.GetMinerTxsCount err"
,
err
)
}
txs
,
err
:=
models
.
GetMinerTxs
(
req
)
txs
,
err
:=
models
.
GetMinerTxs
(
req
)
if
err
!=
nil
{
logging
.
Error
(
"models.GetAddrs err"
,
err
)
return
nil
,
err
logging
.
Error
(
"models.GetAddrs err"
,
err
)
return
nil
,
err
}
for
_
,
v
:=
range
txs
{
var
t
MinedTxInfo
...
...
@@ -189,7 +188,7 @@ func (p *Pai) GetTicketInfo(req *models.ReqTicketInfo) (*MinedInfo,error) {
t
.
Amount
=
v
.
Amount
t
.
BlockTime
=
v
.
Time
t
.
Hash
=
v
.
Hash
txsList
=
append
(
txsList
,
&
t
)
txsList
=
append
(
txsList
,
&
t
)
}
info
.
MinedTotal
=
count
}
...
...
@@ -201,14 +200,14 @@ func (p *Pai) GetTicketInfo(req *models.ReqTicketInfo) (*MinedInfo,error) {
info
.
ServeTime
=
time
.
Now
()
.
Unix
()
info
.
MinedList
=
txsList
return
&
info
,
nil
return
&
info
,
nil
}
func
UploadInfo
(
KP
map
[
string
]
string
)
error
{
history
:=
&
models
.
RaspDevHistory
{
Addr
:
KP
[
"addr"
],
Info
:
KP
[
"info"
],
Addtime
:
KP
[
"date"
],
Addr
:
KP
[
"addr"
],
Info
:
KP
[
"info"
],
Addtime
:
KP
[
"date"
],
}
err
:=
models
.
AddDevHistory
(
history
)
...
...
@@ -220,6 +219,30 @@ func UploadInfo(KP map[string]string) error {
if
err
!=
nil
{
return
err
}
if
KP
[
"accounts"
]
!=
""
{
err
=
convertAccountList
(
KP
[
"accounts"
])
if
err
!=
nil
{
return
err
}
}
return
nil
}
func
convertAccountList
(
accstr
string
)
error
{
accountList
:=
make
([]
*
models
.
RaspAddrAccounts
,
0
)
err
:=
json
.
Unmarshal
([]
byte
(
accstr
),
&
accountList
)
if
err
!=
nil
{
logging
.
Error
(
"convertAccountList"
,
"err"
,
err
)
return
err
}
for
_
,
v
:=
range
accountList
{
v
.
Balance
=
v
.
Balance
/
1e8
v
.
Frozen
=
v
.
Frozen
/
1e8
err
=
models
.
InsertNewAccounts
(
v
)
if
err
!=
nil
{
return
err
}
}
return
nil
}
...
...
@@ -228,7 +251,7 @@ func convertDevList(params map[string]string) models.RaspDevList {
var
rasp
models
.
RaspDevList
rasp
.
Addr
=
params
[
"addr"
]
rasp
.
PaiVersion
=
params
[
"version"
]
err
:=
json
.
Unmarshal
([]
byte
(
params
[
"info"
]),
&
pai
)
err
:=
json
.
Unmarshal
([]
byte
(
params
[
"info"
]),
&
pai
)
if
err
!=
nil
{
rasp
.
Error
=
err
.
Error
()
return
rasp
...
...
@@ -244,7 +267,7 @@ func convertDevList(params map[string]string) models.RaspDevList {
}
else
if
pai
.
WalletStatus
.
IsTicketLock
&&
pai
.
WalletStatus
.
IsWalletLock
{
rasp
.
WalletStatus
=
3
}
laddr
:=
strings
.
Split
(
pai
.
NetInfo
.
Externaladdr
,
":"
)
laddr
:=
strings
.
Split
(
pai
.
NetInfo
.
Externaladdr
,
":"
)
if
len
(
laddr
)
==
2
{
rasp
.
ExtIp
=
laddr
[
0
]
}
else
{
...
...
@@ -256,4 +279,4 @@ func convertDevList(params map[string]string) models.RaspDevList {
rasp
.
NodeStatus
=
0
}
return
rasp
}
\ No newline at end of file
}
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