Host reliability

Description

Since release 1.3.0 wallet will have host reliability metrics, which means that the contractor will also eventually move past any contracts that are consistently failing during uploads or downloads.

In other words renter will have two new internal metrics in contracts.
GoodForUpload indicates whether the contract should be used to upload new data or not, and GoodForRenew indicates whether or not the contract should be renewed.

Technical description

How renter will decide about both metrics?

Renter select N+10 random hosts from hosts database.
Where N is hosts count in current renter allowance(with current default redundancy 1.7 - 50 hosts).
Then calculate lowest score and make it minimum acceptable score.
Then renter compare each host in current allowance to meet few conditions.

  • Host exists in hosts database(it can be removed for long downtime, by default more than 10 days)
  • Host score is greater or equal minimum acceptable score
  • Host online
    Meet these conditions will decide result for both metrics(good for upload and renew).

How renter will decide about data uploading? (GoodForUpload)

First case - uploaded too many files

Contract should not be used for upload if the number of Merkle roots exceeds 25e3 - this is in place because the current hosts do not really perform well beyond this number of sectors in a single contract.
Future updates will fix this, at which point this limit will change and also have to switch based on host version.

I.e. if renter uploaded more than 25000(25e3) sectors or file-parts to this host, this host wont be used for new uploads.

Second case - contract almost finished/close to renew date

Contract should not be used for uploading if the time has come to renew the contract.

I.e. if contract renew less than current height plus renew window(288 blocks/2 days by default) it wont be used for new uploads.

How renter will decide about contract renewal? (GoodForRenew)

Currently there is no separate conditions about renewal metric.

Renter decided that host is bad, so what?

Bad hosts will dropped by renter and it will select new to replace dropped.