IPFS安装编译

安装

参考:

如果没有Go环境,首先需要安装Go环境:

brew install go

配置Go环境变量:
执行sudo vi /etc/profile加入

#go config
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:$GOPATH/bin

执行wq!强制保存退出。

下载并编译IPFS

go get -u -d github.com/ipfs/go-ipfs

cd $GOPATH/src/github.com/ipfs/go-ipfs
make install

❌出现error

ERROR: from shell.Get(): Post https://ipfs.io/api/v0/get?arg=QmaPbCnUMBohSGo3KnxEa2bHqyJVVeEEcwtqJAYxerieBo&encoding=json&stream-channels=true: dial tcp 173.252.102.16:443: getsockopt: operation timed out

install from source #4851

⚠️:如果gx (用于依赖关系管理)或其任何依赖关系崩溃,go get则此进程可能会中断,因为将始终选择每个依赖关系的最新代码,通常会导致API不匹配。

预编译安装包安装IPFS

上述这个问题暂时还没解决,gx依赖以及中国网关的问题。那么通过👇安装包的方式来安装运行IPFS:

  1. 下载go-ipfs,Mac OS X 請下載Darwin amd64,Ubuntu 請下載Linux amd64

  2. 使用tar xvfz go-ipfs_v0.4.14_darwin-amd64.tar.gz解压安装包。

  3. 运行项目,通过ipfs init在本地计算机建立一个IPFS节点。

  4. 测试一下,使用ipfs id查看节点id。

    {
    "ID": "QmZXXApnUUTD75bph88eNii3Sc97fiumTX7AMBv5CKHGdf",
    "PublicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmeja+Xls57HMzJdpyk2uutamqNf0zwKUIde6AmK/qtneFSszEr7fwPZ6lE2KUxlaIdDelBpYLWKgwnJA89vWVDcFElXbgmLEwjlWeAnjR3EWLSQcmVGifB7jKrSG0VNeZdRv4Pj/i75zSdxAujZ0EwY6TpN6ZNaXX3BI/8owLlZAVq2wAKjFhjOtSfdGd5Tm61tN4q0EfPPHnU/kC9kr+HQkJm9h71pIL2Uu6LhoRQNpx/ZTnTXm6L0pxzEQSzal7lYsBQGiBKzzaL7PhZtZ6kY6atALRiiFj7ID8rbE03LrOQw4xoFjo3UBardTy1gQVflyqsysCi1DIStzn8qKNAgMBAAE=",
    "Addresses": null,
    "AgentVersion": "go-ipfs/0.4.14/",
    "ProtocolVersion": "ipfs/0.1.0"
    }
    
  5. 使用ipfs daemon启动节点服务器

  6. 新建终端执行命令ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme

  7. 浏览器输入网址http://localhost:5001/webui出现一个漂亮的UI界面。

image

更新

IPFS有一个可以通过访问的更新工具ipfs update。该工具并不与IPFS一起安装,以保持独立于主代码库的逻辑。要安装ipfs update,请在此处下载

使用IPFS下载IPFS构建

列出go-ipfs的可用版本:

ipfs cat /ipns/dist.ipfs.io/go-ipfs/versions

然后,查看以前命令($ VERSION)中版本的可用版本:

ipfs ls /ipns/dist.ipfs.io/go-ipfs/$VERSION

下载一个版本的给定版本:

ipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_darwin-386.tar.gz # darwin 32-bit build
ipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_darwin-amd64.tar.gz # darwin 64-bit build
ipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_freebsd-amd64.tar.gz # freebsd 64-bit build
ipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_linux-386.tar.gz # linux 32-bit build
ipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_linux-amd64.tar.gz # linux 64-bit build
ipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_linux-arm.tar.gz # linux arm build
ipfs get /ipns/dist.ipfs.io/go-ipfs/$VERSION/go-ipfs_$VERSION_windows-amd64.zip # windows 64-bit build

用法

  ipfs - Global p2p merkle-dag filesystem.

  ipfs [<flags>] <command> [<arg>] ...

SUBCOMMANDS
  BASIC COMMANDS
    init          Initialize ipfs local configuration     # 初始化ipfs本地配置
    add <path>    Add a file to ipfs      # 向ipfs添加文件
    cat <ref>     Show ipfs object data      # 显示ipfs object数据
    get <ref>     Download ipfs objects      # 下载ipfs objects
    ls <ref>      List links from an object     # 一个对象链接的列表
    refs <ref>    List hashes of links from an object   # 一个对象链接的哈希列表

  DATA STRUCTURE COMMANDS
    block         Interact with raw blocks in the datastore     # 与数据存储中的原始块交互
    object        Interact with raw dag nodes      # 与原始dag节点交互
    files         Interact with objects as if they were a unix filesystem      # 与objects交互,就好像它们是unix文件系统一样

  ADVANCED COMMANDS
    daemon        Start a long-running daemon process      # 启动一个长时间运行的守护进程
    mount         Mount an ipfs read-only mountpoint      # 安装一个ipfs只读挂载点
    resolve       Resolve any type of name          # 解析任何类型的名称
    name          Publish or resolve IPNS names      # 发布或解析IPNS名称
    dns           Resolve DNS links       # 解析DNS链接
    pin           Pin objects to local storage      # 将object定位到本地存储
    repo          Manipulate an IPFS repository      # 操作一个ipfs仓库

  NETWORK COMMANDS
    id            Show info about ipfs peers        # 显示ipfs 节点的信息
    bootstrap     Add or remove bootstrap peers       # 添加或删除bootstrap节点
    swarm         Manage connections to the p2p network      # 管理与p2p网络的连接
    dht           Query the DHT for values or peers      # 为values或者节点查询DHT
    ping          Measure the latency of a connection     # 测量连接的延迟
    diag          Print diagnostics     # 打印诊断信息

  TOOL COMMANDS
    config        Manage configuration     # 管理配置
    version       Show ipfs version information    # 显示ipfs版本信息
    update        Download and apply go-ipfs updates     # 下载并应用go-ipfs更新 
    commands      List all available commands      # 所有可用的命令列表

  Use 'ipfs <command> --help' to learn more about each command.

  ipfs uses a repository in the local file system. By default, the repo is located
  at ~/.ipfs. To change the repo location, set the $IPFS_PATH environment variable:

    export IPFS_PATH=/path/to/ipfsrepo

另见:[ipfs getting-started](http : //ipfs.io/docs/getting-started/)

要开始使用IPFS,您必须首先在您的系统上初始化IPFS的配置文件,这是通过ipfs init。查看ipfs init --help它所需的可选参数的信息。初始化完成后,就可以使用ipfs mountipfs add或其他任何命令来探索!

本地'ipfs working'基本使用:

echo "hello world" > hello
ipfs add hello
# This should output a hash string that looks something like:
# QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o
ipfs cat <that hash>

使用Docker

IPFS的docker镜像位于hub.docker.com/r/ipfs/go-ipfs。要在容器内部显示文件,您需要使用-v docker选项安装主机目录。选择一个您想用来从IPFS导入/导出文件的目录。您还应该选择一个目录来存储IPFS文件,这些文件在重新启动容器时将保留。

export ipfs_staging=</absolute/path/to/somewhere/>
export ipfs_data=</absolute/path/to/somewhere_else/>

启动运行ipfs的容器并公开端口4001,50018080

docker run -d --name ipfs_host -v $ipfs_staging:/export -v $ipfs_data:/data/ipfs -p 4001:4001 -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/go-ipfs:latest

观看ipfs日志:

docker logs -f ipfs_host

等待ipfs启动。看到以下内容时,ipfs正在运行:

Gateway (readonly) server
listening on /ip4/0.0.0.0/tcp/8080

现在可以停止观看日志。
运行ipfs命令:

docker exec ipfs_host ipfs <args...>

例如:连接到节点

docker exec ipfs_host ipfs swarm peers

添加文件:

cp -r <something> $ipfs_staging
docker exec ipfs_host ipfs add -r /export/<something>

停止正在运行的容器:

docker stop ipfs_host

⚠️:如果您之前已经安装过IPFS,并且遇到了使新版本工作的问题,请尝试删除(或备份其他位置)IPFS配置目录(默认为〜/ .ipfs)并重新运行ipfs init。这会将配置文件重新初始化为其默认值,并清除任何错误条目的本地数据存储区。

扩展链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,506评论 15 147
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,468评论 0 120
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 一般实词(名词、动词、代词、形容词、副词等)首字母大写,虚词(介词、冠词、连词、感叹词)首字母小写。 标题第一个单...
    九剑至尊阅读 23,320评论 0 2
  • 轻尘冷笑,向来只有她在别人面前装神弄鬼,现在竟然有人敢在她面前班门弄斧? 便泠泠开口道:“不知姑娘夜半造访所为何事...
    是静颜呀阅读 291评论 0 0