Commit Graph

704 Commits (7b02c3d24a43b922b2568c883009df40e4aab013)

Author SHA1 Message Date
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
SChernykh 776b1f561c Fixed use after free on p2pool shutdown 2021-08-27 10:13:33 +02:00
SChernykh 715c0d4e14 Reduced cache size a bit 2021-08-27 10:12:41 +02:00
SChernykh 3ea71d51e5 Fixed crash on startup 2021-08-27 00:41:09 +02:00
SChernykh f77e0434c6 Fixed TCPServer startup 2021-08-27 00:19:01 +02:00
SChernykh 3f1ee9ce4b TCPServer fixes
- Proper shutdown sequence, uv_close() must be called from the event loop thread
- Moved start_listening() to child class constructor because it must be ready before it can listen on sockets
- Added simple memory leak detector for Windows. Linux users can enjoy the leak sanitizer
2021-08-26 23:57:59 +02:00
SChernykh 27e85a922b TCPServer: fixed more leaks on shutdown 2021-08-26 19:14:04 +02:00
SChernykh 4ba32277c1 Use p2pool-api branch for Monero 2021-08-26 15:36:40 +02:00
SChernykh 37f3312e1d Submit received p2pool blocks to monerod when possible 2021-08-25 22:07:42 +02:00
SChernykh 125815b502 Made print_status() thread-safe 2021-08-25 21:00:06 +02:00
SChernykh 63e442dffd print_status: fixed next payout display 2021-08-25 18:52:09 +02:00
SChernykh 0009eba307 Fix RandomX startup logic
Ensure that both RandomX caches initialize before stratum and p2p servers start.
2021-08-25 18:31:42 +02:00
SChernykh 276cc5f0fd Fix Mac compilation 2021-08-25 18:16:26 +02:00
SChernykh fa3146a8f3 Reverted force close TCP connections 2021-08-25 17:27:46 +02:00
SChernykh 230d3e4780 Fixed socket leak after a failed connection 2021-08-25 17:18:59 +02:00
SChernykh d246ee1552 Enabled block cache for Mac 2021-08-25 16:26:15 +02:00
SChernykh 46b7c3e755 TCPServer: stop reading before closing connection 2021-08-25 16:19:21 +02:00
SChernykh 662865ad70 Reduced startup spam at log levels <= 5 2021-08-25 15:01:05 +02:00
SChernykh 68a4765f95 Force close TCP connections 2021-08-25 14:53:45 +02:00
SChernykh 924fd4b7bd TCPServer: better tracking of used sockets 2021-08-25 13:58:00 +02:00
SChernykh a38a7be73f p2pool: submit block from the main thread only 2021-08-25 12:45:14 +02:00
SChernykh 8f93adf7a1 Refactored signal handler
Call the same stop() function as regular exit command
2021-08-25 12:28:15 +02:00
SChernykh d8efb27374 Restrict uv_default_loop() to main thread 2021-08-25 12:17:14 +02:00
SChernykh dbf18c34a4 Fixed wrong uv loop in p2pserver::flush_cache() 2021-08-25 11:31:50 +02:00
SChernykh fcb9e25fb1 Print background jobs in status 2021-08-25 11:31:35 +02:00
SChernykh 7ab3c22114 Give only 5 seconds for new connections to complete handshake
This is to detect random port scans/non-p2pool connections quickly
2021-08-25 11:14:23 +02:00
SChernykh 336349e189 Show hashrate estimate in status 2021-08-25 11:13:38 +02:00
SChernykh 8f2493edfc Log message fixes 2021-08-25 09:52:06 +02:00
SChernykh a27577f735 Added log level 6 to reduce spam on level 5
Log level 5 is still default
2021-08-25 09:38:47 +02:00
SChernykh 09aedd9f9a Drop idle connections
Idle = didn't send any full messages in the last 5 minutes
2021-08-24 21:45:19 +02:00
SChernykh cd532965e8 Code safety: BlockCache isn't supposed to be copied/moved 2021-08-24 21:06:47 +02:00
SChernykh 64885852dd Limit max number of transactions in block template
Because if it's too high, it won't fit into p2p packet
2021-08-24 20:54:02 +02:00
SChernykh 6de98697a1 Only warn about lagging monerod if it's 2 or more blocks behind 2021-08-24 20:10:16 +02:00
SChernykh 02449bf9f9 Use UTC time for logging 2021-08-24 18:56:14 +02:00
SChernykh e4be4c1a66 Fixed pruning logic
- Erase an element from m_blocksByHeight only if it's empty
- Remove blocks from unconnected alternative chains too when they get old enough (4xPPLNS window)
2021-08-24 18:34:28 +02:00
SChernykh d4388bf9c0 Removed unnecessary lock 2021-08-24 17:56:36 +02:00
SChernykh 20b3886bfb Less tolerance to lagging nodes
Ban nodes that are 5 or more Monero blocks behind.
2021-08-24 17:19:10 +02:00
SChernykh a55545762b Merge branch 'master' of https://github.com/SChernykh/p2pool 2021-08-24 13:46:53 +02:00
SChernykh 69533fd209 Store only fully verified blocks in the cache 2021-08-24 13:46:38 +02:00
SChernykh 90a977228b
Merge pull request #2 from hyc/cmds
Tweak command handling
2021-08-24 14:37:03 +03:00
SChernykh 4837b4c863 Added missing integrity check 2021-08-24 13:33:55 +02:00
SChernykh 15354e5a88 Update util.cpp 2021-08-24 13:22:56 +02:00
Howard Chu 0dc3baa480 Tweak command handling
Modularize, add help and exit commands.
Fix shutdown_tcp() and p2pool to make sure servers exit immediately
when terminating.
2021-08-24 11:55:59 +01:00
SChernykh 05d336c8e9 Update block_cache.cpp 2021-08-24 12:45:11 +02:00
SChernykh 1cf4071f9b BlockCache (Linux version) 2021-08-24 12:36:59 +02:00
SChernykh bf5db3db08 Update p2pool.cpp 2021-08-24 12:01:43 +02:00
SChernykh 3229909333 Update p2pool.cpp 2021-08-24 11:59:59 +02:00
SChernykh 9808685981 Update stratum_server.cpp 2021-08-24 11:51:11 +02:00
SChernykh aba3bc50b8 Block cache WIP and other fixes
- Block cache is implemented only on Windows for now
- Tracking of background jobs
- More robust sidechain syncing
2021-08-24 11:42:41 +02:00
SChernykh 86b31ea821 Reduce broadcast spam after initial sync 2021-08-24 00:27:48 +02:00
SChernykh 25ef5733a7 Skip duplicates in the saved peers list 2021-08-23 23:12:52 +02:00
SChernykh fda80e3556 Sanity check 2021-08-23 23:09:59 +02:00
SChernykh 6d3cfa2c7a Couple more sanity checks 2021-08-23 23:08:46 +02:00
SChernykh 656f912a3e Workaround for crashes on shutdown 2021-08-23 22:50:36 +02:00
SChernykh c4d3f6f8b4 Fixed parse_address_list() 2021-08-23 22:24:26 +02:00
SChernykh 2f08a35ac7 Fixed logger thread start/stop logic 2021-08-23 17:36:17 +02:00
SChernykh df52838433 Removed some noisy warning messages 2021-08-23 14:05:07 +02:00
SChernykh 39a8c68ab7 More clang fixes 2021-08-23 11:44:26 +02:00
SChernykh 4a5691e349 clang fixes 2021-08-23 11:31:16 +02:00
SChernykh 510b7dbb85 Add files 2021-08-22 12:20:59 +02:00