derohe-proxy/derohe-proxy.go

86 lines
2.0 KiB
Go
Raw Normal View History

2022-05-24 18:17:12 +02:00
package main
import (
"derohe-proxy/proxy"
"fmt"
"net"
"strconv"
2022-05-24 18:17:12 +02:00
"time"
"github.com/docopt/docopt-go"
)
func main() {
var err error
Arguments, err = docopt.Parse(command_line, nil, true, "pre-alpha", false)
if err != nil {
return
}
if Arguments["--listen-address"] != nil {
addr, err := net.ResolveTCPAddr("tcp", Arguments["--listen-address"].(string))
if err != nil {
return
} else {
if addr.Port == 0 {
return
} else {
listen_addr = addr.String()
}
}
}
if Arguments["--daemon-address"] == nil {
return
} else {
daemon_address = Arguments["--daemon-address"].(string)
}
if Arguments["--log-interval"] != nil {
interval, err := strconv.ParseInt(Arguments["--log-interval"].(string), 10, 32)
if err != nil {
return
} else {
if interval < 60 || interval > 3600 {
log_intervall = 60
} else {
log_intervall = int(interval)
}
}
}
2022-06-08 01:03:38 +02:00
if Arguments["--nonce"].(bool) {
nonce = true
2022-06-19 21:28:53 +02:00
minimal = true
2022-06-08 01:03:38 +02:00
fmt.Printf("%v Nonce editing is enabled\n", time.Now().Format(time.Stamp))
2022-06-19 21:28:53 +02:00
fmt.Printf("%v Switch to >minimal< mode\n", time.Now().Format(time.Stamp))
}
if Arguments["--minimal"].(bool) && !Arguments["--nonce"].(bool) {
minimal = true
fmt.Printf("%v Forward only 2 jobs per block\n", time.Now().Format(time.Stamp))
2022-06-08 01:03:38 +02:00
}
fmt.Printf("%v Logging every %d seconds\n", time.Now().Format(time.Stamp), log_intervall)
2022-05-24 18:17:12 +02:00
go proxy.Start_server(listen_addr)
// Wait for first miner connection to grab wallet address
for proxy.CountMiners() < 1 {
time.Sleep(time.Second * 1)
}
2022-06-08 01:03:38 +02:00
go proxy.Start_client(daemon_address, proxy.Address, minimal, nonce)
2022-05-24 18:17:12 +02:00
for {
time.Sleep(time.Second * time.Duration(log_intervall))
fmt.Printf("%v %d miners connected, Bl: %d, Mbl: %d, Rej: %d\n", time.Now().Format(time.Stamp), proxy.CountMiners(), proxy.Blocks, proxy.Minis, proxy.Rejected)
for i := range proxy.Wallet_count {
2022-06-08 01:03:38 +02:00
if proxy.Wallet_count[i] > 1 {
fmt.Printf("%v Wallet %v, %d miners\n", time.Now().Format(time.Stamp), i, proxy.Wallet_count[i])
}
}
2022-05-24 18:17:12 +02:00
}
}