IPFS の Python API リファレンスマニュアル:https://www.cnblogs.com/yoyo1216/p/13489699.html
ipfs cli マニュアル(中国語版):https://blog.51cto.com/u_9152644/5958171
IPFS のインストールと基本操作(ストレージディレクトリ):https://www.superc.xyz/2018/02/28/ipfs/
- イントロダクション
1:インタープラネタリーファイルシステム(InterPlanetary File System)。IPFS は分散型の Web、ピア・ツー・ピアのハイパーメディアプロトコルです。インターネットをより高速、より安全、よりオープンにすることができます。IPFS は実際には分散ファイルシステムです。
2:インターネットは HTTP プロトコルに基づいており、中央集権化されており、非効率で高コストです。HTTP プロトコルを使用すると、中央集権化されたサーバーから完全なファイル(ウェブページ、ビデオ、画像など)をダウンロードする必要があります。これは遅く、効率が低いです。IPFS は P2P 方式を採用し、コンテンツアドレス(ドメイン名ではない)に基づいています。ファイル(内容の暗号化ハッシュ値)は一意の存在を持ち、ファイルの冗長性を大幅に削減します。大量の帯域幅を節約できます。また、ファイルを小さなブロックに分割し、複数のサーバーから同時にダウンロードし、近くからダウンロードすることもできます。非常に高速です。IPFS ネットワーク上には、インターネットファイルのハッシュテーブルを保存するためのブロックチェーンが実行されており、ネットワークアクセスがあるたびに、そのコンテンツ(ファイル)のアドレスをチェーン上で確認します。
3:Web ファイルは頻繁に削除されます。HTTP のページの Web ファイルは頻繁に削除されます(ストレージコストが高すぎるため)。永久に保存することはできません。したがって、ブックマークした URL が開けない、404 エラーが発生することがよくあります。一方、IPFS ファイルは複数のノードに永久に保存され、ファイルの履歴バージョンのトレースバック機能(Git バージョン管理ツールのようなもの)が提供されます。ファイルの履歴バージョンを簡単に表示できます。
4:現在のインターネットは非常に中央集権化されたネットワークです。一方、分散型の IPFS は、ウェブのいくつかの欠点(インターネットのバックボーンへの高い依存、インターネットのブロック、制御、監視、中央集権化サーバーのダウンなど)を克服することができます。
4、IPFS の応用意義
コンテンツ作成に一定の自由をもたらすことができます。
代表的なアプリケーション:Akasha Akasha(https://blog.akasha.world)は、Ethereum と IPFS を基にしたソーシャルブログ作成プラットフォームで、ユーザーが作成したブログコンテンツは IPFS ネットワークを介して公開されます。中央サーバーではありません。同時に、ユーザーは Ethereum ウォレットアカウントとバインドし、優れたコンテンツに ETH を寄付することができ、コンテンツ作成者は ETH を稼ぐことができます。これは、人間の脳が鉱山採掘のように働くのと同じです。規制の制限も少なく、中間業者の手数料もなく、コンテンツの収益は完全に作成者に帰属します。
ストレージと帯域幅のコストを削減できます。
代表的なアプリケーション:Dtube Dtube(https://d.tube)は、Steemit 上に構築された分散型ビデオプレイヤープラットフォームで、ユーザーがアップロードしたビデオファイルは IPFS プロトコルを介して保存され、一意の識別子を持ちます。従来のビデオウェブサイトと比較して、冗長性が低くなり、ビデオの再生時に発生するユーザーの帯域幅コストを大幅に節約します。
ブロックチェーンと完全に統合できます。
代表的なアプリケーション:EOS IPFS 技術を使用してストレージの制約を解決することは、現時点では EOS の過渡的な解決策です。最も典型的なアプリケーションは EOS です。EOS の自慢は、百万トランザクション / 秒の並列処理能力をサポートできることです。これは、DPOS コンセンサスメカニズムのおかげだけでなく、IPFS を使用して大規模なデータの転送効率を解決するためでもあります。EOS は、自分自身でパッケージ化されたブロックデータを IPLD で異様に処理し、コンテンツアドレッシングに便利なデータ構造タイプに統一し、IPFS ネットワークに保存および P2P 検索の論理を委任し、EOS ブロックチェーンシステム自体の計算リソースをほとんど消費しません。
伝統的なアプリケーションに分散キャッシュソリューションを提供できます。
二、環境構築
1:公式ウェブサイト(dist.ipfs.io/#go-ipfs)から最新の go-ipfs をダウンロードしてインストールします。
インストール(便宜のために、事前にコンパイルされたバイナリ ipfs をインストールします)
最新(コンパイル済み)パッケージをダウンロード#
wget https://dist.ipfs.io/go-ipfs/v0.6.0/go-ipfs_v0.6.0_linux-amd64.tar.gz
解凍#
tar -zxf go-ipfs_v0.6.0_linux-amd64.tar.gz
インストール#
cd go-ipfs
dir
sudo ./install
検証#
which ipfs
ipfs --help
ipfs version
ipfs を設定して実行#
ノードの初期化 ipfs init をコマンドラインで実行#
$ ipfs init
初期化すると、デフォルトでユーザーディレクトリに.ipfs が作成され、ノード ID が生成されます。例:QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv#
$ export IPFS_PATH=/ipfs
vim /lib/systemd/system/ipfs.service#
追加:Environment=export IPFS_PATH=/ipfs # IPFS ディレクトリを設定
IPFS のデフォルトディレクトリを変更します。この時点で、ディレクトリを /ipfs に配置します。https://www.superc.xyz/2018/02/28/ipfs/#
インストール状況を確認#
$ ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
デーモンを起動して ipfs ノードをオンラインにします。#
$ ipfs daemon
ipfs リンクのノードを表示します。#
$ ipfs swarm peers
三、アップロードとダウンロード
ipfs には、2 つの方法でファイルを操作することができます。
1)weiui 方法
ipfs daemon が実行されているホストにアクセスし、ブラウザで localhost:5001/ipfs/webui を入力してブラウザのファイル操作ページにアクセスし、ファイルを追加します。
2)コマンドライン方法
ファイル 1.txt を作成し、内容を 123456789 にします。#
1.txt をアップロードします。#
ipfs add 1.txt
ファイルのハッシュ値が返され、それを使用してファイルを見つけることができます。#
ハッシュを使用して 1.txt を表示します。#
ipfs cat ファイルのハッシュ値
1.txt をダウンロードします。現在のディレクトリにダウンロードされ、ファイル名はデフォルトでハッシュ値になります。#
ipfs get ファイルのハッシュ値
画像をアップロードします。#
$ ipfs add ly.jpg
画像をダウンロードします。#
$ ipfs cmp /ipfs/QmaYQaCwxg8pK9Z5QQC8vrb1hdBC5nV8YFGwGNVNQ3fWka > after.jpg
元の画像と比較します。元のアップロードされたファイルです。#
$ cmp ly.jpg after.jpg
または、デプロイされた ipfs デーモンマシン上のブラウザで直接表示できます:#
http://127.0.0.1:8080/ipfs/QmaYQaCwxg8pK9Z5QQC8vrb1hdBC5nV8YFGwGNVNQ3fWka
IPFS で静的ウェブサイトを作成する#
ウェブサイトディレクトリをアップロードします。#
cd D:\Works\ipfs_file
ipfs add -r ipfs-qkw
返された情報の最後の部分、つまりハッシュ QmNpRuzmmucd5sDoC7fjfZRgo2mnaXb35hpsLQf77A96xu がアクセスのエントリポイントです
https://ipfs.io/ipfs/QmYaGz9ChV3PcRuz3Zmr8XP34gxAe2gunZdtM7sKhDMqUS
ipfs cat コマンドを使用して、ファイルパスを後に続けます。操作は次のようになります:
ipfs cat QmNmGoyiFpaHx1tra4zNL2iZHAfj8JM7gETjk2hZWVGWXi/ipfs-tutorial/new/newfile
四、よく使用されるコマンド
https://docs.ipfs.io/reference/cli/#ipfs
五、JS HTTP クライアントライブラリ
https://github.com/ipfs/js-ipfs/tree/master/packages/ipfs-http-client#getting-started
HTTP API リファレンスを使用する
https://docs.ipfs.io/reference/http/api/#getting-started
六、IPFS 映画リソース
神秘巨星:QmWBbKvLhVnkryKG6F5YdkcnoVahwD7Qi3CeJeZgM6Tq68
芳華:QmYVri7jyBdPyfR8AgBLTgyTjiJifCgpeHFiFrKxowQeq8
https://gateway.ipfs.io/ipfs/QmYVri7jyBdPyfR8AgBLTgyTjiJifCgpeHFiFrKxowQeq8
大佛普拉斯:QmdpR9iP9EhUg1rmduHqwA4ddyHNMcsR8t9saXA9BmMU4t
看不見的客人:QmYWwXkgjdhMps9mB6DyEp4zSFmDQ9U6SuqGRGovEycr49
勇往直前:QmZRJevYhADpXmCGGF6eCcP1afNEYFahDW5jxje3iyyCJS
至暗時刻:QmUPvs7iyM5ZWPQwDovRqvNzxMJHSUWNRWAWRkAsseVcvs
銀翼殺手 2049:QmcUHdzKgRrcJrD5Ah46HgBHF7urWDhmAnLKYwcHaLgeGP
盗夢空間:QmQATmpxXvSiQgt9c9idz9k3S3gQnh7wYj4DbdMQ9VGyLh
獅子王:QmfHGQZNQNymHDC6b7TZjgGbh962VWQQN5oV92w9jHE4qt
祖宗十九代:QmbrwEH4AEQhUN929yPy4j5B2PfQYk3JJyG8iq7HVoXbia
瘋狂動物城:QmUKaQwN2ppapUEFhbHsKoVXn2yBRM7mLpu5HQv9am7dB7
彩繪心天地:QmXg1c6qPtoQAyfrXrWnuDrUgFehnt4kLvv1hxheMUeFBC
蕭申克的救贖:QmRUYeMkvirV4frGX8wcntCq6x5GqDixAjZnFj5Jg1E3qj
太空旅客:QmdxpUVnvFnert9nmEkzwwz2tWdavU3fUQzrgBsTZP5yyG
ipfs ビデオプレーヤー:https://github.com/download13/ipfstube
http://www.ipfs.guide
https://bbs.ipfs.guide/t/Resources