diff --git a/cmd/bin/alph.h b/cmd/bin/alph.h new file mode 100644 index 0000000..8b1d649 --- /dev/null +++ b/cmd/bin/alph.h @@ -0,0 +1,18 @@ +// alph.h + +#ifndef BLAKE3_H +#define BLAKE3_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +void alph_hash(unsigned char *output, const unsigned char *input); + +#ifdef __cplusplus +} +#endif + +#endif // BLAKE3_H \ No newline at end of file diff --git a/cmd/bin/libalph.so b/cmd/bin/libalph.so new file mode 100644 index 0000000..58dc666 Binary files /dev/null and b/cmd/bin/libalph.so differ diff --git a/cmd/bin/server b/cmd/bin/server new file mode 100644 index 0000000..9155405 Binary files /dev/null and b/cmd/bin/server differ diff --git a/cmd/gbt/gbt.go b/cmd/gbt/gbt.go new file mode 100644 index 0000000..8cc0a41 --- /dev/null +++ b/cmd/gbt/gbt.go @@ -0,0 +1,33 @@ +// gbt.go +package main + +import ( + "os" + "pool/internal/db" + "pool/internal/gbt" + "pool/internal/utility" +) + +func start(coin string, DbCtx *db.DbContext) { + + gbt.Start(coin, DbCtx) + +} + +func stop(coin string) { + + gbt.Stop(coin) + +} + +func main() { + coin := utility.GetCoin("gbt.conf") + dbctx := db.InitDb(coin, "gbt") + start(coin, dbctx) + + stop(coin) + + db.StopDb(coin, "gbt") + + os.Exit(0) +} diff --git a/cmd/server/server.go b/cmd/server/server.go new file mode 100644 index 0000000..31c4e9d --- /dev/null +++ b/cmd/server/server.go @@ -0,0 +1,31 @@ +// server.go +package main + +import ( + "os" + "pool/internal/db" + "pool/internal/server" + + "pool/internal/utility" +) + +func start(coin string, DbCtx *db.DbContext) { + server.Start(coin, DbCtx) +} + +func stop() { + server.Stop() +} + +func main() { + coin := utility.GetCoin("server.conf") + dbctx := db.InitDb(coin, "server") + + start(coin, dbctx) + + stop() + + db.StopDb(coin, "server") + + os.Exit(0) +} diff --git a/cmd/set_addr/set_addr.go b/cmd/set_addr/set_addr.go new file mode 100644 index 0000000..1f81e1a --- /dev/null +++ b/cmd/set_addr/set_addr.go @@ -0,0 +1,92 @@ +// set_addr.go +package main + +import ( + "crypto/md5" + "database/sql" + "encoding/hex" + "flag" + "fmt" + "log" + "time" + + _ "github.com/go-sql-driver/mysql" +) + +func main() { + paddr := flag.String("addr", "", "The mining address (string)") + pserver := flag.String("server", "", "The db host and port (string)") + pcoin := flag.String("coin", "", "The coin name (string)") + puser := flag.String("user", "", "The db user (string)") + ppassword := flag.String("password", "", "The db user's password (string)") + pdbn := flag.String("db", "", "The db name (string)") + + flag.Parse() + + if len(*paddr) <= 0 /* || len(*pdb) <= 0 || len(*puser) <= 0 || len(*ppassword) <= 0*/ { + log.Fatalf("Failed to param") + return + } + + addr := *paddr + user := *puser + password := *ppassword + dbserver := *pserver + coin := *pcoin + dbn := *pdbn + if len(user) <= 0 { + user = "m2pool" + } + if len(password) <= 0 { + password = "pMJzgwrg@Frt8aDXkQAsTGhG!zy!H8Jd" + } + if len(dbserver) <= 0 { + dbserver = "127.0.0.1:3306" + } + if len(coin) <= 0 { + coin = "nexa" + } + if len(dbn) <= 0 { + dbn = "m2pooldb" + } + + dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s", user, password, dbserver, dbn) + //log.Println("dsn", dsn) + + db, err := sql.Open("mysql", dsn) + if err != nil { + log.Fatalf("Error opening database: %v", err) + return + } + defer db.Close() + + table_name := coin + "_address" + + var count int + querySQL := fmt.Sprintf("SELECT COUNT(*) FROM %s WHERE addr = ?", table_name) + err = db.QueryRow(querySQL, addr).Scan(&count) + if err != nil { + log.Fatalf("Error checking if address exists: %v", err) + return + } + + hash := md5.Sum([]byte(addr + "m2pool_alias")) + alias := hex.EncodeToString(hash[:]) + + if count > 0 { + updateSQL := fmt.Sprintf("UPDATE %s SET date =?, addr = ?, alias= ?, valid = 1 WHERE addr = ?", table_name) + _, err := db.Exec(updateSQL, time.Now().Format("2006-01-02 15:04:05"), addr, alias, addr) + if err != nil { + log.Fatalf("Error updating address: %v", err) + return + } + fmt.Printf("Address updated: %s\n", addr) + } else { + insertSQL := fmt.Sprintf("INSERT INTO %s (date, addr, alias, valid) VALUES (?, ?, ?, ?)", table_name) + _, err := db.Exec(insertSQL, time.Now().Format("2006-01-02 15:04:05"), addr, alias, 1) + if err != nil { + log.Fatalf("Error inserting address: %v", err) + } + fmt.Printf("Address inserted: %s\n", addr) + } +}