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
def8d4d2
Commit
def8d4d2
authored
Jan 30, 2024
by
duanjinfei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
change commit validator
parent
5b4b486b
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
279 additions
and
452 deletions
+279
-452
.gitignore
.gitignore
+2
-1
config.go
conf/config.go
+1
-2
config.json
config.json
+0
-1
db.go
db/db.go
+16
-5
node_manager.go
models/node_manager.go
+3
-1
000062.log
mydb/000062.log
+0
-0
CURRENT
mydb/CURRENT
+1
-1
CURRENT.bak
mydb/CURRENT.bak
+1
-1
LOG
mydb/LOG
+101
-349
MANIFEST-000063
mydb/MANIFEST-000063
+0
-0
msg_resp.go
nm/msg_resp.go
+8
-0
start.go
nm/start.go
+35
-28
task_msg.go
nm/task_msg.go
+12
-5
docker.go
operate/docker.go
+46
-40
task_msg_test.go
test/task_msg_test.go
+30
-0
validator.go
validator/validator.go
+23
-18
No files found.
.gitignore
View file @
def8d4d2
.idea
logs
*.DS_Store
*/mydb/
\ No newline at end of file
*/mydb/
mydb
conf/config.go
View file @
def8d4d2
...
...
@@ -22,7 +22,6 @@ type Config struct {
HeartRespTimeMillis
int64
TaskValidatorTime
float64
`json:"task_validator_time"`
BenefitAddress
string
`json:"benefit_address"`
DockerSignApi
string
`json:"docker_sign_api"`
ContainerNum
int64
`json:"container_num"`
}
...
...
@@ -36,7 +35,7 @@ func init() {
viper
.
SetConfigType
(
"json"
)
// 设置配置文件所在的目录
viper
.
AddConfigPath
(
".
.
/"
)
viper
.
AddConfigPath
(
"./"
)
// 读取配置文件
if
err
:=
viper
.
ReadInConfig
();
err
!=
nil
{
...
...
config.json
View file @
def8d4d2
...
...
@@ -5,6 +5,5 @@
"benefit_address"
:
"0x84A3175be614F5886f99Da506dF08682DF530739"
,
"heart_response"
:
30
,
"task_validator_time"
:
1
,
"docker_sign_api"
:
"http://192.168.1.120:8888/llm/test/get/sign"
,
"container_num"
:
1
}
\ No newline at end of file
db/db.go
View file @
def8d4d2
...
...
@@ -17,12 +17,23 @@ func init() {
if
err
!=
nil
{
log
.
Error
(
"Leveldb open file failed: "
,
err
)
}
defer
func
(
dbInstance
*
leveldb
.
DB
)
{
err
:=
dbInstance
.
Close
()
if
err
!=
nil
{
log
.
Error
(
"Leveldb close file failed: "
,
err
)
// 遍历数据库,删除所有数据
iter
:=
dbInstance
.
NewIterator
(
nil
,
nil
)
for
iter
.
Next
()
{
key
:=
iter
.
Key
()
// 删除 key 对应的数据
if
err
:=
dbInstance
.
Delete
(
key
,
nil
);
err
!=
nil
{
log
.
Error
(
"Leveldb delete failed: "
,
err
)
}
}(
dbInstance
)
}
iter
.
Release
()
//defer func(dbInstance *leveldb.DB) {
// err := dbInstance.Close()
// if err != nil {
// log.Error("Leveldb close file failed: ", err)
// }
//}(dbInstance)
}
func
Put
(
key
string
,
value
[]
byte
)
error
{
...
...
models/node_manager.go
View file @
def8d4d2
...
...
@@ -18,7 +18,9 @@ type DockerCmd struct {
}
type
TaskReq
struct
{
TaskId
string
`json:"task_id"`
TaskId
string
`json:"task_id"`
TaskParam
[]
byte
`json:"task_param"`
TaskResult
[]
byte
`json:"task_result"`
}
type
ContainerSignStruct
struct
{
...
...
mydb/000062.log
deleted
100644 → 0
View file @
5b4b486b
mydb/CURRENT
View file @
def8d4d2
MANIFEST-0000
63
MANIFEST-0000
26
mydb/CURRENT.bak
View file @
def8d4d2
MANIFEST-0000
61
MANIFEST-0000
24
mydb/LOG
View file @
def8d4d2
=============== Jan 26, 2024 (CST) ===============
18:03:29.824360 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:03:29.856869 db@open opening
18:03:29.857845 version@stat F·[] S·0B[] Sc·[]
18:03:29.861074 db@janitor F·2 G·0
18:03:29.861105 db@open done T·4.200125ms
18:03:29.861131 db@close closing
18:03:29.861221 db@close done T·88.833µs
=============== Jan 26, 2024 (CST) ===============
18:04:09.688193 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:04:09.689166 version@stat F·[] S·0B[] Sc·[]
18:04:09.689197 db@open opening
18:04:09.689283 journal@recovery F·1
18:04:09.689740 journal@recovery recovering @1
18:04:09.690045 version@stat F·[] S·0B[] Sc·[]
18:04:09.718435 db@janitor F·2 G·0
18:04:09.718467 db@open done T·29.260167ms
18:04:09.718488 db@close closing
18:04:09.718654 db@close done T·157.375µs
=============== Jan 26, 2024 (CST) ===============
18:05:07.360931 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:05:07.361910 version@stat F·[] S·0B[] Sc·[]
18:05:07.361950 db@open opening
18:05:07.362029 journal@recovery F·1
18:05:07.362507 journal@recovery recovering @2
18:05:07.362786 version@stat F·[] S·0B[] Sc·[]
18:05:07.402917 db@janitor F·2 G·0
18:05:07.402966 db@open done T·41.002875ms
18:05:07.402990 db@close closing
18:05:07.403077 db@close done T·84.333µs
=============== Jan 26, 2024 (CST) ===============
18:06:00.593992 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:06:00.594798 version@stat F·[] S·0B[] Sc·[]
18:06:00.594965 db@open opening
18:06:00.595069 journal@recovery F·1
18:06:00.596321 journal@recovery recovering @4
18:06:00.596667 version@stat F·[] S·0B[] Sc·[]
18:06:00.619305 db@janitor F·2 G·0
18:06:00.619350 db@open done T·24.372292ms
18:06:00.619373 db@close closing
18:06:00.620079 db@close done T·239.416µs
=============== Jan 26, 2024 (CST) ===============
18:06:20.235333 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:06:20.236351 version@stat F·[] S·0B[] Sc·[]
18:06:20.236402 db@open opening
18:06:20.236510 journal@recovery F·1
18:06:20.236991 journal@recovery recovering @6
18:06:20.237335 version@stat F·[] S·0B[] Sc·[]
18:06:20.262771 db@janitor F·2 G·0
18:06:20.262809 db@open done T·26.393208ms
18:06:20.262861 db@close closing
18:06:20.262978 db@close done T·108.417µs
=============== Jan 26, 2024 (CST) ===============
18:07:34.236592 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:07:34.237434 version@stat F·[] S·0B[] Sc·[]
18:07:34.237489 db@open opening
18:07:34.237576 journal@recovery F·1
18:07:34.238066 journal@recovery recovering @8
18:07:34.238386 version@stat F·[] S·0B[] Sc·[]
18:07:34.265078 db@janitor F·2 G·0
18:07:34.265122 db@open done T·27.622709ms
18:07:34.265145 db@close closing
18:07:34.265301 db@close done T·144.291µs
=============== Jan 26, 2024 (CST) ===============
18:08:27.420140 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:08:27.421157 version@stat F·[] S·0B[] Sc·[]
18:08:27.421189 db@open opening
18:08:27.421282 journal@recovery F·1
18:08:27.421769 journal@recovery recovering @10
18:08:27.422054 version@stat F·[] S·0B[] Sc·[]
18:08:27.445249 db@janitor F·2 G·0
18:08:27.445282 db@open done T·24.08425ms
18:08:27.445294 db@close closing
18:08:27.445393 db@close done T·93.083µs
=============== Jan 26, 2024 (CST) ===============
18:09:02.091931 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:09:02.092765 version@stat F·[] S·0B[] Sc·[]
18:09:02.092805 db@open opening
18:09:02.092893 journal@recovery F·1
18:09:02.093422 journal@recovery recovering @12
18:09:02.093739 version@stat F·[] S·0B[] Sc·[]
18:09:02.116099 db@janitor F·2 G·0
18:09:02.116143 db@open done T·23.328833ms
18:09:02.116156 db@close closing
18:09:02.116266 db@close done T·102.833µs
=============== Jan 26, 2024 (CST) ===============
18:09:30.704871 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:09:30.705762 version@stat F·[] S·0B[] Sc·[]
18:09:30.705804 db@open opening
18:09:30.705884 journal@recovery F·1
18:09:30.706422 journal@recovery recovering @14
18:09:30.706712 version@stat F·[] S·0B[] Sc·[]
18:09:30.729460 db@janitor F·2 G·0
18:09:30.729495 db@open done T·23.681083ms
18:09:30.729506 db@close closing
18:09:30.729633 db@close done T·122.208µs
=============== Jan 26, 2024 (CST) ===============
18:10:58.808117 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:10:58.808711 version@stat F·[] S·0B[] Sc·[]
18:10:58.808750 db@open opening
18:10:58.808843 journal@recovery F·1
18:10:58.809295 journal@recovery recovering @16
18:10:58.809649 version@stat F·[] S·0B[] Sc·[]
18:10:58.840081 db@janitor F·2 G·0
18:10:58.840165 db@open done T·31.404958ms
18:10:58.840178 db@close closing
18:10:58.840266 db@close done T·86.917µs
=============== Jan 26, 2024 (CST) ===============
18:11:12.379193 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:11:12.379833 version@stat F·[] S·0B[] Sc·[]
18:11:12.379870 db@open opening
18:11:12.379955 journal@recovery F·1
18:11:12.380407 journal@recovery recovering @18
18:11:12.380710 version@stat F·[] S·0B[] Sc·[]
18:11:12.409020 db@janitor F·2 G·0
18:11:12.409062 db@open done T·29.182792ms
18:11:12.409084 db@close closing
18:11:12.409286 db@close done T·155.625µs
=============== Jan 26, 2024 (CST) ===============
18:26:36.720642 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:26:36.721481 version@stat F·[] S·0B[] Sc·[]
18:26:36.721513 db@open opening
18:26:36.721627 journal@recovery F·1
18:26:36.722113 journal@recovery recovering @20
18:26:36.722463 version@stat F·[] S·0B[] Sc·[]
18:26:36.750227 db@janitor F·2 G·0
18:26:36.750273 db@open done T·28.750166ms
18:26:36.750297 db@close closing
18:26:36.750447 db@close done T·143.417µs
=============== Jan 26, 2024 (CST) ===============
18:45:12.217148 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:45:12.219024 version@stat F·[] S·0B[] Sc·[]
18:45:12.219069 db@open opening
18:45:12.219168 journal@recovery F·1
18:45:12.219608 journal@recovery recovering @22
18:45:12.219968 version@stat F·[] S·0B[] Sc·[]
18:45:12.250104 db@janitor F·2 G·0
18:45:12.250138 db@open done T·31.078167ms
18:45:12.250148 db@close closing
18:45:12.250244 db@close done T·91.417µs
=============== Jan 26, 2024 (CST) ===============
18:48:06.754415 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:48:06.755299 version@stat F·[] S·0B[] Sc·[]
18:48:06.755336 db@open opening
18:48:06.755704 journal@recovery F·1
18:48:06.756360 journal@recovery recovering @24
18:48:06.756735 version@stat F·[] S·0B[] Sc·[]
18:48:06.786134 db@janitor F·2 G·0
18:48:06.786192 db@open done T·30.846083ms
18:48:06.786229 db@close closing
18:48:06.786361 db@close done T·130.583µs
=============== Jan 26, 2024 (CST) ===============
18:48:16.828157 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:48:16.828556 version@stat F·[] S·0B[] Sc·[]
18:48:16.828586 db@open opening
18:48:16.828670 journal@recovery F·1
18:48:16.829160 journal@recovery recovering @26
18:48:16.829508 version@stat F·[] S·0B[] Sc·[]
18:48:16.855269 db@janitor F·2 G·0
18:48:16.855303 db@open done T·26.707208ms
18:48:16.855325 db@close closing
18:48:16.855468 db@close done T·141.417µs
=============== Jan 26, 2024 (CST) ===============
19:16:28.010273 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
19:16:28.011183 version@stat F·[] S·0B[] Sc·[]
19:16:28.011220 db@open opening
19:16:28.011529 journal@recovery F·1
19:16:28.012067 journal@recovery recovering @28
19:16:28.012368 version@stat F·[] S·0B[] Sc·[]
19:16:28.035107 db@janitor F·2 G·0
19:16:28.035155 db@open done T·23.907584ms
19:16:28.035197 db@close closing
19:16:28.035279 db@close done T·81.375µs
=============== Jan 29, 2024 (CST) ===============
11:09:14.179108 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
11:09:14.180477 version@stat F·[] S·0B[] Sc·[]
11:09:14.180517 db@open opening
11:09:14.180620 journal@recovery F·1
11:09:14.181123 journal@recovery recovering @30
11:09:14.181526 version@stat F·[] S·0B[] Sc·[]
11:09:14.210468 db@janitor F·2 G·0
11:09:14.210511 db@open done T·29.982791ms
11:09:14.210522 db@close closing
11:09:14.210609 db@close done T·81.167µs
=============== Jan 29, 2024 (CST) ===============
11:12:38.100494 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
11:12:38.102370 version@stat F·[] S·0B[] Sc·[]
11:12:38.102397 db@open opening
11:12:38.102470 journal@recovery F·1
11:12:38.102853 journal@recovery recovering @32
11:12:38.103111 version@stat F·[] S·0B[] Sc·[]
11:12:38.127028 db@janitor F·2 G·0
11:12:38.127072 db@open done T·24.665958ms
11:12:38.127095 db@close closing
11:12:38.127259 db@close done T·162.166µs
=============== Jan 29, 2024 (CST) ===============
11:15:51.436668 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
11:15:51.437605 version@stat F·[] S·0B[] Sc·[]
11:15:51.437640 db@open opening
11:15:51.437733 journal@recovery F·1
11:15:51.438292 journal@recovery recovering @34
11:15:51.438584 version@stat F·[] S·0B[] Sc·[]
11:15:51.465411 db@janitor F·2 G·0
11:15:51.465444 db@open done T·27.794667ms
11:15:51.465462 db@close closing
11:15:51.465550 db@close done T·85.917µs
=============== Jan 29, 2024 (CST) ===============
11:17:03.426617 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
11:17:03.427614 version@stat F·[] S·0B[] Sc·[]
11:17:03.427653 db@open opening
11:17:03.427941 journal@recovery F·1
11:17:03.428588 journal@recovery recovering @36
11:17:03.428889 version@stat F·[] S·0B[] Sc·[]
11:17:03.463174 db@janitor F·2 G·0
11:17:03.463218 db@open done T·35.55525ms
11:17:03.463250 db@close closing
11:17:03.463326 db@close done T·73.875µs
=============== Jan 29, 2024 (CST) ===============
11:21:19.798258 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
11:21:19.799170 version@stat F·[] S·0B[] Sc·[]
11:21:19.799201 db@open opening
11:21:19.799288 journal@recovery F·1
11:21:19.799751 journal@recovery recovering @38
11:21:19.800127 version@stat F·[] S·0B[] Sc·[]
11:21:19.834100 db@janitor F·2 G·0
11:21:19.834145 db@open done T·34.935291ms
11:21:19.834184 db@close closing
11:21:19.834257 db@close done T·65.375µs
=============== Jan 29, 2024 (CST) ===============
11:22:14.678626 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
11:22:14.679611 version@stat F·[] S·0B[] Sc·[]
11:22:14.679647 db@open opening
11:22:14.679743 journal@recovery F·1
11:22:14.680253 journal@recovery recovering @40
11:22:14.680602 version@stat F·[] S·0B[] Sc·[]
11:22:14.709390 db@janitor F·2 G·0
11:22:14.709435 db@open done T·29.779667ms
11:22:14.709445 db@close closing
11:22:14.709540 db@close done T·91.75µs
=============== Jan 29, 2024 (CST) ===============
11:23:44.191169 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
11:23:44.192247 version@stat F·[] S·0B[] Sc·[]
11:23:44.192285 db@open opening
11:23:44.192394 journal@recovery F·1
11:23:44.192937 journal@recovery recovering @42
11:23:44.193325 version@stat F·[] S·0B[] Sc·[]
11:23:44.215264 db@janitor F·2 G·0
11:23:44.215312 db@open done T·23.01175ms
11:23:44.215364 db@close closing
11:23:44.215442 db@close done T·78.125µs
=============== Jan 29, 2024 (CST) ===============
11:40:34.197824 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
11:40:34.198719 version@stat F·[] S·0B[] Sc·[]
11:40:34.198748 db@open opening
11:40:34.198821 journal@recovery F·1
11:40:34.199235 journal@recovery recovering @44
11:40:34.199581 version@stat F·[] S·0B[] Sc·[]
11:40:34.228213 db@janitor F·2 G·0
11:40:34.228255 db@open done T·29.494583ms
11:40:34.228267 db@close closing
11:40:34.228431 db@close done T·163.917µs
=============== Jan 29, 2024 (CST) ===============
11:43:09.312932 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
11:43:09.313892 version@stat F·[] S·0B[] Sc·[]
11:43:09.313922 db@open opening
11:43:09.314023 journal@recovery F·1
11:43:09.314489 journal@recovery recovering @46
11:43:09.314808 version@stat F·[] S·0B[] Sc·[]
11:43:09.350357 db@janitor F·2 G·0
11:43:09.350402 db@open done T·36.468ms
11:43:09.350424 db@close closing
11:43:09.350516 db@close done T·91.375µs
=============== Jan 29, 2024 (CST) ===============
11:45:23.835335 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
11:45:23.836282 version@stat F·[] S·0B[] Sc·[]
11:45:23.836317 db@open opening
11:45:23.836417 journal@recovery F·1
11:45:23.836856 journal@recovery recovering @48
11:45:23.837124 version@stat F·[] S·0B[] Sc·[]
11:45:23.867511 db@janitor F·2 G·0
11:45:23.867568 db@open done T·31.228375ms
11:45:23.867586 db@close closing
11:45:23.867681 db@close done T·84.292µs
=============== Jan 29, 2024 (CST) ===============
11:47:23.345871 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
11:47:23.346872 version@stat F·[] S·0B[] Sc·[]
11:47:23.346906 db@open opening
11:47:23.346997 journal@recovery F·1
11:47:23.347464 journal@recovery recovering @50
11:47:23.347736 version@stat F·[] S·0B[] Sc·[]
11:47:23.378294 db@janitor F·2 G·0
11:47:23.378336 db@open done T·31.417042ms
11:47:23.378364 db@close closing
11:47:23.378427 db@close done T·62.5µs
=============== Jan 29, 2024 (CST) ===============
12:12:20.785865 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
12:12:20.786834 version@stat F·[] S·0B[] Sc·[]
12:12:20.786900 db@open opening
12:12:20.786979 journal@recovery F·1
12:12:20.787637 journal@recovery recovering @52
12:12:20.787976 version@stat F·[] S·0B[] Sc·[]
12:12:20.810285 db@janitor F·2 G·0
12:12:20.810331 db@open done T·23.415916ms
12:12:20.810382 db@close closing
12:12:20.810584 db@close done T·189.958µs
=============== Jan 29, 2024 (CST) ===============
12:13:18.939925 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
12:13:18.940801 version@stat F·[] S·0B[] Sc·[]
12:13:18.940877 db@open opening
12:13:18.940986 journal@recovery F·1
12:13:18.941563 journal@recovery recovering @54
12:13:18.941924 version@stat F·[] S·0B[] Sc·[]
12:13:18.965259 db@janitor F·2 G·0
12:13:18.965303 db@open done T·24.409917ms
12:13:18.965325 db@close closing
12:13:18.965547 db@close done T·220.083µs
=============== Jan 29, 2024 (CST) ===============
12:23:57.676869 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
12:23:57.677743 version@stat F·[] S·0B[] Sc·[]
12:23:57.677824 db@open opening
12:23:57.677979 journal@recovery F·1
12:23:57.678712 journal@recovery recovering @56
12:23:57.679126 version@stat F·[] S·0B[] Sc·[]
12:23:57.708980 db@janitor F·2 G·0
12:23:57.709016 db@open done T·31.192916ms
12:23:57.709037 db@close closing
12:23:57.709258 db@close done T·219µs
=============== Jan 29, 2024 (CST) ===============
12:39:45.915434 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
12:39:45.916260 version@stat F·[] S·0B[] Sc·[]
12:39:45.916289 db@open opening
12:39:45.916367 journal@recovery F·1
12:39:45.917026 journal@recovery recovering @58
12:39:45.917375 version@stat F·[] S·0B[] Sc·[]
12:39:45.946807 db@janitor F·2 G·0
12:39:45.946852 db@open done T·30.551792ms
12:39:45.946933 db@close closing
12:39:45.947100 db@close done T·161.666µs
=============== Jan 29, 2024 (CST) ===============
12:41:34.002711 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
12:41:34.003829 version@stat F·[] S·0B[] Sc·[]
12:41:34.003911 db@open opening
12:41:34.004016 journal@recovery F·1
12:41:34.004746 journal@recovery recovering @60
12:41:34.005096 version@stat F·[] S·0B[] Sc·[]
12:41:34.029340 db@janitor F·2 G·0
12:41:34.029385 db@open done T·25.456792ms
12:41:34.029401 db@close closing
12:41:34.029484 db@close done T·78.958µs
=============== Jan 30, 2024 (CST) ===============
16:08:16.675783 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
16:08:16.690258 db@open opening
16:08:16.691103 version@stat F·[] S·0B[] Sc·[]
16:08:16.698374 db@janitor F·2 G·0
16:08:16.698422 db@open done T·8.133042ms
=============== Jan 30, 2024 (CST) ===============
16:12:48.012694 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
16:12:48.013143 version@stat F·[] S·0B[] Sc·[]
16:12:48.013217 db@open opening
16:12:48.013304 journal@recovery F·1
16:12:48.013927 journal@recovery recovering @1
16:12:48.019428 memdb@flush created L0@2 N·1 S·596B "598..e5c,v1":"598..e5c,v1"
16:12:48.019673 version@stat F·[1] S·596B[596B] Sc·[0.25]
16:12:48.039624 db@janitor F·3 G·0
16:12:48.039666 db@open done T·26.438875ms
=============== Jan 30, 2024 (CST) ===============
16:15:51.077043 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
16:15:51.077438 version@stat F·[1] S·596B[596B] Sc·[0.25]
16:15:51.077509 db@open opening
16:15:51.077626 journal@recovery F·1
16:15:51.078171 journal@recovery recovering @3
16:15:51.083144 memdb@flush created L0@5 N·2 S·646B "129..063,v4":"598..e5c,d3"
16:15:51.083398 version@stat F·[2] S·1KiB[1KiB] Sc·[0.50]
16:15:51.116319 db@janitor F·4 G·0
16:15:51.116362 db@open done T·38.83625ms
=============== Jan 30, 2024 (CST) ===============
16:30:39.692132 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
16:30:39.693027 version@stat F·[2] S·1KiB[1KiB] Sc·[0.50]
16:30:39.693099 db@open opening
16:30:39.693192 journal@recovery F·1
16:30:39.693910 journal@recovery recovering @6
16:30:39.707666 memdb@flush created L0@8 N·2 S·642B "129..063,d6":"e19..a9a,v7"
16:30:39.707968 version@stat F·[3] S·1KiB[1KiB] Sc·[0.75]
16:30:39.734814 db@janitor F·5 G·0
16:30:39.735257 db@open done T·42.148375ms
=============== Jan 30, 2024 (CST) ===============
16:32:14.627221 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
16:32:14.627960 version@stat F·[3] S·1KiB[1KiB] Sc·[0.75]
16:32:14.628036 db@open opening
16:32:14.628132 journal@recovery F·1
16:32:14.628857 journal@recovery recovering @9
16:32:14.638785 memdb@flush created L0@11 N·3 S·1KiB "070..c0b,v11":"e19..a9a,d9"
16:32:14.639172 version@stat F·[4] S·2KiB[2KiB] Sc·[1.00]
16:32:14.657783 db@janitor F·6 G·0
16:32:14.657841 db@open done T·29.793583ms
16:32:14.658012 table@compaction L0·4 -> L1·0 S·2KiB Q·12
16:32:14.661769 table@build created L1@14 N·2 S·983B "070..c0b,v11":"071..271,v10"
16:32:14.661826 version@stat F·[0 1] S·983B[0B 983B] Sc·[0.00 0.00]
16:32:14.665796 table@compaction committed F-3 S-1KiB Ke·0 D·6 T·7.756083ms
16:32:14.665979 table@remove removed @8
16:32:14.666364 table@remove removed @5
16:32:14.666580 table@remove removed @2
=============== Jan 30, 2024 (CST) ===============
16:37:15.768880 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
16:37:15.771005 version@stat F·[0 1] S·983B[0B 983B] Sc·[0.00 0.00]
16:37:15.771067 db@open opening
16:37:15.771180 journal@recovery F·1
16:37:15.771768 journal@recovery recovering @12
16:37:15.776460 memdb@flush created L0@15 N·4 S·1KiB "070..c0b,d13":"b4e..be4,v16"
16:37:15.776753 version@stat F·[1 1] S·2KiB[1KiB 983B] Sc·[0.25 0.00]
16:37:15.799788 db@janitor F·5 G·1
16:37:15.799806 db@janitor removing table-11
16:37:15.799887 db@open done T·28.807417ms
=============== Jan 30, 2024 (CST) ===============
16:39:53.371400 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
16:39:53.372296 version@stat F·[1 1] S·2KiB[1KiB 983B] Sc·[0.25 0.00]
16:39:53.372372 db@open opening
16:39:53.372494 journal@recovery F·1
16:39:53.373025 journal@recovery recovering @16
16:39:53.380195 memdb@flush created L0@18 N·2 S·196B "4a9..104,d18":"b4e..be4,d19"
16:39:53.380440 version@stat F·[2 1] S·2KiB[1KiB 983B] Sc·[0.50 0.00]
16:39:53.403601 db@janitor F·5 G·0
16:39:53.403636 db@open done T·31.251375ms
=============== Jan 30, 2024 (CST) ===============
16:41:09.891449 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
16:41:09.892288 version@stat F·[2 1] S·2KiB[1KiB 983B] Sc·[0.50 0.00]
16:41:09.892357 db@open opening
16:41:09.892448 journal@recovery F·1
16:41:09.893208 journal@recovery recovering @19
16:41:09.893551 version@stat F·[2 1] S·2KiB[1KiB 983B] Sc·[0.50 0.00]
16:41:09.925162 db@janitor F·5 G·0
16:41:09.925210 db@open done T·32.8435ms
=============== Jan 30, 2024 (CST) ===============
17:13:08.073592 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
17:13:08.074332 version@stat F·[2 1] S·2KiB[1KiB 983B] Sc·[0.50 0.00]
17:13:08.074433 db@open opening
17:13:08.074540 journal@recovery F·1
17:13:08.075214 journal@recovery recovering @21
17:13:08.075574 version@stat F·[2 1] S·2KiB[1KiB 983B] Sc·[0.50 0.00]
17:13:08.119105 db@janitor F·5 G·0
17:13:08.119156 db@open done T·44.707584ms
=============== Jan 30, 2024 (CST) ===============
18:44:01.432023 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
18:44:01.433068 version@stat F·[2 1] S·2KiB[1KiB 983B] Sc·[0.50 0.00]
18:44:01.433132 db@open opening
18:44:01.433251 journal@recovery F·1
18:44:01.433882 journal@recovery recovering @23
18:44:01.434712 version@stat F·[2 1] S·2KiB[1KiB 983B] Sc·[0.50 0.00]
18:44:01.455446 db@janitor F·5 G·0
18:44:01.455484 db@open done T·22.337708ms
mydb/MANIFEST-000063
deleted
100644 → 0
View file @
5b4b486b
File deleted
nm/msg_resp.go
View file @
def8d4d2
...
...
@@ -35,6 +35,7 @@ func (o *RespMsgWorker) RegisterMsgResp(nodeManager *models.NodeManagerClient, w
handler
:
handler
,
params
:
params
,
}
log
.
Info
(
"---------------------------------------Send register msg ------------------------------------"
)
}
func
(
o
*
RespMsgWorker
)
SendMsg
()
{
...
...
@@ -65,6 +66,7 @@ func HeartbeatResp(params ...interface{}) *nodemanagerV1.WorkerMessage {
},
},
}
log
.
Info
(
"---------------------------------------Send heart beat msg ------------------------------------"
)
return
heartRes
}
...
...
@@ -83,6 +85,7 @@ func SubmitResourceMapRes(params ...interface{}) *nodemanagerV1.WorkerMessage {
},
},
}
log
.
Info
(
"---------------------------------------Send resource map msg ------------------------------------"
)
return
heartRes
}
...
...
@@ -137,6 +140,7 @@ func DeviceInfoResp(params ...interface{}) *nodemanagerV1.WorkerMessage {
},
},
}
log
.
Info
(
"---------------------------------------Send device info msg ------------------------------------"
)
return
deviceInfoRes
}
...
...
@@ -147,6 +151,7 @@ func DeviceUsageResp(params ...interface{}) *nodemanagerV1.WorkerMessage {
DeviceUsage
:
&
nodemanagerV1
.
DeviceUsageResponse
{},
},
}
log
.
Info
(
"---------------------------------------Send device usage msg ------------------------------------"
)
return
deviceInfoRes
}
...
...
@@ -159,6 +164,7 @@ func StatusResp(params ...interface{}) *nodemanagerV1.WorkerMessage {
},
},
}
log
.
Info
(
"---------------------------------------Send device status msg ------------------------------------"
)
return
statusRes
}
...
...
@@ -175,6 +181,7 @@ func GoodbyeResp(params ...interface{}) *nodemanagerV1.WorkerMessage {
},
},
}
log
.
Info
(
"---------------------------------------Send good bye msg ------------------------------------"
)
return
goodbyeMsgRes
}
...
...
@@ -196,5 +203,6 @@ func SubmitResultResp(params ...interface{}) *nodemanagerV1.WorkerMessage {
},
},
}
log
.
Info
(
"---------------------------------------Send task result msg ------------------------------------"
)
return
submitResultMsgRes
}
nm/start.go
View file @
def8d4d2
...
...
@@ -2,6 +2,7 @@ package nm
import
(
"context"
"example.com/m/conf"
"example.com/m/log"
"example.com/m/models"
"example.com/m/operate"
...
...
@@ -29,25 +30,25 @@ func init() {
nodeManagerIsDel
=
make
(
map
[
string
]
bool
,
0
)
nodeManagerChan
=
make
(
chan
*
models
.
NodeManagerClient
,
0
)
nodeManagerMsgChan
=
make
(
chan
*
nodeManagerV1
.
ManagerMessage
,
0
)
//
seed := conf.GetConfig().NmSeed
//
log.Info("Nm seed url:", seed)
//
seedServiceClient := operate.ConnNmGrpc(seed)
//
if seedServiceClient == nil {
//
panic("Dial nm seed service client failed")
//
}
//
ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
//
defer cancel()
//
list, err := seedServiceClient.ManagerList(ctx, &nodeManagerV1.ManagerListRequest{}, grpc.EmptyCallOption{})
//
if err != nil {
//
panic(fmt.Sprintf("Get manager list failed : %s", err.Error()))
//
}
//
if list.GetManagers() == nil || len(list.GetManagers()) == 0 {
//
panic("Get manager list failed,the manager list is nil")
//
}
//
for _, node := range list.GetManagers() {
//
nodeManagers = append(nodeManagers, node)
//
nodeManagerIsDel[node.Publickey] = false
//
}
seed
:=
conf
.
GetConfig
()
.
NmSeed
log
.
Info
(
"Nm seed url:"
,
seed
)
seedServiceClient
:=
operate
.
ConnNmGrpc
(
seed
)
if
seedServiceClient
==
nil
{
panic
(
"Dial nm seed service client failed"
)
}
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
Background
(),
time
.
Second
*
10
)
defer
cancel
()
list
,
err
:=
seedServiceClient
.
ManagerList
(
ctx
,
&
nodeManagerV1
.
ManagerListRequest
{},
grpc
.
EmptyCallOption
{})
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"Get manager list failed : %s"
,
err
.
Error
()))
}
if
list
.
GetManagers
()
==
nil
||
len
(
list
.
GetManagers
())
==
0
{
panic
(
"Get manager list failed,the manager list is nil"
)
}
for
_
,
node
:=
range
list
.
GetManagers
()
{
nodeManagers
=
append
(
nodeManagers
,
node
)
nodeManagerIsDel
[
node
.
Publickey
]
=
false
}
}
func
StartMonitor
()
{
...
...
@@ -57,10 +58,10 @@ func StartMonitor() {
panic
(
"Docker client is not healthy"
)
}
go
monitorModelInfo
(
dockerOp
)
go
monitorWorker
(
dockerOp
)
go
monitorModelInfo
(
dockerOp
)
for
_
,
manager
:=
range
nodeManagers
{
// TODO: 需要对索引进行一定的规则判断,随机选择其中的nodeManager进行链接
isSuccess
:=
inputNodeManagerChan
(
manager
)
...
...
@@ -128,11 +129,14 @@ func monitorWorker(op *operate.DockerOp) {
proofWorker
:=
validator
.
NewProofWorker
()
// 上报image信息
go
report
Image
Info
(
nodeManager
,
worker
,
msgRespWorker
,
op
)
go
report
Model
Info
(
nodeManager
,
worker
,
msgRespWorker
,
op
)
// 证明
上报
// 证明
存储
go
proofWorker
.
ProofStorage
()
// 证明提交
go
proofWorker
.
CommitWitness
()
// 处理其他消息
go
handlerMsg
(
nodeManager
,
worker
,
msgRespWorker
,
taskMsgWorker
,
proofWorker
)
...
...
@@ -172,7 +176,7 @@ func monitorModelInfo(dockerOp *operate.DockerOp) {
Pwd
:
""
,
Repository
:
""
,
SignUrl
:
"http://192.168.1.120:8888/llm/test/get/sign"
,
ImageName
:
"
llm-server:test
"
,
ImageName
:
"
onlydd/llm-server:0119
"
,
DiskSize
:
10000
,
MemorySize
:
10000
,
IsImageExist
:
false
,
...
...
@@ -188,22 +192,25 @@ func monitorModelInfo(dockerOp *operate.DockerOp) {
// todo: 如果够用
if
isPull
{
go
dockerOp
.
PullImage
(
modelInfo
)
dockerOp
.
SignApi
[
modelInfo
.
ImageName
]
=
modelInfo
.
SignUrl
modelInfo
.
IsImageExist
=
true
dockerOp
.
ModelTaskIdChan
<-
modelInfo
.
TaskId
}
}
else
if
!
dockerOp
.
IsReportModelTaskId
[
modelInfo
.
TaskId
]
{
dockerOp
.
ModelTaskIdChan
<-
modelInfo
.
TaskId
dockerOp
.
IsReportModelTaskId
[
modelInfo
.
TaskId
]
=
true
}
dockerOp
.
SignApi
[
modelInfo
.
ImageName
]
=
modelInfo
.
SignUrl
dockerOp
.
ModelsInfo
=
append
(
dockerOp
.
ModelsInfo
,
modelInfo
)
}
func
report
Image
Info
(
nodeManager
*
models
.
NodeManagerClient
,
func
report
Model
Info
(
nodeManager
*
models
.
NodeManagerClient
,
worker
nodeManagerV1
.
NodeManagerService_RegisterWorkerClient
,
msgRespWorker
*
RespMsgWorker
,
dockerOp
*
operate
.
DockerOp
)
{
for
{
select
{
case
taskId
:=
<-
dockerOp
.
ModelTaskIdChan
:
params
:=
buildParams
(
taskId
)
msgRespWorker
.
RegisterMsgResp
(
nodeManager
,
worker
,
SubmitRes
ultResp
,
params
)
msgRespWorker
.
RegisterMsgResp
(
nodeManager
,
worker
,
SubmitRes
ourceMapRes
,
params
)
}
}
}
...
...
@@ -241,7 +248,7 @@ func handlerMsg(nodeManager *models.NodeManagerClient,
taskMsgWorker
.
Wg
.
Wait
()
taskResBytes
:=
taskMsgWorker
.
TaskResp
[
taskMsg
.
TaskUuid
]
isSuccess
:=
taskMsgWorker
.
TaskIsSuccess
[
taskMsg
.
TaskUuid
]
containerSign
:=
taskMsgWorker
.
DockerOp
.
GetContainerSign
(
taskMsg
)
containerSign
:=
taskMsgWorker
.
DockerOp
.
GetContainerSign
(
taskMsg
,
taskResBytes
)
if
containerSign
==
nil
||
len
(
containerSign
)
==
0
{
log
.
Error
(
"Container signing failed................"
)
isSuccess
=
false
...
...
nm/task_msg.go
View file @
def8d4d2
...
...
@@ -2,14 +2,13 @@ package nm
import
(
"bytes"
"crypto/ecdsa"
cryptoRand
"crypto/rand"
"encoding/json"
"example.com/m/conf"
"example.com/m/log"
"example.com/m/models"
"example.com/m/operate"
"fmt"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
"github.com/golang/groupcache/lru"
baseV1
"github.com/odysseus/odysseus-protocol/gen/proto/go/base/v1"
...
...
@@ -113,11 +112,18 @@ func (t *TaskHandler) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage)
return
}
imageId
:=
""
isFound
:=
false
for
_
,
image
:=
range
images
{
if
image
.
RepoTags
[
0
]
==
taskCmd
.
ImageName
{
imageId
=
image
.
ID
if
isFound
{
break
}
for
_
,
tag
:=
range
image
.
RepoTags
{
if
tag
==
taskCmd
.
ImageName
{
imageId
=
image
.
ID
isFound
=
true
break
}
}
log
.
Println
(
image
.
ID
)
}
...
...
@@ -185,9 +191,10 @@ func (t *TaskHandler) GetMinerSign(msg *nodeManagerV1.PushTaskMessage, taskResul
reqHash
:=
crypto
.
Keccak256Hash
(
msg
.
TaskParam
)
respHash
:=
crypto
.
Keccak256Hash
(
taskResult
)
signHash
:=
crypto
.
Keccak256Hash
(
bytes
.
NewBufferString
(
msg
.
TaskUuid
)
.
Bytes
(),
reqHash
.
Bytes
(),
respHash
.
Bytes
())
sign
,
err
:=
ecdsa
.
SignASN1
(
cryptoRand
.
Reader
,
conf
.
GetConfig
()
.
SignPrivateKey
,
signHash
.
Bytes
()
)
sign
,
err
:=
crypto
.
Sign
(
signHash
.
Bytes
(),
conf
.
GetConfig
()
.
SignPrivateKey
)
if
err
!=
nil
{
log
.
Error
(
"custom task handler"
)
}
log
.
Info
(
"Miner sign:"
,
common
.
Bytes2Hex
(
sign
))
return
reqHash
.
Bytes
(),
respHash
.
Bytes
(),
sign
}
operate/docker.go
View file @
def8d4d2
...
...
@@ -10,7 +10,6 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/client"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/go-connections/nat"
"github.com/ethereum/go-ethereum/common"
nodemanagerv1
"github.com/odysseus/odysseus-protocol/gen/proto/go/nodemanager/v1"
...
...
@@ -23,13 +22,14 @@ import (
var
httpClient
*
http
.
Client
type
DockerOp
struct
{
IsHealthy
bool
Reason
string
dockerClient
*
client
.
Client
UsedExternalPort
map
[
int64
]
bool
SignApi
map
[
string
]
string
ModelsInfo
[]
*
models
.
ModelInfo
ModelTaskIdChan
chan
uint64
IsHealthy
bool
Reason
string
dockerClient
*
client
.
Client
UsedExternalPort
map
[
int64
]
bool
SignApi
map
[
string
]
string
ModelsInfo
[]
*
models
.
ModelInfo
IsReportModelTaskId
map
[
uint64
]
bool
ModelTaskIdChan
chan
uint64
}
func
init
()
{
...
...
@@ -45,19 +45,22 @@ func NewDockerOp() *DockerOp {
}
}
return
&
DockerOp
{
IsHealthy
:
true
,
Reason
:
""
,
dockerClient
:
dockerClient
,
SignApi
:
make
(
map
[
string
]
string
,
0
),
ModelsInfo
:
make
([]
*
models
.
ModelInfo
,
0
),
UsedExternalPort
:
make
(
map
[
int64
]
bool
,
0
),
ModelTaskIdChan
:
make
(
chan
uint64
,
0
),
IsHealthy
:
true
,
Reason
:
""
,
dockerClient
:
dockerClient
,
SignApi
:
make
(
map
[
string
]
string
,
0
),
ModelsInfo
:
make
([]
*
models
.
ModelInfo
,
0
),
IsReportModelTaskId
:
make
(
map
[
uint64
]
bool
,
0
),
UsedExternalPort
:
make
(
map
[
int64
]
bool
,
0
),
ModelTaskIdChan
:
make
(
chan
uint64
,
0
),
}
}
func
(
d
*
DockerOp
)
GetContainerSign
(
taskMsg
*
nodemanagerv1
.
PushTaskMessage
)
[]
byte
{
func
(
d
*
DockerOp
)
GetContainerSign
(
taskMsg
*
nodemanagerv1
.
PushTaskMessage
,
taskRes
[]
byte
)
[]
byte
{
reqBody
:=
&
models
.
TaskReq
{
TaskId
:
taskMsg
.
TaskUuid
,
TaskId
:
taskMsg
.
TaskUuid
,
TaskParam
:
taskMsg
.
TaskParam
,
TaskResult
:
taskRes
,
}
body
,
err
:=
json
.
Marshal
(
reqBody
)
if
err
!=
nil
{
...
...
@@ -124,8 +127,7 @@ func (d *DockerOp) ListContainer() []types.Container {
}
func
(
d
*
DockerOp
)
CreateAndStartContainer
(
imageName
string
,
dockerCmd
*
models
.
DockerCmd
)
(
string
,
error
)
{
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
Background
(),
time
.
Second
*
60
)
defer
cancel
()
containerId
,
err
:=
d
.
CreateContainer
(
imageName
,
dockerCmd
)
if
err
!=
nil
{
log
.
Error
(
"Error creating container image failed: "
,
err
)
...
...
@@ -138,26 +140,28 @@ func (d *DockerOp) CreateAndStartContainer(imageName string, dockerCmd *models.D
log
.
Error
(
"start container failed:"
,
startContainerIsSuccess
)
}
statusCh
,
errCh
:=
d
.
dockerClient
.
ContainerWait
(
ctx
,
containerId
,
container
.
WaitConditionNotRunning
)
select
{
case
err
:=
<-
errCh
:
if
err
!=
nil
{
panic
(
err
)
}
case
<-
statusCh
:
break
}
out
,
err
:=
d
.
dockerClient
.
ContainerLogs
(
ctx
,
containerId
,
types
.
ContainerLogsOptions
{
ShowStdout
:
true
})
if
err
!=
nil
{
panic
(
err
)
}
_
,
err
=
stdcopy
.
StdCopy
(
os
.
Stdout
,
os
.
Stderr
,
out
)
if
err
!=
nil
{
log
.
Error
(
"std out put failed:"
,
err
)
return
""
,
err
}
//ctx, cancel := context.WithTimeout(context.Background(), time.Second*60)
//defer cancel()
//statusCh, errCh := d.dockerClient.ContainerWait(ctx, containerId, container.WaitConditionNotRunning)
//select {
//case err := <-errCh:
// if err != nil {
// panic(err)
// }
//case <-statusCh:
// break
//}
//
//out, err := d.dockerClient.ContainerLogs(ctx, containerId, types.ContainerLogsOptions{ShowStdout: true})
//if err != nil {
// panic(err)
//}
//
//_, err = stdcopy.StdCopy(os.Stdout, os.Stderr, out)
//if err != nil {
// log.Error("std out put failed:", err)
// return "", err
//}
return
containerId
,
nil
}
...
...
@@ -259,7 +263,9 @@ func (d *DockerOp) PsImageNameMap() (map[string]bool, error) {
}
res
:=
make
(
map
[
string
]
bool
,
0
)
for
_
,
image
:=
range
images
{
res
[
image
.
RepoTags
[
0
]]
=
true
for
_
,
tag
:=
range
image
.
RepoTags
{
res
[
tag
]
=
true
}
}
return
res
,
nil
}
...
...
test/task_msg_test.go
View file @
def8d4d2
...
...
@@ -14,6 +14,36 @@ import (
"testing"
)
func
TestJson
(
t
*
testing
.
T
)
{
type
DockerCmd
struct
{
ContainerPort
string
`json:"container_port"`
HostIp
string
HostPort
string
}
type
TaskCmd
struct
{
ImageName
string
`json:"image_name"`
DockerCmd
*
DockerCmd
`json:"docker_cmd"`
ApiUrl
string
`json:"api_url"`
}
taskCmd
:=
&
TaskCmd
{
ImageName
:
"onlydd/llm-server:0119"
,
DockerCmd
:
&
DockerCmd
{
ContainerPort
:
"80"
,
},
ApiUrl
:
"https://192.168.1.120:5001/aigic"
,
}
marshal
,
err
:=
json
.
Marshal
(
taskCmd
)
if
err
!=
nil
{
_
=
fmt
.
Errorf
(
"error marshalling task cmd: %s"
,
err
.
Error
())
return
}
fmt
.
Println
(
"marshal:"
,
string
(
marshal
))
}
func
TestTaskHandler_computeTaskHandler
(
t1
*
testing
.
T
)
{
type
fields
struct
{
wg
*
sync
.
WaitGroup
...
...
validator/validator.go
View file @
def8d4d2
...
...
@@ -14,7 +14,6 @@ import (
)
type
ProofWorker
struct
{
lastCommitTime
time
.
Time
productProofChan
chan
*
witnessV1
.
Proof
consumeProofChan
chan
[]
*
witnessV1
.
Proof
isCommitProof
map
[
string
]
bool
...
...
@@ -22,9 +21,9 @@ type ProofWorker struct {
func
NewProofWorker
()
*
ProofWorker
{
return
&
ProofWorker
{
lastCommitTime
:
time
.
Now
(),
productProofChan
:
make
(
chan
*
witnessV1
.
Proof
,
0
),
consumeProofChan
:
make
(
chan
[]
*
witnessV1
.
Proof
,
0
),
isCommitProof
:
make
(
map
[
string
]
bool
,
0
),
}
}
...
...
@@ -41,9 +40,6 @@ func (p *ProofWorker) ProductProof(taskId string, workLoad uint64, reqHash []byt
}
func
(
p
*
ProofWorker
)
ProofStorage
()
{
// 定义区间
min
:=
40
max
:=
59
go
func
(
productProofChan
chan
*
witnessV1
.
Proof
)
{
for
{
select
{
...
...
@@ -64,23 +60,27 @@ func (p *ProofWorker) ProofStorage() {
}
}
}(
p
.
productProofChan
)
// todo: 需要修改为 Minute
timer
:=
time
.
NewTicker
(
time
.
Minute
)
defer
timer
.
Stop
()
randomMinute
:=
getRandInt
()
for
{
// todo: 每个小时的提交时间,应该随机
since
:=
time
.
Since
(
p
.
lastCommitTime
)
if
since
.
Hours
()
==
conf
.
GetConfig
()
.
TaskValidatorTime
{
nowTime
:=
time
.
Now
()
rand
.
Seed
(
nowTime
.
UnixNano
())
// 生成在 [min, max] 范围内的随机整数
randomNumber
:=
rand
.
Intn
(
max
-
min
+
1
)
+
min
if
nowTime
.
Minute
()
>
min
&&
nowTime
.
Minute
()
<
randomNumber
{
select
{
case
<-
timer
.
C
:
min
:=
time
.
Now
()
.
Minute
()
// 检查是否在指定时间范围内(40-59分钟)
if
min
>=
40
&&
min
<=
59
&&
min
==
randomMinute
{
randomMinute
=
getRandInt
()
proofs
:=
make
([]
*
witnessV1
.
Proof
,
0
)
// TODO: 取出数据并且消费
iter
,
err
:=
db
.
NewIterator
()
if
err
!=
nil
{
log
.
Error
(
"db new iterator failed: "
,
err
)
continue
}
// todo: 数据堆积越多,可能循环的次数越多,对性能有影响
if
iter
==
nil
{
log
.
Warn
(
"level db iterator is nil"
)
continue
}
for
iter
.
Next
()
{
proof
:=
&
witnessV1
.
Proof
{}
err
:=
json
.
Unmarshal
(
iter
.
Value
(),
proof
)
...
...
@@ -99,15 +99,16 @@ func (p *ProofWorker) ProofStorage() {
// return
//}
}
p
.
lastCommitTime
=
nowTime
p
.
consumeProofChan
<-
proofs
if
len
(
proofs
)
>
0
{
p
.
consumeProofChan
<-
proofs
}
}
}
}
}
func
(
p
*
ProofWorker
)
CommitWitness
()
{
validatorClient
:=
operate
.
ConnValidatorGrpc
(
""
)
validatorClient
:=
operate
.
ConnValidatorGrpc
(
"
192.168.1.180:9431
"
)
for
{
select
{
case
proofs
:=
<-
p
.
consumeProofChan
:
...
...
@@ -126,3 +127,7 @@ func (p *ProofWorker) CommitWitness() {
}
}
}
func
getRandInt
()
int
{
return
rand
.
Intn
(
20
)
+
40
}
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