Commit def8d4d2 authored by duanjinfei's avatar duanjinfei

change commit validator

parent 5b4b486b
......@@ -2,3 +2,4 @@
logs
*.DS_Store
*/mydb/
mydb
......@@ -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 {
......
......@@ -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
......@@ -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 {
......
......@@ -19,6 +19,8 @@ type DockerCmd struct {
type TaskReq struct {
TaskId string `json:"task_id"`
TaskParam []byte `json:"task_param"`
TaskResult []byte `json:"task_result"`
}
type ContainerSignStruct struct {
......
MANIFEST-000063
MANIFEST-000026
MANIFEST-000061
MANIFEST-000024
=============== 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
......@@ -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
}
......@@ -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 reportImageInfo(nodeManager, worker, msgRespWorker, op)
go reportModelInfo(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 reportImageInfo(nodeManager *models.NodeManagerClient,
func reportModelInfo(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, SubmitResultResp, params)
msgRespWorker.RegisterMsgResp(nodeManager, worker, SubmitResourceMapRes, 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
......
......@@ -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 {
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
}
......@@ -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"
......@@ -29,6 +28,7 @@ type DockerOp struct {
UsedExternalPort map[int64]bool
SignApi map[string]string
ModelsInfo []*models.ModelInfo
IsReportModelTaskId map[uint64]bool
ModelTaskIdChan chan uint64
}
......@@ -50,14 +50,17 @@ func NewDockerOp() *DockerOp {
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,
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
}
......
......@@ -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
......
......@@ -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
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
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment