-
Notifications
You must be signed in to change notification settings - Fork 0
/
w_evnt.go
43 lines (36 loc) · 1.5 KB
/
w_evnt.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package main
import (
"fmt"
"runtime"
s "github.com/ValidatorCenter/prs3r/strc"
)
// Воркер для обработки Событий блока и записи в БД (node_story)
func startWorkerBEvnt(workerNum uint, in <-chan uint32) {
for bHeight := range in {
// Разбор Событий(event's) блока
retEv, err := sdk.GetEvents(int(bHeight))
if err != nil {
log("ERR", fmt.Sprint("[blocks_mdb.go] sdk.GetEvents(i) -", err.Error()), "")
} else {
// разбираем события для блока, прочие события в других местах (декларирование{trxCreateNode}, запуск{trxStartNode}/остановка{trxStopNode} и пропуск{startWorkerBNode} - в других местах!)
for _, retEv1 := range retEv.Events {
// ШТРАФ:
if retEv1.Type == "minter/SlashEvent" {
oneNodeX1 := s.NodeExt{}
oneNodeX1 = srchNodeSql_pk(dbSQL, retEv1.Value.ValidatorPubKey) // [*]
if oneNodeX1.PubKey != "" {
// нету, добавляем!
oneNodeX1.Blocks = append(oneNodeX1.Blocks, s.BlocksStory{ID: bHeight, Type: "SlashEvent"})
if !addNodeBlockstorySql(dbSQL, &oneNodeX1) {
log("ERR", "[w_evnt.go] startWorkerBEvnt(addNodeBlockstorySql) SlashEvent", "")
}
log("STR", fmt.Sprintf("SlashEvent:: %d - %s", bHeight, oneNodeX1.PubKey), "")
}
}
}
}
// Добавляем события блока в SQL
addBlcokEventSql(dbSQL, bHeight, &retEv)
runtime.Gosched()
}
}