randomizes durability properties

This commit is contained in:
ThatBen 2025-05-05 18:15:16 +02:00
parent 0f8a70cf7f
commit ea5d145dd9
No known key found for this signature in database
GPG Key ID: E020A7DDCD52E1AB
2 changed files with 24 additions and 4 deletions

View File

@ -24,15 +24,16 @@ namespace AutoClient
public IStoragePurchaseContract RequestStorage(ContentId cid)
{
var (nodes, tolerance) = GetDurability();
var result = Node.Marketplace.RequestStorage(new StoragePurchaseRequest(cid)
{
CollateralPerByte = app.Config.CollateralPerByte.TstWei(),
Duration = GetDuration(),
Expiry = TimeSpan.FromMinutes(app.Config.ContractExpiryMinutes),
MinRequiredNumberOfNodes = Convert.ToUInt32(app.Config.NumHosts),
NodeFailureTolerance = Convert.ToUInt32(app.Config.HostTolerance),
MinRequiredNumberOfNodes = nodes,
NodeFailureTolerance = tolerance,
PricePerBytePerSecond = GetPricePerBytePerSecond(),
ProofProbability = 15
ProofProbability = GetProofProbability()
});
return result;
}
@ -61,5 +62,22 @@ namespace AutoClient
return TimeSpan.FromMinutes(i);
}
private (uint, uint) GetDurability()
{
(uint, uint)[] options = [
(4, 2),
(5, 2),
(10, 5),
(20, 10)
];
return options[r.Next(0, options.Length)];
}
private int GetProofProbability()
{
return r.Next(10, 100);
}
}
}

View File

@ -44,9 +44,11 @@ namespace AutoClient
public void Queue(Action<CodexWrapper> action)
{
if (queue.Count > 2) log.Log("Queue full. Waiting...");
var sleep = 0.1;
while (queue.Count > 2)
{
Thread.Sleep(TimeSpan.FromSeconds(1.0));
Thread.Sleep(TimeSpan.FromSeconds(sleep));
sleep *= 2.0;
}
lock (queueLock)