RX2 development report

LUXCORE
LUXCORE
Nov 26, 2020 · 6 min read
Image for post
Image for post

Attention Luxcore Community!

During the last several weeks the Luxcore team has conducted numerous stress-tests and optimizations for our upcoming RX2 algorithm implementation. For complete transparency, below are the results from beginning until present:

Beginning on October 10th, the first test was conducted using only 8 mining rigs. This was the result:

Image for post
Image for post

[2020–10–20 14:05:27] accepted: 160/160 (diff 0.000), latency: 59ms for 8 rig.

The latency and CPU usage were both normal, so we then continued testing with 15 mining rigs:

Image for post
Image for post
Image for post
Image for post

Despite seeing a significant spike in CPU usage, something which was not a concern at the time, we continued testing with 50 mining rigs:

Image for post
Image for post

[2020–10–20 14:21:06] accepted: 149/149 (diff 0.000), latency: 53ms 4431.86 H/s yes!
[2020–10–20 14:21:11] GPU #7: 1873 MHz 5.37 H/W 103W 60C FAN 65%
[2020–10–20 14:21:14] GPU #4: PNY GTX 1070, 552.83 H/s
[2020–10–20 14:21:14] accepted: 150/150 (diff 0.000), latency: 73ms 4431.64 H/s yes!

Both the latency and CPU usage again passed muster. However, we identified an issue with the shares coming in too fast to the pool. This required a difficulty adjustment.

After the adjustment we increased testing to 100 mining rigs:

Image for post
Image for post

[2020–10–20 15:26:25] accepted: 69/69 (diff 0.000), latency: 1063ms 3323.53 H/s yes!
[2020–10–20 15:26:26] GPU #2: PNY GTX 1070, 556.72 H/s
[2020–10–20 15:26:27] GPU #4: 1873 MHz 5.43 H/W 100W 53C FAN 65%
[2020–10–20 15:26:27] GPU #4: PNY GTX 1070, 553.46 H/s
[2020–10–20 15:26:27] accepted: 70/70 (diff 0.000), latency: 335ms 3323.81 H/s yes!
[2020–10–20 15:26:28] accepted: 71/71 (diff 0.000), latency: 1388ms 3323.81 H/s yes!

Latency was unsatisfactory with only 100 rigs, so we dove into the reason(s) why and subsequently remedied the cause.

After auditing the pool and miners, and pushing several necessary fixes, we were ready to run more tests to address the latency issue. We:

  • Adjusted the difficulty (again);
  • Improved the pool to accept multithreading core process so that the cpu load was split on all cores and not only one;
  • Optimized sections of code to be more efficient.

We then ran tests with 100 rigs for a second time:

Image for post
Image for post

[2020–10–22 15:06:24] accepted: 77/77 (diff 0.000), latency: 3688ms 3314.14 H/s yes!
[2020–10–22 15:06:24] accepted: 78/78 (diff 0.000), latency: 3688ms 3314.14 H/s yes!
[2020–10–22 15:06:24] accepted: 79/79 (diff 0.000), latency: 3688ms 3314.14 H/s yes!
[2020–10–22 15:06:25] GPU #3: PNY GTX 1070, 557.08 H/s
[2020–10–22 15:06:27] GPU #1: PNY GTX 1070, 556.30 H/s
[2020–10–22 15:06:28] accepted: 80/80 (diff 0.000), latency: 693ms 3313.72 H/s yes!
[2020–10–22 15:06:29] GPU #2: PNY GTX 1070, 553.67 H/s
[2020–10–22 15:06:32] accepted: 81/81 (diff 0.000), latency: 867ms 3312.88 H/s yes!

During this test, the CPU usage was at 30% per core and we noticed that shares were still piling up too fast, restarting the pool at 10,000 shares.

We tested with 100 rigs once again after adjusting the mining difficulty.

Image for post
Image for post

[2020–10–22 15:17:07] randomx block 34598, diff 0.000
[2020–10–22 15:17:09] GPU #0: PNY GTX 1070, 547.62 H/s
[2020–10–22 15:17:10] accepted: 323/323 (diff 0.000), latency: 156ms 3311.83 H/s yes!
[2020–10–22 15:17:11] GPU #3: 1909 MHz 5.26 H/W 105W 49C FAN 64%
[2020–10–22 15:17:18] GPU #0: PNY GTX 1070, 554.25 H/s
[2020–10–22 15:17:18] accepted: 324/324 (diff 0.000), latency: 75ms 3312.23 H/s yes!

This new adjustment yielded far better results for latency. Additionally, cores now had an average of 15% cpu load instead of the prior 30%.

With all signs pointing up, we continued testing with 200 rigs.

Image for post
Image for post

[2020–10–22 15:27:44] accepted: 375/375 (diff 0.000), latency: 330ms 3307.19 H/s yes! seed: 3a56fe35ec530efa175d5f259f9588e3ceb6d8f9bb606f24c9c6d0a8c2787c3b
[2020–10–22 15:27:59] randomx block 34634, diff 0.000
[2020–10–22 15:28:07] GPU #3: PNY GTX 1070, 557.15 H/s
[2020–10–22 15:28:07] accepted: 376/376 (diff 0.000), latency: 347ms 3307.20 H/s yes! seed: 3a56fe35ec530efa175d5f259f9588e3ceb6d8f9bb606f24c9c6d0a8c2787c3b
[2020–10–22 15:28:20] randomx block 34636, diff 0.000
[2020–10–22 15:28:32] GPU #3: 1885 MHz 5.10 H/W 108W 59C FAN 65%
[2020–10–22 15:28:33] GPU #5: PNY GTX 1070, 549.18 H/s

Load on the CPU reached out 30% with 200 rigs connecting in at the same time and we saw the latency going up as well, still need more optimization on that part.

We worked diligently and tirelessly over the last several days to identify the reason for increasing latency and implemented several remedial changes.

Below is the result achieved with our new build and 100 rigs.

Image for post
Image for post

[2020–10–27 09:53:55] GPU #4: MSI GTX 1070 Ti, 695.31 H/s
[2020–10–27 09:53:55] accepted: 1/1 (diff 0.000), latency: 29ms 695.31 H/s yes!
[2020–10–27 09:53:59] GPU #0: 1882 MHz 0.00 H/W 46W 53C FAN 49%
[2020–10–27 09:54:06] GPU #4: MSI GTX 1070 Ti, 694.48 H/s
[2020–10–27 09:54:06] accepted: 2/2 (diff 0.000), latency: 21ms 694.90 H/s yay!!! solved: 1 seed: 9a55ed078e2f786ec719650140a75597619318a8490a55a6db57bf102a6748d0
[2020–10–27 09:54:07] randomx block 37485, diff 0.000
[2020–10–27 09:54:12] GPU #2: MSI GTX 1070 Ti, 694.54 H/s

CPU load increased slightly but still maintained acceptable support, The latency, however, improved exponentially.

So we added more rigs to the test:

Image for post
Image for post

2020–10–27 10:03:47] GPU #3: MSI GTX 1070 Ti, 695.42 H/s
[2020–10–27 10:03:47] accepted: 56/56 (diff 0.000), latency: 22ms 3209.94 H/s yes! seed: 2bbb1286f9018857def60dc49b011bbb66307fc1b75c7021d02ea8129333c595
[2020–10–27 10:03:50] Stratum difficulty set to 0.00192 (0.00001)
[2020–10–27 10:03:50] randomx block 37513, diff 0.000
[2020–10–27 10:03:52] GPU #4: MSI GTX 1070 Ti, 677.54 H/s [
2020–10–27 10:03:52] accepted: 57/57 (diff 0.000), latency: 35ms 3209.94 H/s yes!

We successfully identified the bug causing latency. Everything is running smoothly now.

To push the boundaries of the network even further, we tested 400 rigs and broke 1000k/hs in the pool. Miner latency still continued to do great:

[2020–10–27 10:33:33] GPU #4: MSI GTX 1070 Ti, 689.48 H/s
[2020–10–27 10:33:33] GPU #4: 1848 MHz 5.51 H/W 125W 56C FAN 50%
[2020–10–27 10:33:33] accepted: 190/190 (diff 0.000), latency: 28ms 3201.49 H/s yes! seed: 2bbb1286f9018857def60dc49b011bbb66307fc1b75c7021d02ea8129333c595 [2020–10–27 10:33:42] GPU #2: MSI GTX 1070 Ti, 683.92 H/s
[2020–10–27 10:33:43] accepted: 191/191 (diff 0.000), latency: 43ms 3201.27 H/s yes! seed: 2bbb1286f9018857def60dc49b011bbb66307fc1b75c7021d02ea8129333c595
[2020–10–27 10:34:08] GPU #4: MSI GTX 1070 Ti, 689.23 H/s
[2020–10–27 10:34:08] accepted: 192/192 (diff 0.000), latency: 29ms 3201.14 H/s yes! seed: 2bbb1286f9018857def60dc49b011bbb66307fc1b75c7021d02ea8129333c595

During the above test, we confirmed that everything was now in excellent order with network latency. However, we identified a bug that “crashed” the pool when seeds were changed. We investigated this issue further and fixed it before continuing on with the next phase.

Our new build was ready for a stress test to see if we still had the same “crashing” issue.

[2020–11–07 15:35:16] GPU #5: EVGA GTX 1070, 582.78 H/s
[2020–11–07 15:35:16] accepted: 4/4 (diff 0.000), latency: 23ms 1137.94 H/s yes!
[2020–11–07 15:35:21] GPU #2: EVGA GTX 1070, 579.03 H/s
[2020–11–07 15:35:21] GPU #5: EVGA GTX 1070, 582.62 H/s
[2020–11–07 15:35:21] accepted: 5/5 (diff 0.000), latency: 25ms 1716.90 H/s yes!
[2020–11–07 15:35:21] accepted: 6/6 (diff 0.000), latency: 43ms 1716.90 H/s yes!

The seed change materialized and worked properly, and should continue without anymore crashes.

We have finally reached our end goal for the RX2 algorithm implementation, and are now in the last phase. This last phase includes tweaking the parameters of the algorithm itself to bring up to our taste.

The most complicated part is officially behind us, and we hope that we can tackle the parameter changes in a reasonable amount of time and without any surprises.

The final steps include internally testing the network with the newly configured parameters and then launching the public testnet — until we reach a fork date.

Website: https://luxcore.io/
Facebook: https://facebook.com/LuxcoreTeam
Twitter: https://twitter.com/LUX_COIN
Github: https://github.com/LUX-Core
Reddit: https://www.reddit.com/r/LUXCoin/
Telegram: https://t.me/LUXcoreOfficialChat
Discord: https://discord.gg/luxcore
Bitcointalk: https://bitcointalk.org/index.php?topic=2422372

Finally, please feel free to leave us your feedback, as we always welcome it!

-The Luxcore Team

Luxcore

EMPOWERING PEOPLE

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store