IPFSには誰もが良いアイデアを持っていますが、欠点は1つしかありませんでした。 ネットワークにアップロードされたデータはブロックストレージにコピーされ、占有スペースが2倍になりました。 さらに、ファイルは再利用に適していないブロックにカットされました。
この欠点を解消する実験的なオプション--nocopy
。 それを使用するには、いくつかの条件を満たす必要があります。
新しいタイプの識別子も登場しました。 また、分析します。
思い出させてください:InterPlanetary File Systemは、新しい分散ファイル共有ネットワーク(HTTPサーバー、 コンテンツ配信ネットワーク )です。 それについての話は、記事「IPFS Interplanetary File System」で始めました。
--nocopy
このオプションは、IPFSがソースファイルをブロックソースとして使用することを強制します。 したがって、ファイルはブロックストレージにコピーされず、2倍のスペースを占有しません。
このオプションを使用するには、次の手順を実行します。
ファイルストアを有効にする必要があります
ipfs config --json Experimental.FilestoreEnabled true
「.ipfs」ディレクトリが置かれているディレクトリ(通常はユーザーディレクトリにあります)に、ネットワークにアップロードする必要があるディレクトリまたはファイルへのリンクを作成する必要があります。
ファイルはハードリンクでリンクできます:
fsutil hardlink "[ .ipfs]\[ ]" "[ ]\[ ]"
または
mklink /h "[ .ipfs]\[ ]" "[ ]\[ ]"
ディレクトリはシンボリックリンクでリンクできます。
linkd "[ .ipfs]\[ ]" "[ ]\[ ]"
または
mklink /j "[ .ipfs]\[ ]" "[ ]\[ ]"
そして今追加します
ipfs add -r -w --nocopy "[ .ipfs]\[ ]"
-w
は、ターゲットをディレクトリにラップし、その名前を保持します。
結果は、識別子CIDv1およびCIDv0(マルチキャッシュ)になります
ウェブシード
これで、 マグネットまたはトレントに WebSeedを追加できます。
ファイルの場合:
http://127.0.0.1:8080/ipfs/[]/[ ] http://gateway.ipfs.io/ipfs/[]/[ ]
カタログの場合:
http://127.0.0.1:8080/ipfs/[]/ http://gateway.ipfs.io/ipfs/[]/
Webシードマグネットの例
magnet:?xt=urn:btih:953edbe75de612bc966194d2ee60099b3bc1a1aa&dn=Magnet-.txt&ws=http://gateway.ipfs.io/ipfs/QmfQCxNW9r2974xR5dXopXfQqsEvgexhza6aQgqTGL7Yh3/Magnet-.txt
コンテンツ識別子(CID)
これらのIPFSの変更により、RAWブロックが登場しました。 --nocopy
は、RAWブロックの使用を自動的に有効にします。 ただし、-- --raw-leaves
このモードを有効にすることができ--raw-leaves
。 これに関して、新しいCID(コンテンツID)またはロシア語の「コンテンツID」が登場しました。
古いID
CIDv0と呼ばれ、通常は定数プレフィックス「Qm」が付いています。
CIDv0はBase58の単なるマルチハッシュです
[varint ID ][varint ][]
CIDv0の例: QmPbs8syAxac39bcNuMLpHXnqjKUguqakCM8LN8sZVPD9R
新しいID
RAWブロックには独自のCIDがあります。 定数接頭辞「zb2rh」で区別できます。
CIDv1には詳細情報が含まれています。
[ ][varint CID][varint ][varint ID ][varint ][]
CIDv1の例: zb2rhe143L6sgu2Nba4TZgFMdPidGMA6hmWhK9wLUoVGWYsR7
分解しましょう
z
- base58ビットコイン [ ベースプレフィックス ]
base58:
b2rhe143L6sgu2Nba4TZgFMdPidGMA6hmWhK9wLUoVGWYsR7
に翻訳する
HEX:01 55 12 20 6D542257CBD1BE7FD0AE8914F42066BCBF1E79487EF67B959A86DBEE4670B386
-
55
生のバイナリ[varint コンテンツタイプ ]
12
- sha2-256 [varint hash ID ]
20-32バイト[varint hash length]
6D542257CBD1BE7FD0AE8914F42066BCBF1E79487EF67B959A86DBEE4670B386
-sha2-256ダイジェスト[ハッシュ]
おわりに
--nocopy
オプション--nocopy
、Wikipedia dumpなど、世界と共有したい場合に--nocopy
。 または、その他の有用だが非常に大量の情報。
参照資料
Windowsのリンク、シンボリックでなく、
ipfsコマンドリファレンス
実験的なIPFS機能のリスト