Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
power-node
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
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
Odysseus
power-node
Commits
ec138100
Commit
ec138100
authored
Feb 21, 2024
by
duanjinfei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add device info resp
parent
91d26269
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
40 additions
and
24 deletions
+40
-24
rootcmd.go
cmd/rootcmd.go
+3
-1
config.go
conf/config.go
+10
-0
msg_resp.go
nm/msg_resp.go
+1
-0
start.go
nm/start.go
+24
-21
start.sh
start.sh
+2
-2
No files found.
cmd/rootcmd.go
View file @
ec138100
...
@@ -17,12 +17,13 @@ import (
...
@@ -17,12 +17,13 @@ import (
)
)
var
(
var
(
rewardAddr
,
dockerServer
string
rewardAddr
,
dockerServer
,
externalIp
string
)
)
func
init
()
{
func
init
()
{
RootCmd
.
PersistentFlags
()
.
StringVarP
(
&
rewardAddr
,
"reward"
,
"r"
,
""
,
"please enter a reward address"
)
RootCmd
.
PersistentFlags
()
.
StringVarP
(
&
rewardAddr
,
"reward"
,
"r"
,
""
,
"please enter a reward address"
)
RootCmd
.
PersistentFlags
()
.
StringVarP
(
&
dockerServer
,
"docker_server"
,
"d"
,
""
,
"please enter docker server address"
)
RootCmd
.
PersistentFlags
()
.
StringVarP
(
&
dockerServer
,
"docker_server"
,
"d"
,
""
,
"please enter docker server address"
)
RootCmd
.
PersistentFlags
()
.
StringVarP
(
&
externalIp
,
"externalIp"
,
"e"
,
""
,
"please enter server external ip address"
)
cobra
.
OnInitialize
(
initConfig
)
cobra
.
OnInitialize
(
initConfig
)
}
}
...
@@ -47,6 +48,7 @@ var RootCmd = &cobra.Command{
...
@@ -47,6 +48,7 @@ var RootCmd = &cobra.Command{
log
.
Error
(
"Please set right reward address"
)
log
.
Error
(
"Please set right reward address"
)
return
return
}
}
conf
.
GetConfig
()
.
SetExternalIp
(
externalIp
)
log
.
Info
(
"Enter reward address:"
,
rewardAddr
)
log
.
Info
(
"Enter reward address:"
,
rewardAddr
)
log
.
InitLog
(
log
.
LogConfig
{
Path
:
"logs"
,
Level
:
"debug"
,
Save
:
3
})
log
.
InitLog
(
log
.
LogConfig
{
Path
:
"logs"
,
Level
:
"debug"
,
Save
:
3
})
go
nm
.
StartMonitor
()
go
nm
.
StartMonitor
()
...
...
conf/config.go
View file @
ec138100
...
@@ -14,6 +14,7 @@ type Config struct {
...
@@ -14,6 +14,7 @@ type Config struct {
DockerServer
string
DockerServer
string
BenefitAddress
string
BenefitAddress
string
HeartRespTimeMillis
int64
HeartRespTimeMillis
int64
ExternalIp
string
SignPublicAddress
common
.
Address
SignPublicAddress
common
.
Address
SignPrivateKey
*
ecdsa
.
PrivateKey
SignPrivateKey
*
ecdsa
.
PrivateKey
NmSeed
string
`json:"nm_seed"`
NmSeed
string
`json:"nm_seed"`
...
@@ -36,6 +37,15 @@ func GetConfig() *Config {
...
@@ -36,6 +37,15 @@ func GetConfig() *Config {
return
_cfg
return
_cfg
}
}
func
(
c
*
Config
)
SetExternalIp
(
externalIp
string
)
{
log
.
Info
(
"Setting external ip to:"
,
externalIp
)
c
.
ExternalIp
=
externalIp
}
func
(
c
*
Config
)
GetExternalIp
()
string
{
return
c
.
ExternalIp
}
func
(
c
*
Config
)
SetRewardAddress
(
addr
string
)
bool
{
func
(
c
*
Config
)
SetRewardAddress
(
addr
string
)
bool
{
isAddr
:=
common
.
IsHexAddress
(
addr
)
isAddr
:=
common
.
IsHexAddress
(
addr
)
if
isAddr
{
if
isAddr
{
...
...
nm/msg_resp.go
View file @
ec138100
...
@@ -136,6 +136,7 @@ func DeviceInfoResp(params ...interface{}) *nodemanagerV1.WorkerMessage {
...
@@ -136,6 +136,7 @@ func DeviceInfoResp(params ...interface{}) *nodemanagerV1.WorkerMessage {
BenefitAddress
:
conf
.
GetConfig
()
.
BenefitAddress
,
BenefitAddress
:
conf
.
GetConfig
()
.
BenefitAddress
,
Devices
:
devices
,
Devices
:
devices
,
DeviceSignature
:
[]
byte
(
""
),
DeviceSignature
:
[]
byte
(
""
),
DeviceIps
:
[]
string
{
conf
.
GetConfig
()
.
GetExternalIp
()},
},
},
},
},
}
}
...
...
nm/start.go
View file @
ec138100
...
@@ -66,35 +66,38 @@ func StartMonitor() {
...
@@ -66,35 +66,38 @@ func StartMonitor() {
connectNodeManagerCount
++
connectNodeManagerCount
++
}
}
}
}
log
.
Info
(
"Monitoring node manager client thread start......"
)
ticker
:=
time
.
NewTicker
(
time
.
Second
*
5
)
ticker
:=
time
.
NewTicker
(
time
.
Second
*
5
)
for
{
for
{
select
{
select
{
case
<-
ticker
.
C
:
case
<-
ticker
.
C
:
log
.
Info
(
"Monitoring node manager client thread start......"
)
for
_
,
managerClient
:=
range
usedNodeManagerClient
{
for
_
,
managerClient
:=
range
usedNodeManagerClient
{
if
!
managerClient
.
GetStatus
()
{
if
!
managerClient
.
GetStatus
()
{
log
.
Warn
(
"The Node manager client is failed:"
,
managerClient
.
Endpoint
)
manager
:=
getNodeManager
(
managerClient
.
Endpoint
)
manager
:=
getNodeManager
(
managerClient
.
Endpoint
)
if
manager
==
nil
{
if
manager
==
nil
{
log
.
Warn
(
"The managerClient is not exist:"
,
managerClient
.
Endpoint
)
log
.
Warn
(
"The managerClient is not exist:"
,
managerClient
.
Endpoint
)
continue
continue
}
}
isSuccess
:=
false
if
!
managerClient
.
IsDel
{
if
!
managerClient
.
IsDel
{
// TODO: 重试连接三次
// TODO: 重试连接三次
isSuccess
=
inputNodeManagerChan
(
manager
,
managerClient
)
isSuccess
:=
inputNodeManagerChan
(
manager
,
managerClient
)
log
.
Warn
(
"Try to connect node manager client:"
,
manager
.
Info
.
Endpoint
)
if
isSuccess
{
if
isSuccess
{
log
.
Info
(
"Connect node manager client success:"
,
manager
.
Info
.
Endpoint
)
continue
continue
}
}
}
}
managerClient
.
IsDel
=
true
managerClient
.
IsDel
=
true
unUsedNodeManagers
:=
getUnUsedNodeManagers
()
unUsedNodeManagers
:=
getUnUsedNodeManagers
()
if
unUsedNodeManagers
==
nil
||
len
(
unUsedNodeManagers
)
==
0
{
if
unUsedNodeManagers
==
nil
||
len
(
unUsedNodeManagers
)
==
0
{
log
.
Warn
(
"There is no node manager available at this time"
)
break
break
}
}
randomNum
:=
utils
.
GenerateRandomNumber
(
conf
.
GetConfig
()
.
SignPrivateKey
,
int64
(
len
(
nodeManagerArr
)))
unUsedManager
:=
unUsedNodeManagers
[
randomNum
.
Int64
()]
for
i
:=
0
;
i
<
len
(
unUsedNodeManagers
);
i
++
{
for
i
:=
0
;
i
<
len
(
unUsedNodeManagers
);
i
++
{
randomNum
:=
utils
.
GenerateRandomNumber
(
conf
.
GetConfig
()
.
SignPrivateKey
,
int64
(
len
(
nodeManagerArr
)))
unUsedManager
:=
unUsedNodeManagers
[
randomNum
.
Int64
()]
isSuccess
:=
inputNodeManagerChan
(
unUsedManager
,
nil
)
isSuccess
:=
inputNodeManagerChan
(
unUsedManager
,
nil
)
if
!
isSuccess
{
if
!
isSuccess
{
break
break
...
@@ -237,22 +240,22 @@ func handlerMsg(nodeManager *models.NodeManagerClient,
...
@@ -237,22 +240,22 @@ func handlerMsg(nodeManager *models.NodeManagerClient,
nmSignMsg
:=
rev
.
GetProofTaskResult
()
nmSignMsg
:=
rev
.
GetProofTaskResult
()
if
nmSignMsg
!=
nil
{
if
nmSignMsg
!=
nil
{
containerSign
,
ok
:=
taskMsgWorker
.
LruCache
.
Get
(
nmSignMsg
.
TaskUuid
+
models
.
ContainerSign
)
containerSign
,
_
:=
taskMsgWorker
.
LruCache
.
Get
(
nmSignMsg
.
TaskUuid
+
models
.
ContainerSign
)
if
!
ok
{
//
if !ok {
// log.Error("taskMsgWorker.LruCache.Get failed: ", nmSignMsg.TaskUuid+models.ContainerSign)
}
//
}
minerSign
,
ok
:=
taskMsgWorker
.
LruCache
.
Get
(
nmSignMsg
.
TaskUuid
+
models
.
MinerSign
)
minerSign
,
_
:=
taskMsgWorker
.
LruCache
.
Get
(
nmSignMsg
.
TaskUuid
+
models
.
MinerSign
)
if
!
ok
{
//
if !ok {
// log.Error("taskMsgWorker.LruCache.Get failed: ", nmSignMsg.TaskUuid+models.MinerSign)
}
//
}
reqHash
,
ok
:=
taskMsgWorker
.
LruCache
.
Get
(
nmSignMsg
.
TaskUuid
+
models
.
ReqHash
)
reqHash
,
_
:=
taskMsgWorker
.
LruCache
.
Get
(
nmSignMsg
.
TaskUuid
+
models
.
ReqHash
)
if
!
ok
{
//
if !ok {
// log.Error("taskMsgWorker.LruCache.Get failed: ", nmSignMsg.TaskUuid+models.ReqHash)
}
//
}
respHash
,
ok
:=
taskMsgWorker
.
LruCache
.
Get
(
nmSignMsg
.
TaskUuid
+
models
.
RespHash
)
respHash
,
_
:=
taskMsgWorker
.
LruCache
.
Get
(
nmSignMsg
.
TaskUuid
+
models
.
RespHash
)
if
!
ok
{
//
if !ok {
// log.Error("taskMsgWorker.LruCache.Get failed: ", nmSignMsg.TaskUuid+models.RespHash)
}
//
}
proofWorker
.
ProductProof
(
nmSignMsg
.
TaskUuid
,
nmSignMsg
.
Workload
,
reqHash
.
([]
byte
),
respHash
.
([]
byte
),
containerSign
.
([]
byte
),
minerSign
.
([]
byte
),
nmSignMsg
.
ManagerSignature
)
proofWorker
.
ProductProof
(
nmSignMsg
.
TaskUuid
,
nmSignMsg
.
Workload
,
reqHash
.
([]
byte
),
respHash
.
([]
byte
),
containerSign
.
([]
byte
),
minerSign
.
([]
byte
),
nmSignMsg
.
ManagerSignature
)
log
.
Info
(
nmSignMsg
)
log
.
Info
(
nmSignMsg
)
continue
continue
...
...
start.sh
View file @
ec138100
...
@@ -5,7 +5,7 @@ echo "Received REWARD_ADDRESS=$REWARD_ADDRESS"
...
@@ -5,7 +5,7 @@ echo "Received REWARD_ADDRESS=$REWARD_ADDRESS"
echo
"Received DOCKER_SERVER=
$DOCKER_SERVER
"
echo
"Received DOCKER_SERVER=
$DOCKER_SERVER
"
if
[
"
$DOCKER_SERVER
"
]
;
then
if
[
"
$DOCKER_SERVER
"
]
;
then
/usr/bin/powerNode
-r
"
$REWARD_ADDRESS
"
-d
"
$DOCKER_SERVER
"
/usr/bin/powerNode
-r
"
$REWARD_ADDRESS
"
-d
"
$DOCKER_SERVER
"
-e
$(
curl
-s
ifconfig.me
)
else
else
/usr/bin/powerNode
--reward
"
$REWARD_ADDRESS
"
/usr/bin/powerNode
--reward
"
$REWARD_ADDRESS
"
-e
$(
curl
-s
ifconfig.me
)
fi
fi
\ 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