个性定制网站有哪些,网站列表设计,昆明网架公司,优秀服装网站设计一、创建ipfs节点 通过ipfs init在本地计算机建立一个IPFS节点 本文有些命令已经执行过了#xff0c;就没有重新初始化。部分图片拷贝自先前文档#xff0c;具体信息应以实物为准
ipfs init initializing IPFS node at /Users/CHY/.ipfs generating 2048-bit RSA keypair.…一、创建ipfs节点 通过ipfs init在本地计算机建立一个IPFS节点 本文有些命令已经执行过了就没有重新初始化。部分图片拷贝自先前文档具体信息应以实物为准
ipfs init initializing IPFS node at /Users/CHY/.ipfs generating 2048-bit RSA keypair...done peer identity: QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP to get started, enter:ipfs cat /ipfs/QmVLDAhCY3X9P2uRudKAryuQFPM5zqA3Yij1dY8FpGbL7T/readmecd /.ipfscd ~/.ipfscd /.ipfs ls blocks datastore version config keystore $ open ./
执行ipfs init初始化节点之后会生成一个.ipfs的文件夹用于存储相关的信息比如节点ID、环境配置信息、数据存储等如果使用的是MAC电脑使用shiftcommand. 可以查看隐藏文件 通过ipfs id查看创建的节点id的信息
二、启动节点服务器
使用命令ipfs daemon启动节点服务器一旦启动当前界面会处于监听状态需要新建标签页 三、简单验证 使用如下命令进行简单测试 ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme 浏览器输入下面的网址http://localhost:5001/webui会看到一个漂亮的UI界面
四、相关问题详解
1. ipfs的存储位置
IPFS的数据存储个人用户的数据存储在自己个人的硬盘上也就是本地硬盘存储。存储后会在IPFS网络广播“我存储哈希为Qm...的数据了”因为哈希的唯一性如果数据的分割方法一定那么同样的数据在网络存储中只会有一份也就是只在本地节点存储。当有用户检索该数据时检索数据的hash值就是key节点会首先在DHT表key/value存储中查询有无该key如果没有到与key异或距离最近的K桶里查找如果该K桶中的某个节点有key对应的value则返回否则返回它认为存有value值的最可能节点以此递归最终找到key对应的value。然后请求节点与value也就是节点ID建立连接并请求数据同时将该key/value键值对存储到自己的DHT表中。请求节点将接收到的数据存储到ipfs缓存中数据检索成功。该请求节点在缓存数据有效期内同样可以为ipfs网络提供该数据作为原始数据的备份。
2. ipfs的冗余备份措施
IPFS采用了Erasure coding的冗余备份措施集群中有n份原始数据和m份校验数据即共有nm份备份数据。
3. 修改节点默认存储空间
ipfs节点默认存储空间为10个G
方式一可打开终端执行下面的命令 export EDITOR/usr/bin/vim ipfs config edit 找到下图使用红色的框标定的内容修改自己想要的大小PS输入i可以开始编辑编译完毕后按esc键再输入:再次输入wq保存并且退出
方式二 采用web界面进行修改
修改对应的信息然后点击保存 ipfs的节点掉线对于整个组织的影响
IPFS的容错机制会保证数据被复制了足够数量并存放在不同的地区即使某一个地方的数据由于不可抗力的因素被完全销毁通过其他地区的备份也可以实现完整恢复数据极大的保证了存储在IPFS上的数据的安全性采用MerkleDAG因为它具有以下特点1.内容可寻址所有内容都是被多重hash校验和来唯一识别的包括links。2.无法篡改所有的内容都用它的校验和来验证。如果数据被篡改或损坏IPFS会检测到。3.重复数据删除重复内容并只存储一次。 在IPFS网络中数据的存储可能是有重复的。重复的数量与用户上传的时候采用的IPFS进行分块的方法有关。之前提到过数据在IPFS存储是以块的形式存储的。在ipfs提供的数据分割方式有很多种。在ipfs源码种core/commands/add.go代码中描述了切割的方法 默认模式块的大小是256kb也就是256 * 1024 bytes对应的size262144。命令不需要加参数即ipfs add 文件。 指定块大小模式。命令是ipfs add --chunkersize-1000。其中后边的1000可以是任意小于262144的数。 rabin可变块大小切割模式。命令是ipfs add --chunkerrabin-[min]-[avg]-[max] 文件。其中minavgmax的值分别值最小块大小平均块大小最大块大小的意思值在小于262144自行设定。 The chunker option, -s, specifies the chunking strategy that dictates how to break files into blocks. Blocks with same content can be deduplicated. The default is a fixed block size of 256 * 1024 bytes, size-262144. Alternatively, you can use the rabin chunker for content defined chunking by specifying rabin-[min]-[avg]-[max] (where min/avg/max refer to the resulting chunk sizes). Using other chunking strategies will produce different hashes for the same file. ipfs add ipfs-logo.svg ipfs add --chunkersize-2048 ipfs-logo.svg ipfs add --chunkerrabin-512-1024-2048 ipfs-logo.svg
同一个文件存储在ipfs中因为存储是选用的文件切割方法不同返回的hash值却不一样。所以说IPFS的块存储没有重复的而IPFS块文件拼凑的数据可能有重复的。也就是说同一个文件可以根据不同的文件切割方法在IPFS网络中重复的存储多次。 如上图测试了一个6.8K的文件存储存储设定1024B为一个分片分片完后可以查到这个文件分为了7个分片。
备份是如何实现的呢假如一部非常火的电影大家都习惯性的将该电影存储到自己的电脑E盘或其它硬盘存储中全世界如果有1亿的人存储了这个电影这不是对存储的极大浪费吗在ipfs网络中该电影只被存储在一个节点中当有用户需要读取的时候会产生新的备份。就是谁使用数据这个数据就会复制到谁那里。当一个节点加入IPFS网络时这个节点会提供一部分硬盘空间缺省为10G可以配置给整个网络使用。那么通常情况下在存储文件的时候您自己提供的这部分硬盘空间总是最快的因为不需要跨网。当存储完毕后网络上任意节点都可以访问这个文件。当另一个节点访问的时候那个节点往往会复制一份您的数据到他的缓存空间。这样整个网络中就有两份拷贝了。试想当有很多人对这个文件感兴趣那么网络中的拷贝数会越来越多。需要提出的是拷贝一般都是缓存也就是说是临时存储的。时间一长就被自动删除掉了。这种临时缓存非常好地解决了分布式数据分发的问题比如说一个社会热点往往呈现出预热期、火热期和退潮期等阶段利用IPFS数据的分布和拷贝数与这些时期是完全匹配的。访问的人越多拷贝数就越多但热度下来了拷贝数就会降下来从而自然地实现空间利用率和存取效率的平衡。如果想让这个文件永久存储那么必须将其设为固定的样式即存储在硬盘中。
4. ipfs的使用
上传txt文件 上传其他格式的文件
pdfdocxjpgmp4mp3
注意事项
对于下载的文件需要进行格式的准换否则不可用。这个转化的方式可以手工进行转化也可以使用命令的方式。也可以指定下载的文件名称,加上-o 文件名,也可以加上-a : 压缩成.tar格式,-C 压缩成.gz格
pdf ipfs get QmZJBKrLFPvn8zEatZsxSJTtJkCFm4YeMwChDLRPPPerZ6 -o 1.pdf
使用命令open hh.pdf 打开pdf文件此处open的用法是Linux自带功能和ipfs无关
docx mp3
jpg mp4 上传整个文件夹
此处上传的整个文件夹里面的文件和先前测试使用的是相同的文件所以他们的哈希值是一致的这个就是ipfs要求的避免相同的文件被用户上传多次。 查看上传的文件中包含的子文件 查看被引用的hash
被引用的hash概念:一般指文件夹下面有多少个文件,这个文件夹的名称就被引用多少次,hash就是应用该文件名的文件hash 如果上传的是一个文件夹那么将文件夹拉回到本地里面的文件是正常的存储格式无需进行格式转化 进入web可视化界面将哈希序列输入到搜索框进行文件的查询如果文件不支持预览需要点击downloading进行下载查看
发现的问题
使用root用户和普通用户使用ipfs id查看自己的节点信息还不一样。
而且这两个节点之间还不能互相交换文件不隶属于同一个集群。 参考链接
使用ipfs完成一个图片上传的案例IPFS分布式文件存储IPFS