Giter Site home page Giter Site logo

poc-consortium / nogrod Goto Github PK

View Code? Open in Web Editor NEW
47.0 13.0 33.0 4.25 MB

The all-new PoCC pool software; "Fortunes are mined here"

License: Other

Makefile 0.06% Go 8.90% CSS 0.06% Dockerfile 0.02% C 3.02% Assembly 2.35% TSQL 85.59%
golang burstcoin mining mining-pool

nogrod's People

Contributors

ac0v avatar jjos2372 avatar johnnyffm avatar rico666 avatar spebern avatar thisisntanusername avatar ymijorski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nogrod's Issues

Migrate Cannot Find Package!

# make -j 6
make build
make[1]: Entering directory '/root/goburstpool-1.3.0'
git submodule update --init --recursive
package github.com/golang-migrate/migrate/v3/database: cannot find package "github.com/golang-migrate/migrate/v3/database" in any of:
	/usr/lib/go-1.9/src/github.com/golang-migrate/migrate/v3/database (from $GOROOT)
	/root/goburstpool-1.3.0/vendor/src/github.com/golang-migrate/migrate/v3/database (from $GOPATH)
	/root/goburstpool-1.3.0/src/github.com/golang-migrate/migrate/v3/database
package github.com/golang-migrate/migrate/v3/source: cannot find package "github.com/golang-migrate/migrate/v3/source" in any of:
	/usr/lib/go-1.9/src/github.com/golang-migrate/migrate/v3/source (from $GOROOT)
	/root/goburstpool-1.3.0/vendor/src/github.com/golang-migrate/migrate/v3/source (from $GOPATH)
	/root/goburstpool-1.3.0/src/github.com/golang-migrate/migrate/v3/source
Makefile:41: recipe for target 'deps' failed
make[1]: *** [deps] Error 1
make[1]: Leaving directory '/root/goburstpool-1.3.0'
Makefile:16: recipe for target 'start' failed
make: *** [start] Error 2
# migrate -version
3.5.2
# go version
go version go1.9.2 linux/amd64

Error on Make

utils.c: In function ‘calculate_deadlines_sse4’: utils.c:134:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] uint64_t target_result1 = *(uint64_t *)final11; ^ utils.c:135:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] uint64_t target_result2 = *(uint64_t *)final22; ^ utils.c:136:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] uint64_t target_result3 = *(uint64_t *)final33; ^ utils.c:137:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] uint64_t target_result4 = *(uint64_t *)final44; ^ utils.c: In function ‘calculate_deadlines_avx2’: utils.c:274:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] uint64_t target_result1 = *(uint64_t *)final11; ^ utils.c:275:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] uint64_t target_result2 = *(uint64_t *)final22; ^ utils.c:276:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] uint64_t target_result3 = *(uint64_t *)final33; ^ utils.c:277:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] uint64_t target_result4 = *(uint64_t *)final44; ^ utils.c:278:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] uint64_t target_result5 = *(uint64_t *)final55; ^ utils.c:279:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] uint64_t target_result6 = *(uint64_t *)final66; ^ utils.c:280:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] uint64_t target_result7 = *(uint64_t *)final77; ^ utils.c:281:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] uint64_t target_result8 = *(uint64_t *)final88;

`goroutine 64 [IO wait]:
internal/poll.runtime_pollWait(0x7f54238668b0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420f94718, 0x72, 0xffffffffffffff00, 0xeafc60, 0xeaa318)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420f94718, 0xc420f74c00, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420f94700, 0xc420f74c71, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420f94700, 0xc420f74c71, 0x1, 0x1, 0xc42007c060, 0x20002, 0xc4204917a4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420f76040, 0xc420f74c71, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc420f74c60)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8

rax 0x7f5420ec55e0
rbx 0x7f5420ec55a0
rcx 0x7f5420ec5620
rdx 0x7f5420ec55e0
rdi 0x7f5420ec55a0
rsi 0x7f5420ec55a0
rbp 0x7f5420ec52f0
rsp 0x7f5420ec4bf8
r8 0x7f5420ec5660
r9 0x0
r10 0x7f5420ec51c0
r11 0x7f54231b0620
r12 0x7f5420ec50c0
r13 0x100
r14 0x7f5420ec5620
r15 0x7f5420ec5660
rip 0x8ad9c4
rflags 0x10213
cs 0xe033
fs 0x0
gs 0x0
Makefile:11: recipe for target 'start' failed
`

feature request for dynamic minerTxFee

Respectfully request automated dynamic minerTxFee based on the number of active miners against the poolTxFee.
Example equation:

poolTxFee / #activeMiners = minerTxFee

Simulated example:

0.1 / 25 = 0.004

Currenly I'm doing this manually for the pool with the newest commit available.

Thank you POCC developer team for all the hard work and making awesome refined pool software for the community :)

V/r,
Khomitchr

"All Miners" Tab does not Auto refresh.

The "All Miners" Tab does not auto refresh metrics. End user has to constantly click on any other tab and back to force a refresh. Recommend setting auto refresh at each new Block Height the pool reaches or every few minutes. Same issue with the "History" Tab.

Thank you,
V/r,
khomitchr

Enable external "API" access (e.g. via WebSocket)

I'm currently integrating some additional info to the CreepMiner interface by showing my current pending bursts in it. Right now, this has to work the following way:

Reading in e.g. "https://50-50-pool.burst.cryptoguru.org/miners" completely by a powershell script, parsing the HTML code for my BURST-Address and extracting the pending bursts.
It would be way easier if I had access to the websocket interface via e.g. "https://50-50-pool.burst.cryptoguru.org/ws". Unfortunately, I'm not allowed to connect and it just throws an 403/forbidden error, when I just run this simple line of code locally in my browser:

var s = new WebSocket('wss://50-50-pool.burst.cryptoguru.org/ws');

In fact, this code does indeed work if I run it in the JS console in my browser, when I have opened the corresponding pool though.
So I guess, this might be the reason for not having CORS enabled. Enabling it would help.
Alternatively to just enabling the websocket interface to everyone, and additional listener on e.g. "50-50-pool.burst.cryptoguru.org/api" might be good (yet it would either need CORS enabled or use jsonp for external communicating).

I'm looking forward,
cheers

Record best DL submission IP address.

Would it be possible in a future release of the pool to record in the nonce_submission table the IP of the miner that submitted it? One of the miners on my pool, who knows what he's doing, has suddenly started getting DL's orders of magnitudes over his deadline limit, and it skews the hell out of his estimated capacity. His 360TB+ was down to 28TB estimated. I think someone sabotaging him - ie submitting bad DL's every round in the hope of him not getting one of his accepted, and therefore the bad DL is credited to his estimate - is low, but I can't rule it out. Would be useful to see where good vs abnormal submissions originated from.

Nogrod 1.4.0 You have an error in your SQL syntax

# go version
go version go1.11.2 linux/amd64
mysql -v
Server version: 10.0.36-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04

Running on Ubuntu Server 16.04.5 LTS

This is a new database that Nogrod is running on. I created the database with Collation set to utf8mb4_general_ci. When I start Nogrod it created the tables. Ran good for about a day now im getting this, and then it dies.

{"level":"info","ts":1544463455.2362452,"caller":"wallethandler/wallethandler.go:216","msg":"checking if block was won","generator":6870823970895666698,"nonce":12579318641387556672,"expected generator":3738294266252060771,"expected nonce":16151709031885217736,"was won":false,"height":565328}
panic: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IF EXISTS(SELECT 1 FROM block WHERE height = ?) THEN
                        UPD' at line 1

goroutine 59 [running]:
github.com/jmoiron/sqlx.MustExec(0xb606e0, 0xc0002680c0, 0xad2c95, 0x122, 0xc001f00680, 0x4, 0x4, 0xc001e1ce00, 0xc001f25f38)
	/root/go/pkg/mod/github.com/jmoiron/[email protected]/sqlx.go:718 +0xba
github.com/jmoiron/sqlx.(*DB).MustExec(0xc0002680c0, 0xad2c95, 0x122, 0xc001f00680, 0x4, 0x4, 0x0, 0x0)
	/root/go/pkg/mod/github.com/jmoiron/[email protected]/sqlx.go:370 +0x70
github.com/PoC-Consortium/Nogrod/pkg/modelx.(*Modelx).validateTransactions(0xc0002b2090)
	/root/nogrod-1.4.0/pkg/modelx/modelx.go:942 +0x472
github.com/PoC-Consortium/Nogrod/pkg/modelx.(*Modelx).Payout(0xc0002b2090)
	/root/nogrod-1.4.0/pkg/modelx/modelx.go:1006 +0x39
github.com/PoC-Consortium/Nogrod/pkg/pool.(*Pool).jobs(0xc0002f5920)
	/root/nogrod-1.4.0/pkg/pool/pool.go:170 +0x195
created by github.com/PoC-Consortium/Nogrod/pkg/pool.(*Pool).Run
	/root/nogrod-1.4.0/pkg/pool/pool.go:410 +0x3f

multi-out payment setup is not balanced.

Currently the pool tx fee in the config charges all miners the same amount for example 0.1 fee, but only cost 0.1 for one multi-out transaction making it so the pool owner keeps the rest of the collected tx fee for them selves. So, if pool has 10 active miners total and charges all of them 0.1 tx fee, then the pool keeps 0.9 burst and only pays 0.1 multi-out tx fee. Not a fair setup for the miners! Recommend dividing the set tx fee in the config by the amount of total active miners and charging that amount to each miner and making it fair. For example if the pool config tx fee is set to 1 burst and there are 10 miners, then each miner would be effectively charged 0.1 burst each. Thoughts? Maybe have a current active miner fee section in the config web page that is variable based on number of current miners.

Not able to make anymore

make build
make[1]: Entering directory '/home/burst/pool/testpool/goburstpool'
git submodule update --init --recursive
Submodule 'src/goburst' (https://github.com/spebern/goburst) registered for path 'src/goburst'
Cloning into '/home/burst/pool/testpool/goburstpool/src/goburst'...
Submodule path 'src/goburst': checked out '4a95c84fdab00f87442fcb37793de19c3269518e'
package github.com/golang-migrate/migrate/v3/database: cannot find package "github.com/golang-migrate/migrate/v3/database" in any of:
/usr/lib/go-1.10/src/github.com/golang-migrate/migrate/v3/database (from $GOROOT)
/home/burst/pool/testpool/goburstpool/vendor/src/github.com/golang-migrate/migrate/v3/database (from $GOPATH)
/home/burst/pool/testpool/goburstpool/src/github.com/golang-migrate/migrate/v3/database
package github.com/golang-migrate/migrate/v3/source: cannot find package "github.com/golang-migrate/migrate/v3/source" in any of:
/usr/lib/go-1.10/src/github.com/golang-migrate/migrate/v3/source (from $GOROOT)
/home/burst/pool/testpool/goburstpool/vendor/src/github.com/golang-migrate/migrate/v3/source (from $GOPATH)
/home/burst/pool/testpool/goburstpool/src/github.com/golang-migrate/migrate/v3/source
Makefile:41: recipe for target 'deps' failed
make[1]: *** [deps] Error 1
make[1]: Leaving directory '/home/burst/pool/testpool/goburstpool'
Makefile:16: recipe for target 'start' failed
make: *** [start] Error 2

can not make goburstpool

when making, it shows:
make[1]: Leaving directory '/home/fullintest/burstTool/git/goburstpool'
./goburstpool
{"level":"info","ts":1530170824.0251307,"caller":"config/config.go:195","msg":"Using default 5s for Cfg.WalletTimeout"}
{"level":"fatal","ts":1530170824.0268152,"caller":"modelx/modelx.go:155","msg":"failed to connect to sql server","error":"Error 1045: Access denied for user 'burstpool'@'localhost' (using password: YES)","stacktrace":"modelx.initializeDatabase\n\t/home/fullintest/burstTool/git/goburstpool/src/modelx/modelx.go:155\nmodelx.NewModelX\n\t/home/fullintest/burstTool/git/goburstpool/src/modelx/modelx.go:113\nmain.main\n\t/home/fullintest/burstTool/git/goburstpool/main.go:19\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:198"}
Makefile:16: recipe for target 'start' faile

how can I fix this issue?

I had already installed mariadb,:
$ mysqladmin --version
mysqladmin Ver 9.1 Distrib 10.3.7-MariaDB, for debian-linux-gnu on x86_64
and go:
$ go version
go version go1.10.3 linux/amd64

pool url

@spebern unfortunately I couldn't get any help from discord channel. So here I'm again.

I got pool running and I can access pool with local host such as 127.0.0.1:8080, however when I access the same pool with external IP it doesn't work. I checked port 8080 is accessible from outside therefore open. Any clue about it?

from localhost ip
image

exact location of config file

@spebern

Where is the exact location of config file, where it should be? And what is the extension of config file.

I've tried to put in /goburstpool/src/config and file name config.yaml

/goburstpool/src/config/config.yaml

But still when I make I get this error

make[1]: Leaving directory '/root/goburstpool'
./goburstpool
{"level":"fatal","ts":1542429773.4818594,"caller":"config/config.go:77","msg":"unpacking config failed","error":"yaml: unmarshal errors:\n line 60: cannot unmarshal !!str 3A1ryV5... into uint64","stacktrace":"config.LoadConfig\n\t/root/goburstpool/src/config/config.go:77\nmain.main\n\t/root/goburstpool/main.go:14\nruntime.main\n\t/root/.go/src/runtime/proc.go:198"}
Makefile:16: recipe for target 'start' failed
make: *** [start] Error 1

for help

2019-07-25T15:33:03.588+0800 ERROR modelx/modelx.go:454 switching new block {"error": "Generation signature's length differs from 64"}
github.com/PoC-Consortium/Nogrod/pkg/modelx.(*Modelx).MaybeSwitchOrNewBlock
/home/ubuntu/Nogrod/pkg/modelx/modelx.go:454
github.com/PoC-Consortium/Nogrod/pkg/modelx.(*Modelx).UpdateOrCreateNonceSubmission
/home/ubuntu/Nogrod/pkg/modelx/modelx.go:751
github.com/PoC-Consortium/Nogrod/pkg/pool.(*Pool).processSubmitNonceRequest
/home/ubuntu/Nogrod/pkg/pool/pool.go:268
github.com/PoC-Consortium/Nogrod/pkg/pool.(*Pool).serve.func1
/home/ubuntu/Nogrod/pkg/pool/pool.go:335
net/http.HandlerFunc.ServeHTTP
/usr/local/go/src/net/http/server.go:1995
github.com/throttled/throttled.(*HTTPRateLimiter).RateLimit.func1
/home/ubuntu/go/pkg/mod/github.com/throttled/[email protected]+incompatible/http.go:73
net/http.HandlerFunc.ServeHTTP
/usr/local/go/src/net/http/server.go:1995
net/http.(*ServeMux).ServeHTTP
/usr/local/go/src/net/http/server.go:2375
net/http.serverHandler.ServeHTTP
/usr/local/go/src/net/http/server.go:2774
net/http.(*conn).serve

Dark mode / Light mode Switch

Finally I didn't have time to do anything 'proper' but it must be pretty easy to 'cleanup'
Here's a draft supposedly working :

web/templates/index.tmpl

('switch').click(function(e){
      if ($('link[href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"]').length == 1) {
        $('link[href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"]').attr('href', 'https://stackpath.bootstrapcdn.com/bootswatch/3.3.5/darkly/bootstrap.min.css');
      }
      else if ($('link[href="https://stackpath.bootstrapcdn.com/bootswatch/3.3.5/darkly/bootstrap.min.css"]').length == 1) {
        $('link[href="https://stackpath.bootstrapcdn.com/bootswatch/3.3.5/darkly/bootstrap.min.css"]').attr('href', '//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css');
      }
    });

web/templates/header.tmpl

        <div id="navbar" class="collapse navbar-collapse">
          <ul class="nav navbar-nav">
            <li>
              <a target="_blank" href="/info">
                <i class="fa fa-info"></i> Info
              </a>
            </li>
            <li>
              <a target="_blank" href="https://explore.burst.cryptoguru.org/">
                <i class="fa fa-bar-chart-o"></i> Explorer
              </a>
            </li>
            <li>
              <a target="_blank" href="https://github.com/PoC-Consortium">
                <i class="fa fa-briefcase"></i> Software Packages
              </a>
            </li>
            <li>
              <a target="_blank" href="https://burstwiki.org/">
                <i class="fa fa-wikipedia-w"></i> Burst Wiki
              </a>
            </li>
            <li>
              <a id="switch">
                <i class="fa fa-moon-o"></i> Theme Switch
              </a>
            </li>
          </ul>
        </div>

/usr/bin/ld: cannot find -lburstmath

/go/src/github.com/Nogrod-1.4.0$ make
cd pkg/burstmath && make
make[1]: Entering directory '/home/andrew/go/src/github.com/Nogrod-1.4.0/pkg/burstmath'
cd libs;
cc -Wall -m64 -O3 -mtune=native -fPIC -c -o shabal64.o shabal64.s;
cc -Wall -m64 -O3 -mtune=native -fPIC -c -o mshabal_sse4.o mshabal_sse4.c;
cc -Wall -m64 -O3 -mtune=native -fPIC -mavx2 -c -o mshabal256_avx2.o mshabal256_avx2.c;
cc -Wall -m64 -O3 -mtune=native -fPIC -shared -o libburstmath.a burstmath.c shabal64.o mshabal_sse4.o mshabal256_avx2.o -lpthread -std=gnu99;
burstmath.c: In function ‘calculate_deadline’:
burstmath.c:90:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
req->deadline = *(uint64_t *)finals2 / req->base_target;
^
burstmath.c: In function ‘calculate_deadlines_sse4’:
burstmath.c:144:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
reqs[i]->deadline = *(uint64_t *)finals2[i] / reqs[i]->base_target;
^
burstmath.c: In function ‘calculate_deadlines_avx2’:
burstmath.c:210:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
reqs[i]->deadline = *(uint64_t *)finals2[i] / reqs[i]->base_target;;
^
make[1]: Leaving directory '/home/andrew/go/src/github.com/Nogrod-1.4.0/pkg/burstmath'
go build -o Nogrod

github.com/PoC-Consortium/Nogrod/pkg/burstmath
/usr/bin/ld: cannot find -lburstmath
collect2: error: ld returned 1 exit status
Makefile:19: recipe for target 'build' failed
make: *** [build] Error 2

make error.

I receive this error after running make -
"error":"Error 1045: Access denied for user 'burstpool'@'localhost' (using password: YES)"
What is the name of the config file?? I have tried config.yaml in the root directory.

Total Pool Capacity in TB on Dashboard Feature Request

Gents,

Would it be possible to add a Total Pool Capacity in TeraBytes (TB) on the dashboard that would add up all the storage capacities of "All Miners" Tab? I know many of us miners catch ourselves trying to calculate the total capacity in our heads. Would be a great feature to see it in the Dashboard section somewhere like "Current Round Shares" Graphic.

V/r,
khomitchr

pkg/modelx/modelx.go line 475: currentBlock.Height-uint64(Cfg.NAVG) error

in file: pkg/modelx/modelx.go

if currentBlock.Height != uint64(0) && height < currentBlock.Height-uint64(Cfg.NAVG) { return errors.New("bock too old") }

when uint64(Cfg.NAVG) is bigger than currentBlock.Height, the result of subtraction will be a very large uint64 number. cause this function always return error.

make error when making pool sw

when making pool sw of pool, encounter this error:
make build
make[1]: Entering directory '/home/fullintest/burstTool/project'
git submodule update --init --recursive
package gopkg.in/yaml.v2: unrecognized import path "gopkg.in/yaml.v2" (https fetch: Get https://gopkg.in/yaml.v2?go-get=1: net/http: TLS handshake timeout)
Makefile:37: recipe for target 'deps' failed
make[1]: *** [deps] Error 1
make[1]: Leaving directory '/home/fullintest/burstTool/project'
Makefile:16: recipe for target 'start' failed
make: *** [start] Error 2

how can I resolve it?

how do I get publicpoolId?

guys, I want to set config file, and I don't know how to get publicPoolId.
if you know, please tell me and tks.

// numeric id of pool
// all miners should set their reward recipient to
// this numeric id
poolPublicId: 10282355196851764065

shabal64.s error: unknown directive

Hi, it seems like my gcc can not build shabal64.s to shabal64.o

➜ goburstpool git:(master) ✗ make
cd pkg/burstmath && /Library/Developer/CommandLineTools/usr/bin/make
cd libs;
cc -c -o shabal64.o shabal64.s;
cc -c -o mshabal_sse4.o mshabal_sse4.c;
cc -mavx2 -c -o mshabal256_avx2.o mshabal256_avx2.c;
cc -shared -o libburstmath.a burstmath.c shabal64.o mshabal_sse4.o mshabal256_avx2.o -lpthread -std=gnu99;
shabal64.s:101:2: error: unknown directive
.type shabal_inner, @function
^
shabal64.s:1312:2: error: unknown directive
.size shabal_inner, .-shabal_inner
^
shabal64.s:1322:2: error: unknown directive
.type shabal_init, @function
^
shabal64.s:1358:2: error: unknown directive
.size shabal_init, .-shabal_init
^
shabal64.s:1363:2: error: unknown directive
.type iv, @object
^
shabal64.s:1589:2: error: unknown directive
.size iv, .-iv
^
shabal64.s:1595:2: error: unknown directive
.type reduced_memcpy, @function
^
shabal64.s:1604:2: error: unknown directive
.size reduced_memcpy, .-reduced_memcpy
^
shabal64.s:1633:2: error: unknown directive
.type align_structure_enter, @function
^
shabal64.s:1653:2: error: unknown directive
.size align_structure_enter, .-align_structure_enter
^
shabal64.s:1671:2: error: unknown directive
.type align_structure_leave, @function
^
shabal64.s:1686:2: error: unknown directive
.size align_structure_leave, .-align_structure_leave
^
shabal64.s:1698:2: error: unknown directive
.type shabal, @function
^
shabal64.s:1824:2: error: unknown directive
.size shabal, .-shabal
^
shabal64.s:1838:2: error: unknown directive
.type shabal_close, @function
^
shabal64.s:1943:2: error: unknown directive
.size shabal_close, .-shabal_close
^
clang: error: no such file or directory: 'shabal64.o'
make[1]: *** [libs] Error 1
make: *** [libs] Error 2
➜ goburstpool git:(master) ✗ go version
go version go1.11.2 darwin/amd64
➜ goburstpool git:(master) ✗ gcc -v
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.1.0 (clang-902.0.39.2)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

macOS High Sierra

Deadline calculation wrong?

When i run the burstpool as described here i get some warnings, and every deadline i submit is calculated different then the miner does. What could be the cause of this, and what to do to get rid of the warnings?

make build
make[1]: Entering directory '/home/richard/goburstpool'
git submodule update --init --recursive
cd src/goburst/burstmath/libs;
gcc -fPIC -Wall -m64 -O3 -mtune=native -c -o shabal64.o shabal64.s;
gcc -fPIC -Wall -m64 -O3 -mtune=native -c -o mshabal_sse4.o mshabal_sse4.c;
gcc -fPIC -Wall -m64 -O3 -mtune=native -mavx2 -c -o mshabal256_avx2.o mshabal256_avx2.c;
gcc -fPIC -Wall -m64 -O3 -mtune=native -shared -o libburstmath.a burstmath.c shabal64.o mshabal_sse4.o mshabal256_avx2.o -lpthread -std=gnu99;
burstmath.c: In function 'calculate_deadline':
burstmath.c:96:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
req->deadline = *(uint64_t *)finals2 / req->base_target;
^
burstmath.c: In function 'calculate_deadlines_sse4':
burstmath.c:154:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
reqs[i]->deadline = *(uint64_t *)finals2[i] / reqs[i]->base_target;
^
burstmath.c: In function 'calculate_deadlines_avx2':
burstmath.c:224:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
reqs[i]->deadline = *(uint64_t *)finals2[i] / reqs[i]->base_target;;
^
make[1]: Leaving directory '/home/richard/goburstpool'
./goburstpool
{"level":"info","ts":1528141884.7235026,"caller":"config/config.go:194","msg":"Using default 5s for Cfg.WalletTimeout"}
{"level":"info","ts":1528141905.776647,"caller":"pool/pool.go:175","msg":"got new Block with height","height":497839}

SSE4 problems

{"level":"info","ts":1522697581.0140765,"caller":"pool/pool.go:83","msg":"using sse4"}
{"level":"info","ts":1522697581.0155797,"caller":"pool/pool.go:267","msg":"got new Block with height","height":475328}
{"level":"info","ts":1522697581.9128437,"caller":"pool/pool.go:446","msg":"incoming request","requestId":"cd972cce-09ef-45f5-a198-a651caea6033","ip":"192.168.0.20","uri":"/burst?requestType=getMiningInfo","user-agent":""}
SIGILL: illegal instruction
PC=0x889be7 m=4 sigcode=2

goroutine 0 [idle]:
runtime: unknown pc 0x889be7
stack: frame={sp:0x7f61a1102d38, fp:0x0} stack=[0x7f61a0a042f0,0x7f61a1203ef0)
00007f61a1102c38: 0000000000000000 0000000000000000
00007f61a1102c48: 0000000000000000 0000000000000000
00007f61a1102c58: 0000000000000000 0000000000000000
00007f61a1102c68: 0000000000000000 0000000000000000
00007f61a1102c78: 0000000000000000 0000000000000000
...................................
runtime: unknown pc 0x889be7
stack: frame={sp:0x7f61a1102d38, fp:0x0} stack=[0x7f61a0a042f0,0x7f61a1203ef0)
00007f61a1102c38: 0000000000000000 0000000000000000
00007f61a1102c48: 0000000000000000 0000000000000000
00007f61a1102c58: 0000000000000000 0000000000000000
00007f61a1102c68: 0000000000000000 0000000000000000
..................................................................
goroutine 164 [syscall]:
runtime.cgocall(0x885690, 0xc420250de8, 0x9f1458)
/usr/local/go/src/runtime/cgocall.go:128 +0x64 fp=0xc420250d60 sp=0xc420250d28 pc=0x403334
util._Cfunc_calculate_deadlines_sse4(0x182, 0xbd67, 0xc4202980c0, 0x0, 0xc9ad78a6bbd9f700, 0xc9ad78a6bbd9f700, 0x0, 0x0, 0x1a17a33, 0x5af318c9f81f, ...)
_cgo_gotypes.go:95 +0x4b fp=0xc420250de8 sp=0xc420250d60 pc=0x72e2ab
util.CalculateDeadlinesSSE4(0x182, 0xbd67, 0xc4202980c0, 0x20, 0x40, 0xc420456100, 0xc9ad78a6bbd9f700, 0xc9ad78a6bbd9f700, 0x0, 0x0, ...)
/ssd/official/gopool/goburstpool/src/util/util.go:107 +0x17d fp=0xc420250e98 sp=0xc420250de8 pc=0x72ef4d
pool.(*Pool).processReqsSSE4(0xc42038c090, 0xc9ad78a6bbd9f700, 0x1a17a33, 0xc42002a540, 0xc9ad78a6bbd9f700, 0x5af318c9f81f, 0xc42002a690, 0x0, 0x0, 0x0, ...)
/ssd/official/gopool/goburstpool/src/pool/pool.go:139 +0x142 fp=0xc420250f70 sp=0xc420250e98 pc=0x780a92
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:2361 +0x1 fp=0xc420250f78 sp=0xc420250f70 pc=0x4573d1
created by pool.(*Pool).collectDeadlineReqsSSE4
/ssd/official/gopool/goburstpool/src/pool/pool.go:131 +0x2a1

goroutine 1 [select (no cases)]:
main.main()
/ssd/official/gopool/goburstpool/main.go:31 +0x10e

and this continue.

Please check and offer a solution.

Make not working: Upgrading from 1.2.0

Having trouble making latest build, I am still on 1.2.0 (pre Nogrod)

cd pkg/burstmath && make
make[1]: Entering directory '/srv/tmp/Nogrod-1.4.4/pkg/burstmath'
cd libs;
cc -Wall -m64 -O3 -mtune=native -fPIC -c -o shabal64.o shabal64.s;
cc -Wall -m64 -O3 -mtune=native -fPIC -c -o mshabal_sse4.o mshabal_sse4.c;
cc -Wall -m64 -O3 -mtune=native -fPIC -mavx2 -c -o mshabal256_avx2.o mshabal256_avx2.c;
cc -Wall -m64 -O3 -mtune=native -fPIC -shared -o libburstmath.a burstmath.c shabal64.o mshabal_sse4.o mshabal256_avx2.o -lpthread -std=gnu99;
burstmath.c: In function ‘calculate_deadline’:
burstmath.c:90:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
req->deadline = *(uint64_t *)finals2 / req->base_target;
^~~
burstmath.c: In function ‘calculate_deadlines_sse4’:
burstmath.c:144:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
reqs[i]->deadline = *(uint64_t *)finals2[i] / reqs[i]->base_target;
^~~~
burstmath.c: In function ‘calculate_deadlines_avx2’:
burstmath.c:210:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
reqs[i]->deadline = *(uint64_t *)finals2[i] / reqs[i]->base_target;;
^~~~
make[1]: Leaving directory '/srv/tmp/Nogrod-1.4.4/pkg/burstmath'
go build -o Nogrod
main.go:6:2: cannot find package "github.com/PoC-Consortium/Nogrod/pkg/config" in any of:
/usr/local/go/src/github.com/PoC-Consortium/Nogrod/pkg/config (from $GOROOT)
/root/go/src/github.com/PoC-Consortium/Nogrod/pkg/config (from $GOPATH)
main.go:7:2: cannot find package "github.com/PoC-Consortium/Nogrod/pkg/modelx" in any of:
/usr/local/go/src/github.com/PoC-Consortium/Nogrod/pkg/modelx (from $GOROOT)
/root/go/src/github.com/PoC-Consortium/Nogrod/pkg/modelx (from $GOPATH)
main.go:8:2: cannot find package "github.com/PoC-Consortium/Nogrod/pkg/pool" in any of:
/usr/local/go/src/github.com/PoC-Consortium/Nogrod/pkg/pool (from $GOROOT)
/root/go/src/github.com/PoC-Consortium/Nogrod/pkg/pool (from $GOPATH)
main.go:9:2: cannot find package "github.com/PoC-Consortium/Nogrod/pkg/wallethandler" in any of:
/usr/local/go/src/github.com/PoC-Consortium/Nogrod/pkg/wallethandler (from $GOROOT)
/root/go/src/github.com/PoC-Consortium/Nogrod/pkg/wallethandler (from $GOPATH)
main.go:10:2: cannot find package "github.com/PoC-Consortium/Nogrod/pkg/webserver" in any of:
/usr/local/go/src/github.com/PoC-Consortium/Nogrod/pkg/webserver (from $GOROOT)
/root/go/src/github.com/PoC-Consortium/Nogrod/pkg/webserver (from $GOPATH)
Makefile:19: recipe for target 'build' failed
make: *** [build] Error 1

Possible DDOS issue

My pool was crashing due to below logs and errors. I ended blocking 183.240.196.0/24 network and crashing stopped.

{"level":"info","ts":1530161899.1485713,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"ac6a88db-4330-42b1-ba60-adf7f07df844","ip":"183.240.196.149","uri":"/burst?requestType=getMiningInfo","user-agent":""}
2018/06/27 18:58:19 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 160ms
2018/06/27 18:58:19 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 5ms
2018/06/27 18:58:19 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 5ms
{"level":"warn","ts":1530161899.389737,"caller":"pool/pool.go:191","msg":"Miner submitted on invalid height","requestId":"7414b1f4-86d8-46e3-b20b-30852a127f7d","got":506188,"expected":506189}
2018/06/27 18:58:19 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 5ms
{"level":"warn","ts":1530161899.3954515,"caller":"pool/pool.go:191","msg":"Miner submitted on invalid height","requestId":"99e0ccec-5739-4045-a34f-88d54264cfa3","got":506188,"expected":506189}
2018/06/27 18:58:19 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 5ms
2018/06/27 18:58:19 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 5ms
2018/06/27 18:58:19 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 10ms
2018/06/27 18:58:19 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 20ms
2018/06/27 18:58:19 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 40ms
{"level":"info","ts":1530161899.4665709,"caller":"pool/pool.go:218","msg":"processing formal valid request","requestId":"29495a67-16c6-4bd1-abd4-ca046de9f4f9","accountID":7909028307161998093,"nonce":262724603}
{"level":"info","ts":1530161899.4666092,"caller":"pool/pool.go:229","msg":"valid reward recipient","requestId":"29495a67-16c6-4bd1-abd4-ca046de9f4f9"}
2018/06/27 18:58:19 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 80ms
{"level":"info","ts":1530161899.5110872,"caller":"pool/pool.go:218","msg":"processing formal valid request","requestId":"c5a1c192-fdff-45a3-b84c-dc51d392071e","accountID":6336676392124779714,"nonce":3170787038231368992}
{"level":"info","ts":1530161899.5111887,"caller":"pool/pool.go:229","msg":"valid reward recipient","requestId":"c5a1c192-fdff-45a3-b84c-dc51d392071e"}
2018/06/27 18:58:19 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 160ms
{"level":"info","ts":1530161899.5765386,"caller":"pool/pool.go:218","msg":"processing formal valid request","requestId":"7de098ee-60fd-450f-b843-b0339da082b4","accountID":6336676392124779714,"nonce":3644146842904536106}
{"level":"info","ts":1530161899.5765886,"caller":"pool/pool.go:229","msg":"valid reward recipient","requestId":"7de098ee-60fd-450f-b843-b0339da082b4"}
2018/06/27 18:58:19 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 320ms
{"level":"info","ts":1530161899.9060771,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"3f82cf27-b1fc-438b-8677-dfce871e543f","ip":"183.240.196.144","uri":"/burst?requestType=getMiningInfo","user-agent":""}
2018/06/27 18:58:20 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 640ms
{"level":"info","ts":1530161900.0484722,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"7f02e768-c03c-47e0-8980-74fdbb27a385","ip":"183.240.196.147","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1530161900.2119117,"caller":"pool/pool.go:218","msg":"processing formal valid request","requestId":"7b1b21f5-60a2-4d1f-9641-6edb9ea56d00","accountID":6336676392124779714,"nonce":8132983812972275705}
{"level":"info","ts":1530161900.2119567,"caller":"pool/pool.go:229","msg":"valid reward recipient","requestId":"7b1b21f5-60a2-4d1f-9641-6edb9ea56d00"}
{"level":"info","ts":1530161900.2439551,"caller":"pool/pool.go:218","msg":"processing formal valid request","requestId":"e59c29f3-e29b-43ea-98fb-a04873d571df","accountID":6336676392124779714,"nonce":13020253998469113399}
{"level":"info","ts":1530161900.2440057,"caller":"pool/pool.go:229","msg":"valid reward recipient","requestId":"e59c29f3-e29b-43ea-98fb-a04873d571df"}
{"level":"info","ts":1530161900.2490346,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"8afb15c6-55ac-476d-bdd7-e9ad02f0a380","ip":"183.240.196.148","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1530161900.401606,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"2236fb0a-e980-4274-add0-5472317555bb","ip":"183.240.196.53","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1530161900.4829342,"caller":"pool/pool.go:218","msg":"processing formal valid request","requestId":"130245ba-3e3f-4b21-92d5-512b7662e868","accountID":6336676392124779714,"nonce":3644146842922820628}
{"level":"info","ts":1530161900.482976,"caller":"pool/pool.go:229","msg":"valid reward recipient","requestId":"130245ba-3e3f-4b21-92d5-512b7662e868"}
{"level":"info","ts":1530161900.569727,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"b1f71f94-e89d-462a-b295-e7e00f773940","ip":"183.240.196.53","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1530161900.5735183,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"d0df95b8-80ee-44f8-8aa7-7aa9808082eb","ip":"183.240.196.144","uri":"/burst?requestType=getMiningInfo","user-agent":""}
2018/06/27 18:58:20 http: Accept error: accept tcp [::]:8124: accept4: too many open files; retrying in 1s
{"level":"info","ts":1530161900.7024949,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"19d6bcee-87ca-44eb-87ad-78ea63c31784","ip":"","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1530161900.9001665,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"7c00e2de-7fcb-4edc-95cd-6da74c04fb80","ip":"183.240.196.144","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1530161901.0500207,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"4252cc09-5566-44fc-9efa-e19f3f728f25","ip":"183.240.196.151","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1530161901.0588717,"caller":"pool/pool.go:218","msg":"processing formal valid request","requestId":"97a02421-8d3e-49fe-a22d-14b79ee8efb5","accountID":6336676392124779714,"nonce":8555247405341977372}
{"level":"info","ts":1530161901.0589318,"caller":"pool/pool.go:229","msg":"valid reward recipient","requestId":"97a02421-8d3e-49fe-a22d-14b79ee8efb5"}
{"level":"info","ts":1530161901.227112,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"49776742-511a-4e70-be8b-9342c28065b6","ip":"183.240.196.60","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1530161901.2446516,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"10995847-8b76-4fe7-a0ec-043037d322b1","ip":"183.240.196.52","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1530161901.34792,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"de1cc5d9-773b-4dcf-8c6a-c06ae5c9f4a2","ip":"183.240.196.52","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1530161901.634269,"caller":"pool/pool.go:253","msg":"valid deadline","requestId":"97a02421-8d3e-49fe-a22d-14b79ee8efb5","deadline":12642091}
{"level":"info","ts":1530161901.634329,"caller":"pool/pool.go:253","msg":"valid deadline","requestId":"e59c29f3-e29b-43ea-98fb-a04873d571df","deadline":5968675}
{"level":"info","ts":1530161901.6343536,"caller":"pool/pool.go:253","msg":"valid deadline","requestId":"7b1b21f5-60a2-4d1f-9641-6edb9ea56d00","deadline":9972035}
{"level":"info","ts":1530161901.634399,"caller":"pool/pool.go:253","msg":"valid deadline","requestId":"130245ba-3e3f-4b21-92d5-512b7662e868","deadline":18321496}
{"level":"info","ts":1530161901.6342852,"caller":"pool/pool.go:253","msg":"valid deadline","requestId":"7de098ee-60fd-450f-b843-b0339da082b4","deadline":21544729}
{"level":"info","ts":1530161901.6343055,"caller":"pool/pool.go:253","msg":"valid deadline","requestId":"29495a67-16c6-4bd1-abd4-ca046de9f4f9","deadline":23382541}
{"level":"info","ts":1530161901.6343179,"caller":"pool/pool.go:253","msg":"valid deadline","requestId":"c5a1c192-fdff-45a3-b84c-dc51d392071e","deadline":25873730}
{"level":"info","ts":1530161901.639479,"caller":"pool/pool.go:101","msg":"new best deadline","deadline":12642091}
panic: dial tcp 127.0.0.1:3306: socket: too many open files

goroutine 71 [running]:
github.com/jmoiron/sqlx.MustExec(0xb123a0, 0xc4202a2060, 0xabe985, 0xb6, 0xc4215bae20, 0x2, 0x2, 0x0, 0xc420349c38)
/home/burst/pool/goburstpool/vendor/src/github.com/jmoiron/sqlx/sqlx.go:720 +0xba
github.com/jmoiron/sqlx.(*DB).MustExec(0xc4202a2060, 0xabe985, 0xb6, 0xc4215bae20, 0x2, 0x2, 0xc42143c000, 0xc421b17a40)
/home/burst/pool/goburstpool/vendor/src/github.com/jmoiron/sqlx/sqlx.go:370 +0x70
modelx.(*Modelx).UpdateBestSubmission(0xc420254c60, 0x57f0659b01338cc2, 0x7b94d)
/home/burst/pool/goburstpool/src/modelx/modelx.go:706 +0x10d
pool.(*Pool).forge(0xc42026bef0, 0x7b943, 0x18aed, 0xea5, 0xc4202b4100, 0x40, 0xc4202b4140, 0x20, 0x40, 0x0, ...)
/home/burst/pool/goburstpool/src/pool/pool.go:103 +0x528
created by pool.NewPool
/home/burst/pool/goburstpool/src/pool/pool.go:57 +0x2a5

API: make available more details about the Pool

It would be nice to have some configuration details available via the API:

  • poolFeeShare
  • deadlineLimit
  • minimumPayout
  • txFee
  • winnerShare
  • tMin
  • nAvg
  • nMin
  • setNowFee
  • setWeeklyFee
  • setDailyFee
  • setMinPayoutFee

This would help making a "live" comparison of all Pools.
And I'm planing to do an uptime monitoring for Pools which uses the provided values aswell.

For example:
Pool A was online for 200 days straight and has a fee of 1% it would be as efficient as the pool with 198 Days online time and a fee of 0%.

-> Having the Share and Fee values is necessary; and why one should want to store it additionally if the API can provide live values

Multiple IPs from China exceeding rate limit and causing server performance issues.

{"level":"info","ts":1531894521.497703,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"03393ed9-c97d-450d-948b-9ca99110b5e9","ip":"183.240.196.53","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1531894521.701579,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"7d6da57f-cb79-4c2b-844e-22eb83985315","ip":"183.240.196.53","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1531894521.773634,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"2e65c153-f736-496f-be9d-04ecc39bdb9a","ip":"183.240.196.53","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1531894521.857405,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"51d66c2f-0e84-4750-af83-f7f742ca50a9","ip":"183.240.196.53","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1531894522.1446123,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"c07974b3-e060-41fd-ba3c-b4e074869aae","ip":"183.240.196.150","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1531894522.967498,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"4873a3de-ec37-4d79-9716-b66f2f316fe0","ip":"183.240.196.53","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1531894523.01998,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"c11e375f-d780-495e-b449-f5debfd56711","ip":"183.240.196.148","uri":"/burst?requestType=getMiningInfo","user-agent":""}
{"level":"info","ts":1531894523.2016115,"caller":"pool/pool.go:278","msg":"rate limit exceeded","requestId":"bacc26cb-35d5-4487-9edb-f584b79cd3a4","ip":"183.240.196.53","uri":"/burst?requestType=getMiningInfo","user-agent":""}

I have my limit set to allowRequestsPerSecond: 3

and ulimit -Sn 1048576

once I blocked the IPs at the firewall pool performance increased dramatically.

I'm not sure what this client is trying to do.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.