How to Run a Host on Sia
This guide is fairly comprehensive. If you are already familiar with Sia, feel free to skip sections. This guide is written for v0.6.0 and up.
The first thing that you need to know about hosting is that it's a commitment. Hosts on Sia are expected to have 95% uptime, which means that the host and data should be available 24/7. Occasional downtime is permitted, but generally the host should always be online. Second, a host is expected to run for a long time. You can control the maximum contract length, but generally it should be at least 12 weeks. A later section explains how to retire a host without losing collateral.
Click here to see the full blog post
How can I automate the process of starting the hosting without exposing the password of the wallet? Will I have to manually unlock the wallet after a boot, thus hitting my uptime very hard.
There's not much that you can do. You're going to need to feed the password to
siadsomehow every time you reboot. If you are careful with your machine and balance (keep balance low, keep Sia and all Sia folders running as a separate user, etc.), then there is little risk to having an exposed wallet password.
I believe that the overbooking possibility should be noted somehow in this guide. It's not obvious and means that collateral budget should be several times greater than provided storage multiplied by "collateral" value in settings.
The collateral should be at least 1000 siacoins per TB per month
Am I understanding correctly that the collateral setting could limit the contract length? e.g. a host with collateral set to 4000 can never get contracts longer than 4 months and collateral below roughly 3000 prevents getting any contracts at all?
These commands do not seem to work:
./siac host config mindownloadbandwithprice 4000SC
"mindownloadbandwithprice" is not a host setting
[root@sia sia]# ./siac host config minimumuploadbandwidthprice 4000SC
"minimumuploadbandwidthprice" is not a host setting0
There is a typo there :-)
It's "mindownloadbandwidthprice" and "minuploadbandwidthprice".
I'll make a github bug report. Thanks for finding that small typo!
I have just updated the blog post to reflect a change to the API - 'minimumXXX' is now 'minXXX'. These commands were changed when we upgraded to v1.0.0, but the blog post was never updated to reflect that.
minuploadbandwidthprice, minstorageprice, and mindownloadbandwidthprice are now the correct settings.