ipfs
InterPlanetary FileSystem operations
Download executable
https://github.com/ipfs/kubo/releases/
Create and start container
docker create --name ipfs -p 8080:8080 -p 5001:5001 ipfs/kubo:master-latest docker start ipfs
Set API address
echo "/ip4/127.0.0.1/tcp/5001" > ~/.ipfs/api
Local WebUI
http://127.0.0.1:5001/webui/
Check CID publicly available
https://check.ipfs.network/
View CID on public IPFS gateway
https://dweb.link/ipfs/$CID
Find provider of a CID
ipfs routing findprovs bafybeibg6pes7z462uiletrcm74obq3t54iow4ogm6542v4j52th23bwg4
Output:
12D3KooWFdAaYfYehyNHok7bebpH3gq6DrCKDeHY9vBJSXJ5zQxL
Find addresses of a Peer
ipfs routing findpeer 12D3KooWFdAaYfYehyNHok7bebpH3gq6DrCKDeHY9vBJSXJ5zQxL
Output:
/dns4/91-120-146-1.k51qzi5uqu5dic06api37t38kay1fuvkcoqy9kkmxrppe4jbcfhil3g10zxuod.libp2p.direct/tcp/4001/tls/ws /ip4/172.19.0.2/tcp/4001 /ip4/91.120.146.1/udp/4001/quic-v1/webtransport/certhash/uEiDx2Tpy0nXkSs-A57qClwWvZgA8fhPUkOwvKULFvGYplw/certhash/uEiD5dtfR_uxm6yTYU1w3GSW-fplCTxjcXjZb0ZG0b3yVZg /ip4/172.19.0.2/udp/4001/quic-v1 /ip4/91.120.146.1/tcp/4001 /ip4/172.19.0.2/udp/4001/quic-v1/webtransport/certhash/uEiDx2Tpy0nXkSs-A57qClwWvZgA8fhPUkOwvKULFvGYplw/certhash/uEiD5dtfR_uxm6yTYU1w3GSW-fplCTxjcXjZb0ZG0b3yVZg /ip4/91.120.146.1/udp/4001/quic-v1 /ip4/91.120.146.1/udp/4001/webrtc-direct/certhash/uEiATQmyhKUPAdSs1iTwpVznmNw5KEMTTi34kzhxMbzac8w /ip4/91.120.146.1/udp/56218/webrtc-direct/certhash/uEiATQmyhKUPAdSs1iTwpVznmNw5KEMTTi34kzhxMbzac8w /ip4/172.19.0.2/udp/4001/webrtc-direct/certhash/uEiATQmyhKUPAdSs1iTwpVznmNw5KEMTTi34kzhxMbzac8w
Ping a peer
ipfs ping -n 5 12D3KooWFdAaYfYehyNHok7bebpH3gq6DrCKDeHY9vBJSXJ5zQxL
Output:
PING 12D3KooWFdAaYfYehyNHok7bebpH3gq6DrCKDeHY9vBJSXJ5zQxL. Pong received: time=0.89 ms Pong received: time=0.43 ms Pong received: time=0.54 ms Pong received: time=0.61 ms Pong received: time=0.41 ms Average latency: 0.58ms
Mutable filesystem
List files on MFS with CID
ipfs files ls -l
Output:
Apollo/ QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D 0
Get CID of the root of the MFS
ipfs files stat /
Output:
QmVRdMF9vbqBBG1dafhLUessgQtT3u4vWWZKfV82VTffWW Size: 0 CumulativeSize: 302898916792 ChildBlocks: 3 Type: directory Mode: not set (not set) Mtime: not set
Publish current MFS as IPNS
ipfs name publish $(ipfs files stat / | head -n 1)
Output:
Published to k51qzi5uqu5dic06api37t38kay1fuvkcoqy9kkmxrppe4jbcfhil3g10zxuod: /ipfs/QmPXRQHXjSfvXVS6V81GU658QX6AV5osE4BgCQAyP7KcRd
Add keys and publish IPFS
Create new key
ipfs key gen files
Output:
k51qzi5uqu5dhjwblkxq3srzrbggcjp1719hi7qdzcj42dlnyp4tpkw5esafx5
List keys
ipfs key list -l
Output:
k51qzi5uqu5dic06api37t38kay1fuvkcoqy9kkmxrppe4jbcfhil3g10zxuod self k51qzi5uqu5dhjwblkxq3srzrbggcjp1719hi7qdzcj42dlnyp4tpkw5esafx5 files
Publis MFS on custom key
ipfs name publish --key=files --lifetime=10m --ttl=10m $(ipfs files stat / | head -n 1)
Output:
Published to k51qzi5uqu5dhjwblkxq3srzrbggcjp1719hi7qdzcj42dlnyp4tpkw5esafx5: /ipfs/Qmbcg1H8JgjUsFovDLNhCXqXECyf6HdaQ8VAfXcpguoAdz