Commit Graph

541 Commits

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