IPFS 学习笔记

1.IPFS 简介

IPFS(InterPlanetary File System)是一个点对点的分布式超媒体分发协议,它整合了过去几年最好的分布式系统思路,为所有人提供全球统一的可寻址空间,包括Git、自证明文件系统SFS、BitTorrent和DHT,同时也被认为是最有可能取代HTTP的新一代互联网协议。

IPFS用基于内容的寻址替代传统的基于域名的寻址,用户不需要关心服务器的位置,不用考虑文件存储的名字和路径。我们将一个文件放到IPFS节点中,将会得到基于其内容计算出的唯一加密哈希值。哈希值直接反映文件的内容,哪怕只修改1比特,哈希值也会完全不同。当IPFS被请求一个文件哈希时,它会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据。

IPFS是通用目的的基础架构,基本没有存储上的限制。大文件会被切分成小的分块,下载的时候可以从多个服务器同时获取。IPFS的网络是不固定的、细粒度的、分布式的网络,可以很好的适应内容分发网络的要求。这样的设计可以很好的共享各类数据,包括图像、视频流、分布式数据库、整个操作系统、模块链、8英寸软盘的备份,还有静态网站。

IPFS提供了一个友好的WEB访问接口,用户可通过http://ipfs.io/hash 获取IPFS网络中的内容,也许在不久的将来,IPFS协议将会彻底替代传统的HTTP协议。

2.IPFS 安装

2.1 linux链接
 https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_freebsd-amd64.tar.gz
 https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz
2.2 mac
https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_darwin-amd64.tar.gz
2.3 下载


wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz

2.4 解压 、安装
tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz
cd go-ipfs
./install.sh
2.5 初始化
ipfs init
2.6 启动
ipfs daemon
2.7 跨域配置
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
2.8 后台挂起
nohup ipfs daemon &
2.9 WEBUI 访问
localhost:5001/webui
3.0 各语言调用sdk 地址
Go  https://github.com/ipfs/go-ipfs-api 
Java    https://github.com/ipfs/java-ipfs-api   
JavaScript  https://github.com/ipfs/js-ipfs-api 
Python  https://github.com/ipfs/py-ipfs-api 
Scala   https://github.com/ipfs/scala-ipfs-api  
Haskell https://github.com/davidar/hs-ipfs-api  
Swift   https://github.com/ipfs/swift-ipfs-api  
CommonLisp  https://github.com/WeMeetAgain/cl-ipfs-api  
Rust    https://github.com/ferristseng/rust-ipfs-api    
https://github.com/gkbrk/rust-ipfs-api  
https://github.com/rmnoff/rust-ipfs-api 
https://github.com/rschulman/rust-ipfs-api  
Ruby    https://github.com/Fryie/ipfs-ruby  
Mac Automator   https://github.com/NeoTeo/ipfs-osx-service  
PHP https://github.com/cloutier/php-ipfs-api    
https://github.com/digitalkaoz/php-ipfs-api 
C#  https://github.com/TrekDev/net-ipfs-api 
https://github.com/richardschneider/net-ipfs-api    
C++ https://github.com/vasild/cpp-ipfs-api  
Julia   contact: @rened 0%
Lua contact: @seclorum  0%
Erlang  https://github.com/hendry19901990/erlang-ipfs-api   
Objective C !   0%

3.结束

后期会整理上线 Ethereum、Hyperledger fabric、ipfs、Kubernetes等应用成开发教程,以及go语言源码分析教程

你可能感兴趣的:(IPFS)