SChernykh
15d25bca27
Fixed data race
2022-12-22 20:30:20 +01:00
SChernykh
dffc8bcea0
Fixed cppcheck issues
2022-12-22 14:08:49 +01:00
SChernykh
a61966ed61
Don't count shares that were found during sync
2022-12-22 11:48:50 +01:00
SChernykh
e6d77a40e2
Check block major version in deserialize()
2022-12-19 10:29:29 +01:00
SChernykh
edcb933874
Call get_miner_data
again after startup is done
...
Startup sequence can take a while, so miner data can change - new transactions added, or a new block found by the network.
2022-12-18 11:46:18 +01:00
SChernykh
be18ad4177
Made payout messages more visible
2022-12-18 11:06:38 +01:00
SChernykh
07a5b191bb
Fixes for different BSD variants
2022-12-17 12:56:32 +01:00
SChernykh
da12b329be
Check the block id returned by BLOCK_RESPONSE
2022-12-14 14:24:09 +01:00
SChernykh
3902612c4b
P2PServer: show more data for connected peers
2022-12-09 11:31:05 +01:00
SChernykh
9bce415523
Added alternative command line parameter names
2022-12-03 21:21:02 +01:00
SChernykh
3e4f877ec0
Display software name in peers list
2022-12-02 15:43:20 +01:00
SChernykh
67bbfea87d
p2pool v2.6
2022-11-28 12:44:30 +01:00
SChernykh
220c6939b1
Ignore shares from peers who have lagging monerod
...
More than 10 seconds lag is unacceptable
2022-11-28 08:29:38 +01:00
SChernykh
fd27ea0e8f
Console: check for arguments when required
2022-11-25 21:58:25 +01:00
SChernykh
4bb1982806
Added BlockTemplate tests
2022-11-24 21:38:15 +01:00
SChernykh
9283677a2b
Sync test: log more data in the end
2022-11-24 11:06:18 +01:00
SChernykh
d4180a5084
Fixed Coverity issue
2022-11-24 08:43:13 +01:00
SChernykh
2721b16c46
Miner: fixed data race
2022-11-24 08:04:53 +01:00
SChernykh
f1ff6a21ee
Revert "Broadcast uncle blocks at the same height"
...
This reverts commit 530079b8a5
.
2022-11-23 17:59:28 +01:00
SChernykh
530079b8a5
Broadcast uncle blocks at the same height
...
To reduce orphan block rate
2022-11-23 17:55:11 +01:00
SChernykh
2ca428bbbb
BlockTemplate: non-ambiguous transaction order
...
Different nodes could pick different transactions with the same fee/byte which hurted compact broadcasts efficiency
2022-11-22 23:05:17 +01:00
SChernykh
8a27a8cce4
Added a safety check to block template update
2022-11-22 15:23:32 +01:00
SChernykh
7eec4d742c
P2PServer: removed an unnecessary lock
2022-11-22 09:57:50 +01:00
SChernykh
3f66975e1b
Optimized transaction picking algorithm
2022-11-21 17:09:56 +01:00
SChernykh
b7f8c973f4
Refined transaction picking algorithm
2022-11-21 08:08:31 +01:00
SChernykh
72e414b2b7
Fixed struct alignment
2022-11-16 18:48:46 +01:00
SChernykh
79a31ce57c
SideChain: reduce lock scope in get_outputs_blob
2022-11-16 14:23:13 +01:00
SChernykh
488ed8e562
Added more 128 bit calculations
2022-11-16 10:36:46 +01:00
SChernykh
b3bce1651b
SideChain: use full 128 bits in get_difficulty
2022-11-15 16:39:39 +01:00
SChernykh
cc2f031a32
Fixed a race when stopping logger
2022-11-15 11:07:50 +01:00
SChernykh
d0eea1bf91
Fixed libuv init/shutdown sequence
2022-11-14 23:35:59 +01:00
SChernykh
53ba29b288
Optimized crypto cache memory allocation
2022-11-13 17:30:47 +01:00
SChernykh
c5f3a03d1e
Improved peers
display
2022-11-10 19:56:14 +01:00
SChernykh
da9cdf7df3
Send our P2Pool version to other peers
2022-11-10 14:31:02 +01:00
SChernykh
8a7f1b1b3a
Log shares found by other nodes
2022-11-10 08:22:31 +01:00
SChernykh
aa14620a50
Merge branch 'compact_broadcast'
2022-11-10 07:56:30 +01:00
SChernykh
1fa6a7c11a
Fixed mouse wheel scrolling on Windows
2022-11-09 23:46:10 +01:00
SChernykh
25806b67a2
Added protocol version negotiation
...
Protocol version 1.1: compact block broadcasts
2022-11-09 22:56:12 +01:00
SChernykh
47ff7e228e
Added code to deserialize compact blobs
2022-11-09 16:21:31 +01:00
SChernykh
c135787620
Prepare compact blob for block broadcasts
...
Reference transactions by index in the parent block instead of storing full 32 bytes per transaction
2022-11-09 12:40:45 +01:00
SChernykh
bbc3d44526
P2PServer: tidy up PEER_LIST_RESPONSE messages
2022-11-08 16:36:09 +01:00
SChernykh
2e747beda6
Added sidechain height to SHARE FOUND log
2022-11-08 14:27:03 +01:00
SChernykh
19414b061b
Refactored BackgroundJobTracker
2022-11-04 10:20:32 +01:00
SChernykh
74b5ab1798
Force update block template after 30 seconds
...
To get new transactions in
2022-11-04 07:47:07 +01:00
SChernykh
83cda110aa
P2PServer: tweaked invalid timestamp messages
2022-11-03 21:19:48 +01:00
SChernykh
1f7c89a95c
Fixed Coverity issues
2022-11-03 19:24:15 +01:00
SChernykh
0df11d24f5
P2PServer: tweaked invalid timestamp logic
2022-11-03 16:14:56 +01:00
SChernykh
a6c27a1e3f
P2PServer: checks timestamps only for new blocks
2022-11-03 15:20:38 +01:00
SChernykh
c090b0cf62
P2PServer: tweaked invalid timestamp logic
2022-11-03 13:52:29 +01:00
SChernykh
45660e3d96
Show wallet address in error messages and status
2022-11-03 11:38:43 +01:00
SChernykh
732190bb11
P2PServer: sanity check for timestamps
2022-11-03 08:51:06 +01:00
SChernykh
255d312ae0
SideChain: log blocks with the same id
2022-11-02 12:49:12 +01:00
SChernykh
cc92ae7998
Retry get_block_headers_range RPC call if it fails
2022-11-02 11:36:29 +01:00
SChernykh
07b460147e
P2PServer: added missing time check
2022-11-01 16:07:13 +01:00
SChernykh
6cf1b13500
p2pool v2.5
2022-10-31 17:39:33 +01:00
SChernykh
65a9574e52
Added --p2p-external-port
command line parameter
2022-10-28 14:06:26 +02:00
SChernykh
d081c8ea74
TCPServer: fixed data race during shutdown
2022-10-18 18:41:58 +02:00
SChernykh
c029e5c39d
Added macro for debug builds
2022-10-13 11:21:40 +02:00
SChernykh
a917a9493c
Randomize extra_nonce
...
To guarantee that hashing blobs will be different between different p2pool nodes, even if they mine to the same wallet address and don't have transactions to shuffle within the block template.
2022-10-11 11:33:58 +02:00
SChernykh
02405bb8ff
Workaround for duplicate sidechain IDs
...
Place transactions in the block template in random order, so two different p2pool nodes mining to the same wallet will get different sidechain IDs with high probability if there's more than 2-3 transactions in mempool.
2022-10-10 21:50:33 +02:00
SChernykh
d8bb85a1d8
Fix: api didn't always save total hashes
2022-10-09 18:17:01 +02:00
SChernykh
fd6b2360aa
Fix: uv_close was called from wrong thread
2022-10-07 16:02:08 +02:00
SChernykh
3e655961e9
Merge pull request #206 from SChernykh/reduce_memory
...
Reduced memory usage
2022-10-06 20:01:55 +03:00
SChernykh
077837054b
Optimized TxOutput struct
2022-10-04 21:03:56 +02:00
SChernykh
45674ef554
Better cache cleanup
2022-10-04 20:04:41 +02:00
SChernykh
eabf856dbd
Removed redundant m_sideChainData
2022-10-04 15:49:58 +02:00
SChernykh
32ea0f2cf6
Clear crypto cache more often
2022-10-04 14:37:55 +02:00
SChernykh
6a66615f37
Removed redundant m_mainChainData
2022-10-03 18:42:32 +02:00
SChernykh
314a1ba39b
p2pool v2.4
2022-09-30 17:52:33 +02:00
SChernykh
2daa7f9fea
Fixed memory leak
2022-09-28 22:43:38 +02:00
SChernykh
f0d576e1b0
Reduced memory usage for each PoolBlock
2022-09-28 16:50:30 +02:00
SChernykh
7468af0779
TCPServer: fix incoming connection counting
2022-09-22 11:28:38 +02:00
SChernykh
38a6d3e549
Limit max in/out peers to 450
...
To avoid hitting default open files limit (1024)
2022-09-20 10:39:55 +02:00
SChernykh
b81f1c4975
Require monerod v0.18
2022-09-14 14:45:10 +02:00
SChernykh
ed78e9df6e
More reliable file load/save
2022-09-13 18:48:00 +02:00
SChernykh
f044149004
P2PServer fix: reset ping time on disconnect
2022-09-13 16:14:54 +02:00
SChernykh
f126eb7611
P2PServer: added more logging
2022-09-13 11:12:08 +02:00
SChernykh
afa9cf371e
P2PServer: sync from the fastest peer if possible
2022-09-13 10:51:15 +02:00
SChernykh
f813cf6d36
Fix: possible use after free on shutdown
...
Console commands could access destroyed objects
2022-09-08 16:16:00 +02:00
SChernykh
d80a06bc8e
Added more error logging
2022-09-08 09:18:30 +02:00
SChernykh
947178f10a
StratumServer: improved warning message
2022-09-07 08:59:04 +02:00
SChernykh
e92cc7d50c
Fix: don't use proxy for incoming connections
2022-09-06 15:59:05 +02:00
SChernykh
989a28a8ca
TCPServer small fixes
2022-09-05 15:14:10 +02:00
SChernykh
e4dd46b498
Added --no-dns
command line parameter
2022-09-04 18:10:14 +02:00
SChernykh
c49e8d4770
Merge branch 'proxy'
2022-09-04 09:57:32 +02:00
SChernykh
86156f3fec
SOCKS5 proxy support
2022-09-03 22:35:38 +02:00
SChernykh
fec826b10e
Changed spammy warning to level 5
2022-09-01 10:09:23 +02:00
SChernykh
d40bb61da8
p2pool v2.3
2022-08-30 18:01:45 +02:00
SChernykh
4733d42932
TCPServer: more informative error messages
2022-08-27 10:52:02 +02:00
SChernykh
6615fa67f5
API: fixed error messages
2022-08-26 09:39:44 +02:00
SChernykh
dc4b88d08e
API: use unique temp file names
2022-08-25 09:52:58 +02:00
SChernykh
4599d81a59
API: save to temp file first and then rename it
2022-08-24 17:28:53 +02:00
SChernykh
3ea5b575b7
JSON RPC: added more error checks
2022-08-24 15:17:23 +02:00
SChernykh
bde5b19c77
CI: added sync test
2022-08-23 19:49:41 +02:00
SChernykh
cc60ab3d63
StratumServer: added scoring system for clients
...
Ban clients only after a few bad shares without good shares compensating them.
2022-08-22 11:07:11 +02:00
SChernykh
3802886722
Fixed "unknown command" message
2022-08-17 19:37:18 +02:00
SChernykh
d4e27a27cb
Tweaked SideChain::get_missing_blocks()
2022-08-17 16:44:40 +02:00
SChernykh
e882b91b06
Reduced lock contention in Cache::get_derivation()
2022-08-16 18:15:41 +02:00
SChernykh
4c8dbee79d
More fine-grained locks in crypto cache
2022-08-15 18:39:28 +02:00
SChernykh
30861bbf91
Speedup SideChain::get_outputs_blob()
2022-08-15 13:48:21 +02:00
SChernykh
ea6a19a260
Fixed data race
2022-08-06 11:15:09 +02:00
SChernykh
fc81fa8745
JSON RPC: added more error checking
2022-08-06 10:03:10 +02:00
SChernykh
948436e57e
Fixed coverity issue
2022-08-05 15:27:39 +02:00
SChernykh
3dde71f1ff
Fixed processing of long console commands
2022-08-05 09:09:14 +02:00
SChernykh
555414cd51
SideChain: improved precalculation coverage
2022-07-14 19:29:41 +02:00
SChernykh
c33033b2f4
Code cleanup
2022-07-14 14:28:06 +02:00
SChernykh
3c697c2d7e
Fixed potential deadlock
...
Can't lock `m_minerLock` inside SideChain update
2022-07-14 13:15:35 +02:00
SChernykh
0e7c1aa481
SideChain: stricter checks for number of threads
2022-07-14 11:39:19 +02:00
SChernykh
7d5ff13f75
Fixed cppcheck warnings
2022-07-14 11:23:56 +02:00
SChernykh
02a8a512dc
SideChain: precalculate tx pubkeys for faster sync
2022-07-14 10:28:25 +02:00
SChernykh
4733f46a28
Added uv_cond_init_checked
2022-07-14 09:02:08 +02:00
SChernykh
945de348f3
Rewrote get_view_tag without std::find_if
2022-07-12 09:50:49 +02:00
SChernykh
20dd9d7adc
More efficient view tags caching
2022-07-11 16:42:26 +02:00
SChernykh
c5bd184bbc
P2PServer: don't deserialize the same block twice
2022-07-10 10:24:03 +02:00
SChernykh
1c33cc9f3d
p2pool v2.2.1
2022-07-08 17:47:28 +02:00
SChernykh
9d692d5194
ConsoleCommands: check if console is available
2022-07-07 08:32:37 +02:00
SChernykh
2e4f7adee4
TCPServer: added more checks during disconnects
2022-07-06 14:17:09 +02:00
SChernykh
dcb822f812
ConsoleCommands: read from stdin using libuv
2022-07-05 22:08:18 +02:00
SChernykh
5da286fed4
JSON RPC: added HTTP headers
2022-07-05 14:54:04 +02:00
SChernykh
4ec0fe8d96
Fixed JSON RPC handling during shutdown
2022-07-05 14:34:22 +02:00
SChernykh
340a3e85c8
Fixed autodiff when running for a long time
...
16-bit wrap around wasn't processed correctly
2022-07-05 10:02:18 +02:00
SChernykh
64baf660bb
JSON RPC: fixed shutdown on connect error
2022-07-05 08:36:16 +02:00
SChernykh
c5ea4dca67
p2pool v2.2
2022-06-30 17:58:40 +02:00
SChernykh
deaf47155f
Miner: reset share counter when synchronized
2022-06-30 12:13:17 +02:00
SChernykh
a1d1420ec3
Miner: display shares found in status
2022-06-30 10:15:51 +02:00
SChernykh
deb8d59130
Fixed cppcheck error
2022-06-28 10:58:41 +02:00
SChernykh
14bbf96feb
Enforce deterministic tx keys starting from v15
2022-06-28 10:44:16 +02:00
SChernykh
a281db1cbb
Fixed unaligned read
2022-06-27 16:20:45 +02:00
SChernykh
b25e5449c8
Fixed rare "low diff share" errors
2022-06-26 17:07:19 +02:00
SChernykh
b267c19a45
Limit autodiff to 4M for max compatibility
2022-06-26 17:06:21 +02:00
SChernykh
2aa8d2bdcc
Code cleanup
2022-06-20 22:37:33 +02:00
SChernykh
acf37ff10f
Added json parser tests
2022-06-20 10:50:30 +02:00
SChernykh
921cbb0b69
ConsoleCommands: don't exit on EOF
2022-06-15 07:54:53 +02:00
SChernykh
7f1b849394
Fixed new cppcheck issues
2022-06-13 07:30:59 +02:00
SChernykh
9f4388843a
Fixed error messages
2022-06-10 07:48:47 +02:00
SChernykh
37fba30c79
JSON RPC: fixed error checking
2022-06-08 18:58:32 +02:00
SChernykh
8f1fd55e2f
Fixed more memory leaks in TCPServer
2022-06-07 22:25:27 +02:00
SChernykh
8af9e9b27d
Fixed memory leaks
2022-06-07 19:40:13 +02:00
SChernykh
8b681d6efb
Added memory hooks for CURL
2022-06-07 16:02:08 +02:00
SChernykh
a0778c8d7b
CURL error checking
2022-06-06 17:08:36 +02:00
SChernykh
a35d4b2701
Change llhttp to libcurl
2022-06-06 15:08:37 +02:00
SChernykh
05b0973a23
More reliable p2pool shutdown logic
2022-06-03 18:28:10 +02:00
SChernykh
09f46beeb4
SideChain: added more checks to is_longer_chain()
2022-06-03 17:28:46 +02:00
SChernykh
6ef34bb3f5
Enabled more compiler warnings
2022-06-01 16:13:18 +02:00
SChernykh
9a5be0a321
p2pool v2.1
2022-05-31 18:20:21 +02:00
SChernykh
c203f6eb0a
Fixed a new cppcheck issue
2022-05-31 16:51:09 +02:00
SChernykh
111087d96a
Fixed block reward share calculation
2022-05-28 22:27:46 +02:00
SChernykh
9e7666d12f
Fixed data races
2022-05-28 21:46:50 +02:00
SChernykh
cb147773b5
Updated cppcheck workflow on Linux
2022-05-26 21:19:01 +02:00
SChernykh
d84bef8f14
Added block reward share percent to miner api
2022-05-26 11:08:16 +02:00
SChernykh
6d121122f8
Fixed compiler warnings in tests
2022-05-24 15:18:09 +02:00
SChernykh
0e222afd6a
Exit if server startup fails
2022-05-23 15:50:25 +02:00
SChernykh
b191962d32
Handle startup errors without calling abort()
2022-05-23 09:37:11 +02:00
SChernykh
1cf13e142a
SideChain: fixed alternative chain detection
2022-05-16 15:59:48 +02:00
SChernykh
8f1f81749d
StratumServer: reset cumulative hashes too
2022-05-16 14:36:11 +02:00
SChernykh
72d70eba16
SideChain: added "synchronized" log message
2022-05-16 01:48:37 +02:00
SChernykh
ae3612f595
Fixed worker diff display when autodiff is off
2022-05-15 18:13:36 +02:00
SChernykh
37b6457054
Show worker hashrate only when autodiff is on
2022-05-15 01:15:21 +02:00
SChernykh
9579be5c7d
Optimized SideChain::miner_count()
2022-05-12 22:18:08 +02:00
SChernykh
d05d47fa75
Fixed compilation
2022-05-12 16:10:55 +02:00
SChernykh
bd88c04e9e
SideChain: mutex locks refactoring
2022-05-12 15:24:02 +02:00
SChernykh
eb3a3872eb
Fixed missing blocks download logic
2022-05-12 08:49:34 +02:00
SChernykh
5cea7be405
Allow only one pending get_miner_data
2022-05-12 01:09:59 +02:00
SChernykh
516c382fe4
Update keccak.cpp
2022-05-11 16:13:00 +02:00
SChernykh
710e55422a
Ignore duplicate get_miner_data
2022-05-11 16:10:10 +02:00
SChernykh
3406cf78b4
Don't return stale chain tip to other peers
2022-05-11 15:07:54 +02:00
SChernykh
8fa354796c
Reload peer list when there are no connections
2022-05-11 14:09:28 +02:00
SChernykh
6c6ef1c1b8
Restart ZMQ connection if it looks dead
2022-05-11 13:50:47 +02:00
SChernykh
c3c326c680
Suppress MSVC warnings
2022-05-11 10:55:36 +02:00
SChernykh
92e20485b2
Log: don't allow side effects in LOG() calls
2022-05-10 21:41:53 +02:00
SChernykh
edd782ac23
Fixed custom worker names
2022-05-10 14:01:10 +02:00
SChernykh
a4d84e318d
TCPServer: refactored Client constructor
2022-05-09 19:13:34 +02:00
SChernykh
134f2d68a3
Fixed data races
2022-05-09 16:10:55 +02:00
SChernykh
d23c46ff84
Added bsr() function to util
2022-05-09 13:02:06 +02:00
SChernykh
820c5db5e8
Log: check for logrotate only once per loop
2022-05-09 09:58:43 +02:00
SChernykh
990916ab62
StratumServer: added autodiff
...
Autodiff is enabled by default, target time is 30 seconds. It can be disabled with `--no-autodiff` command line option.
2022-05-08 19:03:00 +02:00
SChernykh
d4e362cd76
TCPServer: optimized Client struct size
2022-05-07 12:35:31 +02:00
SChernykh
1dd06cc509
Removed std::string to avoid memory allocation
2022-05-07 11:00:29 +02:00
SChernykh
2e2bd1d137
Added log padding
2022-05-06 20:04:01 +02:00
SChernykh
0818d91f4f
StratumServer: added console command workers
2022-05-06 13:19:56 +02:00
SChernykh
1a35177633
Fixed unsafe usage of log::Stream buffers
2022-05-05 14:38:56 +02:00
SChernykh
8f27d940e3
Don't ban localhost
2022-05-03 13:11:55 +02:00
SChernykh
6b4640c413
Fixes for Termux
2022-05-03 07:32:47 +02:00
SChernykh
8aebcdc580
p2pool v2.0
2022-04-30 17:50:27 +02:00
SChernykh
54acfee036
Merge pull request #144 from SChernykh/view_tags
...
v15 hardfork changes
2022-04-27 19:56:42 +02:00
SChernykh
a78ddb50d5
Fixed logger thread timing logic
2022-04-24 16:22:22 +02:00
SChernykh
b2f86a5f6b
Ban peers with stuck or lagging monerod
2022-04-23 11:29:17 +02:00
SChernykh
2a77695832
Fixed data races in miner
2022-04-09 18:25:12 +02:00
SChernykh
21d8cb917b
Fixed data race in logger
2022-04-09 10:41:20 +02:00
SChernykh
2c70bf8616
View tags support
...
See http://github.com/monero-project/monero/pull/8061
2022-04-09 00:56:42 +02:00
SChernykh
7522111bb7
Fixed data races
2022-04-09 00:38:15 +02:00
SChernykh
7b5b910f3f
Undefined behaviour fixes
2022-04-08 22:49:08 +02:00
SChernykh
afb52e4235
Check return value (Coverity fix)
2022-04-07 19:33:39 +02:00
SChernykh
93cd9a659a
Code cleanup
2022-04-07 19:11:20 +02:00
SChernykh
9e287ab4f0
Logger fixes
...
- Fixed a race condition when stopping the logger
- Flush log file only once per batch of log lines
2022-04-07 16:55:35 +02:00
SChernykh
094209f311
P2PServer: optimized update_peer_connections()
2022-04-07 16:48:01 +02:00
SChernykh
dee66c3f32
Added varint unit tests
2022-04-06 16:34:16 +02:00
SChernykh
32533e3c96
FreeBSD build
2022-04-05 19:36:37 +02:00
SChernykh
1b3c1eb850
P2PServer: increased peer timeout to 15 minutes
2022-03-30 22:47:10 +02:00
SChernykh
7fe032915f
Ignore SIGPIPE
2022-03-30 21:53:52 +02:00
SChernykh
5b9b73abcc
p2pool v1.9
2022-03-30 20:15:47 +02:00
SChernykh
a2afa29052
Updated copyright
2022-03-30 14:42:26 +02:00
SChernykh
a2d3dbad5e
Use old bock template when update fails
2022-03-30 10:11:35 +02:00
SChernykh
e50cf060cb
Miner: fixed share counter initialization
2022-03-30 08:34:22 +02:00
SChernykh
915988d694
Added logging for the extra_nonce fix
2022-03-30 07:59:59 +02:00
SChernykh
a7aed2f221
Fixed miner tx creation
2022-03-28 11:28:56 +02:00
SChernykh
292e2580e5
Make sure dataset init doesn't block start
2022-03-24 20:55:35 +01:00
SChernykh
028a5d0c88
Fixed memory leak after loading block cache
2022-03-24 18:30:23 +01:00
SChernykh
8b27faad6d
BlockCache: fixed collisions of same height blocks
2022-03-24 16:03:12 +01:00
SChernykh
cdc3206ee8
Optimized keccak
2022-03-24 12:52:57 +01:00
SChernykh
0c2b7d6010
More time handling fixes
2022-03-23 15:49:24 +01:00
SChernykh
ef15c3b54f
Show sidechain ID in status
2022-03-23 14:17:40 +01:00
SChernykh
f4bcdc7fe9
Use steady_clock to time peer list requests
2022-03-23 11:37:05 +01:00
SChernykh
aada1bb5cc
Use chrono::steady_clock for internal timestamps
2022-03-23 11:30:38 +01:00
SChernykh
c21d052d7a
Refactored RNG usage across the code
2022-03-17 16:14:29 +01:00
SChernykh
62b1690780
Added an option to disable RandomX for the build
2022-03-15 17:11:45 +01:00
SChernykh
0db57e5047
p2pool v1.8
2022-02-27 19:56:47 +01:00
SChernykh
e7919514d4
TCPServer: fixed uninitialized variables
2022-02-25 15:31:35 +01:00
SChernykh
7ab21c6afd
TCPServer: reduced memory usage
2022-02-23 17:07:50 +01:00
SChernykh
2209e0cc70
P2PServer: relaxed peer list request restriction
2022-02-22 11:06:12 +01:00
SChernykh
a73b4616a4
Fixed Coverity issues
2022-02-22 00:38:08 +01:00
SChernykh
9593311332
Added bans
console command
2022-02-21 19:59:57 +01:00
SChernykh
9a09d15bea
P2PServer: use high_resolution_clock for ping time
2022-02-21 18:46:53 +01:00
SChernykh
f082488e4b
TCPServer: use steady_clock for bans
2022-02-21 18:41:36 +01:00
SChernykh
752e2381d6
P2PServer: added more protocol checks
2022-02-21 16:54:53 +01:00
SChernykh
de9f13d393
Check for unknown command line parameters
2022-02-21 08:02:36 +01:00
SChernykh
272d206741
stats_mod api: updated min payout value
2022-02-20 17:08:27 +01:00
SChernykh
8045c40026
Check for proper --local-api
usage
2022-02-18 16:21:28 +01:00
SChernykh
d4a1b14820
Use monerod peers to find p2pool nodes
2022-02-17 22:10:52 +01:00
SChernykh
cc6ce4a366
Reset stratum share counters after initial sync
2022-02-17 11:19:11 +01:00
SChernykh
42370bf11e
p2pool v1.7
2022-02-14 19:29:55 +01:00
SChernykh
ec2f4467fb
Added --mini
command line option to connect to p2pool-mini
2022-02-14 13:57:59 +01:00
SChernykh
9f449320b5
StartumServer: disconnect and ban inactive clients
2022-02-08 15:00:08 +01:00
SChernykh
8767ef9e19
Display payout amount when a block is found
2022-01-29 17:09:43 +01:00
SChernykh
cf184295b4
Updated version
2022-01-26 19:42:49 +01:00
SChernykh
1e4e4bd08e
Added miner statistics to data api
2022-01-24 10:42:21 +01:00
SChernykh
a640e41d74
Improved RNG initialization
2022-01-24 00:37:39 +01:00
SChernykh
38ffd73b54
Fixed new Coverity issue
2022-01-23 13:03:56 +01:00
SChernykh
c10a5ce323
Miner code cleanup
2022-01-23 11:03:26 +01:00
SChernykh
e2931f94b5
Added embedded miner
2022-01-22 23:30:19 +01:00
SChernykh
248fcee174
Update version
2022-01-09 17:19:20 +01:00
SChernykh
89bcceb986
Added p2pool mini seed nodes and default port
2021-12-30 11:10:18 +01:00
SChernykh
2b01350add
Added outpeers
and inpeers
console commands
2021-12-26 15:28:33 +01:00
SChernykh
f1b6212c82
P2PServer: add connection limits
...
#87 Added `--out-peers` and `--in-peers` command line options.
2021-12-26 14:59:45 +01:00
SChernykh
d8bba4dc82
Updated version mismatch error message
2021-12-07 16:25:23 +01:00
SChernykh
eaf29872cb
Update version
2021-12-01 18:24:36 +01:00
SChernykh
f9def6cb73
Added "calc_pow" RPC support
2021-11-21 09:12:21 +01:00
SChernykh
07cfb54bdc
JSONRPCRequest: fixed undefined behavior in the error handler
2021-11-10 16:26:01 +01:00
SChernykh
5dd8d11b72
TCPServer: removed unused field
2021-11-09 15:48:59 +01:00
SChernykh
e44baad73c
Update version
2021-11-05 15:39:20 +01:00
SChernykh
bb7a5b4d6d
Cleanup
2021-11-02 17:18:02 +01:00
SChernykh
64116643c2
Fixed block broadcasts
2021-11-01 19:36:11 +01:00
SChernykh
1e4c6ef5f4
Added block verification test
2021-11-01 18:53:34 +01:00
SChernykh
61edc6ed70
Reduce cache flush frequency to once per minute
2021-11-01 11:29:59 +01:00
SChernykh
dff2413cae
TCPServer: make write buffers global
...
Reduced memory usage per connection.
2021-10-31 20:29:35 +01:00
SChernykh
998c2ba72f
Fixed msys2 build crash
2021-10-31 20:29:35 +01:00
SChernykh
b56d027dd5
Include P2P peer list into miner count
2021-10-31 20:29:35 +01:00
SChernykh
eaed654012
Check for missing data from monerod on each new block
...
It helps in these cases:
- monerod was down/unavailable for a while and then restarted
- monerod was out of sync and then jumped several block heights ahead
2021-10-31 12:20:29 +01:00
SChernykh
981b161cc9
SideChain: faster processing of repeated broadcasts
2021-10-31 11:06:00 +01:00
SChernykh
f59e9171e8
SideChain: use a separate lock for m_seenBlocks
2021-10-31 10:26:13 +01:00
SChernykh
b45540ca08
TCPServer: clean up old IP bans
2021-10-29 14:54:36 +02:00
SChernykh
806e1ca0a3
SideChain: faster check for low-diff spam blocks
2021-10-29 11:39:15 +02:00
SChernykh
113e39817d
Cleanup old Monero blocks data
2021-10-29 11:14:28 +02:00
SChernykh
0869326f39
SideChain: count miners in the last 48 hours
2021-10-29 10:37:12 +02:00
SChernykh
75d62c0303
SideChain: cleanup m_seenBlocks when pruning old blocks
2021-10-29 10:34:53 +02:00
SChernykh
da4686b88f
ZMQReader: start after initial RPC calls are finished
2021-10-28 20:05:40 +02:00
SChernykh
a008eac8c6
ZMQReader: more reliable connect()
2021-10-28 19:28:33 +02:00
SChernykh
3d60ae8c32
Fix: don't start until monerod is fully synchronized
2021-10-28 18:47:28 +02:00
SChernykh
88f346414a
Fixed race condition when using --no-color
2021-10-28 10:36:50 +02:00
SChernykh
2071a24a9f
Update version
2021-10-27 17:27:48 +02:00
SChernykh
1c0da4513f
Added --no-color
command line option
...
`--no-color` disables colors in console output
2021-10-27 16:48:17 +02:00
SChernykh
6a002cda46
Create msvc-analysis.yml
2021-10-27 16:06:36 +02:00
SChernykh
c0c210664a
Show uptime in status
2021-10-26 17:55:47 +02:00
SChernykh
6859d11445
Disable console quick-edit mode on Windows
...
Prevent user from accidentally selecting text in console and freezing all output
2021-10-26 17:42:00 +02:00
SChernykh
111324b6e0
Added console command to show connected peers
2021-10-24 16:04:30 +02:00
SChernykh
148b9dd294
Switch to faster unordered_map/set
2021-10-22 18:34:20 +02:00
SChernykh
04d18cdf1d
P2PServer: fixed m_timer leak
2021-10-21 19:19:22 +02:00
SChernykh
352ad81a0a
StratumServer: faster processing of regular shares
2021-10-21 19:09:36 +02:00
SChernykh
d26902468d
P2PServer: peer list tweaks
...
- Increase outgoing connections to 10
- Stricter handling of peer list responses
2021-10-21 15:55:00 +02:00
SChernykh
0382027d70
Fixed wrong error message
2021-10-21 10:12:57 +02:00
SChernykh
966b499e5c
ZMQReader: keep trying to connect on startup
2021-10-21 00:22:53 +02:00
SChernykh
9885f82e9e
Limit user name length to 64 characters
...
Also avoid creating temporary strings (`" user " + client->m_customUser`) when logging user name
2021-10-19 21:09:08 +02:00
WeebDataHoarder
bc341918f6
Decode custom user from stratum client, display stratum client+user on SHARE FOUND and client mainchain found message
2021-10-19 19:33:15 +02:00
SChernykh
f17c23528a
Update version
2021-10-17 11:00:51 +02:00
SChernykh
a06f4dcdcd
P2PServer: fixed ever growing memory usage
2021-10-17 10:57:33 +02:00
SChernykh
816a29c5ab
Added --no-cache
command line parameter
2021-10-16 13:45:28 +02:00
SChernykh
285560e120
Fixed possible sidechain split during RandomX epoch change
2021-10-16 09:57:13 +02:00
SChernykh
39ba5c4131
P2PServer: check for messages that shouldn't be sent
2021-10-15 17:09:51 +02:00
SChernykh
9b86f8e81f
Peer list refactoring
...
- Remove peers that weren't seen for > 1 hour
- Better peer selection algorithm for PEER_LIST_RESPONSE
2021-10-15 11:32:01 +02:00
SChernykh
9e90e988fa
Refactored array_size to make it always constexpr
2021-10-14 16:46:49 +02:00
SChernykh
39b2167c98
Show correct max log level in usage
2021-10-14 13:59:11 +02:00
SChernykh
f3024d3556
StratumServer: submit Monero block as soon as possible
...
1-3 ms saved when a block is found
2021-10-13 18:57:21 +02:00
SChernykh
61ac90f1d5
Fixed typo
2021-10-13 14:56:27 +02:00
SChernykh
60a8538e0c
P2PServer: show an error when there are no ZMQ messages
2021-10-09 11:01:26 +02:00
SChernykh
77a3a5857c
P2PServer: show an error when there are no connections
2021-10-08 18:21:31 +02:00
SChernykh
af2a8eeb08
Tweaked warning level for lagging nodes
2021-10-06 15:22:03 +02:00
SChernykh
54d0ab3658
Move most block broadcasts to log level 6
2021-10-06 09:47:41 +02:00
SChernykh
c9faa92098
StratumServer: fixed "bad share" ban logic
2021-10-04 15:51:28 +02:00
SChernykh
52e5008bf4
Refactoring
...
- Skip calling time(nullptr) twice
- Use getter method for m_api instead of exposing it
- Moved api_udate_*() back to private since they're not used anywhere else
2021-10-04 10:28:56 +02:00
SChernykh
a0a31b0f3b
Merge pull request #51 from Tonux599/stratumServerJson-staging
...
API for stratum server statistics.
2021-10-04 11:16:37 +03:00
Thomas Clarke
7742d163f7
API for stratum server statistics.
...
Users can pass `--stratum-api` to command line to enable a file called `local/stats` in `--data-api` directory. `local/stats` contains statistics that `StratumServer status` provides but in JSON format. It is currently setup that `local/stats` is updated each time a new job is sent to a worker.
2021-10-03 22:32:13 +01:00
SChernykh
7d66864b01
Print P2Pool version
2021-10-02 17:06:48 +02:00
SChernykh
2a3cd13b19
P2PServer: delete old cached blocks after initial sync
...
Saves ~20 MB of memory
2021-10-01 15:31:47 +02:00
SChernykh
4bcaa41c8e
Clear crypto derivation/key cache when a block is found
2021-09-27 13:47:27 +02:00
SChernykh
4fce76576f
ZMQ reader: abort if connect to monerod failed
2021-09-27 13:47:27 +02:00
SChernykh
f05f7c4268
Fixed wrong nonce values in submit_block error log
2021-09-26 16:50:24 +02:00
SChernykh
ae8733c187
Update RandomX
2021-09-22 17:59:58 +02:00
SChernykh
5c92920619
Default log level 3
...
Also refactored default port numbers
2021-09-18 10:03:06 +02:00
SChernykh
b4ea125a8a
Hardcode default consensus ID for faster startup
2021-09-16 14:23:14 +02:00
SChernykh
8aa9e54dc4
BlockTemplate: wait for 10 seconds before including new transactions
2021-09-14 12:54:42 +02:00
SChernykh
b35b4a9f76
Crypto: added cache for faster key derivation
2021-09-14 11:06:49 +02:00
SChernykh
ba6a2c8eb2
P2PServer: relax stale block restriction
2021-09-13 19:25:12 +02:00
SChernykh
14e26f5c17
Fix: always check before closing TCP handles
2021-09-13 19:11:59 +02:00
SChernykh
4c5144b37f
Check monerod RPC version at startup
2021-09-13 18:27:47 +02:00
SChernykh
42dd58d778
P2PServer: check broadcasts for wrong height
2021-09-13 15:48:05 +02:00
SChernykh
da0f376bef
P2PServer: ban peers that don't broadcast blocks
2021-09-13 15:01:02 +02:00
SChernykh
0d439e7712
SideChain: submit blocks to monerod in more cases
2021-09-13 10:16:45 +02:00
SChernykh
b8f04ac787
Tweaked block broadcast rules
2021-09-11 23:44:09 +02:00
WeebDataHoarder
7bad1e05a4
Implemented shares/uncles position chart on status command
...
Shows progress in slices of PPNLS window. Shares move left to right as they age.
A dot "." indicates no shares, 1-9 for that number in shares, for 9+ it shows a "+".
Will not show shares or uncles lines unless you have one on window.
2021-09-10 16:59:15 +02:00
SChernykh
74096248e1
Better error handling of Monero RPC requests
2021-09-10 16:18:16 +02:00
SChernykh
36ee76d4d2
data api: fixed one block missing to calculate effort
2021-09-10 08:18:38 +02:00
SChernykh
3aa270a072
Fix for older compilers
2021-09-09 11:44:40 +02:00
SChernykh
7a97171b03
Tweaked block broadcast rules
2021-09-08 20:57:22 +02:00
SChernykh
52f195b89f
Tweaked idle peer detection
2021-09-08 20:36:21 +02:00
SChernykh
ee7a1e54f7
DNS name resolution for command line parameters
2021-09-08 20:25:39 +02:00
SChernykh
c8a2a256e7
Fixed RandomX VM initialization
2021-09-08 11:49:54 +02:00
SChernykh
57bc38d2bb
data api: added stats_mod
2021-09-08 09:57:31 +02:00
SChernykh
a332ac7d26
P2PServer: load peers from DNS
2021-09-07 21:43:44 +02:00
SChernykh
7ea1913a9d
Update log.h
2021-09-07 14:14:11 +02:00
SChernykh
73c8b1294a
P2PServer: connect to peers from the event loop thread
...
Better thread safety
2021-09-07 12:56:22 +02:00
SChernykh
ce8ec3860d
Fixed memory leak
2021-09-07 10:22:58 +02:00
SChernykh
25772abc0f
Show block share % in status
2021-09-07 09:53:38 +02:00
SChernykh
899d5a82dd
data api: check p2pool shares that come after a Monero block
2021-09-06 23:33:52 +02:00
SChernykh
7b0cc256c5
P2PServer: ban peers that disconnect without finishing handshake
2021-09-06 16:17:20 +02:00
SChernykh
d3dc4c731f
Added more tests
2021-09-06 15:49:39 +02:00
SChernykh
e264377f0e
Added more checks
2021-09-06 09:17:39 +02:00
SChernykh
a36825424b
Fixed some Coverity reports
2021-09-06 09:02:35 +02:00
SChernykh
2ecd935bc5
data api: fixed saving of p2pool.blocks
2021-09-05 23:05:36 +02:00
SChernykh
f3b6423d4c
Log difficulty for found pool shares
2021-09-05 22:57:36 +02:00
SChernykh
82a88ce0ef
data api: added block hashes to pool/blocks
2021-09-05 22:28:57 +02:00
SChernykh
884d0f180a
TCP server: log IP addresses in more places
2021-09-05 20:21:33 +02:00
SChernykh
f3ee444aed
Stratum server: log IP addresses that send bad data
2021-09-05 19:16:23 +02:00
SChernykh
dd0a35fb79
Show pool-side hashrate in status only when it's not zero
2021-09-05 15:56:50 +02:00
SChernykh
4deef2f807
Added cppcheck workflow
2021-09-05 12:53:40 +02:00
SChernykh
b31adbd5ae
Added macOS build
2021-09-05 12:10:40 +02:00
SChernykh
e527b0c660
Added Windows builds
2021-09-05 11:28:24 +02:00
SChernykh
b17723f1e4
Removed unused code
2021-09-05 00:07:03 +02:00
SChernykh
1554a44f5c
Added more integrity checks
2021-09-04 09:10:44 +02:00
SChernykh
08d2fbdbd1
Parse full 128-bit difficulty from monerod
2021-09-03 22:45:55 +02:00
SChernykh
661d596107
api: store difficulty and totalHashes for each block
2021-09-03 18:04:54 +02:00
SChernykh
2d8530798d
Unit tests for difficulty_type
2021-09-03 11:32:11 +02:00
SChernykh
b26c4616d7
Fixed wrong diff in api/network/stats
2021-09-02 23:39:47 +02:00
SChernykh
70ff4ba859
Tweaked peer list logic
2021-09-02 19:21:38 +02:00
SChernykh
bab148fbad
Added cppcheck scripts
2021-09-02 12:35:36 +02:00
SChernykh
55f8e9dc33
Added total blocks found
2021-09-02 09:02:24 +02:00
SChernykh
fbdef7d058
Count all miners that were active in last 24 hours
2021-09-01 20:48:03 +02:00
SChernykh
e1b4649c2a
Added pool blocks
2021-09-01 17:35:54 +02:00
SChernykh
73da71a2d3
Renamed next payout to block reward share
2021-09-01 16:34:10 +02:00
SChernykh
533cc202d2
Added pool stats
2021-09-01 16:28:05 +02:00
SChernykh
295cbda449
p2pool: export data to an external web-server
...
Dumps data to JSON files which can be later served by a web-server.
2021-09-01 14:11:28 +02:00
SChernykh
5d6fa03f11
Show all Monero block rewards in log
2021-09-01 10:43:10 +02:00
SChernykh
75843e9b37
P2PServer: don't broadcast stale blocks
2021-08-31 23:41:05 +02:00
SChernykh
1a83610299
P2PServer: simplified the code a bit
2021-08-31 23:11:58 +02:00
SChernykh
5f406a60a6
StratumServer: added keepalived method
2021-08-31 20:57:01 +02:00
SChernykh
5eea610f3c
Stricter wallet address checks
2021-08-31 18:26:28 +02:00
SChernykh
e44919c289
Changed pool name for the new test
2021-08-31 17:25:01 +02:00
SChernykh
780afd84a2
Added checks for tx keys
2021-08-31 17:23:20 +02:00
SChernykh
0558cdb9cc
Fixed share effort calculation
2021-08-31 15:14:33 +02:00
SChernykh
7364292ece
Fixed average effort calculation
2021-08-31 14:59:36 +02:00
SChernykh
662a7e91c8
P2PServer: always ban IPs that send bad blocks
2021-08-31 13:14:35 +02:00
SChernykh
8064865ba5
Fixed setting max log level from command line
2021-08-31 11:18:40 +02:00
SChernykh
7b197824fe
P2PServer: add peers from the command line to the peer list on startup
2021-08-31 11:16:40 +02:00
SChernykh
114f6b627b
P2PServer: don't allow multiple connections to/from the same IP
2021-08-31 10:41:41 +02:00
SChernykh
4757cdb8e2
P2PServer: added 1 second grace time for stale shares
...
Only for shares that lag 1 Monero block behind
2021-08-31 09:58:57 +02:00
SChernykh
bb8ff24db8
StratumServer: added avg effort and number of shares to status
2021-08-30 20:49:51 +02:00
SChernykh
4ac08ac10d
StratumServer: print current effort in status
2021-08-30 19:45:37 +02:00
SChernykh
891ee36e53
Force update average hashrates when print_status() is called
2021-08-30 17:50:09 +02:00
SChernykh
d1e94d6e1a
StartumServer: print average hashrate in status
2021-08-30 16:51:23 +02:00
SChernykh
a2f6e73122
JSONRPCRequest: more informative error messages
2021-08-30 14:28:23 +02:00
SChernykh
9120b86007
Fixed use of out of scope variable
2021-08-30 01:21:46 +02:00
SChernykh
bb7720968f
Tweaked log levels
2021-08-29 19:20:36 +02:00
SChernykh
dac74a8829
Update p2p_server.cpp
2021-08-29 17:42:49 +02:00
SChernykh
dd9166e91c
Update dataset at normal thread priority
2021-08-29 17:36:10 +02:00
SChernykh
456f5d356f
P2PServer: ban peers only after handshake finished and failed
2021-08-29 17:26:30 +02:00
SChernykh
541b3c653d
Enable 4-byte target format for diff up to 4 million
2021-08-29 08:46:23 +02:00
SChernykh
519b4b548d
Relax JSON parsing
...
Allow comments and trailing commas
2021-08-29 08:39:17 +02:00
SChernykh
8e29abd906
Small fixes
2021-08-29 00:13:53 +02:00
SChernykh
8a26498b66
Tweaked log levels
2021-08-28 23:34:46 +02:00
SChernykh
ff4d89868b
StratumServer: Use short target format (4 bytes) for diff <= ~2 million
2021-08-28 19:50:48 +02:00
SChernykh
4175f4c8bc
StratumServer: ban clients that send incorrect shares
2021-08-28 18:40:50 +02:00
SChernykh
9e438210d1
StratumServer: support custom fixed difficulty
...
Example (set fixed difficulty 10000)
`"user":"x+10000"` in config.json or
`-u x+10000` in command line
2021-08-28 17:23:16 +02:00
SChernykh
46ce4ebee7
check_pow: fixed carry calculation
2021-08-28 11:50:20 +02:00
SChernykh
0be078cb09
StartumServer: moved warnings to log level 4
2021-08-28 08:30:17 +02:00
SChernykh
14bb308794
P2PServer: clear m_missingBlockRequests when there is nothing missing
2021-08-27 21:09:35 +02:00
SChernykh
f9be0de8d2
P2PServer: ask peers about unknown blocks only once
2021-08-27 17:26:42 +02:00
SChernykh
81a12158fc
P2PServer: don't add banned peers back to the peer list
2021-08-27 16:36:06 +02:00
SChernykh
8304d81961
Prepare for mainnet test
2021-08-27 11:30:03 +02:00
SChernykh
27c2aab145
Check network type at startup
...
- Make network type part of consensus ID to avoid mixing p2pool nodes from mainnet and testnet/stagenet
- Check that wallet address matches the network type of monerod
2021-08-27 11:25:25 +02:00
SChernykh
afca83d6c2
BlockCache: check block size before storing it
2021-08-27 10:37:14 +02:00
SChernykh
2761ce5af7
Fixed a leak in ZMQReader
2021-08-27 10:32:31 +02:00