其他

IPFS 区块链实战案例|通过 IPFS 发布自己的电台播客

2018-03-15 davidfnck 经管之家


混迹 Steemit.com 一段时间,除了写文章,还发现了 DSound ,恰好我和 九升 一直在做的播客 朋友的捎带,那就试着发布上去,结果在发布的时候就接触到了 IPFS ,因为这个传起来更快更稳,那就学起来吧,结果越学越上瘾。


如果你愿意和我分享你的想法,非常欢迎,我的微信号:fromfriend020,加我时简单介绍一下自己,并注明「站对未来区块链学院」。同时我会把你拉入微信群「站对未来区块链学院」。

IPFS 是什么?


用维基百科的话就是:


IPFS(InterPlanetary File System)IPFS是一个对等的分布式文件系统,它尝试为所有计算设备连接同一个文件系统。在某些方面,IPFS类似于万维网,但它也可以被视作一个独立的BitTorrent群、在同一个Git仓库中交换对象。换种说法,IPFS提供了一个高吞吐量、按内容寻址的块存储模型,及与内容相关超链接。这形成了一个广义的Merkle有向无环图(DAG)。IPFS结合了分布式散列表、鼓励块交换和一个自我认证的命名空间。IPFS没有单点故障,并且节点不需要相互信任。分布式内容传递可以节约带宽,和防止HTTP方案可能遇到的DDoS攻击。


该文件系统可以通过多种方式访问,包括FUSE与HTTP。将本地文件添加到IPFS文件系统可使其面向全世界可用。文件表示基于其哈希,因此有利于缓存。文件的分发采用一个基于BitTorrent的协议。其他查看内容的用户也有助于将内容提供给网络上的其他人。IPFS有一个称为IPNS的名称服务,它是一个基于PKI的全局命名空间,用于构筑信任链,这与其他NS兼容,并可以映射DNS、.onion、.bit等到IPNS。


我想讲的通俗一点,用过种子下载的朋友,应该都感叹过下载的速度之快,快的原因就是,不止一个人给你提供资源。


IPFS(InterPlanetary File System,星际文件系统)就是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。


  • 内容可寻址:通过文件内容生成唯一哈希值来标识文件,而不是通过文件保存位置来标识。相同内容的文件在系统中只会存在一份,节约存储空间

  • 版本化:可追溯文件修改历史

  • 点对点超媒体:P2P 保存各种各样类型的数据


可以把 IPFS 想象成所有文件数据是在同一个 BitTorrent 群并且通过同一个 Git 仓库存取。


总之,它集一些成功系统(分布式哈希表、BitTorrent、Git、自认证文件系统)的优势于一身,是一套很厉害的文件存取系统。


IPFS 哪里用得到?


比如我的播客,我希望全世界的人收听,现在我是把它存在七牛云上,而 IPFS 能做的比我们想象的还要多。正如IPFS 的发明者 Juan Benet(juan@benet.ai)在 IPFS 技术白皮书中假设了一些使用场景:


  • 在 /ipfs 和 /ipns 下挂载全球文件系统

  • 挂载的个人同步文件夹,拥有版本功能

  • 文件加密,数据共享系统

  • 可用于所有软件的带版本的包管理器

  • 可以作为虚机的根文件系统

  • 可以作为数据库:应用可以直接操作 Merkle DAG,拥有 IPFS 提供的版本化、缓存以及分布式特性

  • 可以做(加密)通讯平台

  • 各种类型的 CDN

  • 永久的 Web,不存在不能访问的链接


IPFS 如何使用?


我是在 Mac 系统操作的。


下载安装包

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


下载后,执行以下操作:


tar xvfz go-ipfs_v0.4.13_darwin-amd64.tar.gz解压文件

将已解压的文件夹中的ipfs文件移动到/usr/local/bin/文件夹中。

创建 IPFS 节点


为了运行项目,我们需要通过ipfs init在本地计算机建立一个IPFS节点。


修改默认存储空间


刚安装的时候就遇到的一个问题就是,系统默认我提供给 IPFS 网络 10 个G 的空间,我们如果不希望被占用这么多的话,可以自己调整。

修改下图的StorageMAX,比如我改成了 1 G。



vim 编辑器的操作Tips:输入 i 可以开始编辑,编译完毕后按 esc 键,再输入:,再次输入 wq 保存退出即可。


查看当前节点


QmQCR758o4qTyMPS1tAJtWLoiDQk2y7DCHKTU1LEHYAvR4为你的节点ID每个节点都会有一个唯一的ID


启动节点服务器


Ctrl + c 可以停止节点服务器。


验证服务


启动节点服务器后,新开一个 Terminal, 输入以下命令:


网页端访问


浏览器访问: http://localhost:5001/webui 进入管理界面,查看系统状态、管理文件以及配置系统。



至此,我们的 IPFS 节点已经部署好了,与全球的人连接在一起了。



发布内容


以上传电台第六期的电台内容为例,先切换到对应文件夹,找到文件。

查看 IPFS 相关命令

 

我们可以看到添加文件,就是ipfs add <path> Add a file to IPFS



当执行完ipfs add file这个命令以后,会将006_happy_new_year_20170125.mp3添加到ipfs当前的节点中,并且会对此文件生成一个唯一的hash QmSssQStqbA6EieuLAHtmqH339KV8nHYwgUEDUrc2ct6Z9,如果想查看本地ipfs节点的数据,可以通过ipfs cat QmSssQStqbA6EieuLAHtmqH339KV8nHYwgUEDUrc2ct6Z9 进行查看。


如果立马使用 https://ipfs.io/ipfs/QmSssQStqbA6EieuLAHtmqH339KV8nHYwgUEDUrc2ct6Z9 访问的话,是无法访问的,因为我们没有发不到 IPFS 公网里面。


同步 IPFS 节点


ipfs daemon


稍等一会儿,你再查看就可以了。


发布到 Dsound



按照要求提交上传即即可。


如何掌握区块链技术


区块链创新的推动以及数字经济的蓬勃发展离不开人才的培育,而CDA数据分析师作为行业的领头羊,紧密结合当前区块链发展实际与人才需求结构,重磅推出CDA区块链学院。


扫描二维码,进入 CDA 区块链学院,学习区块链知识,选择很多,站对未来。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存