Commit graph

809 commits

Author SHA1 Message Date
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