IPFS学習ノート(三)IPFS初探-基本操作
6693 ワード
ダウンロードとインストール
一般的に3つのインストール方法があります:go-ipfsここでバイナリファイルを直接ダウンロードし、/usr/local/bin/に移動します. sudo snap install ipfs IPFS-snapインストール を使用ソースコードからのコンパイル--公式githubの方法--go getまたは直接downloadを使用してmake install を行う
ここでは、最初のバージョンを使用して、公式コンパイル後のバージョンをダウンロードし、インストールします.は、圧縮パッケージを公式にダウンロードし、指定された場所に解凍します.https://dist.ipfs.io/#go-ipfs mv ipfsから利用可能なbinディレクトリ(/usr/local/bin/ipfsまたは~/bin/ipfs) へ.
初歩的な使用-ipfsノードの作成&サービスの開始は、ユーザのルートディレクトリに作成する.ipfs ディレクトリの下でipfs initは、ローカルウェアハウスと同様のipfs nodeノードを初期化する ipfs id:ノードプロパティの表示 にはノードid がありますノード構成の変更には が必要である. IPFSノードサーバの起動: 外部に露出してアクセスする必要がある場合は、ドメイン間リソース共有CORS構成 を構成する必要があります.サービスアクセスの検証 WebUI の表示関連コマンドの表示
アクセスにファイアウォールを遮断する必要があるかどうかに注意
運用次元と使用: file を追加 ipfs add filenameファイルデータ を追加 ipfs cat hash取得データ(ファイル) でもまだ公式サイトに入っていないのでパスできませんhttp://ipfs.io/ipfs/hash を参照してください.これはipfsネットワークの公式ゲートウェイ-ファイルブラウザです.daemonが開いていない場合、追加は無効です.ipfs daemonを開き、fileを追加します.公式サイトでアクセスできます.(もちろん前提はあなたのdaemonが公式ゲートウェイと同じネットワークにいることです.あなたは知っています.この後の文章は関連します)フォルダを追加すると、IPFSのルートディレクトリにフォルダを作成し、ファイルを移動できます.cpはhashを変更しません.しかしmvはhashのアドレスを変更します.ここでは、ipfsのファイルシステム(localファイルシステムのipfsルートディレクトリではない)でディレクトリを作成するだけです.このディレクトリの下にファイルを作成できます. ipfs files mkdir/targetPath ipfs files cp/ipfs/hashcode/targetPath/file.txt ipfs files ls ipfs files read filepath ファイル ディレクトリhash/filenameから にアクセスできます.は、hashcodeを介して に直接アクセスすることもできる.
ディレクトリの下の内容を変更する場合は、IPFSディレクトリのhashを変更し続ける必要があります.統合ディレクトリアクセスの問題をIPNSで解決できます.これにより、ノードのドメイン名空間にIPFS hashを参照することができます.つまり、プロジェクトルートディレクトリのIPFS HASHをノードIDでバインドすることができます.これからコンテンツサイトにアクセスするときは、ノード・IDで直接アクセスすればいいです.コンテンツを更新するときは、IPNS`に再発行すればいいです.
ステップアップ追加ファイル を返します.
結果の最初の行はファイルを追加するhashであり、2番目の行はこのファイルをパッケージするディレクトリのhashである.
ここで注意すべき
ここではいくつかのテストを行いました. を取得することができる. を取得できません. を取得することができる.
また、異なるファイル名を追加しても、内容が同じファイルは?
ipfsはファイル名に関心を持たず、内容だけに関心を持っていることがわかります.
インデックスディレクトリを追加すると、ipfsは2つのファイルと見なします.そして異なるhashを割り当てる.しかし、具体的に保存するときは2部保存していますか?これはソース分析の時に見ます.
リファレンスリンク ipfs install ipfs get start ipfs API ipfs Commands
一般的に3つのインストール方法があります:go-ipfs
ここでは、最初のバージョンを使用して、公式コンパイル後のバージョンをダウンロードし、インストールします.
初歩的な使用-ipfsノードの作成&サービスの開始
export EDITOR=/usr/bin/subl //
ipfs config edit
ipfs daemon
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
ipfs cat /ipfs/{nodeid}/readme
http://localhost:5001/webui
ipfs —help
アクセスにファイアウォールを遮断する必要があるかどうかに注意
運用次元と使用:
ipfs add -r path
を追加すると、ディレクトリhashとこのディレクトリの下のすべてのファイルのhashが生成されます.ファイルへのアクセス方法:ディレクトリの下の内容を変更する場合は、IPFSディレクトリのhashを変更し続ける必要があります.統合ディレクトリアクセスの問題をIPNSで解決できます.これにより、ノードのドメイン名空間にIPFS hashを参照することができます.つまり、プロジェクトルートディレクトリのIPFS HASHをノードIDでバインドすることができます.これからコンテンツサイトにアクセスするときは、ノード・IDで直接アクセスすればいいです.コンテンツを更新するときは、IPNS`に再発行すればいいです.
ipfs name publish targePath
*検証:ipfs name resolve id*IPNSによるアクセス:ipfs.io/ipns/id ステップアップ
-w filename
を使用すると、追加されたファイルは2行[root@VM_0_12_centos ipfs_test]# echo "hello1" | ipfs add -w
added QmUgAgTVxq7UeY3Tbumz72fBsSvkUnveEgEkWvVquEvJVV QmUgAgTVxq7UeY3Tbumz72fBsSvkUnveEgEkWvVquEvJVVadded
QmYPQAaaw5mVxwT8iZ1wc7d6k5hD7cHhqCyQH81toPK7Rs
結果の最初の行はファイルを追加するhashであり、2番目の行はこのファイルをパッケージするディレクトリのhashである.
-w
命令の航意は、ipfsにファイルの内容とファイルの内容を包むディレクトリ(このファイルを含む)を作成させることである.ipfs ls hash
は指定されたhashのディレクトリとファイル情報を見ることができ、-v
パラメータを追加してヘッダ情報を印刷することができる.本質的には、このディレクトリ(hash)に関連付けられたすべてのファイルがリストされます.Tips
「それは1つのディレクトリに1つのファイルではないか」と疑問に思う人がいます.ファイルを追加するときは、スペースで分割しながら複数のファイルを追加することができます.これで1つのdirectoryの下に多くのファイルがあります.同時にaddの場合に-r
を使用し、このディレクトリの下にマルチレベルディレクトリを作成することができます.これにより、マルチレベルのディレクトリ構造を追加できます.そしてディレクトリにはhashがあり、ファイルにはhashがあります.例:[root@VM_0_12_centos ipfs_test]# ipfs add -wr file2.txt file1.txt test
added QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN file1.txt
added QmQTJqBR6pXws7ustXUexbs1S49qzXR47DbwRHLkB3qJPe file2.txt
added Qmair6VNFLJMAH69E5TJBei3NNiJRWPnxXo3BA31j7oXf9 test/file1.txt
added QmWANm4FeobTEHg5P2pwwiraPJktZi7ikb75H62gXshqFj test/file2.txt
added Qmd5m5ZJ6yMpYt6UUooJAHv5SbckrAGkEzMcmKHvyH7p4V test
added QmWQqDLTsXwygeBQvxhY2d21RWiZiGbGS95S4qggSMDBy7
[root@VM_0_12_centos ipfs_test]# ipfs ls -v QmWQqDLTsXwygeBQvxhY2d21RWiZiGbGS95S4qggSMDBy7
Hash Size Name
QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN 14 file1.txt
QmQTJqBR6pXws7ustXUexbs1S49qzXR47DbwRHLkB3qJPe 18 file2.txt
Qmd5m5ZJ6yMpYt6UUooJAHv5SbckrAGkEzMcmKHvyH7p4V 160 test/
[root@VM_0_12_centos ipfs_test]# ipfs ls -v Qmd5m5ZJ6yMpYt6UUooJAHv5SbckrAGkEzMcmKHvyH7p4V
Hash Size Name
Qmair6VNFLJMAH69E5TJBei3NNiJRWPnxXo3BA31j7oXf9 23 file1.txt
QmWANm4FeobTEHg5P2pwwiraPJktZi7ikb75H62gXshqFj 31 file2.txt
ここで注意すべき
ifps cat
およびipfs ls
は、前者がファイルにアクセスし、後者がディレクトリにアクセスする.ただし、パスとファイル名の形式でファイルにアクセスできます.例:[root@VM_0_12_centos ipfs_test]# ipfs cat QmWQqDLTsXwygeBQvxhY2d21RWiZiGbGS95S4qggSMDBy7/file1.txt
hello
[root@VM_0_12_centos ipfs_test]# ipfs cat QmWQqDLTsXwygeBQvxhY2d21RWiZiGbGS95S4qggSMDBy7/test
Error: this dag node is a directory
[root@VM_0_12_centos ipfs_test]# ipfs cat QmWQqDLTsXwygeBQvxhY2d21RWiZiGbGS95S4qggSMDBy7/test/file1.txt
hell,,,,asdfas
[root@VM_0_12_centos ipfs_test]# ipfs cat QmWQqDLTsXwygeBQvxhY2d21RWiZiGbGS95S4qggSMDBy7/Qmd5m5ZJ6yMpYt6UUooJAHv5SbckrAGkEzMcmKHvyH7p4V/file1.txt
Error: no link named "Qmd5m5ZJ6yMpYt6UUooJAHv5SbckrAGkEzMcmKHvyH7p4V" under QmWQqDLTsXwygeBQvxhY2d21RWiZiGbGS95S4qggSMDBy7
[root@VM_0_12_centos ipfs_test]# ipfs cat Qmd5m5ZJ6yMpYt6UUooJAHv5SbckrAGkEzMcmKHvyH7p4V/file1.txt
hell,,,,asdfas
ここではいくつかのテストを行いました.
hash/filename
は、ファイル hash/
は hash/ /
は、ファイル hash/ hash/
は、ディレクトリhash自体に階層関係がないため取得できません(ファイル名とみなされます).また、異なるファイル名を追加しても、内容が同じファイルは?
[root@VM_0_12_centos ipfs_test]# cat file1.txt > file3.txt
[root@VM_0_12_centos ipfs_test]# ipfs add file1.txt
added QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN file1.txt
[root@VM_0_12_centos ipfs_test]# ipfs add file3.txt
added QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN file3.txt
ipfsはファイル名に関心を持たず、内容だけに関心を持っていることがわかります.
-w
を加えると?[root@VM_0_12_centos ipfs_test]# ipfs add -w file1.txt added QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN file1.txt
added QmUs71TZY6Vy47vYrgu5baJwfGQNpMQKeHE2eAn3k2r5kv
[root@VM_0_12_centos ipfs_test]# ipfs add -w file3.txt
added QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH file3.txt
added QmXc7dSBQGCxPuB8pSVtKpGvqTB7afv9KB1zGNCzCH2rhA
インデックスディレクトリを追加すると、ipfsは2つのファイルと見なします.そして異なるhashを割り当てる.しかし、具体的に保存するときは2部保存していますか?これはソース分析の時に見ます.
リファレンスリンク