1、 区块链技术与云计算的关系
由于互联网的普及,大量的多媒体信息(图文音视频等)造就了海量数据,这些数据大多是非结构化的。
分布式计算与并行计算:分布式计算是一种采用地理上不同的多个主机(集群)协同完成大量计算任务,从而替代巨型计算机的解决方案。并行计算是指多CPU并行处理,并行计算能够提高计算效率,但是前提是程序算法要尽可能并行设计。
虚拟化:虚拟化是为了实现云计算而划分资源的一种方法,包括两个层面:物理资源池化和资源池管理。虚拟化有两种,一种是将多个物理资源虚拟化成一个“大”的逻辑资源,另一种是在一个物理资源上划分出多个“小”的逻辑资源。
目前云计算采用第一种虚拟化方式较多,部署方式上使用分布式集群,并行计算并没有太多涉及(并行计算学术上还在研究中),然后可以处理海量数据,为庞大的接入终端群按需提供IT服务。可以简单的理解为,分布式这种解决方案是为了快速地处理海量数据而提出的,而该方案最终的目的或表现形式就是为了实现“用硬件换时间”,将数据分布在多台计算机上,同时处理(并行处理)带某种属性的数据集。从现实来看,很多微小型互联网公司没有能力或必要构建自己的分布式系统,会借助于本地资源外的云服务提供商,这样可以使公司专注于产品和业务实现。
结合灵活的开发工具,DCC平台可以帮助开发者发布软件并赚钱,进而改变算力任务的组织和执行方式。此类平台通过实现去中心微服务和异步任务执行,成为建设未来互联网的基⽯。得益于计算价格的大幅降低,复杂的应用(如CGI渲染,科学计算,机器学习等)将惠及每个。
通过P2P网络连接电脑,使应用所有者和个体用户(算力“请求方”)可以从其他用户租用算力(算力“供应商”)。这些算力资源可以完成对计算时间和计算能⼒有⼀定要求的计算任务。在当下,算力资源被中心化云服务商把控,受制于封闭网络,外部⽀付系统和死板的运营模式。去中心化云算力设施可以做到基于以太坊(或同类公链)的⽀付转账系统,可以实现算力买家(请求方),卖家(供应商)及软件开发者之间的直接支付。
2、DCC的优势
1.除了自由的服务器、带宽等资源外,还将计算需求分布到系统中的众多节点中去,把用户的先知资源利用起来,创造价值。
2.通过整合社会闲置的计算资源,来为企业或个人提供去中心化算力服务,基于token经济,构建计算机算力买卖方市场。
3.相比传统的云计算服务,其降低了云计算服务的门槛和使用费用,有利于云计算的普及。
3、商业模式
(1) Token经济模型
虽然市面上的分布式算力平台项目众多,但是总的技术框架却是大同小异,下面就以一个大概的框架来大概的描述这个Token经济模型。
请求节点
这个节点一般由一些有计算需求的商家或是科学研究所来充当,一般实验室或是自有的计算机数量已经不太符合他们目前的计算需求了,需要通过超算或是其他性价比较高的计算资源如全球分布式算力来达到目的。请求节点可能会被按照要求先将自己的需求文件(数据)按照规格先model好在进入网络(ELastic)或是有其他节点来做做这个简单归类的工作。
以下为需要贡献计算资源的节点
归类节点
这个节点由CPU算力贡献用户来参与,通过分布式算力平台针对对某种计算目的项目进行分类来设定一些比较简单的分类算法来达到将数据归类和model的效果,这样子的目的是能够将这些原本不规则的数据能够更好处理同时能够传输到专门处理该类数据的处理节点去。
处理节点
这个节点专门用于对特定类别数据的处理。由于从归类节点或是从请求节点过来的数据的类别有千百种,对于特定的数据应该处理的方式或者说应该使用的model也不同,对于一些较为复杂的项目,对于能参与到这个项目中的机器和人要求较高。以下举两个例子:
在医药领域,如一些医药方面的数据如影像数据,对于这类数据的处理一般需要至少具备一定医学知识的人员才可对这部分的数据进行处理计算得到合要求的数据。
AI和机器学习领域,这类别的数据训练和处理更多的需要是大学的科研设备或者是有编程经验的开发者们来当这个节点,因为需要使用特定的数据处理模型如KNN或是decision tree等,这些普通的CPU或是GPU贡献者已无法满足这类别数据的处理需求。
验证节点
这个节点对于从多个处理节点传输过来的对于相同数据的处理结果进行判断和筛选,一般只需要设备CPU贡献即可。一般会将同一份数据处理任务下达到多个数据处理节点,这样就可以在之后进行投票做判断哪个数据才是符合要求的。这样做虽然会造成数据冗余但是为最后结果的正确性得到了极高的保障同时配合荣誉机制等可以有效的解决数据造假问题。
(2)荣誉系统
由于这个平台将不再是通过志愿的形式进行分布式贡献算力,那么如何衡量每个人的算力贡献便是一个新的问题。积分制和成员的段位可以是一个较好的方法来衡量一个用户的贡献多少。
有一种可能是按照完成的任务单元的数量来进行积分,但是因为在未来可以在分布式算力平台上运行的项目可能目的或是运行方面的差异会很大,如当某一个数据包在某台机器需要大概一个小时的时间完成,而另外一种数据包在同台机器上运行则需要20倍的时间才能完成,这样便会造成同一个任务单元所得到的奖励相同但是工作量却不一样的事情发生,这样显然,用完成的任务数目来计量用户的贡献计算量是不可行的。同样的,用完成处理一个任务所需要用到的cpu时间来衡量贡献也是不可行的。既然通过一些特定的参数来概括一个用户所产生的贡献是不可行的,那么就需要使用一些算法来达到准确记录每个用户所实际完成的计算量以期达到公平准确的分发奖励。因此,对于贡献量的考量便应该从多个角度来参考。
(3)积分系统
比较可行的积分系统应该综合考量一下几个方面来对一个节点的贡献进行计算:
设备的性能指数
不同性能的设备在运行处理同一个数据包时所造成的资源使用以及成本不同,应当针对不同的设备进行一个标准化的性能测试来得到一个合理的性能分数来进行进行加权。
提交结果的正确次数
在一个分布式算力平台中需求方最在意的便是获得的结果的质量如何,如果设备得到的结果是不符合要求或是由恶意用户产生的无效结果那么对平台的名誉损失是巨大的。那么可以做的便是按照提交正确结果的次数来进行评级,正确的应该进行奖赏升级,而错误的结果则应该基于惩罚降级。
可能会出现的问题:
性能测试不准
尤其是当跨操作系统平台时,比如同一台计算机分别安装 Windows 版本客户端和 Linux 版本的客户端,做出的基准测试结果可能就相差比较大。
容易导致作弊
由于平台需要开放服务端和客户端的全部源代码,如果用户下载了客户端的源代码,自行编译的过程中修改或优化原有的基准测试代码,就可能导致他自制的客户端的基准测试成绩大幅偏高。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。