矿工们最常问的一个问题就是为什么他们有时在某一天可以获得大量数据,而在第二天却几乎没有。这个问题的出现大多数是因为矿工们认为Storj能像比特币一样可以通过24小时不间断挖矿来获得稳定收入。
事实上,Storj的工作原理和比特币并不一样。Storj是在实际生活中被人真实使用的,就像任何网络云存储不可能有持续恒定的流量一样,Storj也不存在恒定的上传或下载速率。当人们使用Storj上传文件时,不能保证每个文件都大小相等,所以会存在瞬时上传峰值。下载文件同样是这个道理,有人今天会从Storj上下载一个文件,但并不意味着他明天还会下载同样的文件。正是由于这些未知因素,所以无法预测矿工在某一天到底能接收多少数据。
当你第一次启动节点时,它会做一个小小的工作量证明来加入到Bridge。Bridge是一个主节点,它可以将所有的数据上传或下载的请求转发到你的节点。一旦工作量证明完成,Bridge就会知道你的节点已在线,并将其添加到Storj网络中。此时,Bridge可以联系你的节点以查看它是否需要某些数据。
举个例子:假设一个用户想上传一个文件。该文件被拆分成若干份,称之为shard。这些shard会被上传到不同的节点。要做到这一点,用户首先联系Bridge:“嘿,我有一块shard需要存放在某处,我可以放在哪里?”Bridge回应道:“稍等,我去问问节点们看谁可以并且愿意存放。”当用户想上传shard时,Bridge会随机生成一个数值并将ALLOC消息发送到ID号与此相近或相等的节点上。
Bridge将查看节点的响应时间(响应时间是你的节点响应1000个此类请求所花费时间的平均值)。Bridge将发送一个请求给36个响应时间低于9000毫秒的节点。同时,它还会向9个响应时间超过9000毫秒的节点发送请求。
此时,你的节点也要回传ALLOC消息给Bridge。ALLOC消息会告诉Bridge上传令牌。Bridge会将此令牌发送给用户,用户利用该令牌便可启动上传。
以上简单介绍了Storj网络是如何运作的,接下来还将进一步介绍Storj独有的Reputation系统。该系统会从以上45个备选节点中选择有资格的节点存放shard。欢迎大家持续关注。
原创文章,作者:Shirley,如若转载,请注明出处:http://ipfshare.com/index.php/2018/04/17/storj-working-principle/