精华内容
下载资源
问答
  • ipfs

    2020-03-13 22:33:21
    ipfs目标ipfs 安装ipfs commandgo-ipfs-apiipfs test 目标 ipfs 安装 ipfs command go-ipfs-api ipfs test ipfs 安装 IPFS官网:https://ipfs.io/ 目前ipfs主要有俩个版本go-ipfs,js-ipfs; 本文使用的是go-ipfs...

    目标

    • ipfs 安装
    • ipfs command
    • go-ipfs-api
    • ipfs test

    ipfs 安装

    IPFS官网:https://ipfs.io/
    目前ipfs主要有俩个版本go-ipfsjs-ipfs
    本文使用的是go-ipfs
    1、通过源码自己编译安装
    2、直接从下载Releases下载对应版本

    //查看对应版本,当前最新版本为 v0.5.0-dev
    ipfs version
    

    ipfs command

    ipfs 基本命令
    ipfs bitswap 用来操作bitswap代理
    ipfs block 命令用来操作IPFS裸块
    ipfs bootstrap 命令用来显示或编辑引导节点列表
    ipfs config [] 命令族用来读取或写入ipfs的配置信息
    ipfs diag 命令生成诊断报告
    ipfs file 命令用来与表征unix文件系统的IPFS对象进行交互
    ipfs files 命令用来操作unixfs文件
    ipfs xxxx --help 查看各个命令的帮助,
    ipfs block --help
    ipfs files --help

    其他命令参考
    http://cw.hubwiz.com/card/c/ipfs/1/1/1/

    //初始化 ipfs
    ipfs init
    //启动 ipfs 本地节点 (启动成功后可以通过http://localhost:5001/webui)
    ipfs daemon
    //删除所有节点
    ipfs bootstrap rm all
    //加入私网,也可以通过设置环境变量 LIBP2P_FORCE_PNET=1 来强行启用私网配置,如果没有正确配置 swarm.key 会导致 daemon 启动失败
    //生成swarm.key 参考 https://www.jianshu.com/p/dfc61136324c
    ipfs bootstrap add <Address>
    //显示bitswap代理的诊断信息
    ipfs stats bitswap
    //上传文件
    ipfs add QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH
    //上传文件夹 -r=递归
    ipfs add -r <dir>
    //保存ipfs网络数据
    ipfs get QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH
    //查看内容
    ipfs cat QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH
    ipfs cat /ipfs/QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH
    https://ipfs.io/ipfs/QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200313220329761.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2R1eWF5dW4=,size_16,color_FFFFFF,t_70)
    

    go-ipfs-api

    https://github.com/ipfs/go-ipfs
    所有的api都有对应的命令行,源码中构造命令行的对象
    在这里插入图片描述
    Shell 实际是就是一个httpClient
    在这里插入图片描述
    AddAdd
    Add方法中的-r,在这里表示recursiveAdd方法中的-r,在这里表示recursive

    import (
    	"bytes"
    	"fmt"
    	ipfsapi "github.com/ipfs/go-ipfs-api"
    	"io/ioutil"
    	"sync"
    	"time"
    )
    
    const (
    	url = "127.0.0.1:5001"
    )
    
    var sh *ipfsapi.Shell
    var wg sync.WaitGroup
    
    //上传内容
    func UploadIPFS(str string) string {
    	//defer wg.Done()
    	sh = ipfsapi.NewShell(url)
    	hash, err := sh.Add(bytes.NewBufferString(str))
    	if err != nil {
    		fmt.Println("上传ipfs时错误:", err)
    	}
    	return hash
    }
    
    //上传文件
    func UploadIPFSFile(str string) string {
    	defer wg.Done()
    	sh = ipfsapi.NewShell(url)
    	hash, err := sh.AddDir(str)
    	if err != nil {
    		fmt.Println("上传ipfs时错误:", err)
    	}
    	fmt.Printf("hash:%v\n",hash)
    	return hash
    }
    
    
    //上传目录
    func UploadIPFSDir(str string) string {
    	defer wg.Done()
    	sh = ipfsapi.NewShell(url)
    	hash, err := sh.AddDir(str)
    	if err != nil {
    		fmt.Println("上传ipfs时错误:", err)
    	}
    	fmt.Printf("hash:%v\n",hash)
    	return hash
    }
    
    //下载文件
    func GetIPFS(hash string) (string,error) {
    	defer wg.Done()
    	downloadPath :="C:\\ipfsdownload\\"
    	sh = ipfsapi.NewShell(url)
    	err := sh.Get(hash,downloadPath)
    
    	if err != nil {
    		fmt.Println(err)
    	}
    	//path := fmt.Sprintf("",downloadPath,hash)
    	return "",err
    }
    
    
    //查看文件
    func LsIPFS()  {
    	sh = ipfsapi.NewShell(url)
    
    	ls ,err := sh.List("")
    	fmt.Print(ls)
    
    	if err != nil {
    		fmt.Println(err)
    	}
    }
    
    
    //查看文件
    func CatIPFS(hash string) string {
    	sh = ipfsapi.NewShell(url)
    
    	read, err := sh.Cat(hash)
    	sh.IsUp()
    	if err != nil {
    		fmt.Println(err)
    	}
    	body, err := ioutil.ReadAll(read)
    
    	return string(body)
    }
    

    ipfs test

    本地单机测试
    硬件环境
    在这里插入图片描述
    测试结果
    在这里插入图片描述
    win 生成文件方法,1000000kb
    fsutil file createnew F:\go\ipfs-api\testfile1M.txt 1000000

    测试方法

    func TestUploadIPFSFile(t *testing.T) {
    	startTime := time.Now()
    	for i := 0; i < 1; i++ {
    		wg.Add(1)
    		go UploadIPFSFile("F:\go\ipfs-api\testfile1M.txt");
    	}
    	wg.Wait()
    	endTime := time.Since(startTime)
    	fmt.Println("age: ", endTime)
    }
    
    展开全文
  • IPFS

    千次阅读 2018-01-15 15:14:10
    IPFS简介

    1.IPFS简介

    IPFS(InterPlanetary File System,缩写IPFS)中文译为星际文件系统,是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议。是一个底层的互联网协议,致力于替代
    HTTP,实现的是互联网上各个节点的文件读取、分享、交换。在IPFS网络中的节点将构成一个分布式文件系统。而 HTTP 协议依赖于
    Internet 主干网。 IPFS
    是点对点的超媒体协议,可以让网络更快、更安全、更开放。它是一个面向全球的、点对点的分布式版本文件系统,试图将所有具有相同文件系统的计算设备连接在一起。
    2. IPFS的一些工作原理

    (1) 该系统中每个文件都被进行 Hash 处理,生成数字指纹。
    (2) 查找文件时,IPFS 通过使用一个分布式哈希表,可以快速找到拥有数据的节点进行检索,并使用哈希验证其是否是正确的数据,找到想要的文件。
    (3) IPFS 通过网络删除重复具有相同哈希值的文件,通过计算是可以判断哪些文件是冗余重复的。并跟踪每个文件的版本历史记录。
    (4) 每个网络节点只存储它感兴趣的内容,以及一些索引信息,有助于弄清楚谁在存储什么。
    (5) 使用称为 IPNS(去中心化命名系统),每个文件都可以被协作命名为易读的名字。通过搜索,就能很容易地找到想要查看的文件。
    3.IPFS网络部署

    1 在官网下载合适的go-ipfs版本,官网地址为:https://ipfs.io/
    2.官网的安装教程为:https://ipfs.io/docs/install/
    3.ipfsa初始化命令

    cd go-ipfs
    mv ipfs /usr/local/bin/ipfs
    ipfs init

    4.ipfs命令官网:https://ipfs.io/docs/commands/

    展开全文
  • IPFS powers the Distributed Web A peer-to-peer hypermedia protocol to make the web faster, safer, and more open. TL;DR Get help and talk about ideas in the IPFS Forums Visit the IPFS website ...
  • go-ipfs What is IPFS? IPFS is a global, versioned, peer-to-peer filesystem. It combines good ideas from previous systems such as Git, BitTorrent, Kademlia, SFS, and the Web. It is like a ...
  • 4.1 IPFSIPFS初识

    2018-11-19 09:22:26
    IPFS  简介:IPFS(InterPlanetary File System)是一个点对点的分布式超媒体分发协议 IPFS工作原理  每个文件及其中的所有块都被赋予一个称为加密散列的唯一指纹 IPFS通过网络删除重复的具有相同哈希值的...
    1. IPFS 
      1. 简介:IPFS(InterPlanetary File System)是一个点对点的分布式超媒体分发协议
    2. IPFS工作原理 
      1. 每个文件及其中的所有块都被赋予一个称为加密散列的唯一指纹
      2. IPFS通过网络删除重复的具有相同哈希值的文件,通过计算可以判断哪些文件是冗余的、重复的。并跟踪每个文件的版本历史记录。
      3. 每个网络节点只存储他感兴趣的内容,以及一些索引信息,有助于弄清楚认证在存储什么。
      4. 查找文件时,通过文件的哈希啥就可以在网络查找到储存该文件的节点,找到想要的文件。
      5. 使用IPNS(去中心化的命名系统),每个文件都可以被命名为易读的名字。通过搜索就能很容易地找到想要查看的文件。
    3. HTTP与IPFS 
      1. HTTP:超文本传输协议,是世界统一的全局信息格式协议,为分发和显示信息提供了规范
      2. HTTP目前所存在的问题 
        1. HTTP效率低下,服务器成本昂贵–使用HTTP协议从一台计算机服务器上一次只能下载一个文件
        2. 历史文件被删除–网页的平均使用寿命为100天,大量的网站文件不能得以长期保存,有些重要文件因操作不当也可能在互联网中永远消失
        3. 中心化网络限制了机会–中心化网络容易被控制,是对互联网良性发展的威胁
        4. 网络应用太依赖骨干网–为保证数据可靠性,我们开发的应用程序太依赖大型的中心服务器,并通过大量备份来保证数据安全
    4. IPFS:IPFS是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议,在IPFS网络中,节点构成一个分布式文件系统。 
      1. 相对于HTTP,IPFS所拥有的特性 
        1. 基于内容寻址,而非基于域名寻址。文件(内容)具有存在的唯一性,一个文件加入了IPFS网络,将基于计算对内容赋予一个唯一加密的哈希值。
        2. 提供了文件的历史版本控制器(如git),并且让多节点使用保存不同版本的文件
        3. IPFS网络运行着一条区块链,即用来存储互联网文件的哈希值表,每次有网络访问,即在链查询该内容(文件)的地址。
        4. 通过使用代币(FileCoin)的激励作用,让各节点有动力去存储数据。FileCoin是一个由加密货币驱动的存储网络。矿工通过为网络提供开放的硬盘空间获得FileCoin,而用户则用FileCoin来支付在去中心化网络中储存加密文件的费用。

     

    展开全文
  • IPFS安装包

    2018-09-20 15:56:27
    IPFS最新0.4.17安装包,该包也可在官网上下载,在此上传提供给无法FQ的同学,以便大家学习
  • IPFS安装

    万次阅读 2018-11-07 14:29:20
    首先去ipfs官网下载一个包,如go-ipfs_v0.4.18_windows-amd64.zip。如果网址无法访问,可以从github下载,或者clone源码然后自己make。 安装 Windows 解压下载好的zip包,给ipfs.exe添加环境。栗子: path C:\Users\...

    下载

    首先去ipfs官网下载一个包,如go-ipfs_v0.4.18_windows-amd64.zip。如果网址无法访问,可以从github下载,或者clone源码然后自己make。

    安装

    Windows

    解压下载好的zip包,给ipfs.exe添加环境。栗子:

    path C:\Users\Administrator\Downloads\go-ipfs_v0.4.18_windows-amd64\go-ipfs
    

    Mac OS X 和 Linux

    tar -zxvf go-ipfs_v0.4.18_linux-arm64.tar.gz
    
    cd go-ipfs
    
    ./install.sh
    

    初始化本地节点

    ipfs init
    

    测试一下

    ipfs version
    

    输出如ipfs version 0.4.18

    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
    

    配置

    ipfs需要配置CORS来跨域资源共享,配置命令:

    ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'
    
    ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
    
    ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
    
    ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers '["Authorization"]'
    
    ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers '["Location"]'
    

    Windows环境需要对命令中的"进行转义:

    ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '[\"PUT\", \"GET\", \"POST\", \"OPTIONS\"]'
    
    ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '[\"*\"]'
    
    ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '[\"true\"]'
    
    ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers '[\"Authorization\"]'
    
    ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers '[\"Location\"]'
    

    启动

    ipfs daemon
    

    输出如:

    Initializing daemon…
    Swarm listening on /ip4/127.0.0.1/tcp/4001
    Swarm listening on /ip4/172.31.88.135/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

    即启动成功。

    Hello World

    新建一个名为hello的文件,文件内写一句Hello World :-)

    ipfs add hello
    

    输出:

     15 B / 15 B [================================================================================================] 100.00%added QmTbXdzuGRTEMpys5ofGCpfzCdUi66rZRFkVxtF5HwX8i2 hello
     15 B / 15 B [================================================================================================] 100.00%
    

    QmTbXdzuGRTEMpys5ofGCpfzCdUi66rZRFkVxtF5HwX8i2即改文件的hash。

    ipfs cat QmTbXdzuGRTEMpys5ofGCpfzCdUi66rZRFkVxtF5HwX8i2
    

    输出:Hello World :-)
    使用浏览器访问https://ipfs.io/ipfs/QmTbXdzuGRTEMpys5ofGCpfzCdUi66rZRFkVxtF5HwX8i2,响应Hello World :-)

    展开全文
  • IPFS go-ipfs 搭建

    2019-09-11 18:35:48
    ipfs 搭建1,系统环境2,使用go-ipfs搭建ipfs3, 1,系统环境 $ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 2,使用go-ipfs搭建ipfs go-ipfs 需要fq下载 go-ipfs 需要fq下载 安装ipfs $ ls ...
  • ipfs deployment

    2020-12-09 04:34:43
    <p>1) Create a shared ipfs key (there's one in keybase now called <code>ketherkey) 2) On deploy run <code>ipfs add thousandetherhomepage.github.io</code> -> this returns a hash 3) run <code>...
  • IPFS integration

    2020-12-25 23:28:20
    <div><p>Consider using IPFS to store block data or file storage requirements so all nodes do not need to store all data. IPFS could also be used to store other data related to Dapps and could be ...
  • 4.3 IPFSIPFS+区块链

    2018-11-19 09:22:41
    js-ipfs-api  如何使用js-ipfs-api 具体实现  安装create-react-app:sudo npm install -g create-react-app 创建React项目:create-react-app ipfs-http-demo 运行:cd ipfs-http-demo &amp;&amp...
  • ipfs, log

    2021-01-20 13:46:16
    1. ENV variables for ipfs log behaviours // Logging environment variables const ( // TODO these env names should be more general, IPFS is not the only project to // use go-log envLogging = IPFS_...
  • IPFS简介

    2018-10-29 15:56:30
    IPFS IPFS的的”宏伟”目标是取代HTTP, 那么先来看看IPFS是如何工作的? IPFS为每一个文件分配一个独一无二的哈希值(文件指纹: 根据文件的内容进行创建), 即使是两个文件内容只有1个比特的不相同, 其哈希值也是不...
  • swarm.key 用来做私链认证的密钥,最终要放在 /ipfs/data 目录下 go get github.com/Kubuxu/go-ipfs-swarm-key-gen cd $GOPATH go build ./ipfs-swarm-key-gen > swarm.key 查下生成的 swarm.key 内容: /key/swarm/...
  • <div><p>We have monitoring now, which will ...t restart a few IPFS daemons every half an hour. <p>License: MIT Signed-off-by: Lars Gierth larsg.org</p><p>该提问来源于开源项目:ipfs/infra</p></div>
  • India IPFS

    2021-01-02 12:30:24
    m currently in Delhi and would be interested in getting an IPFS community going. if anyone is interested in joining. I could also use some help in organizing it and getting a place to host it.</p><p>...
  • <p>..exposing a subset of IPFS APIs as <code>window.ipfs</code> on every webpage ✨ <p><strong>tl;dr</strong> If we have it, websites could detect that <code>window.ipfs</code> already exists and ...
  • IPFS 知识普及

    2021-01-20 13:46:36
    有会说,投资房产、股市、区块链、比特币等,但也有部分人会说是 IPFS,有些人会疑问?什么是 IPFS?那么下面带您了解下什么是IPFS。 随着科学的发展与进步,互联网成了人类不可缺少的一部分,但人类对于互联网的...
  • 本系列文章是针对 ...【IPFS应用开发】IPFS原生应用 IPFS原生DAPP一个基于IPFS的原生DappDapp (仅数据)原生Dapp原生Dapp的缺点 一个基于IPFS的原生Dapp 看似一个普通的网站:但他...
  • 安装  IPFS获取  https://docs.ipfs.io/introduction/install/ 安装  sudo tar -zxvf go-ipfs_v0.4.17_freebsd-amd64.tar.gz -C /usr... sudo ln -s /usr/local/bin/go-ipfs/ipfs /usr/bin/ipfs ...
  • ipfs,IpfsNode initialization

    2020-02-28 10:50:41
    ipfs daemon Ipfs daemon will initialize all modules using uber.fx dependency injection. Before invoking NewNode(), we have to create the FSRepo at first. repo, err := fsrepo.Open(cctx.ConfigRoot) .....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,398
精华内容 3,759
关键字:

IPFS