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
0
Merge Requests
0
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
ligaishun
chain33-pai
Commits
9c84ca8d
Commit
9c84ca8d
authored
Oct 11, 2019
by
szh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add minetime
parent
40116077
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
94 additions
and
19 deletions
+94
-19
raspberry.sql
docs/sql/raspberry.sql
+3
-1
miner.go
miner/miner.go
+7
-2
raspMinerStat.go
models/raspMinerStat.go
+2
-10
raspMinerTxs.go
models/raspMinerTxs.go
+1
-1
pai.go
routers/api/v1/pai.go
+43
-1
router.go
routers/router.go
+1
-0
pai.go
service/pai_service/pai.go
+37
-4
No files found.
docs/sql/raspberry.sql
View file @
9c84ca8d
...
@@ -10,7 +10,7 @@ Target Server Type : MYSQL
...
@@ -10,7 +10,7 @@ Target Server Type : MYSQL
Target Server Version : 50553
Target Server Version : 50553
File Encoding : 65001
File Encoding : 65001
Date: 2019-10-
09 11:53:20
Date: 2019-10-
11 11:25:55
*/
*/
SET
FOREIGN_KEY_CHECKS
=
0
;
SET
FOREIGN_KEY_CHECKS
=
0
;
...
@@ -37,6 +37,8 @@ CREATE TABLE `rasp_miner_stat` (
...
@@ -37,6 +37,8 @@ CREATE TABLE `rasp_miner_stat` (
`total`
bigint
(
20
)
DEFAULT
'0'
COMMENT
'ticket总额'
,
`total`
bigint
(
20
)
DEFAULT
'0'
COMMENT
'ticket总额'
,
`balance`
bigint
(
20
)
DEFAULT
'0'
COMMENT
'ticket合约中余额'
,
`balance`
bigint
(
20
)
DEFAULT
'0'
COMMENT
'ticket合约中余额'
,
`frozen`
bigint
(
20
)
DEFAULT
'0'
COMMENT
'ticket合约中冻结得余额'
,
`frozen`
bigint
(
20
)
DEFAULT
'0'
COMMENT
'ticket合约中冻结得余额'
,
`miner_start_time`
int
(
11
)
DEFAULT
'0'
COMMENT
'开始挖矿记录时间 前端用 '
,
`miner_end_time`
int
(
11
)
DEFAULT
'0'
COMMENT
'挖矿中止时间 前端用'
,
`height`
bigint
(
20
)
DEFAULT
'0'
,
`height`
bigint
(
20
)
DEFAULT
'0'
,
`time`
int
(
11
)
DEFAULT
'0'
,
`time`
int
(
11
)
DEFAULT
'0'
,
PRIMARY
KEY
(
`addr`
)
PRIMARY
KEY
(
`addr`
)
...
...
miner/miner.go
View file @
9c84ca8d
...
@@ -76,6 +76,7 @@ func SyncBlock() {
...
@@ -76,6 +76,7 @@ func SyncBlock() {
}
}
statList
=
append
(
statList
,
stat
)
statList
=
append
(
statList
,
stat
)
txsList
=
append
(
txsList
,
txs
)
txsList
=
append
(
txsList
,
txs
)
logging
.
Info
(
"DealBlock"
,
height
)
}(
height
)
}(
height
)
}
}
//db.SetMainNetHeight(int(processHeight + types.MaxProcessBlocks + 1))
//db.SetMainNetHeight(int(processHeight + types.MaxProcessBlocks + 1))
...
@@ -106,8 +107,12 @@ func SyncBlock() {
...
@@ -106,8 +107,12 @@ func SyncBlock() {
}
}
if
len
(
txsList
)
!=
int
(
maxDownload
)
||
len
(
txsList
)
!=
len
(
statList
)
{
if
len
(
txsList
)
!=
int
(
maxDownload
)
||
len
(
txsList
)
!=
len
(
statList
)
{
logging
.
Error
(
"txsList"
,
len
(
txsList
),
"txsMap"
,
len
(
txsMap
),
"statList"
,
len
(
statList
))
logging
.
Error
(
"txsList"
,
len
(
txsList
),
"txsMap"
,
len
(
txsMap
),
"statList"
,
len
(
statList
))
logging
.
Error
(
txsList
)
for
_
,
v
:=
range
txsList
{
logging
.
Error
(
txsMap
)
logging
.
Info
(
"==txslist"
,
*
v
)
}
for
_
,
v
:=
range
statList
{
logging
.
Info
(
"==statList"
,
*
v
)
}
panic
(
"exception txs not eq expect"
)
panic
(
"exception txs not eq expect"
)
}
}
err
:=
models
.
UpdateBlocks
(
txsMap
,
statMap
,
processHeight
+
maxDownload
)
err
:=
models
.
UpdateBlocks
(
txsMap
,
statMap
,
processHeight
+
maxDownload
)
...
...
models/raspMinerStat.go
View file @
9c84ca8d
...
@@ -13,6 +13,8 @@ type RaspMinerStat struct {
...
@@ -13,6 +13,8 @@ type RaspMinerStat struct {
Total
int64
`json:"total"`
Total
int64
`json:"total"`
Balance
int64
`json:"balance"`
Balance
int64
`json:"balance"`
Frozen
int64
`json:"frozen"`
Frozen
int64
`json:"frozen"`
MinerStartTime
int64
`json:"miner_start_time"`
MinerEndTime
int64
`json:"miner_end_time"`
Height
int64
`json:"height"`
Height
int64
`json:"height"`
Time
int64
`json:"time"`
Time
int64
`json:"time"`
}
}
...
@@ -42,16 +44,6 @@ func GetAddrTotal(maps interface{}) (int, error) {
...
@@ -42,16 +44,6 @@ func GetAddrTotal(maps interface{}) (int, error) {
return
count
,
nil
return
count
,
nil
}
}
// GetAddrs gets a list of articles based on paging constraints
func
GetAddrs
(
pageNum
int
,
pageSize
int
,
maps
interface
{})
([]
*
RaspMinerStat
,
error
)
{
var
stat
[]
*
RaspMinerStat
err
:=
db
.
Where
(
maps
)
.
Offset
(
pageNum
)
.
Limit
(
pageSize
)
.
Find
(
&
stat
)
.
Error
if
err
!=
nil
&&
err
!=
gorm
.
ErrRecordNotFound
{
return
nil
,
err
}
return
stat
,
nil
}
// GetAddr Get a single addr based on ID
// GetAddr Get a single addr based on ID
func
GetAddr
(
addr
string
)
(
*
RaspMinerStat
,
error
)
{
func
GetAddr
(
addr
string
)
(
*
RaspMinerStat
,
error
)
{
...
...
models/raspMinerTxs.go
View file @
9c84ca8d
...
@@ -39,7 +39,7 @@ func GetMinerTxsTotal(addr string) (int, error) {
...
@@ -39,7 +39,7 @@ func GetMinerTxsTotal(addr string) (int, error) {
}
}
// GetAddrs gets a list of articles based on paging constraints
// GetAddrs gets a list of articles based on paging constraints
func
GetMinerTxs
(
pageNum
int
,
pageSize
int
,
maps
interface
{})
([]
*
RaspMinerTxs
,
error
)
{
func
GetMinerTxs
(
pageNum
int
32
,
pageSize
int32
,
maps
interface
{})
([]
*
RaspMinerTxs
,
error
)
{
var
txs
[]
*
RaspMinerTxs
var
txs
[]
*
RaspMinerTxs
err
:=
db
.
Where
(
maps
)
.
Offset
(
pageNum
)
.
Limit
(
pageSize
)
.
Find
(
&
txs
)
.
Error
err
:=
db
.
Where
(
maps
)
.
Offset
(
pageNum
)
.
Limit
(
pageSize
)
.
Find
(
&
txs
)
.
Error
if
err
!=
nil
&&
err
!=
gorm
.
ErrRecordNotFound
{
if
err
!=
nil
&&
err
!=
gorm
.
ErrRecordNotFound
{
...
...
routers/api/v1/pai.go
View file @
9c84ca8d
...
@@ -6,8 +6,22 @@ import (
...
@@ -6,8 +6,22 @@ import (
"chain33-pai/pkg/app"
"chain33-pai/pkg/app"
"chain33-pai/pkg/e"
"chain33-pai/pkg/e"
"chain33-pai/service/pai_service"
"chain33-pai/service/pai_service"
"chain33-pai/service/stat_service"
)
)
type
ReqTicketInfo
struct
{
Addr
string
`json:"addr" binding:"requried"`
Page
int32
`json:"page"`
Pageszie
int32
`json:"pageszie"`
Detail
bool
`json:"detail"`
}
type
ReqMineTime
struct
{
Addr
string
`json:"addr" binding:"requried"`
StartTime
int64
`json:"start_time"`
EndTime
int64
`json:"end_time"`
}
func
GetDevdetail
(
c
*
gin
.
Context
)
{
func
GetDevdetail
(
c
*
gin
.
Context
)
{
appG
:=
app
.
Gin
{
C
:
c
}
appG
:=
app
.
Gin
{
C
:
c
}
var
pai
pai_service
.
Pai
var
pai
pai_service
.
Pai
...
@@ -33,10 +47,37 @@ func GetDevstatus(c *gin.Context) {
...
@@ -33,10 +47,37 @@ func GetDevstatus(c *gin.Context) {
func
GetTicketInfo
(
c
*
gin
.
Context
)
{
func
GetTicketInfo
(
c
*
gin
.
Context
)
{
appG
:=
app
.
Gin
{
C
:
c
}
appG
:=
app
.
Gin
{
C
:
c
}
var
req
ReqTicketInfo
c
.
BindJSON
(
&
req
)
if
req
.
Detail
{
if
req
.
Page
==
0
{
req
.
Page
=
int32
(
1
)
}
if
req
.
Pageszie
==
0
{
req
.
Pageszie
=
int32
(
10
)
}
}
var
pai
pai_service
.
Pai
var
pai
pai_service
.
Pai
info
,
err
:=
pai
.
GetTicketInfo
()
info
,
err
:=
pai
.
GetTicketInfo
(
&
req
)
if
err
!=
nil
{
if
err
!=
nil
{
appG
.
Response
(
http
.
StatusOK
,
e
.
ERROR
,
nil
)
appG
.
Response
(
http
.
StatusOK
,
e
.
ERROR
,
nil
)
}
}
appG
.
Response
(
http
.
StatusOK
,
e
.
SUCCESS
,
info
)
appG
.
Response
(
http
.
StatusOK
,
e
.
SUCCESS
,
info
)
}
func
RecordMineTime
(
c
*
gin
.
Context
)
{
appG
:=
app
.
Gin
{
C
:
c
}
var
req
ReqMineTime
err
:=
c
.
BindJSON
(
&
req
)
if
err
!=
nil
{
appG
.
Response
(
http
.
StatusOK
,
e
.
ERROR
,
nil
)
}
var
stat
stat_service
.
RaspMinerStat
err
=
stat
.
SetMineTime
(
req
.
Addr
,
req
.
StartTime
,
req
.
EndTime
)
if
err
!=
nil
{
appG
.
Response
(
http
.
StatusOK
,
e
.
ERROR
,
nil
)
}
appG
.
Response
(
http
.
StatusOK
,
e
.
SUCCESS
,
nil
)
}
}
\ No newline at end of file
routers/router.go
View file @
9c84ca8d
...
@@ -23,6 +23,7 @@ func InitRouter() *gin.Engine {
...
@@ -23,6 +23,7 @@ func InitRouter() *gin.Engine {
apiv1
:=
r
.
Group
(
"/pai"
)
apiv1
:=
r
.
Group
(
"/pai"
)
//获取树莓派基本信息
//获取树莓派基本信息
apiv1
.
POST
(
"/ticketinfo"
,
v1
.
GetTicketInfo
)
apiv1
.
POST
(
"/ticketinfo"
,
v1
.
GetTicketInfo
)
apiv1
.
POST
(
"/minetime"
,
v1
.
RecordMineTime
)
//apiv1.Use(jwt.JWT())
//apiv1.Use(jwt.JWT())
//{
//{
//
//
...
...
service/pai_service/pai.go
View file @
9c84ca8d
...
@@ -9,6 +9,8 @@ import (
...
@@ -9,6 +9,8 @@ import (
"chain33-pai/pkg/chain33"
"chain33-pai/pkg/chain33"
"chain33-pai/pkg/logging"
"chain33-pai/pkg/logging"
"github.com/33cn/chain33/types"
"github.com/33cn/chain33/types"
"chain33-pai/routers/api/v1"
"chain33-pai/models"
)
)
var
(
var
(
...
@@ -28,8 +30,11 @@ type Pai struct {
...
@@ -28,8 +30,11 @@ type Pai struct {
}
}
type
MinedInfo
struct
{
type
MinedInfo
struct
{
Mined
int64
`json:"mined"`
MinedAmount
int64
`json:"mined_amount"`
Tickets
int64
`json:"tickets"`
MinedTicketCount
int64
`json:"mined_ticket_count"`
MiningTicketCount
int64
`json:"mining_ticket_count"`
MinerStartTime
int64
`json:"miner_start_time"`
MinerEndTime
int64
`json:"miner_end_time"`
MinedList
[]
*
MinedTxInfo
`json:"mined_list"`
MinedList
[]
*
MinedTxInfo
`json:"mined_list"`
}
}
...
@@ -138,6 +143,33 @@ func getPaiConfig(command string ,arg ...string) (config map[string]string,err e
...
@@ -138,6 +143,33 @@ func getPaiConfig(command string ,arg ...string) (config map[string]string,err e
return
list
,
nil
return
list
,
nil
}
}
func
(
p
*
Pai
)
GetTicketInfo
()
(
*
MinedInfo
,
error
)
{
func
(
p
*
Pai
)
GetTicketInfo
(
req
*
v1
.
ReqTicketInfo
)
(
*
MinedInfo
,
error
)
{
return
nil
,
nil
var
info
MinedInfo
txsList
:=
make
([]
*
MinedTxInfo
,
0
)
stat
,
err
:=
models
.
GetAddr
(
req
.
Addr
)
if
err
!=
nil
{
logging
.
Error
(
"models.GetAddr err"
,
err
)
return
nil
,
err
}
if
req
.
Detail
{
txs
,
err
:=
models
.
GetMinerTxs
(
req
.
Page
,
req
.
Pageszie
,
map
[
string
]
interface
{}{
"addr"
:
req
.
Addr
})
if
err
!=
nil
{
logging
.
Error
(
"models.GetAddrs err"
,
err
)
return
nil
,
err
}
for
_
,
v
:=
range
txs
{
var
t
MinedTxInfo
t
.
Height
=
v
.
Height
t
.
Amount
=
v
.
Amount
t
.
BlockTime
=
v
.
Time
txsList
=
append
(
txsList
,
&
t
)
}
}
info
.
MinedAmount
=
stat
.
MinedAmount
info
.
MinedTicketCount
=
stat
.
MinedTicketCount
info
.
MiningTicketCount
=
stat
.
MiningTicketCount
info
.
MinerStartTime
=
stat
.
MinerStartTime
info
.
MinerEndTime
=
stat
.
MinerEndTime
info
.
MinedList
=
txsList
return
&
info
,
nil
}
}
\ 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