IPFS介绍及安装

IPFS安装

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

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

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

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

1、下载ipfs压缩包
$ wget https://dist.ipfs.io/go-ipfs/v0.4.13/go-ipfs_v0.4.13_linux-amd64.tar.gz
2.解压
tar -zxvf go-ipfs_v0.4.13_linux-amd64.tar.gz
3、移动文件
tianlei@tianlei:~$ cd go-ipfs/
tianlei@tianlei:~/go-ipfs$ ll
总用量 41076
drwxrwxr-x  2 tianlei tianlei     4096 2月   8 12:54 ./
drwxr-xr-x 69 tianlei tianlei     4096 2月   8 12:54 ../
-rw-------  1 tianlei tianlei        0 11月 17 14:24 build-log
-rwx------  1 tianlei tianlei      818 11月 17 14:25 install.sh*
-rwx------  1 tianlei tianlei 42037864 11月 17 14:25 ipfs*
-rw-------  1 tianlei tianlei     1083 11月 17 14:25 LICENSE
-rw-------  1 tianlei tianlei      465 11月 17 14:25 README.md
tianlei@tianlei:~/go-ipfs$ sudo mv ipfs /usr/local/bin/ipfs
4、创建ipfs节点

为了运行项目,我们需要通过ipfs init在本地计算机建立一个IPFS节点。
tianlei@tianlei:~$ ipfs init
initializing IPFS node at /home/tianlei/.ipfs
generating 2048-bit RSA keypair...done
peer identity: QmWkj9HDMMydjjvzjEqcdtVkCgCGyGdShxRvbiaF4G769J
to get started, enter:

    ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

tianlei@tianlei:~$ cd ~/.ipfs/
tianlei@tianlei:~/.ipfs$ ls
blocks  config  datastore  datastore_spec  keystore  version

5. 修改节点默认存储空间
nano config
6.查看节点id
ipfs id
{
    "ID": "QmWkj9HDMMydjjvzjEqcdtVkCgCGyGdShxRvbiaF4G769J",
    "PublicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCoWPqpWmO4tHrzaIQW1WxNJZ7JxOKXYuRwdIEdmxdR76xJQNQCx0uDkMiqW7NbapTYuK7waCXgjF6dF3MSAePE1JyTJMfGIsGDkARwuAC0/9Ij/Q3eRT66B+6qEXvi7QqgsC8wVnCigxCQsy0TyFBRbAO5pAyQ+xRZiqmK6RrGSxZrjymwBcl0q3W5VPfQ6uuMRBUlU8YtULqMF09WzuzSuyOvf64Co9yRkSBUAhUfbkhaAt2ZlqyJZuq3JILxp8yKB8vwF4dYsc8FMm1Uos4AVcS5tZiVBDNgK0C5yKK5+nnIS9rRU26FSRfSs19jQAL5hsXbkbLfQVoL6B36Qj1JAgMBAAE=",
    "Addresses": null,
    "AgentVersion": "go-ipfs/0.4.13/",
    "ProtocolVersion": "ipfs/0.1.0"
}
每个节点都会有一个唯一的ID
7、跨域资源共享CORS配置
为了开发方便,我们还需要对跨域资源共享( CORS )进行配置
tianlei@tianlei:~/.ipfs$ ^C
tianlei@tianlei:~/.ipfs$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'
tianlei@tianlei:~/.ipfs$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'

8.启动服务
tianlei@tianlei:~/.ipfs$ ipfs daemon
Initializing daemon...
Adjusting current ulimit to 2048...
Successfully raised file descriptor limit to 2048.
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/192.168.112.185/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
Swarm listening on /p2p-circuit/ipfs/QmWkj9HDMMydjjvzjEqcdtVkCgCGyGdShxRvbiaF4G769J
Swarm announcing /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip4/192.168.112.185/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready
9.新建终端执行下面的命令
tianlei@tianlei:~$ ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
Hello and Welcome to IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗  ███████╗
██║██╔═══╝ ██╔══╝  ╚════██║
██║██║     ██║     ███████║
╚═╝╚═╝     ╚═╝     ╚══════╝

If you're seeing this, you have successfully installed
IPFS and are now interfacing with the ipfs merkledag!

 -------------------------------------------------------
| Warning:                                              |
|   This is alpha software. Use at your own discretion! |
|   Much is missing or lacking polish. There are bugs.  |
|   Not yet secure. Read the security notes for more.   |
 -------------------------------------------------------

Check out some of the other files in this directory:

  ./about
  ./help
  ./quick-start     <-- usage examples
  ./readme          <-- this file
  ./security-notes

10.浏览器输入下面的网址
http://localhost:5001/webui
参考:http://www.8btc.com/ipfs-blockchain

你可能感兴趣的:(区块链,区块链,区块链)