EOS代码分析3 EOS存储机制的IPFS分布式文件系统

EOS使用IPFS分布式文件系统作为底层存储。IPFS是一种内容可寻址、点对点、通过http协议传输的分布式文件系统。IPFS采用content-addressable寻址技术,即通过文件内容进行检索而不是通过文件的网络地址。简单来说,就是对文件内容进行hash运算,将hash值作为文件名保存在本地数据库中,所以,只要文件内容不变,则文件名也保持不变。
运行IPFS的节点,既是客户端又是服务器。客户端通过发送文件名到服务器,请求下载文件,服务器会根据文件名到数据库中查找对应的文件,查找成功后将文件发送给客户端,当文件下载完成后,客户端通过对文件内容进行hash运算,将hash值和文件名作比较就可以确定文件的完整性。
由于文件是在远程节点上保存,所以IPFS本身不能保证文件内容始终是可访问的,例如,文件被删除或者远程节点拒绝访问等等。所以,需要有一套完善的激励机制鼓励服务器节点提供稳定高效的存储服务。例如,在Filecoin系统中,用户需要为每次上传和下载文件支付一定的费用给服务器节点。但是,这种付费模式会引起一些用户的排斥,毕竟看着钱从腰包掏出来,而且一旦用户忘记续费,文件可能有被删除的风险。
区块生产者如何盈利
IPFS本身不能保证文件内容始终是可访问的,例如,文件被删除或者远程节点拒绝访问等等。所以,需要有一套完善的激励机制鼓励区块生产者提供稳定高效的存储服务。
EOS存储的商业模式有别于一般的云存储提供商的按时按量收费模式,例如Amazon S3。持有TOK的用户可以免费使用EOS存储服务,当用户上传文件后,所持有的TOK会通过智能合约锁定在区块链上,这些TOK不能交易或者被重复锁定。当用户删除文件后,TOK会自动释放,然后用户可以将TOK转卖或者进行下一次锁定。如果TOK的价格保持不变,则用户相当于免费使用了EOS存储服务。其实,TOK每年会增发5%,发给区块生产者作为贡献奖励,所以用户持有的TOK会不断贬值(假设TOK价格不变),相当于用户把持有TOK产生的利息作为服务费,付给区块生产者。

点击关注

原文地址:https://blog.51cto.com/13878196/2381632

时间: 2024-08-29 08:53:24

EOS代码分析3 EOS存储机制的IPFS分布式文件系统的相关文章

比特币代码分析11 比特币存储机制

比特币存储机制 比特币存储系统由两部分组成: kv 数据库(levelDB)索引和普通数据文件.普通文件用于存储区块链数据,kv 数据库用于存储区块链元数据.用于存储区块链数据的普通文件以 blk00000.dat , blk00001.dat 文件名格式组成.其中 index 目录存储用于存储区块元数据.普通区块数据文件 为了快速检索区块数据,每个文件的大小是128 M Bytes.区块里的数据(区块头和区块里的所有交易)都会序列成字节码的形式写入 dat 文件中.在序列化的过程中,如果检测到

java-通过 HashMap、HashSet 的源码分析其 Hash 存储机制

通过 HashMap.HashSet 的源码分析其 Hash 存储机制 集合和引用 就像引用类型的数组一样,当我们把 Java 对象放入数组之时,并非真正的把 Java 对象放入数组中.仅仅是把对象的引用放入数组中,每一个数组元素都是一个引用变量. 实际上,HashSet 和 HashMap 之间有非常多相似之处,对于 HashSet 而言.系统採用 Hash 算法决定集合元素的存储位置,这样能够保证能高速存.取集合元素:对于 HashMap 而言.系统 key-value 当成一个总体进行处理

java-通过 HashMap、HashSet 的源代码分析其 Hash 存储机制

通过 HashMap.HashSet 的源代码分析其 Hash 存储机制 集合和引用 就像引用类型的数组一样,当我们把 Java 对象放入数组之时,并不是真正的把 Java 对象放入数组中,只是把对象的引用放入数组中,每个数组元素都是一个引用变量. 实际上,HashSet 和 HashMap 之间有很多相似之处,对于 HashSet 而言,系统采用 Hash 算法决定集合元素的存储位置,这样可以保证能快速存.取集合元素:对于 HashMap 而言,系统 key-value 当成一个整体进行处理,

架构设计:系统存储(30)——分布式文件系统Ceph(RADOS结构)

=============================== (接上文<架构设计:系统存储(29)--分布式文件系统Ceph(管理)>) 4. Ceph顶层架构总览 此图来源于官网,很多网络上的资料也引用了这张图,但是并没有讲清楚出现在图中的和没有出现在图中的(但同样重要的)几个名词到底是什么含义,例如,RADOS.LIBRADOS.RADOSGW.RDB.CEPH FS.MON.OSD.MDS等等.读者要搞清楚Ceph的顶层架构,就首先要搞清楚这些名词代表的技术意义,以及这些技术的在Cep

架构设计:系统存储(28)——分布式文件系统Ceph(挂载)

(接上文<架构设计:系统存储(27)--分布式文件系统Ceph(安装)>) 3. 连接到Ceph系统 3-1. 连接客户端 完毕Ceph文件系统的创建过程后.就能够让客户端连接过去. Ceph支持两种客户端挂载方式:使用Linux内核支持的mount命令进行的挂载方式.使用用户空间文件系统FUSE(Filesystem in Userspace)进行的网络磁盘挂载方式. 这两种挂载方式的本质差别是,前者须要有Linux内核的支持.而后者仅仅是工作在Linux上的一个应用软件. 3-1-1. 使

HTML5分析实战Web存储机制(Web Storage)

Web Storage它是Key-Value在持久性数据存储的形式.Web Storage为了克服cookie把所引起的一些限制.当数据需要严格格控制client准时,没有必要不断地发回数据server. Web Storage有两个目的:提供一种存储会话数据的路径;提供存储大量能够跨会话存在的数据的机制. 最初的Web Storage规范包括了两个对象的定义:sessionStorage对象和globalStorage对象.这两个对象在支持的浏览器中都是以window对象属性的形式存在.支持s

架构设计:系统存储(27)——分布式文件系统Ceph(安装)

1. 概述 从本篇文章开始介绍一款现在非常火的分布式文件系统Ceph,包括这款文件系统的安装.基本使用场景.常用管理命令和重要工作原理.特别是讨论了PaxOS算法的基本理后,就更容易理解Ceph分布式文件系统中各种角色的工作原理. 2. Ceph的安装部署 本文将介绍Ceph分布式文件系统如何在CentOS 7.X版本上一步一步完成安装,使读者在阅读过程中了解Ceph有哪些重要的子系统/工作模块,以及它们是如何关联工作的.请注意Ceph在Ubuntu等Linux操作系统上的安装过程和注意点大致相

EOS代码分析1 理解EOS共识机制BFT-DPoS

EOS 最新的白皮书中已经将共识机制从 DPoS 升级为了 BFT-DPoS(Byzantine Fault Tolerance - Deligated Proof of Stake,带有拜占庭容错的委托股权证明). 传统 DPoSEOS 项目刚刚发布的时候的共识机制是 DPoS(Deligated Proof of Stake,委托股权证明),类似于 Bitshares 和 Steem,这种共识机制采用随机的见证人出块顺序,出块速度为 3 秒,交易不可逆需要45秒.为什么需要 45 秒呢?因为

EOS代码分析5 接收网络信息

网络部分:Main(){app().set_version(eosio::nodeos::config::version);app().register_plugin<history_plugin>(); //通过register_plugin()函数将插件注册到application的plugins插件集合中,plugins是一个map容器auto root = fc::app_path(); //设定数据和配置路径app().set_default_data_dir(root / &quo