Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1533 commits
Select commit Hold shift + click to select a range
b5afac8
Fixed ETH uncle block rewards
MoneroOcean Mar 1, 2021
98ca9ca
Merge pull request #3 from MoneroOcean/master
techandbeers Mar 1, 2021
5668a93
Merge pull request #111 from techandbeers/master
MoneroOcean Mar 2, 2021
288ba8e
TRTL orphan support
MoneroOcean Mar 3, 2021
7e2e516
Show block dumps for all payed block
MoneroOcean Mar 4, 2021
e062ba5
Fixed adminEmail record
MoneroOcean Mar 5, 2021
e61d72f
Added paid_blocks table
MoneroOcean Mar 6, 2021
400bcac
Keep info about last week paid block
MoneroOcean Mar 6, 2021
984b3a7
Extra log info
MoneroOcean Mar 6, 2021
a76f8d8
Added basis for block prepayment calc for the same anchor height
MoneroOcean Mar 6, 2021
0247075
Added basis for block prepayment calc for the same anchor height
MoneroOcean Mar 6, 2021
01aee17
Merge reward calc for same anchor height
MoneroOcean Mar 6, 2021
938ce6f
Merge reward calc for same anchor height
MoneroOcean Mar 6, 2021
c496336
Merge reward calc for same anchor height
MoneroOcean Mar 6, 2021
a99ff61
Merge reward calc for same anchor height
MoneroOcean Mar 6, 2021
1f16ad9
Merge reward calc for same anchor height
MoneroOcean Mar 6, 2021
4a83b85
Merge reward calc for same anchor height
MoneroOcean Mar 6, 2021
9b9b70c
Merge reward calc for same anchor height
MoneroOcean Mar 6, 2021
81f942d
Added block_payments api
MoneroOcean Mar 6, 2021
14e6217
Added block_payments api
MoneroOcean Mar 6, 2021
aee4292
Added block_payments api
MoneroOcean Mar 6, 2021
6b163e8
Added block_payments api
MoneroOcean Mar 6, 2021
78b27a1
Added block_payments api
MoneroOcean Mar 6, 2021
008ad45
Added block_payments api
MoneroOcean Mar 7, 2021
86f618b
Added block found time and port
MoneroOcean Mar 7, 2021
d1a7779
Added block found time and port
MoneroOcean Mar 7, 2021
67c3f85
Added block found time and port
MoneroOcean Mar 7, 2021
3681990
Added block found time and port
MoneroOcean Mar 7, 2021
7dfdf5e
Added block found time and port
MoneroOcean Mar 7, 2021
b2dd23f
Added block found time and port
MoneroOcean Mar 7, 2021
6b8c25e
Merge reward calc for same anchor height
MoneroOcean Mar 7, 2021
ab8ab7f
Merge reward calc for same anchor height
MoneroOcean Mar 7, 2021
2c74099
Merge reward calc for same anchor height
MoneroOcean Mar 7, 2021
39c31fd
Added DB close
MoneroOcean Mar 7, 2021
b400525
Added DB close
MoneroOcean Mar 7, 2021
957b9d8
Added DB close
MoneroOcean Mar 7, 2021
892c182
Added DB close
MoneroOcean Mar 7, 2021
a669a7d
Changed ts to secs
MoneroOcean Mar 7, 2021
8223090
Fixed
MoneroOcean Mar 7, 2021
80014e2
Simplified update pay_set.js
MoneroOcean Mar 8, 2021
8c14f93
Simplified update pay_set.js
MoneroOcean Mar 8, 2021
a07592e
Simplified update pay_set.js
MoneroOcean Mar 8, 2021
06b4aef
Added rigid support
MoneroOcean Mar 9, 2021
4e4cee5
Extra share debug
MoneroOcean Mar 10, 2021
5fbbaab
Extra share debug
MoneroOcean Mar 10, 2021
d0f2e48
Extra share debug
MoneroOcean Mar 10, 2021
3b70a82
Extra share debug
MoneroOcean Mar 10, 2021
3c3d79e
Extra share debug
MoneroOcean Mar 10, 2021
7ca988e
Extra share debug
MoneroOcean Mar 10, 2021
5c9ab22
Extra share debug
MoneroOcean Mar 10, 2021
27b91d0
Extra share debug
MoneroOcean Mar 10, 2021
e6e5d7d
Extra share debug
MoneroOcean Mar 10, 2021
ff83068
Extra share debug
MoneroOcean Mar 10, 2021
db153d7
Extra share debug
MoneroOcean Mar 10, 2021
f6cb0fc
Extra share debug
MoneroOcean Mar 10, 2021
d2f7363
Extra share debug
MoneroOcean Mar 10, 2021
b8c6360
Wallet tmp bans
MoneroOcean Mar 10, 2021
918f236
Added multiple share verify servers
MoneroOcean Mar 10, 2021
df3c19a
Added multiple share verify servers
MoneroOcean Mar 10, 2021
22daa1f
Separate queue for verify servers
MoneroOcean Mar 10, 2021
55cd05c
Separate queue for verify servers
MoneroOcean Mar 10, 2021
4ea8444
Separate queue for verify servers
MoneroOcean Mar 10, 2021
76ab68d
Added multiple share verify servers
MoneroOcean Mar 10, 2021
4df184f
Improving balancing of multi share verify servers
MoneroOcean Mar 11, 2021
137c2bf
Improving balancing of multi share verify servers
MoneroOcean Mar 12, 2021
702f731
Added check for invalid block reward
MoneroOcean Mar 16, 2021
1ad4f50
Added check for invalid block reward
MoneroOcean Mar 16, 2021
3b810c0
More debug
MoneroOcean Mar 18, 2021
4db5cd0
More debug
MoneroOcean Mar 18, 2021
35fb50b
Improved share verify load balancing
MoneroOcean Mar 18, 2021
dc80534
Remove debug
MoneroOcean Mar 18, 2021
e97bf52
Disable useless pool ip check
MoneroOcean Mar 19, 2021
06bd923
Disable useless pool ip check
MoneroOcean Mar 19, 2021
5a605a6
Fixed localhost check for ipv6
MoneroOcean Mar 24, 2021
12fb61e
Fixed localhost check for ipv6
MoneroOcean Mar 24, 2021
59b7c0d
Fixed install script
MoneroOcean Mar 24, 2021
a24bcd9
Fixed install script
MoneroOcean Mar 24, 2021
3d48ca9
Fixed install script
MoneroOcean Mar 24, 2021
d81b327
Fixed install script
MoneroOcean Mar 24, 2021
726decb
Updated default params
MoneroOcean Mar 25, 2021
55753d2
Fixed first block payment bug
MoneroOcean Mar 25, 2021
86cbd74
Updated setup script
MoneroOcean Mar 25, 2021
6bcc094
Fixed XNP diff
MoneroOcean Mar 27, 2021
5a0a436
Added throttle share config
MoneroOcean Mar 27, 2021
b92aeec
Fixed type
MoneroOcean Mar 27, 2021
4fdfe8a
Added wallet acc time param
MoneroOcean Mar 28, 2021
33db9ac
Adjusted diffs
MoneroOcean Mar 29, 2021
a8d14d0
Added new share dump script for all shares
MoneroOcean Mar 29, 2021
6668efa
Fixed XHV reward calc
MoneroOcean Mar 30, 2021
0a052f1
Allow multiblock share accumulation
MoneroOcean Mar 31, 2021
ce16a4b
Do not lower high miner diff if wallet diff if lower
MoneroOcean Apr 2, 2021
b7fb900
Added log about shre storing
MoneroOcean Apr 3, 2021
88bf1a3
Fix big threshold settting
MoneroOcean Apr 5, 2021
313dec8
Update monerod to v0.17.2.0
MoneroOcean Apr 12, 2021
9eb9eee
Moved to eth_getWork based artificial last block header
MoneroOcean Apr 14, 2021
52e81c9
Moved to eth_getWork based artificial last block header
MoneroOcean Apr 14, 2021
546d393
Moved to eth_getWork based artificial last block header
MoneroOcean Apr 14, 2021
bd89bf3
Moved to eth_getWork based artificial last block header
MoneroOcean Apr 14, 2021
ea7fbf5
Moved to eth_getWork based artificial last block header
MoneroOcean Apr 14, 2021
b60c0bf
Moved to eth_getWork based artificial last block header
MoneroOcean Apr 14, 2021
8cec8fb
More intellegent miner history update to optimize worker time
MoneroOcean Apr 14, 2021
b977e4b
More intellegent miner history update to optimize worker time
MoneroOcean Apr 14, 2021
216cf04
Optimized ETH bt processing
MoneroOcean Apr 14, 2021
fb74afa
Decreased default new BT poll interval if block push server is not ac…
MoneroOcean Apr 14, 2021
89793dc
Optimized resource usage
MoneroOcean Apr 17, 2021
362ec5b
Optimized resource usage
MoneroOcean Apr 17, 2021
85204c4
Optimized resource usage
MoneroOcean Apr 17, 2021
f917b5a
Optimized resource usage
MoneroOcean Apr 17, 2021
060149a
Optimized resource usage
MoneroOcean Apr 17, 2021
dab19f7
Optimized resource usage
MoneroOcean Apr 17, 2021
7b9e400
Optimized resource usage
MoneroOcean Apr 19, 2021
75881c7
Optimized resource usage
MoneroOcean Apr 19, 2021
7be4bf0
Optimized resource usage
MoneroOcean Apr 19, 2021
24e5e86
More strict miner tracking
MoneroOcean Apr 20, 2021
297610c
Added large worker miner bans
MoneroOcean Apr 20, 2021
8c81f9a
Added large worker miner bans
MoneroOcean Apr 20, 2021
bd944cd
Updated utils version
MoneroOcean Apr 20, 2021
68aab2f
Worker script debug
MoneroOcean Apr 20, 2021
85c5d09
Worker script debug
MoneroOcean Apr 20, 2021
9ef2379
Worker script debug
MoneroOcean Apr 20, 2021
4cad38f
Worker script debug
MoneroOcean Apr 21, 2021
53a5eeb
Worker script debug
MoneroOcean Apr 21, 2021
887a268
Worker script debug
MoneroOcean Apr 21, 2021
7215db7
Worker script debug
MoneroOcean Apr 21, 2021
af5d3b7
Worker script debug
MoneroOcean Apr 21, 2021
d25a8f3
Worker script debug
MoneroOcean Apr 21, 2021
96d7605
Worker script debug
MoneroOcean Apr 21, 2021
d203346
Worker script debug
MoneroOcean Apr 22, 2021
cde19d5
Worker script debug
MoneroOcean Apr 22, 2021
3dc36a9
Worker script debug
MoneroOcean Apr 22, 2021
670aeef
Worker script email fix
MoneroOcean Apr 22, 2021
96a1969
Worker script email fix
MoneroOcean Apr 22, 2021
35e7e03
Worker script email fix
MoneroOcean Apr 22, 2021
55b3639
Type fix
MoneroOcean Apr 25, 2021
a44babf
Avoid dupblicate block in DB
MoneroOcean Apr 28, 2021
69fd2a5
Fixed XHV reward check
MoneroOcean Apr 28, 2021
aaf683f
Fixed XHV reward check
MoneroOcean Apr 28, 2021
f04af5a
Automated block add
MoneroOcean Apr 28, 2021
561d866
Automated block add
MoneroOcean Apr 28, 2021
a42bee6
Automated block add
MoneroOcean Apr 28, 2021
cfc0cc7
Automated block add
MoneroOcean Apr 28, 2021
1c2d67a
Automated block add
MoneroOcean Apr 28, 2021
a30c97d
Extra manage script
MoneroOcean May 2, 2021
d4a391b
Extra manage script
MoneroOcean May 2, 2021
e967cb2
Extra manage script
MoneroOcean May 2, 2021
4a4169d
Added limited eth pool support
MoneroOcean May 6, 2021
04caed5
Added extra verify host
MoneroOcean May 14, 2021
a0a35b4
Increased protobuf altblock value for ETH
MoneroOcean May 19, 2021
15bbb8b
Restored protobuf altblock value for ETH
MoneroOcean May 19, 2021
0801ddb
Increased protobuf altblock value for ETH
MoneroOcean May 19, 2021
b2a57e8
Added BLOC support
MoneroOcean May 28, 2021
caf694d
Added BLOC support
MoneroOcean May 29, 2021
7a5e6ee
Added block payment grouping
MoneroOcean May 30, 2021
b59b5d2
Added block payment grouping
MoneroOcean May 30, 2021
ecc65f5
LMDB DB rescue
MoneroOcean Jun 2, 2021
22c54d8
LMDB DB rescue
MoneroOcean Jun 2, 2021
01ac77f
LMDB DB rescue
MoneroOcean Jun 2, 2021
e128e9b
LMDB DB rescue
MoneroOcean Jun 2, 2021
263a0ad
LMDB DB rescue
MoneroOcean Jun 2, 2021
ac9d600
Improved storing block precalc info
MoneroOcean Jun 2, 2021
8787561
Improved storing block precalc info
MoneroOcean Jun 2, 2021
afb4187
Improved storing block precalc info
MoneroOcean Jun 2, 2021
fbf85fd
Improved storing block precalc info
MoneroOcean Jun 2, 2021
8893a22
Improved storing block precalc info
MoneroOcean Jun 2, 2021
cf1fadc
Improved storing block precalc info
MoneroOcean Jun 2, 2021
3b904fa
Fixed DERO block processing'
MoneroOcean Jun 24, 2021
d6f15b5
Fixed DERO block processing
MoneroOcean Jun 24, 2021
b97c2b5
Fixed DERO block processing
MoneroOcean Jun 24, 2021
139d131
More even block payments
MoneroOcean Jul 13, 2021
245dab3
More even block payments
MoneroOcean Jul 13, 2021
a553e61
More even block payments
MoneroOcean Jul 13, 2021
0a13d4a
ERG support (draft)
MoneroOcean Jul 20, 2021
abe9c0f
ERG support (draft)
MoneroOcean Jul 20, 2021
5793dc0
ERG support (draft)
MoneroOcean Jul 20, 2021
90d2eb1
Updated utils
MoneroOcean Jul 21, 2021
8d4cd95
Invalidate block
MoneroOcean Jul 21, 2021
88c9f16
More efficient invalid share storage
MoneroOcean Jul 21, 2021
7ce457b
Fixed typo
MoneroOcean Jul 22, 2021
027e434
ERG support fix
MoneroOcean Jul 23, 2021
20221b6
ERG support fix
MoneroOcean Jul 23, 2021
066f7dd
Fixed install
MoneroOcean Jul 24, 2021
567bc0d
ERG support draft
MoneroOcean Jul 24, 2021
24d77f7
ERG support draft
MoneroOcean Jul 24, 2021
07835ba
ERG support draft
MoneroOcean Jul 24, 2021
690f555
ERG support draft
MoneroOcean Jul 24, 2021
173c343
ERG support draft
MoneroOcean Jul 24, 2021
cb781ad
ERG support draft
MoneroOcean Jul 24, 2021
8970ca1
ERG support draft
MoneroOcean Jul 24, 2021
2a6d0a4
ERG support draft
MoneroOcean Jul 24, 2021
203b603
ERG support draft
MoneroOcean Jul 24, 2021
6c00589
ERG support draft
MoneroOcean Jul 25, 2021
a519a02
Fixed disabled BT miners disconnect
MoneroOcean Jul 25, 2021
875f9e2
ERG support draft
MoneroOcean Jul 26, 2021
4368d53
npm audit
MoneroOcean Jul 26, 2021
15a8b9d
npm audit
MoneroOcean Jul 26, 2021
f64f482
npm audit
MoneroOcean Jul 26, 2021
7f94369
npm audit
MoneroOcean Jul 26, 2021
e7333a3
npm audit
MoneroOcean Jul 26, 2021
8f4f148
Fixed issues with eth nbminer
MoneroOcean Jul 26, 2021
c6d8526
Increased miner timeouts in case of stale BT
MoneroOcean Jul 26, 2021
ad04101
Fixed to works with many blocks
MoneroOcean Aug 4, 2021
2f726c0
Updated ETH price calc
MoneroOcean Aug 6, 2021
3964c1a
Fixed underfined blid dero case
MoneroOcean Aug 7, 2021
1ca9717
Fixed underfined blid dero case
MoneroOcean Aug 7, 2021
6d4939a
Fixed erg block id detection
MoneroOcean Aug 7, 2021
c54d873
Added ms timestamp fix
MoneroOcean Aug 7, 2021
e2217ec
Added ms timestamp fix
MoneroOcean Aug 7, 2021
6330ff8
More ERG debug
MoneroOcean Aug 9, 2021
1e5e6b7
Added delay to get new ERG block hash
MoneroOcean Aug 10, 2021
31b47a6
Added rx/graft support
MoneroOcean Aug 18, 2021
b31f388
Bug fixes
MoneroOcean Aug 19, 2021
6395173
Increased verify queue
MoneroOcean Aug 23, 2021
4f5ae14
Increased verify queue
MoneroOcean Aug 23, 2021
30159c1
Increased verify queue
MoneroOcean Aug 23, 2021
3210b1b
Increased verify queue
MoneroOcean Aug 23, 2021
e24212f
Increased verify queue
MoneroOcean Aug 23, 2021
0159340
Added external wallet support
MoneroOcean Aug 31, 2021
47d7ecf
Added LMDB size param
MoneroOcean Sep 1, 2021
b7d6773
Fixed typo
MoneroOcean Sep 1, 2021
6aa6661
Updated moenro daemon
MoneroOcean Sep 10, 2021
80eb971
Updated moenro daemon
MoneroOcean Sep 10, 2021
d76db56
Improved cache cleaning
MoneroOcean Sep 11, 2021
691764b
Improved cache cleaning
MoneroOcean Sep 11, 2021
09a2b7f
Improved cache cleaning
MoneroOcean Sep 11, 2021
0ead157
Improved cache cleaning
MoneroOcean Sep 11, 2021
2089c8e
Increased time between monerod restarts
MoneroOcean Sep 26, 2021
8c12993
Fixed N calc for ERG
MoneroOcean Nov 7, 2021
677410b
Fixed N calc for ERG
MoneroOcean Nov 7, 2021
2ba2db6
Up utils
MoneroOcean Nov 18, 2021
8c87aae
GR support
MoneroOcean Nov 30, 2021
72d08a9
GR support
MoneroOcean Nov 30, 2021
fbc25e3
GR support
MoneroOcean Nov 30, 2021
8345ac6
GR support
MoneroOcean Nov 30, 2021
d1bf15e
GR support
MoneroOcean Nov 30, 2021
4e6118b
GR support
MoneroOcean Nov 30, 2021
182e666
GR support
MoneroOcean Nov 30, 2021
30d899e
GR support
MoneroOcean Nov 30, 2021
4e0004a
GR support
MoneroOcean Nov 30, 2021
5292088
GR support
MoneroOcean Nov 30, 2021
f0c056c
GR support
MoneroOcean Nov 30, 2021
a0851d2
GR support
MoneroOcean Nov 30, 2021
14e0117
GR support
MoneroOcean Nov 30, 2021
0b40678
GR support
MoneroOcean Nov 30, 2021
c8a84fe
GR support
MoneroOcean Dec 1, 2021
09d9f48
Blob fix
MoneroOcean Dec 1, 2021
2784b83
Added RTM block ID function
MoneroOcean Dec 9, 2021
98b7eea
Adapted for RTM
MoneroOcean Dec 9, 2021
6e7c040
Added RTM block ID function
MoneroOcean Dec 9, 2021
637ceb9
Added RTM block ID function
MoneroOcean Dec 12, 2021
0406ac0
Rename deployment/base.sql to via06@github.com/create/new/database/mo…
via06 Jan 4, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 29 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ Setup Instructions

Server Requirements
-------------------
* 4 Gb Ram
* Ubuntu 20.04, 18.04 (confirmed working)
* 8 Gb Ram
* 2 CPU Cores (with AES_NI)
* 150 Gb SSD-Backed Storage - If you're doing a multi-server install, the leaf nodes do not need this much storage. They just need enough storage to hold the blockchain for your node. The pool comes configured to use up to 60Gb of storage for LMDB. Assuming you have the longRunner worker running, it should never get near this size, but be aware that it /can/ bloat readily if things error, so be ready for this!
* Notably, this happens to be approximately the size of a 4Gb linode instance, which is where the majority of automated deployment testing happened!
Expand All @@ -59,13 +60,14 @@ Deployment via Installer

```shell
cd ~/nodejs-pool/
pm2 start init.js --name=blockManager --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=blockManager
pm2 start init.js --name=worker --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=worker
pm2 start init.js --name=payments --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" --no-autorestart -- --module=payments
pm2 start init.js --name=remoteShare --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=remoteShare
pm2 start init.js --name=longRunner --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=longRunner
pm2 start init.js --name=pool --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=pool
pm2 start init.js --name=api --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=api
pm2 start init.js --name=blockManager --kill-timeout 10000 --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=blockManager
pm2 start init.js --name=worker --kill-timeout 10000 --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=worker
pm2 start init.js --name=pool_stats --kill-timeout 10000 --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=pool_stats
pm2 start init.js --name=payments --kill-timeout 10000 --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" --no-autorestart -- --module=payments
pm2 start init.js --name=remoteShare --kill-timeout 10000 --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=remoteShare
pm2 start init.js --name=longRunner --kill-timeout 10000 --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=longRunner
pm2 start init.js --name=pool --kill-timeout 10000 --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=pool
pm2 start init.js --name=api --kill-timeout 10000 --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z" -- --module=api
pm2 restart api
```

Expand All @@ -87,8 +89,6 @@ The installer assumes that you will be running a single-node instance and using
The following raw binaries **MUST BE AVAILABLE FOR IT TO BOOTSTRAP**:
* sudo

I've confirmed that the default server 16.04 installation has these requirements.

The pool comes pre-configured with values for Monero (XMR), these may need to be changed depending on the exact requirements of your coin. Other coins will likely be added down the road, and most likely will have configuration.sqls provided to overwrite the base configurations for their needs, but can be configured within the frontend as well.

The pool ALSO applies a series of patches: Fluffy Blocks, Additional Open P2P Connections, 128 Txn Bug Fix. If you don't like these, replace the auto-installed monerod fixes!
Expand Down Expand Up @@ -256,19 +256,33 @@ For assistance, please contact MoneroOcean at support@moneroocean.stream.
Developer Donations
===================
If you'd like to make a one time donation, the addresses are as follows:
* XMR - ```499fS1Phq64hGeqV8p2AfXbf6Ax7gP6FybcMJq6Wbvg8Hw6xms8tCmdYpPsTLSaTNuLEtW4kF2DDiWCFcw4u7wSvFD8wFWE```
* XMR - ```89TxfrUmqJJcb1V124WsUzA78Xa3UYHt7Bg8RGMhXVeZYPN8cE5CZEk58Y1m23ZMLHN7wYeJ9da5n5MXharEjrm41hSnWHL```
* AEON - ```WmsEg3RuUKCcEvFBtXcqRnGYfiqGJLP1FGBYiNMgrcdUjZ8iMcUn2tdcz59T89inWr9Vae4APBNf7Bg2DReFP5jr23SQqaDMT```
* ETN - ```etnkQMp3Hmsay2p7uxokuHRKANrMDNASwQjDUgFb5L2sDM3jqUkYQPKBkooQFHVWBzEaZVzfzrXoETX6RbMEvg4R4csxfRHLo1```
* SUMO - ```Sumoo1DGS7c9LEKZNipsiDEqRzaUB3ws7YHfUiiZpx9SQDhdYGEEbZjRET26ewuYEWAZ8uKrz6vpUZkEVY7mDCZyGnQhkLpxKmy```
* GRFT - ```GACadqdXj5eNLnyNxvQ56wcmsmVCFLkHQKgtaQXNEE5zjMDJkWcMVju2aYtxbTnZgBboWYmHovuiH1Ahm4g2N5a7LuMQrpT```
* MSR - ```5hnMXUKArLDRue5tWsNpbmGLsLQibt23MEsV3VGwY6MGStYwfTqHkff4BgvziprTitbcDYYpFXw2rEgXeipsABTtEmcmnCK```
* ITNS - ```iz53aMEaKJ25zB8xku3FQK5VVvmu2v6DENnbGHRmn659jfrGWBH1beqAzEVYaKhTyMZcxLJAdaCW3Kof1DwTiTbp1DSqLae3e```
* LTHN - ```iz53aMEaKJ25zB8xku3FQK5VVvmu2v6DENnbGHRmn659jfrGWBH1beqAzEVYaKhTyMZcxLJAdaCW3Kof1DwTiTbp1DSqLae3e```
* WOW - ```Wo3yjV8UkwvbJDCB1Jy7vvXv3aaQu3K8YMG6tbY3Jo2KApfyf5RByZiBXy95bzmoR3AvPgNq6rHzm98LoHTkzjiA2dY7sqQMJ```
* XMV - ```4BDgQohRBqg2wFZ5ezYqCrNGjgECAttARdbh1fNkuAbd3HnNkSgas11QD9VFQMzbnvDD3Mfcky1LAFihkbEYph5oGAMLurw```
* XMV - ```XvyVfpAYp3zSuvdtoHgnDzMUf7GAeiumeUgVC7RTq6SfgtzGEzy4dUgfEEfD5adk1kN4dfVZdT3zZdgSD2xmVBs627Vwt2C3Ey```
* RYO - ```RYoLsi22qnoKYhnv1DwHBXcGe9QK6P9zmekwQnHdUAak7adFBK4i32wFTszivQ9wEPeugbXr2UD7tMd6ogf1dbHh76G5UszE7k1```
* XTL - ```Se3Qr5s83AxjCtYrkkqg6QXJagCVi8dELbHb5Cnemw4rMk3xZzEX3kQfWrbTZPpdAJSP3enA6ri3DcvdkERkGKE518vyPQTyi```
* XLA - ```SvkpUizij25ZGRHGb1c8ZTAHp3VyNFU3NQuQR1PtMyCqdpoZpaYAGMfG99z5guuoktY13nrhEerqYNKXvoxD7cUM1xA6Z5rRY```
* XHV - ```hvxyEmtbqs5TEk9U2tCxyfGx2dyGD1g8EBspdr3GivhPchkvnMHtpCR2fGLc5oEY42UGHVBMBANPge5QJ7BDXSMu1Ga2KFspQR```
* TUBE - ```bxcpZTr4C41NshmJM9Db7FBE5crarjaDXVUApRbsCxHHBf8Jkqjwjzz1zmWHhm9trWNhrY1m4RpcS7tmdG4ykdHG2kTgDcbKJ```
* TUBE - ```TubedBNkgkTbd2CBmLQSwW58baJNghD9xdmctiRXjrW3dE8xpUcoXimY4J5UMrnUBrUDmfQrbxRYRX9s5tQe7pWYNF2QiAdH1Fh```
* LOKI - ```L6XqN6JDedz5Ub8KxpMYRCUoQCuyEA8EegEmeQsdP5FCNuXJavcrxPvLhpqY6emphGTYVrmAUVECsE9drafvY2hXUTJz6rW```
* TRTL - ```TRTLv2x2bac17cngo1r2wt3CaxN8ckoWHe2TX7dc8zW8Fc9dpmxAvhVX4u4zPjpv9WeALm2koBLF36REVvsLmeufZZ1Yx6uWkYG```
* XTNC - ```XtazhSxz1bbJLpT2JuiD2UWFUJYSFty5SVWuF6sy2w9v8pn69smkUxkTVCQc8NKCd6CBMNDGzgdPRYBKaHdbgZ5SNptVH1yPCTQ```
* IRD - ```ir3DHyB8Ub1aAHEewMeUxQ7b7tQdWa7VL8M5oXDPohS3Me4nhwvALXM4mym2kWg9VsceT75dm6XWiWF1K4zu8RVQ1HJD8Z3R9```
* ARQ - ```ar4Ha6ZQCkKRhkKQLfexv7VZQM2MhUmMmU9hmzswCPK4T3o2rbPKZM1GxEoYg4AFQsh57PsEets7sbpU958FAvxo2RkkTQ1gE```
* XWP - ```fh4MCJrakhWGoS6Meqp6UxGE1GNfAjKaRdPjW36rTffDiqvEq2HWEKZhrbYRw7XJb3CXxkjL3tcYGTT39m5qgjvk1ap4bVu1R```
* XEQ - ```Tvzp9tTmdGP9X8hCEw1Qzn18divQajJYTjR5HuUzHPKyLK5fzRt2X73FKBDzcnHMDJKdgsPhUDVrKHVcDJQVmLBg33NbkdjQb```
* XTA - ```ipN5cNhm7RXAGACP4ZXki4afT3iJ1A6Ka5U4cswE6fBPDcv8JpivurBj3vu1bXwPyb8KZEGsFUYMmToFG4N9V9G72X4WpAQ8L```
* DERO - ```dERokvcrnuWH1ai1QmZQc9cgxrLwE3rX3TbhdrnLmi3BVZmf197qd5FaFqmPMp5dZ3igXfVQwUUMgTSjpVKDtUeb6DT2xp64XJ```
* CCX - ```ccx7dmnBBoRPuVcpKJSAVZKdSDo9rc7HVijFbhG34jsXL3qiqfRwu7A5ecem44s2rngDd8y8N4QnYK6WR3mXAcAZ5iXun9BQBx```
* BLOC - ```abLoc5iUG4a6oAb2dqygxkS5M2uHWx16zHb9fUWMzpSEDwm6T7PSq2MLdHonWZ16CGfnJKRomq75aZyviTo6ZjHeYQMzNAEkjMg```
* RVN - ```RLVJv9rQNHzXS3Zn4JH8hfAHmm1LfECMxy```
* RTM - ```RUCyaEZxQu3Eure73XPQ57si813RYAMQKC```
* ERG - ```9fe533kUzAE57YfPP6o3nzsYMKN2W2uCxvg8KG8Vn5DDeJGetRw```
* BTC - ```3BzvMuLStA388kYZ9nudfm8L22937dSPS3```
* BCH - ```qrhww48p5s6zw9twhc7cujgwp7vym2k4vutem6f92p```
* ETH - ```0xCF8BABC074C487Ae17F9Ce0394eab492E6A35658```
Expand Down
2 changes: 2 additions & 0 deletions block_notify.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/bash
/bin/echo 18081 | /bin/nc -N localhost 2223
79 changes: 79 additions & 0 deletions block_share_dumps/calc_mo_cvs.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
"use strict";

if (Boolean(process.stdin.isTTY) || process.argv.length !== 3) {
console.log("Usage: unxz -c <block hash>.cvs.xz | node calc_mo_cvs.js <your Monero wallet address>");
console.log(" wget -O - https://block-share-dumps.moneroocean.stream/<block hash>.cvs.xz | unxz -c | node calc_mo_cvs.js <your Monero wallet address>");
process.exit(1);
}

const my_wallet = process.argv[2].slice(-16);

let stdin = "";

process.stdin.on('data', function(data) {
stdin += data.toString();
});

function human_hashrate(hashes) {
const power = Math.pow(10, 2 || 0);
if (hashes > 1000000000000) return String(Math.round((hashes / 1000000000000) * power) / power) + " TH/s";
if (hashes > 1000000000) return String(Math.round((hashes / 1000000000) * power) / power) + " GH/s";
if (hashes > 1000000) return String(Math.round((hashes / 1000000) * power) / power) + " MH/s";
if (hashes > 1000) return String(Math.round((hashes / 1000) * power) / power) + " KH/s";
return Math.floor( hashes || 0 ) + " H/s"
};

process.stdin.on('end', function() {
let pplns_window = 0;
let oldest_timestamp = 0;
let newest_timestamp = 0;

let my_share_count = 0;
let my_xmr_diff = 0;
let my_xmr_diff_payed = 0;
let my_coin_raw_diff = {};
let my_coin_xmr_diff = {};

for (let line of stdin.split("\n")) {
if (line.substring(0, 1) == "#") continue;
const items = line.split('\t');
if (items.length < 7) {
console.error("Skipped invalid line: " + line);
continue;
}
const wallet = items[0];
const timestamp = parseInt(items[1], 16);
const raw_diff = parseInt(items[2]);
const count = parseInt(items[3]);
const coin = items[4];
const xmr_diff = parseInt(items[5]);
const xmr_diff_payed = items[6] == "" ? xmr_diff : parseInt(items[6]);
pplns_window += xmr_diff;
if (!oldest_timestamp || timestamp < oldest_timestamp) oldest_timestamp = timestamp;
if (newest_timestamp < timestamp) newest_timestamp = timestamp;
if (wallet === my_wallet) {
my_share_count += count;
my_xmr_diff += xmr_diff;
my_xmr_diff_payed += xmr_diff_payed;
if (!(coin in my_coin_raw_diff)) my_coin_raw_diff[coin] = 0;
my_coin_raw_diff[coin] += raw_diff;
if (!(coin in my_coin_xmr_diff)) my_coin_xmr_diff[coin] = 0;
my_coin_xmr_diff[coin] += xmr_diff;
}
}

console.log("PPLNS window size: \t" + ((newest_timestamp - oldest_timestamp)/1000/60/60).toFixed(2) + " hours");
console.log("PPLNS window size: \t" + pplns_window + " xmr hashes");
console.log("Pool XMR normalized hashrate: \t" + human_hashrate(pplns_window / (newest_timestamp - oldest_timestamp) * 1000));
console.log("");
console.log("Your submitted shares: \t" + my_share_count);
console.log("Your payment: \t" + ((my_xmr_diff_payed / pplns_window) * 100).toFixed(6) + "% (" + my_xmr_diff_payed + " xmr hashes)");
console.log("Your XMR normalized hashrate: \t" + human_hashrate(my_xmr_diff_payed / (newest_timestamp - oldest_timestamp) * 1000));
console.log("");
console.log("You mined these coins:");
for (let coin of Object.keys(my_coin_raw_diff).sort()) {
console.log("\t" + coin + ": " + my_coin_raw_diff[coin] + " raw coin hashes (" + ((my_coin_xmr_diff[coin] / my_xmr_diff) * 100).toFixed(6) + "% of XMR normalized hashrate)");
}

process.exit(0);
});
75 changes: 75 additions & 0 deletions block_share_dumps/calc_mo_cvs_top.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
"use strict";

if (Boolean(process.stdin.isTTY) || process.argv.length !== 2) {
console.log("Usage: unxz -c <block hash>.cvs.xz | node calc_mo_cvs_top.js");
console.log(" wget -O - https://block-share-dumps.moneroocean.stream/<block hash>.cvs.xz | unxz -c | node calc_mo_cvs_top.js");
process.exit(1);
}

let stdin = "";

process.stdin.on('data', function(data) {
stdin += data.toString();
});

function human_hashrate(hashes) {
const power = Math.pow(10, 2 || 0);
if (hashes > 1000000000000) return String(Math.round((hashes / 1000000000000) * power) / power) + " TH/s";
if (hashes > 1000000000) return String(Math.round((hashes / 1000000000) * power) / power) + " GH/s";
if (hashes > 1000000) return String(Math.round((hashes / 1000000) * power) / power) + " MH/s";
if (hashes > 1000) return String(Math.round((hashes / 1000) * power) / power) + " KH/s";
return Math.floor( hashes || 0 ) + " H/s"
};

process.stdin.on('end', function() {
let pplns_window = 0;
let oldest_timestamp = 0;
let newest_timestamp = 0;

let wallets = {};

let my_share_count = 0;
let my_xmr_diff = 0;
let my_xmr_diff_payed = 0;
let my_coin_raw_diff = {};
let my_coin_xmr_diff = {};

for (let line of stdin.split("\n")) {
if (line.substring(0, 1) == "#") continue;
const items = line.split('\t');
if (items.length < 7) {
console.error("Skipped invalid line: " + line);
continue;
}
const wallet = items[0];
const timestamp = parseInt(items[1], 16);
const raw_diff = parseInt(items[2]);
const count = parseInt(items[3]);
const coin = items[4];
const xmr_diff = parseInt(items[5]);
const xmr_diff_payed = items[6] == "" ? xmr_diff : parseInt(items[6]);
pplns_window += xmr_diff;
if (!oldest_timestamp || timestamp < oldest_timestamp) oldest_timestamp = timestamp;
if (newest_timestamp < timestamp) newest_timestamp = timestamp;
if (!(wallet in wallets)) wallets[wallet] = {
share_count: 0,
xmr_diff: 0,
xmr_diff_payed: 0,
coin_raw_diff: {},
coin_xmr_diff: {},
};
wallets[wallet].share_count += count;
wallets[wallet].xmr_diff += xmr_diff;
wallets[wallet].xmr_diff_payed += xmr_diff_payed;
if (!(coin in wallets[wallet].coin_raw_diff)) wallets[wallet].coin_raw_diff[coin] = 0;
wallets[wallet].coin_raw_diff[coin] += raw_diff;
if (!(coin in wallets[wallet].coin_xmr_diff)) wallets[wallet].coin_xmr_diff[coin] = 0;
wallets[wallet].coin_xmr_diff[coin] += xmr_diff;
}

for (let wallet of Object.keys(wallets).sort((a, b) => (wallets[a].xmr_diff < wallets[b].xmr_diff) ? 1 : -1)) {
console.log(wallet + ": " + wallets[wallet].xmr_diff);
}

process.exit(0);
});
2 changes: 2 additions & 0 deletions config_example.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
{
"pool_id": 0,
"eth_pool_support": 1,
"bind_ip": "127.0.0.1",
"hostname": "testpool.com",
"db_storage_path": "CHANGEME",
"verify_shares_host": null,
"coin": "xmr",
"mysql": {
"connectionLimit": 20,
Expand Down
1 change: 0 additions & 1 deletion deployment/caddyfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,4 @@
Access-Control-Allow-Headers "Content-Type, x-access-token"
}
gzip
mime .manifest text/cache-manifest
}
45 changes: 18 additions & 27 deletions deployment/deploy.bash
Original file line number Diff line number Diff line change
Expand Up @@ -10,57 +10,48 @@ ROOT_SQL_PASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
CURUSER=$(whoami)
sudo timedatectl set-timezone Etc/UTC
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y upgrade
DEBIAN_FRONTEND=noninteractive sudo --preserve-env=DEBIAN_FRONTEND apt-get -y upgrade
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password $ROOT_SQL_PASS"
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $ROOT_SQL_PASS"
echo -e "[client]\nuser=root\npassword=$ROOT_SQL_PASS" | sudo tee /root/.my.cnf
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install git python-virtualenv python3-virtualenv curl ntp build-essential screen cmake pkg-config libboost-all-dev libevent-dev libunbound-dev libminiupnpc-dev libunwind8-dev liblzma-dev libldns-dev libexpat1-dev mysql-server lmdb-utils libzmq3-dev
cd ~
git clone https://github.com/MoneroOcean/nodejs-pool.git # Change this depending on how the deployment goes.
cd /usr/src/gtest
sudo cmake .
sudo make
sudo mv libg* /usr/lib/
DEBIAN_FRONTEND=noninteractive sudo --preserve-env=DEBIAN_FRONTEND apt-get -y install libcap2-bin git python python-virtualenv python3-virtualenv curl ntp build-essential screen cmake pkg-config libboost-all-dev libevent-dev libunbound-dev libminiupnpc-dev libunwind8-dev liblzma-dev libldns-dev libexpat1-dev mysql-server lmdb-utils libzmq3-dev libsodium-dev
cd ~
git clone https://github.com/MoneroOcean/nodejs-pool.git
sudo systemctl enable ntp
cd /usr/local/src
sudo git clone --recursive https://github.com/monero-project/monero.git
sudo git clone https://github.com/monero-project/monero.git
cd monero
sudo git checkout v0.12.2.0
curl https://raw.githubusercontent.com/MoneroOcean/nodejs-pool/master/deployment/monero_daemon.patch | sudo git apply -v
sudo git submodule init
sudo git submodule update
sudo make -j$(nproc)
sudo git checkout v0.17.2.3
sudo git submodule update --init
USE_SINGLE_BUILDDIR=1 sudo --preserve-env=USE_SINGLE_BUILDDIR make -j$(nproc) release || USE_SINGLE_BUILDDIR=1 sudo --preserve-env=USE_SINGLE_BUILDDIR make release || exit 0
sudo cp ~/nodejs-pool/deployment/monero.service /lib/systemd/system/
sudo useradd -m monerodaemon -d /home/monerodaemon
BLOCKCHAIN_DOWNLOAD_DIR=$(sudo -u monerodaemon mktemp -d)
sudo -u monerodaemon wget --limit-rate=50m -O $BLOCKCHAIN_DOWNLOAD_DIR/blockchain.raw https://downloads.getmonero.org/blockchain.raw
sudo -u monerodaemon /usr/local/src/monero/build/release/bin/monero-blockchain-import --input-file $BLOCKCHAIN_DOWNLOAD_DIR/blockchain.raw --batch-size 20000 --database lmdb#fastest --data-dir /home/monerodaemon/.bitmonero
sudo -u monerodaemon rm -rf $BLOCKCHAIN_DOWNLOAD_DIR
sudo systemctl daemon-reload
sudo systemctl enable monero
sudo systemctl start monero
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
source ~/.nvm/nvm.sh
nvm install v8.11.3
nvm alias default v8.11.3
nvm install v14.17.3
nvm alias default v14.17.3
cd ~/nodejs-pool
npm install
npm install -g pm2
openssl req -subj "/C=IT/ST=Pool/L=Daemon/O=Mining Pool/CN=mining.pool" -newkey rsa:2048 -nodes -keyout cert.key -x509 -out cert.pem -days 36500
mkdir ~/pool_db/
sed -r "s/(\"db_storage_path\": ).*/\1\"\/home\/$CURUSER\/pool_db\/\",/" config_example.json > config.json
cd ~
git clone https://github.com/mesh0000/poolui.git
cd poolui
npm install
./node_modules/bower/bin/bower update
./node_modules/gulp/bin/gulp.js build
git clone https://github.com/MoneroOcean/moneroocean-gui.git
cd moneroocean-gui
DEBIAN_FRONTEND=noninteractive sudo --preserve-env=DEBIAN_FRONTEND sudo apt install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils
apt install -y libx11-xcb1 libxcomposite-dev libxcursor-dev libxcursor-dev libxi-dev libxtst-dev libcups2-dev libxss-dev libxrandr-dev libatk1.0-0 libatk-bridge2.0-0
npm install -g uglifycss uglify-js html-minifier
npm install -D critical@latest
./build.sh
cd build
sudo ln -s `pwd` /var/www
CADDY_DOWNLOAD_DIR=$(mktemp -d)
cd $CADDY_DOWNLOAD_DIR
curl -sL "https://snipanet.com/caddy.tar.gz" | tar -xz caddy init/linux-systemd/caddy.service
curl -sL "https://github.com/caddyserver/caddy/releases/download/v0.11.5/caddy_v0.11.5_linux_amd64.tar.gz" | tar -xz caddy init/linux-systemd/caddy.service
sudo mv caddy /usr/local/bin
sudo chown root:root /usr/local/bin/caddy
sudo chmod 755 /usr/local/bin/caddy
Expand All @@ -85,7 +76,7 @@ rm -rf $CADDY_DOWNLOAD_DIR
cd ~
sudo env PATH=$PATH:`pwd`/.nvm/versions/node/v8.11.3/bin `pwd`/.nvm/versions/node/v8.11.3/lib/node_modules/pm2/bin/pm2 startup systemd -u $CURUSER --hp `pwd`
cd ~/nodejs-pool
sudo chown -R $CURUSER. ~/.pm2
sudo chown -R $CURUSER ~/.pm2
echo "Installing pm2-logrotate in the background!"
pm2 install pm2-logrotate &
mysql -u root --password=$ROOT_SQL_PASS < deployment/base.sql
Expand Down
Loading