diff --git a/.gitignore b/.gitignore index 00796d9..4b073db 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,10 @@ stratum/stratum stratum/blocknotify blocknotify/blocknotify +blocknotify-dcr/blocknotify-dcr bin/stratum bin/blocknotify +bin/blocknotify-dcr stratum/config/ log/ *.log diff --git a/blocknotify-dcr/Makefile b/blocknotify-dcr/Makefile new file mode 100644 index 0000000..d24dec5 --- /dev/null +++ b/blocknotify-dcr/Makefile @@ -0,0 +1,13 @@ +OUT_GO=blocknotify-dcr +OUTPUT=blocknotify-dcr + +all: + rm -f $(OUT_GO) + go build + +install: all + strip -s $(OUT_GO) + killall -9 $(OUTPUT) || echo ok + mv $(OUT_GO) ../bin/$(OUTPUT) + sh -c "../bin/$(OUTPUT) &" + diff --git a/blocknotifygo/blocknotify.go b/blocknotify-dcr/blocknotify.go similarity index 79% rename from blocknotifygo/blocknotify.go rename to blocknotify-dcr/blocknotify.go index df31534..3b65caa 100644 --- a/blocknotifygo/blocknotify.go +++ b/blocknotify-dcr/blocknotify.go @@ -17,7 +17,7 @@ import ( "github.com/decred/dcrd/chaincfg/chainhash" "github.com/decred/dcrrpcclient" - "github.com/decred/dcrutil" +// "github.com/decred/dcrutil" ) const ( @@ -27,6 +27,8 @@ const ( walletUser = "yiimprpc" walletPass = "myDecredPassword" + + debug = false ) func main() { @@ -38,18 +40,26 @@ func main() { OnBlockConnected: func(hash *chainhash.Hash, height int32, time time.Time, vb uint16) { // Find the process path. - cmd := exec.Command(processName, stratumDest, coinId, hash.String()) - if err := cmd.Run(); err != nil { - log.Fatalln(err) + str := hash.String() + args := []string{ stratumDest, coinId, str } + out, err := exec.Command(processName, args...).Output() + if err != nil { + log.Printf("err %s", err) + } else if debug { + log.Printf("out %s", out) } - log.Printf("Block connected: %v (%d)", hash, height) + if (debug) { + log.Printf("Block connected: %s %d", hash, height) + } }, } // Connect to local dcrd RPC server using websockets. - dcrdHomeDir := dcrutil.AppDataDir("dcrd", false) - certs, err := ioutil.ReadFile(filepath.Join(dcrdHomeDir, "rpc.cert")) + // dcrwHomeDir := dcrutil.AppDataDir("dcrwallet", false) + // folder := dcrwHomeDir + folder := "" + certs, err := ioutil.ReadFile(filepath.Join(folder, "rpc.cert")) if err != nil { certs = nil log.Printf("%s, trying without TLS...", err) diff --git a/blocknotifygo/Makefile b/blocknotifygo/Makefile deleted file mode 100644 index f86279b..0000000 --- a/blocknotifygo/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -all: - rm -f blocknotifygo - go build diff --git a/stratum/client.cpp b/stratum/client.cpp index 5411863..65ad141 100644 --- a/stratum/client.cpp +++ b/stratum/client.cpp @@ -207,7 +207,7 @@ bool client_authorize(YAAMP_CLIENT *client, json_value *json_params) if(client->userid == -1) { CommonUnlock(&g_db_mutex); - // client_block_ip(client, "account locked"); + client_block_ip(client, "account locked"); clientlog(client, "account locked"); return false; @@ -275,6 +275,10 @@ bool client_update_block(YAAMP_CLIENT *client, json_value *json_params) coind->newblock = true; coind->notreportingcounter = 0; + if (!strcmp("DCR", coind->symbol)) { + usleep(500*YAAMP_MS); + } + block_confirm(coind->id, hash); coind_create_job(coind); diff --git a/stratum/client_core.cpp b/stratum/client_core.cpp index 86977f9..f2866ab 100644 --- a/stratum/client_core.cpp +++ b/stratum/client_core.cpp @@ -104,7 +104,7 @@ void client_block_ip(YAAMP_CLIENT *client, const char *reason) { char buffer[1024]; - sprintf(buffer, "iptables -A INPUT -s %s -j DROP", client->sock->ip); + sprintf(buffer, "iptables -A INPUT -s %s -p tcp --dport %d -j REJECT", client->sock->ip, g_tcp_port); int s = system(buffer); stratumlog("%s %s blocked (%s)\n", client->sock->ip, client->username, reason); diff --git a/stratum/coind.cpp b/stratum/coind.cpp index e5845df..8d4819c 100644 --- a/stratum/coind.cpp +++ b/stratum/coind.cpp @@ -152,7 +152,7 @@ void coind_init(YAAMP_COIND *coind) coind->rpc.curl = g_stratum_curl; if(!strcmp(coind->symbol, "DCR")) { coind->usegetwork = true; - coind->noblocknotifiy = true; + //coind->noblocknotifiy = true; sprintf(account, "default"); }