Exetools  

Go Back   Exetools > General > General Discussion

Notices

Reply
 
Thread Tools Display Modes
  #91  
Old 03-06-2026, 13:05
cjack's Avatar
cjack cjack is offline
Family
 
Join Date: Jan 2002
Posts: 170
Rept. Given: 196
Rept. Rcvd 176 Times in 34 Posts
Thanks Given: 332
Thanks Rcvd at 219 Times in 64 Posts
cjack Reputation: 100-199 cjack Reputation: 100-199
Armadillo ECDLP Solver v1.4.5 — CRITICAL UPDATE: Cycle-Reset Diversity Fix

Immediate release of v1.4.5 — critical fix for a bug that caused Distinguished Points to stall after ~3.7 hours of computation.

The problem:
When worms reach the cycle limit (8 × 2^25 steps ≈ 268M steps), they need to restart from a new point. v1.4.4 selected only 2 walk table entries (5+5 = 10 bits), producing just 992 unique starting points for 174,080 worms. Result: ~175 worms per point, all replaying the same walk → 97% duplicate DPs. Unique DPs stalled at ~154K overnight.

The fix:

32-bit bitmask to select a subset of all 32 walk table entries → up to 2^32 unique starting points (~4.3 billion)
Per-worm resets counter to guarantee diversity on every subsequent reset
splitmix64 device-side hash for robust seed mixing
Zero performance impact: same 96 registers on sm_120, 0 spills, same speed
Verification:
After deployment, unique DPs immediately resumed growing (155K → 161K within minutes). 26/29 agents already updated automatically.

Download the new version from the dashboard: https://ecdlp.protect.cx/download/ArmadilloSolver.zip

Replace solver_fast.exe and restart your agent. Command line arguments remain unchanged.
Note: Checkpoint format has changed (new worm_t struct). Old checkpoints are incompatible — agents will restart from scratch, but all DPs already collected on the server are valid and preserved.
Reply With Quote
The Following 2 Users Say Thank You to cjack For This Useful Post:
aliali (03-07-2026), niculaita (03-06-2026)
  #92  
Old 03-06-2026, 15:24
WhoCares's Avatar
WhoCares WhoCares is offline
who cares
 
Join Date: Jan 2002
Location: Here
Posts: 468
Rept. Given: 11
Rept. Rcvd 32 Times in 25 Posts
Thanks Given: 69
Thanks Rcvd at 247 Times in 94 Posts
WhoCares Reputation: 32
How did the agents update automatically?

I didn't find any auto-update feature.

Quote:
Originally Posted by cjack View Post
Armadillo ECDLP Solver v1.4.5 — CRITICAL UPDATE: Cycle-Reset Diversity Fix

After deployment, unique DPs immediately resumed growing (155K → 161K within minutes). 26/29 agents already updated automatically.
__________________
AKA Solomon/blowfish.
Reply With Quote
  #93  
Old 03-06-2026, 15:29
cjack's Avatar
cjack cjack is offline
Family
 
Join Date: Jan 2002
Posts: 170
Rept. Given: 196
Rept. Rcvd 176 Times in 34 Posts
Thanks Given: 332
Thanks Rcvd at 219 Times in 64 Posts
cjack Reputation: 100-199 cjack Reputation: 100-199
Quote:
Originally Posted by WhoCares View Post
How did the agents update automatically?

I didn't find any auto-update feature.
They didn't — there's no auto-update feature right now, but something new is under beta testing.
The users of those 26 agents simply downloaded the new build from the server's /download endpoint and restarted their agents manually.
Poor wording on my part, sorry for the confusion!

To update: download as usual the latest ArmadilloSolver.zip from the server, replace your solver_fast.exe, and restart.

Live Stats (as of now):

29 active agents — 25x RTX 5090, 2x RTX 4070 Ti, 1x RTX 3060, 1x RTX 5070 Ti
90.73 G/s combined throughput
254,011 unique DPs collected (440K total submitted)
4.89 × 10¹⁵ iterations computed so far
36.3% progress toward expected collision
0 collisions yet
ETA: ~12 hours to median collision point

Last edited by cjack; 03-06-2026 at 16:57.
Reply With Quote
  #94  
Old 03-07-2026, 04:58
DARKER DARKER is offline
VIP
 
Join Date: Jul 2004
Location: Somewhere Over the Rainbow
Posts: 541
Rept. Given: 16
Rept. Rcvd 123 Times in 54 Posts
Thanks Given: 21
Thanks Rcvd at 1,038 Times in 262 Posts
DARKER Reputation: 100-199 DARKER Reputation: 100-199
Something wrong? 109.3% ETA: --
Reply With Quote
  #95  
Old 03-07-2026, 05:19
cjack's Avatar
cjack cjack is offline
Family
 
Join Date: Jan 2002
Posts: 170
Rept. Given: 196
Rept. Rcvd 176 Times in 34 Posts
Thanks Given: 332
Thanks Rcvd at 219 Times in 64 Posts
cjack Reputation: 100-199 cjack Reputation: 100-199
Quote:
Originally Posted by DARKER View Post
Something wrong? 109.3% ETA: --
Hi Darker! We're past the median expected time (111% now), but that's completely normal with Pollard's Rho — it's a probabilistic algorithm. The median means there's a ~50% chance of finding the collision before that point, and ~50% after. At 111%, the cumulative probability of having found it is only about 62%, so there's still a ~38% chance of being exactly where we are.

Think of it like flipping a coin — just because you "should" get heads by flip #10 doesn't mean it can't take 15 or 20 flips. The ETA shows "--" because we're past the median estimate, but the math is solid and all 30 agents are grinding at 92 G/s. The collision can hit any moment now.

TL;DR: Perfectly normal statistical variance. We keep running.
Reply With Quote
The Following User Says Thank You to cjack For This Useful Post:
niculaita (03-07-2026)
  #96  
Old 03-07-2026, 06:34
aliali aliali is offline
Friend
 
Join Date: Jan 2002
Posts: 61
Rept. Given: 4
Rept. Rcvd 8 Times in 4 Posts
Thanks Given: 3
Thanks Rcvd at 15 Times in 8 Posts
aliali Reputation: 8
Hi cjack,

I'm contributing on this ECDLP Solver, can you kindly include the source code with v1.4.5 version published on the dashboard website.

Quote:
Originally Posted by cjack View Post
Armadillo ECDLP Solver v1.4.5 — CRITICAL UPDATE: Cycle-Reset Diversity Fix

Immediate release of v1.4.5 — critical fix for a bug that caused Distinguished Points to stall after ~3.7 hours of computation.

The problem:
When worms reach the cycle limit (8 × 2^25 steps ≈ 268M steps), they need to restart from a new point. v1.4.4 selected only 2 walk table entries (5+5 = 10 bits), producing just 992 unique starting points for 174,080 worms. Result: ~175 worms per point, all replaying the same walk → 97% duplicate DPs. Unique DPs stalled at ~154K overnight.

The fix:

32-bit bitmask to select a subset of all 32 walk table entries → up to 2^32 unique starting points (~4.3 billion)
Per-worm resets counter to guarantee diversity on every subsequent reset
splitmix64 device-side hash for robust seed mixing
Zero performance impact: same 96 registers on sm_120, 0 spills, same speed
Verification:
After deployment, unique DPs immediately resumed growing (155K → 161K within minutes). 26/29 agents already updated automatically.

Download the new version from the dashboard: https://ecdlp.protect.cx/download/ArmadilloSolver.zip

Replace solver_fast.exe and restart your agent. Command line arguments remain unchanged.
Note: Checkpoint format has changed (new worm_t struct). Old checkpoints are incompatible — agents will restart from scratch, but all DPs already collected on the server are valid and preserved.
Reply With Quote
  #97  
Old 03-07-2026, 06:41
cjack's Avatar
cjack cjack is offline
Family
 
Join Date: Jan 2002
Posts: 170
Rept. Given: 196
Rept. Rcvd 176 Times in 34 Posts
Thanks Given: 332
Thanks Rcvd at 219 Times in 64 Posts
cjack Reputation: 100-199 cjack Reputation: 100-199
Quote:
Originally Posted by aliali View Post
Hi cjack,

I'm contributing on this ECDLP Solver, can you kindly include the source code with v1.4.5 version published on the dashboard website.
Sure! This is the package with source code, version 1.4.5:

hxxxs://mega.nz/file/4oow3IDK#lj_6FkkOBAXreljlH9tRhY08jZyCanIXfWco26_HPBg

Thanks for contributing to this "crazy" project! We'll find the collision point!
Reply With Quote
The Following User Gave Reputation+1 to cjack For This Useful Post:
niculaita (03-07-2026)
The Following 3 Users Say Thank You to cjack For This Useful Post:
aliali (03-07-2026), niculaita (03-07-2026), tonyweb (03-08-2026)
  #98  
Old 03-07-2026, 14:50
cjack's Avatar
cjack cjack is offline
Family
 
Join Date: Jan 2002
Posts: 170
Rept. Given: 196
Rept. Rcvd 176 Times in 34 Posts
Thanks Given: 332
Thanks Rcvd at 219 Times in 64 Posts
cjack Reputation: 100-199 cjack Reputation: 100-199
Status Update:

Progress: 156% of expected mean (85% cumulative probability)
Unique DPs collected: 1,093,619
Active agents: 29 (24× RTX 5090, 1× RTX 5070 Ti, 1× RTX 4070 Ti Super, 1× RTX 3090, 1× RTX 4070, 1× RTX 3060 Ti)
Fleet speed: 90.76 G/s
Efficiency: 78%
Collisions: 0 (still waiting)
Uptime: ~38 hours continuous
Why no collision yet?
Pollard's Rho is probabilistic — the "expected" iteration count is a median, not a guarantee. Being at 156% means we're in the statistical tail, but this is perfectly normal. The CDF is P(x) = 1 − e^(−π/4 · x²), so at x=1.56 there's still a ~15% chance of not having found it yet. Nothing is wrong — all agents are healthy and producing DPs at the correct rate.

ETA from current position:

90th percentile: ~7 hours
95th percentile: ~21 hours
99th percentile: ~52 hours


The 5090 fleet is available for another ~33 hours, which covers us up to the 95th percentile. Statistically, the collision is very likely to happen within the next day.

Stay tuned and join the battle!
Reply With Quote
  #99  
Old 03-08-2026, 03:55
cjack's Avatar
cjack cjack is offline
Family
 
Join Date: Jan 2002
Posts: 170
Rept. Given: 196
Rept. Rcvd 176 Times in 34 Posts
Thanks Given: 332
Thanks Rcvd at 219 Times in 64 Posts
cjack Reputation: 100-199 cjack Reputation: 100-199
Critical Bug Found & Fixed (v1.5.0)

Hey all,

Wanted to share a hard lesson learned with the THUNDERSTRIKE distributed Pollard's Rho solver targeting Armadillo ECDSA-113 (binary Koblitz curve over GF(2^113)).

The Problem

We've been running ~30 agents (mostly RTX 5090s) at a combined ~92 G/s for a while now. Reached 233% of the expected median iteration count with absolutely zero collisions. The probability of that happening with a correctly functioning Rho walk is roughly 1.4% — suspicious enough to warrant a deep investigation.

Root Cause

The walk partition function p = X.hi & 31 was using the projective X coordinate instead of the affine x coordinate.

In Lopez-Dahab projective coordinates, X_proj = x_affine × Z. After the very first ld_madd step, Z diverges from 1. So two walks arriving at the same affine point but carrying different Z values would compute different partition indices, select different walk table entries, and diverge. Walks never merge. Pollard's Rho degenerates into pure random distinguished point sampling — you'd need ~10^12 DPs for a birthday collision among them. We had collected ~1.8 million. At that rate: roughly 223 years. Not ideal.

The bug was subtle because every individual component (EC arithmetic, DP detection, server collection) was working correctly in isolation. The partition function just happened to operate on the wrong representation of the point.

The Fix (v1.5.0)

We switched to per-step affine normalization using Itoh-Tsujii inversion, ensuring Z = 1 at every step. This means the partition function now sees the true affine x coordinate and walks sharing the same point will always take the same step — as Pollard intended.

With Z guaranteed to be 1 on input, we wrote an optimized ld_madd_z1 routine (5M+3S vs the previous 8M+5S). The compiled kernel hits 96 registers, 0 spills. Throughput on a single RTX 5090 is ~975 M/s — about 3.5x slower per step than before, but the algorithm now actually converges.

Verification

We wrote formal proofs for the partition invariant and ran a 5-test verification suite — all passing, confirming both that the old code was broken and that the new code preserves walk mergeability. Test runs show hash table duplicates growing at the expected rate, which is exactly what you want to see.

What's Next

Operations are temporarily suspended while we do final verification across the fleet. Once we restart with v1.5.0, the estimated time to solve one certificate is in the range of 32-50 hours with the full agent fleet at reduced per-step throughput. A very different story from "223 years."

Sometimes the most dangerous bugs are the ones where everything looks like it's working perfectly. 92 G/s of beautifully fast, completely useless computation.
Reply With Quote
  #100  
Old 03-08-2026, 06:07
aliali aliali is offline
Friend
 
Join Date: Jan 2002
Posts: 61
Rept. Given: 4
Rept. Rcvd 8 Times in 4 Posts
Thanks Given: 3
Thanks Rcvd at 15 Times in 8 Posts
aliali Reputation: 8
I can not connect to the server, waiting the new fix (v1.5.0) to be released with its source code.

Quote:
Originally Posted by cjack View Post
Critical Bug Found & Fixed (v1.5.0)

Hey all,

Wanted to share a hard lesson learned with the THUNDERSTRIKE distributed Pollard's Rho solver targeting Armadillo ECDSA-113 (binary Koblitz curve over GF(2^113)).

The Problem

We've been running ~30 agents (mostly RTX 5090s) at a combined ~92 G/s for a while now. Reached 233% of the expected median iteration count with absolutely zero collisions. The probability of that happening with a correctly functioning Rho walk is roughly 1.4% — suspicious enough to warrant a deep investigation.

Root Cause

The walk partition function p = X.hi & 31 was using the projective X coordinate instead of the affine x coordinate.

In Lopez-Dahab projective coordinates, X_proj = x_affine × Z. After the very first ld_madd step, Z diverges from 1. So two walks arriving at the same affine point but carrying different Z values would compute different partition indices, select different walk table entries, and diverge. Walks never merge. Pollard's Rho degenerates into pure random distinguished point sampling — you'd need ~10^12 DPs for a birthday collision among them. We had collected ~1.8 million. At that rate: roughly 223 years. Not ideal.

The bug was subtle because every individual component (EC arithmetic, DP detection, server collection) was working correctly in isolation. The partition function just happened to operate on the wrong representation of the point.

The Fix (v1.5.0)

We switched to per-step affine normalization using Itoh-Tsujii inversion, ensuring Z = 1 at every step. This means the partition function now sees the true affine x coordinate and walks sharing the same point will always take the same step — as Pollard intended.

With Z guaranteed to be 1 on input, we wrote an optimized ld_madd_z1 routine (5M+3S vs the previous 8M+5S). The compiled kernel hits 96 registers, 0 spills. Throughput on a single RTX 5090 is ~975 M/s — about 3.5x slower per step than before, but the algorithm now actually converges.

Verification

We wrote formal proofs for the partition invariant and ran a 5-test verification suite — all passing, confirming both that the old code was broken and that the new code preserves walk mergeability. Test runs show hash table duplicates growing at the expected rate, which is exactly what you want to see.

What's Next

Operations are temporarily suspended while we do final verification across the fleet. Once we restart with v1.5.0, the estimated time to solve one certificate is in the range of 32-50 hours with the full agent fleet at reduced per-step throughput. A very different story from "223 years."

Sometimes the most dangerous bugs are the ones where everything looks like it's working perfectly. 92 G/s of beautifully fast, completely useless computation.
Reply With Quote
  #101  
Old 03-08-2026, 07:00
cjack's Avatar
cjack cjack is offline
Family
 
Join Date: Jan 2002
Posts: 170
Rept. Given: 196
Rept. Rcvd 176 Times in 34 Posts
Thanks Given: 332
Thanks Rcvd at 219 Times in 64 Posts
cjack Reputation: 100-199 cjack Reputation: 100-199
Hey aliali,

v1.5.0 is now live on the server — full source code included in the download package.

Download the new package from https://ecdlp.protect.cx/download/ArmadilloSolver.zip

Old agents (< v1.5.0) are automatically rejected by the server
The fleet is already running with 26 workers at ~21 G/s on the new target. ETA ~3 days.
We also switched to a new certificate target (codename ENDGAME). Your agent will pick up the new parameters automatically from the server when it connects — no manual config needed.
Reply With Quote
The Following User Says Thank You to cjack For This Useful Post:
wx69wx2023 (03-10-2026)
  #102  
Old 03-08-2026, 10:05
WhoCares's Avatar
WhoCares WhoCares is offline
who cares
 
Join Date: Jan 2002
Location: Here
Posts: 468
Rept. Given: 11
Rept. Rcvd 32 Times in 25 Posts
Thanks Given: 69
Thanks Rcvd at 247 Times in 94 Posts
WhoCares Reputation: 32
@cjack

There is a small bug for printf. The console output is mixed with printf from if and else branches:

[ENDGAME][ 315s] 129.85 M iter/s | 4.090e+10 iters | DP sent:1 NE - retrying...

There should be a '\n' for if(hb_failed) branch.

And I don't know why the heartbeat failed so frequently, my network connection is quite stable.
Code:
                if (hb_failed)
                    printf("\r[%s][%7.0fs] %.2f %s | %.3e iters | SERVER OFFLINE - retrying...   ",
                           job_codename ? job_codename : "?",
                           elapsed, dspeed, unit, (double)agent_iters);
                else
                    printf("\r[%s][%7.0fs] %.2f %s | %.3e iters | DP sent:%u   ",
                           job_codename ? job_codename : "?",
                           elapsed, dspeed, unit, (double)agent_iters, dp_found);
Quote:
Waiting for server at ecdlp.protect.cx ... Registered as worker: b2b7f6fc
Project: ENDGAME
Project ID: 97c327d7
G.x: 0x02909A5FDD46C946F29ED931C083F
G.y: 0x0167549B3D78A6930526E91FF0E8C
G on curve: YES
Q.x: 0x138EAD61AE6D9E60A6515D34FC371
Q.y: 0x004D1DB747FC9B632A25C2D12E515
Q on curve: YES
DP bits: 25

Downloading walk table from server...
Walk table loaded (2048 bytes)
Precomputing 65536 subset sums per half...
Precomputation done: 2 x 65536 subset sums
Initializing 47104 worms with unique starting points...
session_seed=0x0000CB8869ACD4E1 h_salt=0x92598B7E
worm[0]: h=0x0FA019BA maskA=6586 maskB=4000 x=0001E94EA3FD44712959B08F0FC663E5
worm[1]: h=0xBECEF163 maskA=61795 maskB=48846 x=000095148466920574C43576AE63578B
worm[2]: h=0x4683B07B maskA=45179 maskB=18051 x=00002F0E9F90C29DED5E5DC8F04583ED
worm[3]: h=0xAEA8D40A maskA=54282 maskB=44712 x=0001E64EA0141008A6655EAE5D3061C5
worm[4]: h=0x1E6D8088 maskA=32904 maskB=7789 x=00003562A9560C293490CBD417D52FA7
Worm init complete.
Session seed: 0x0000CB8869ACD4E1

Starting distributed Pollard's Rho...

First launch: 1 DPs found
DP[0] verify: OK
[ENDGAME][ 48s] 142.69 M iter/s | 6.849e+09 iters | DP sent:1
[DP] 200 sent, 200 unique (0.0% dup rate)
[ENDGAME][ 93s] 140.04 M iter/s | 1.302e+10 iters | DP sent:4
[DP] 403 sent, 403 unique (0.0% dup rate)
[ENDGAME][ 146s] 141.40 M iter/s | 2.064e+10 iters | DP sent:2
[DP] 603 sent, 603 unique (0.0% dup rate)
[ENDGAME][ 193s] 140.45 M iter/s | 2.711e+10 iters | DP sent:5
[DP] 801 sent, 801 unique (0.0% dup rate)
[ENDGAME][ 217s] 140.92 M iter/s | 3.058e+10 iters | DP sent:2
[DP] 895 sent, 894 unique (0.1% dup rate)
[ENDGAME][ 243s] 140.54 M iter/s | 3.415e+10 iters | DP sent:3
[DP] 1003 sent, 1002 unique (0.1% dup rate)
[ENDGAME][ 315s] 129.85 M iter/s | 4.090e+10 iters | DP sent:1 NE - retrying...
[DP] 1200 sent, 1199 unique (0.1% dup rate)
[ENDGAME][ 364s] 131.19 M iter/s | 4.775e+10 iters | DP sent:3
[DP] 1400 sent, 1399 unique (0.1% dup rate)
[ENDGAME][ 414s] 132.12 M iter/s | 5.470e+10 iters | DP sent:2
[DP] 1600 sent, 1599 unique (0.1% dup rate)
[ENDGAME][ 459s] 132.83 M iter/s | 6.097e+10 iters | DP sent:4
[DP] 1800 sent, 1799 unique (0.1% dup rate)
[ENDGAME][ 501s] 133.44 M iter/s | 6.685e+10 iters | DP sent:4
[DP] 2002 sent, 2001 unique (0.0% dup rate)
[ENDGAME][ 548s] 133.97 M iter/s | 7.341e+10 iters | DP sent:1
[DP] 2203 sent, 2202 unique (0.0% dup rate)
[ENDGAME][ 618s] 129.72 M iter/s | 8.017e+10 iters | DP sent:4 NE - retrying...
[DP] 2401 sent, 2400 unique (0.0% dup rate)
[ENDGAME][ 662s] 130.57 M iter/s | 8.644e+10 iters | DP sent:4
[DP] 2600 sent, 2599 unique (0.0% dup rate)
[ENDGAME][ 706s] 131.31 M iter/s | 9.271e+10 iters | DP sent:1
[DP] 2800 sent, 2799 unique (0.0% dup rate)
[ENDGAME][ 760s] 132.26 M iter/s | 1.005e+11 iters | DP sent:3
[DP] 3001 sent, 3000 unique (0.0% dup rate)
[ENDGAME][ 807s] 132.81 M iter/s | 1.072e+11 iters | DP sent:3
[DP] 3201 sent, 3200 unique (0.0% dup rate)
[ENDGAME][ 852s] 133.15 M iter/s | 1.134e+11 iters | DP sent:1
[DP] 3401 sent, 3400 unique (0.0% dup rate)
[ENDGAME][ 921s] 130.51 M iter/s | 1.202e+11 iters | DP sent:0 NE - retrying...
[DP] 3601 sent, 3600 unique (0.0% dup rate)
[ENDGAME][ 973s] 131.07 M iter/s | 1.275e+11 iters | DP sent:2
[DP] 3801 sent, 3800 unique (0.0% dup rate)
[ENDGAME][ 1024s] 131.61 M iter/s | 1.348e+11 iters | DP sent:1
[DP] 4003 sent, 4002 unique (0.0% dup rate)
[ENDGAME][ 1072s] 132.19 M iter/s | 1.417e+11 iters | DP sent:2
[DP] 4200 sent, 4199 unique (0.0% dup rate)
[ENDGAME][ 1116s] 132.60 M iter/s | 1.480e+11 iters | DP sent:5
[DP] 4402 sent, 4401 unique (0.0% dup rate)
[ENDGAME][ 1162s] 133.00 M iter/s | 1.545e+11 iters | DP sent:5
[DP] 4600 sent, 4599 unique (0.0% dup rate)
[ENDGAME][ 1233s] 130.74 M iter/s | 1.612e+11 iters | DP sent:3 NE - retrying...
[DP] 4800 sent, 4799 unique (0.0% dup rate)
[ENDGAME][ 1291s] 130.92 M iter/s | 1.690e+11 iters | DP sent:5
[DP] 5000 sent, 4999 unique (0.0% dup rate)
[ENDGAME][ 1345s] 130.97 M iter/s | 1.762e+11 iters | DP sent:2
[DP] 5202 sent, 5201 unique (0.0% dup rate)
[ENDGAME][ 1391s] 131.08 M iter/s | 1.823e+11 iters | DP sent:4
[DP] 5400 sent, 5399 unique (0.0% dup rate)
[ENDGAME][ 1440s] 131.17 M iter/s | 1.889e+11 iters | DP sent:4
[DP] 5601 sent, 5600 unique (0.0% dup rate)
[ENDGAME][ 1486s] 131.20 M iter/s | 1.950e+11 iters | DP sent:2
[DP] 5803 sent, 5802 unique (0.0% dup rate)
[ENDGAME][ 1560s] 128.75 M iter/s | 2.008e+11 iters | DP sent:3 NE - retrying...
[DP] 6001 sent, 6000 unique (0.0% dup rate)
[ENDGAME][ 1609s] 128.85 M iter/s | 2.073e+11 iters | DP sent:3
[DP] 6202 sent, 6201 unique (0.0% dup rate)
[ENDGAME][ 1655s] 128.94 M iter/s | 2.134e+11 iters | DP sent:2
[DP] 6401 sent, 6400 unique (0.0% dup rate)
[ENDGAME][ 1707s] 128.96 M iter/s | 2.201e+11 iters | DP sent:6
[DP] 6602 sent, 6601 unique (0.0% dup rate)
[ENDGAME][ 1755s] 129.12 M iter/s | 2.266e+11 iters | DP sent:4
[DP] 6800 sent, 6799 unique (0.0% dup rate)
[ENDGAME][ 1836s] 127.47 M iter/s | 2.340e+11 iters | DP sent:3
[DP] 7000 sent, 6999 unique (0.0% dup rate)
[ENDGAME][ 1890s] 127.60 M iter/s | 2.412e+11 iters | DP sent:1
[DP] 7201 sent, 7200 unique (0.0% dup rate)
[ENDGAME][ 1940s] 127.70 M iter/s | 2.477e+11 iters | DP sent:0
[DP] 7404 sent, 7403 unique (0.0% dup rate)
[ENDGAME][ 1990s] 127.79 M iter/s | 2.543e+11 iters | DP sent:5
[DP] 7604 sent, 7603 unique (0.0% dup rate)
[ENDGAME][ 2039s] 127.88 M iter/s | 2.608e+11 iters | DP sent:2
[DP] 7801 sent, 7800 unique (0.0% dup rate)
[ENDGAME][ 2090s] 127.90 M iter/s | 2.673e+11 iters | DP sent:3
[DP] 8001 sent, 8000 unique (0.0% dup rate)
[ENDGAME][ 2164s] 127.01 M iter/s | 2.748e+11 iters | DP sent:4
[DP] 8200 sent, 8199 unique (0.0% dup rate)
[ENDGAME][ 2219s] 126.99 M iter/s | 2.818e+11 iters | DP sent:6
[DP] 8401 sent, 8400 unique (0.0% dup rate)
[ENDGAME][ 2249s] 126.71 M iter/s | 2.850e+11 iters | DP sent:3
__________________
AKA Solomon/blowfish.

Last edited by WhoCares; 03-08-2026 at 11:55.
Reply With Quote
The Following User Gave Reputation+1 to WhoCares For This Useful Post:
Jupiter (03-11-2026)
  #103  
Old 03-08-2026, 14:04
cjack's Avatar
cjack cjack is offline
Family
 
Join Date: Jan 2002
Posts: 170
Rept. Given: 196
Rept. Rcvd 176 Times in 34 Posts
Thanks Given: 332
Thanks Rcvd at 219 Times in 64 Posts
cjack Reputation: 100-199 cjack Reputation: 100-199
Hi WhoCares!
Thank you so much for the detailed bug report! Both issues were spot-on.

v1.5.1 is now available from the dashboard download link with the following fixes:

1) Printf mixing (agent): The hb_failed status line was using \r without a terminating \n, causing it to overwrite normal output. Fixed — now uses \n delimiters so the "SERVER OFFLINE" message prints cleanly on its own line.

2) Heartbeat timeouts every ~300s (server): This was the more critical one. save_state() was holding the global lock during the entire disk write — serializing millions of DPs with struct.pack in a loop while every API endpoint waited. As the DP table grows, save time grows, and at ~15M+ DPs it was blocking long enough to trigger agent heartbeat timeouts.

Fix: new save_state_background() takes a fast snapshot of all data structures under lock (milliseconds), then releases the lock and writes to disk outside it. Agents no longer see any interruption during auto-save.

Fleet is currently at 28 workers / ~21 G/s, 9.3% progress, efficiency 99.9%. No more periodic disconnections.

Thanks again for catching these — the heartbeat timeout one in particular would have become worse as the DP table keeps growing toward collision.
Reply With Quote
The Following User Says Thank You to cjack For This Useful Post:
Jupiter (03-11-2026)
  #104  
Old 03-11-2026, 10:00
WhoCares's Avatar
WhoCares WhoCares is offline
who cares
 
Join Date: Jan 2002
Location: Here
Posts: 468
Rept. Given: 11
Rept. Rcvd 32 Times in 25 Posts
Thanks Given: 69
Thanks Rcvd at 247 Times in 94 Posts
WhoCares Reputation: 32
@cjack

server is unstable now. Calc speed is very slow.
__________________
AKA Solomon/blowfish.
Reply With Quote
  #105  
Old 03-11-2026, 20:07
cjack's Avatar
cjack cjack is offline
Family
 
Join Date: Jan 2002
Posts: 170
Rept. Given: 196
Rept. Rcvd 176 Times in 34 Posts
Thanks Given: 332
Thanks Rcvd at 219 Times in 64 Posts
cjack Reputation: 100-199 cjack Reputation: 100-199
Hi WhoCares! Thanks for the report and sorry about the disruption at 3 AM.

Here's what happened: we switched the attack target from Cert #11 to Cert #6 (the correct eval certificate — we discovered the old target had a wrong base point). The server was restarted with a fresh project, and then we upgraded the entire fleet to agent v1.6.0.

Sorry for the inconvenience — this is very much a work-in-progress experiment and things like these can happen. We really appreciate everyone who's contributing despite the bumps along the road. Your help means a lot!

Everything is stable now — 39 workers running at 34+ G/s, server healthy with 14.5M+ unique DPs and growing.

Important: Please download the latest agent (v1.6.0) from the dashboard at ecdlp.protect.cx. This version has the async DP sender pipeline which eliminates idle time between GPU kernel launches — you should see a nice speed boost (up to 25% faster). Your current v1.5.1 still works but it's leaving performance on the table.

Thanks for contributing to the attack!
Reply With Quote
Reply

Tags
bolero, ecdlp

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Replacing ECDSA in Target (arma) Mynotos General Discussion 3 11-22-2019 00:49


All times are GMT +8. The time now is 06:59.


Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX, chessgod101
( Since 1998 )