美文网首页磨链(mochain)社区分享
磨链(mochain)社区-4.6分享-IPFS打造自己的云盘

磨链(mochain)社区-4.6分享-IPFS打造自己的云盘

作者: 磨链社区 | 来源:发表于2018-04-06 19:44 被阅读5次

    群内分享

    1.比特币协议升级——分叉详解 

    2.我国银行业早已全面拥抱区块链,且初见成效!

    磨链(mochain)计划各学习小组动态

    磨链计划相关

    [ IPFS实战 ] 为自己打造专属的云盘

    作者-磨链社区-陈德君 

    前话 

    360云盘停止服务已经过去很久了,如今只剩下百度云盘在撑着;现在也是受到各种制约和限速。求人不如求己,云同步盘完全可以自己造一个嘛! 

    一、手动实战操作 

    ipfs 上传文件夹的命令非常简单: 

    Administrator@WIN-KA5MENO67R5 /home/c/downloads 

    ipfs add -r a 

    added QmUkvP2YX7Vmiz6WygSY1qdH36PebZz6deWfjqgRw8vdmp a/test 

    added QmSr8zVeVj8ji8LJBiQD6iTRFBTEWKSgD3641LLSASV6eC a 

    接下来可以通过hash直接访问刚才上传的文件夹,https://ipfs.io/ipfs/QmSr8zVeVj8ji8LJBiQD6iTRFBTEWKSgD3641LLSASV6eC,也可以本地用命令行访问: 

    Administrator@WIN-KA5MENO67R5 /home/c/downloads 

    ipfs ls QmSr8zVeVj8ji8LJBiQD6iTRFBTEWKSgD3641LLSASV6eC 

    QmUkvP2YX7Vmiz6WygSY1qdH36PebZz6deWfjqgRw8vdmp 20 test 

    接下来编辑一下 a/test 文件,重新同步一下: 

    Administrator@WIN-KA5MENO67R5 /home/c/downloads 

    echo helloworld_ > a/test 

    Administrator@WIN-KA5MENO67R5 /home/c/downloads 

    ipfs add -r a 

    added QmNXoqwNSswZ7aB4Z14R1q2GBYYbg1u5GFAWMXPMu79cqm a/test 

    added QmeUMtjhipkesrVdnzQFDrnmR8gHneqNLT7kwtNZXW3UGu a 

    此时hash发生了变化,这不利于频繁编辑的文件(夹)做同步,每次编辑都要访问新的hash,这里利用IPFS提供的IPNS功能做一个固定映射,以后就可以通过固定的节点ID地址来访问我们同步好的文件夹。执行如下命令: 

    Administrator@WIN-KA5MENO67R5 /home/c/downloads 

    ipfs name publish QmeUMtjhipkesrVdnzQFDrnmR8gHneqNLT7kwtNZXW3UGu 

    Published to QmWif8CrMUjzgrRAqPx3RRkoJ4dRQpv4DqeJm22EBrJ842: /ipfs/QmeUMtjhipkesrVdnzQFDrnmR8gHneqNLT7kwtNZXW3UGu 

    Administrator@WIN-KA5MENO67R5 /home/c/downloads 

    ipfs id -f '' 

    QmWif8CrMUjzgrRAqPx3RRkoJ4dRQpv4DqeJm22EBrJ842 

    查看本节点ID,然后我们通过IPNS访问试一下 

    Administrator@WIN-KA5MENO67R5 /home/c/downloads 

    ipfs cat /ipns/QmWif8CrMUjzgrRAqPx3RRkoJ4dRQpv4DqeJm22EBrJ842/test 

    helloworld_ 

    访问成功,基于以上简单的步骤,我们就具备了云同步盘的大体思路。当然,我们肯定不是这么简单的使用ipfs的同步命令,因为这种做法效率未免太低了!后面我们会使用ipfs files 系列的命令来完成操作。 

    二、自动化完成同步 

    手动操作毕竟太麻烦了,我们希望程序能在我们修改了文件之后,自动把文件同步到IPFS网络,并完成IPNS映射,这就可以避免人为操作失误导致数据遭受损失。接下来我们要借助一些工具完成自动同步,为了更通用一点,我们在Windows上演示这一过程。 

    1. 安装cygwin(主要是为了获得一个完好的Linux shell模拟环境) 

    下载地址: 64位系统: https://cygwin.com/setup-x86_64.exe 

    32位系统:https://cygwin.com/setup-x86.exe 

    双击安装即可,不介绍步骤了。 

    安装IPFS go语言版本 

    下载地址:https://dist.ipfs.io/#go-ipfs 

    解压后,在cygwin中,把ipfs.exe文件拷贝到 /usr/local/bin/ 目录下去 

    ls /usr/local/bin/ipfs.exe 

    /usr/local/bin/ipfs.exe* 

    ipfs init 

    这条命令必须执行 

    ipfs daemon 

    ipfs files 

    安装inotify,这个是用来实时感知文件夹操作的,有了inotify,我们具备类似百度云一样的实时同步功能了,安装方法: 

    cygwin 执行下面这条命令 依赖framework 3.5或以上版本 请自行安装好 

    git clone https://github.com/thekid/inotify-win.git 

    cd inotify-win 

    make 

    cp inotifywait.exe /usr/local/bin/ 

    测试一下 

    inotifywait -mr --format '%w,%f,%e' -e modify,delete,create,move "c:\Users" 

    ===> Monitoring c:\Users -r*.* for modify, delete, create, move 

    c:\Users\Administrator,ntuser.dat.LOG1,MODIFY 

    c:\Users\Administrator,NTUSER.DAT,MODIFY 

    c:\Users\Administrator,NTUSER.DAT,MODIFY 

    c:\Users\Administrator,NTUSER.DAT,MODIFY 

    c:\Users\Administrator\AppData\Local\Temp\2,XLog_20180224181156_2664.txt,MODIFY 

    这里要注意的是,毕竟inotify和ipfs都是Windows应用程序,即使有cygwin,我们也不能像在Linux上一样,任性的使用路径,还是得使用Windows的路径。 

    安装好了这些工具之后,接下来我们正式开始,复制以下脚本内容,并给脚本执行权限: 

    https://github.com/77409/cloud-storage 

    在这之前,先确保已经执行了 ipfs daemon ,再执行 ./inotify.sh,效果如下: 

    当然,考虑到现在IPNS还不是很给力(确切的说慢的堪比蜗牛),我们可以折中一下,访问的时候,自己先解析一下ipns,得到真正的hash地址之后再通过hash地址访问我们同步的文件夹,这样效率会快很多。 

    Administrator@WIN-KA5MENO67R5 /home/c/downloads/a 

    ipfs name resolve /ipns/$(ipfs id -f '') 

    /ipfs/QmeUMtjhipkesrVdnzQFDrnmR8gHneqNLT7kwtNZXW3UGu 

    Administrator@WIN-KA5MENO67R5 /home/c/downloads/a 

    ipfs ls QmeUMtjhipkesrVdnzQFDrnmR8gHneqNLT7kwtNZXW3UGu 

    QmNXoqwNSswZ7aB4Z14R1q2GBYYbg1u5GFAWMXPMu79cqm 20 test 

    三、后话 

    这只是一个非常粗糙的演示,可以看到所有的数据都没加密,直接明文存储在IPFS上的,IPFS本身又是开放的,所以隐私性毫无保证。大家使用的时候,请注意保护自己的隐私。

    磨链(mochain)学习小组清单

    PS:想加入学习小组,请加磨链组织者微信(jackyjin09)。欢迎每一位区块链技术爱好者加入磨链,一块琢磨区块链技术

    关于磨链和相关合作

    磨链”---取磨炼之意,旨在普及区块链技术,磨炼技术,更好投身区块链行业。有兴趣一块琢磨区块链技术,联系笔者微信(jackyjin09)。 

    磨链社区是一个纯粹的技术社区,欢迎相关技术合作,在不违反原则的前提下,积极参与合作。 

    你可以在这里找到我们: 

    磨链社区公众号: 

    1. 磨链社区:http://mochain.info 

    2. Github : https://github.com/mochain 

    3. Gitter 聊天: https://gitter.im/mochain 

    4. 知识星球: https://t.zsxq.com/M3BMVZN 

    5. 知乎:https://www.zhihu.com/people/mochain 

    (持续更新中)

    相关文章

      网友评论

        本文标题:磨链(mochain)社区-4.6分享-IPFS打造自己的云盘

        本文链接:https://www.haomeiwen.com/subject/pgbshftx.html