Migrating host from siad to hostd

I have been running a host for almost three years. No need to tell you that it doesn’t make any financial sense, at all. After all that time I have 21100 SC, that amounts to 200 euro. But this topic isn’t about that.
I want to migrate from siad to hostd and keep the existing volume.
After reading the docs starting here Linux - Sia Docs I think I know what to do, except for the volume. Hopefully I can figure it out once I see the interface.
Are there any gotchas I should be aware of, any advice?
Does it really need 8 GB RAM, can’t it run with just 4?


I would recommend starting the host from scratch. However, we provide a migration utility to convert an old siad host to hostd. The steps are pretty straightforward, but if you need help, jump in Discord.

4GB of RAM should be fine for hosts under 50TB.


The migration was successful. It took 31 hours for a 2.2 TB volume that resulted in a shrunken 100 GB.
I have problems using the hostd API to set prices (I need the API for an automated script). More precisely what units am I supposed to use, tried appending “SC” and also 12 zeros but there’s something weird about storage price. I got ingress and egress right.
I have never used Discord, I’ll look into that and ask there.


siascan.com shows my host as offline. That is it displays the statistics and identification from the siad days. It shows version 1.6.0.

But the new hostd is running normally, has activity.

The IP and port hasn’t changed.

Later edit: is there something I should do about this? Does it have to do with the “public key”, the string that is in the link https://siascan.com/host/long_string_here_public_key
Is this different now, when running on hostd? Didn’t the migrate script import it?

1 Like

curl --location --request PATCH ‘http://localhost:9980/api/settings’ --header ‘Content-Type: application/json’ --user admin:*** --data ‘{ “storagePrice”: “195000000000”, “egressPrice”: “489000000000000”, “ingressPrice”: “53000000000000” }’
“acceptingContracts”: true,
“netAddress”: “***:9882”,
“maxContractDuration”: 25920,
“windowSize”: 144,
“contractPrice”: “50000000000000000000000”,
“baseRPCPrice”: “100000000000000000”,
“sectorAccessPrice”: “2000000000000000000”,
“collateralMultiplier”: 2,
“maxCollateral”: “1170000000000000000000000000”,
“storagePrice”: “195000000000”,
“egressPrice”: “489000000000000”,
“ingressPrice”: “53000000000000”,
“priceTableValidity”: 1800000000000,
“maxRegistryEntries”: 100000,
“accountExpiry”: 2592000000000000,
“maxAccountBalance”: “10000000000000000000000000”,
“ingressLimit”: 0,
“egressLimit”: 0,
“ddns”: {
“provider”: “”,
“ipv4”: false,
“ipv6”: false,
“options”: null
“sectorCacheSize”: 0,
“revision”: 3

“ingress” and “egress” make sense, but “storage price” no sense. How is 195000000000 translated into 842 SC? I tried with 12 zeros as well. What are those units? How can I specify 195SC using them? Later edit: I got 195SC by using 45160332700 instead of 195000000000, but that is ridiculous. What does this mean?

I looked here hostd and saw that someone recently put up an example that is way more useful than what was there before. That is the “string” was replaced with actual numbers. Thanks.

1 Like

The problem with being offline on siascan is solved. I was announcing the wrong port, 9882 instead of 9982. I asked on Discord and someone spotted it immediately.
All good on siascan now.