8
log2 "gitverse.ru/IvanTimofeev/cranberry/internal/log"
11
"gitverse.ru/IvanTimofeev/cranberry/internal/config"
12
"gitverse.ru/IvanTimofeev/cranberry/internal/db"
13
"gitverse.ru/IvanTimofeev/cranberry/internal/handlers/tx"
15
memorypool "gitverse.ru/IvanTimofeev/cranberry/internal/pool"
16
services "gitverse.ru/IvanTimofeev/cranberry/internal/services"
17
pbapi "gitverse.ru/IvanTimofeev/cranberry/pkg/grpc"
18
"google.golang.org/grpc"
23
makeBlockJobChannel chan any
24
blockService *services.BlockService
25
logger *zap.SugaredLogger
30
func (app *App) Start() {
31
lis, err := net.Listen("tcp", fmt.Sprintf(":%d", app.config.GRPC.Port))
35
mempool := memorypool.NewMemoryPool()
36
db := db.NewDb(app.config.DB.Host,
39
app.config.DB.Password,
40
app.config.DB.SqlPath)
49
validatorService := services.NewValidatorService(db, app.config.Validator.Seed)
50
accountService := services.NewAccountService(db)
51
poolService := services.NewPoolService(mempool)
52
txService := services.NewTxService(mempool, db)
53
peerService := services.NewPeerService(app.peers)
54
app.blockService = services.NewBlockService(poolService, db, txService, validatorService)
55
err = app.blockService.MakeGenesisBlock(app.config.Genesis.Addr, app.config.Genesis.Balance)
60
pbapi.RegisterCranberryServiceServer(s, tx.NewCranberryServiceHandler(
69
app.logger.Info("Listen server...")
70
if err := s.Serve(lis); err != nil {
71
app.logger.Fatalf("failed to serve: ", err)
75
func NewApp(config *config.Config, peers []string) *App {
78
logger: log2.GetLogger(),
83
func (app *App) MakeBlockJob() {
85
err := app.blockService.MakeBlock()
89
app.logger.Info("Block is generated")
91
time.Sleep(5 * time.Second)
95
func (app *App) Shutdown() {
96
app.logger.Info("Shutdown...")
97
close(app.makeBlockJobChannel)