SiaHub

The SiaHub Developer Hub

    

Host score

Score different from my estimated/other users?

Why <any word> different/incorrect

What metrics used?

Current metrics is Age, Collateral, Price, Remaining storage, Uptime, Wallet Version and Host interaction weight (v1.3.0 and above)

Age / Lifetime

Lifetime calculated from first host announce.
To get minimal penalty(score = 1) your host must be older than 6000 blocks or 41 days in human time.
Base score is 1 then penalties applied depending on host lifetime.

Current penalties:

  • <6000 (41 days) - 2x (1/2)
  • <4000 (28 days) - 4x (1/4)
  • <2000 (14 days) - 8x (1/8)
  • <1000 (7 days) - 16x
  • < 576 (4 days) - 32x
  • <288 (2 days) - 64x
  • <144 (1 day) - 128x

Collateral

Improves the host's weight according to the amount of collateral that they have provided.

Price

Prices score calculation bit complicated.
Generally you should have minimal prices to get higher score.
Used prices: contract price, collateral, bandwidth price(download, upload)

Remaining storage

Base score is 1 then penalties applied depending on host remaining storage.

  • 4 TB - 2x total penalty
  • 3 TB - 4x total penalty
  • 2 TB - 8x total penalty
  • 1.6 TB - 16x total penalty
  • 800 GB - 32x total penalty
  • 400 GB - 64x total penalty
  • 300 GB - 128x total penalty
  • 200 GB - 256x total penalty
  • 100 GB - 512x total penalty
  • 60 GB - 1024x total penalty
  • 40 GB - 2048x total penalty
  • 20 GB - 4096x total penalty

Uptime

Penalizes the host for having poor uptime, and for being offline.

  • 100% uptime = 1
  • 98% uptime = 1
  • 95% uptime = 0.91
  • 90% uptime = 0.51
  • 85% uptime = 0.16
  • 80% uptime = 0.03
  • 75% uptime = 0.005
  • 70% uptime = 0.001
  • 50% uptime = 0.000002

Version

To keep version penalty minimal host must use newest wallet version.

Host interaction weight

(since v1.3.0)

The multipler that gets applied to a host based on previous interactions with the host. A high ratio of successful interactions will improve this hosts score, and a high ratio of failed interactions will hurt this hosts score. This adjustment helps account for hosts that are on unstable connections, don't keep their wallets unlocked, ran out of funds, etc.

Calculation:

Successful Interactions(SI) = Historic Successful Interactions + 30
30 is baseline of successful interactions

Failed Interactions(FI) = Historic Failed Interactions + 1
1 is baseline of failed interactions

Ratio = SI / (SI + FI)

Ratio ^ 15 = Host interaction weight

Raise the ratio to the 15th power and return that. The exponentiation is very high because the renter will already intentionally avoid hosts that do not have many successful interactions, meaning that the bad points do not rack up very quickly. We want to signal a bad score for the host nonetheless.

For example:
Fresh renter/host with zero stats
Successful Interactions = 30
Failed Interactions = 1
30 / (30 + 1) ^ 15 = ~0.61

So default interaction weight for any host is ~0.61