用户工具

站点工具


zh:renter:renting



托管

租用者如果想要在Sia网络上存储数据,需要支付费用给托管主机。

合同构成

在Sia上存储文件,租用者首先和不同的托管主机需要形成contract。一个合同商定了在规定时间内上传和存储数据需要支付多少的siacoin。每个租用者需要事先支付siacoin,剩余的siacoin将会在合同期满时返回。

为了促进这个进程,Sia客户端循序用户设置一个allowance。这个限量规定了最大花费的siacoin,和一块为单位的时间。这样客户端就可以智能的选择托管主机并和他们签订等量数据的合同。

上传和下载

Sia使用编码擦除来保证文件私密,以及在托管主机下线时的可访问性。

上传过程如下。首先,文件按照40MB的chunks分割。对每个分片使用Reed-Solomon erasure编码,使之成为30个4MB的pieces。Erasure编码就像一个M对N的协议。对数据来说,一共N个部分,只需要M个部分就可以恢复出完整的一个40M的chunk。Erasure是更高级别的冗余机制,相对传统的复制多份来讲。

接着每个piece都用Twofish算法加密。该算法是高级加密标准竞赛中五个最终竞争的标准之一,只是他没有被选上最后的标准。不管怎么样,这个算法都是非常安全的。

最后这些pieces被发给托管主机保存。当前来讲,没有一个托管主机会受到一个chunk中超过一个的piece。比如,托管主机1可能包含chunk1,chunk2,chunk3及其他chunk的第一个piece。而托管主机2可能包含这些chunk的第二个piece。这样保证了如果托管主机1下线了,你仍然能够下载每个chunk的所有piece。或者如果遇到托管主机1并没有下线,但是速度很慢,这个方案可以避免你因为托管主机1的速度成为瓶颈。

续约合同

因为合同会在一定的时间到期(比如,一定数量的块),必须生成新的合同来取代它们。最简单的方法是,租用者可以重复合同生成过程并重新上传数据。不过者显然对租用者和托管主机都不高效。为了解决这个问题,Sia租赁协议支持直接替代老合同。相对于生成一个全新的合同,这个协议可以生成一个新的包含新的租期,并携带有当前在托管主机上已保存数据的引用的合同。这个新合同中包含的siacoin也可以和原合同不同。

Sia客户端会自动在一段合同到期窗口内进行续约。这表示着新合同和旧合同会在一定程度上有重叠。新合同的到期高度会等于当前高度加上总期限。

zh/renter/renting.txt · 最后更改: 2017/06/22 13:11 由 WeiYang