Tiếng Việt
Tiếng Việt
Appearance
Tiếng Việt
Tiếng Việt
Appearance
IPNS (InterPlanetary Name System) cung cấp cho bạn địa chỉ ổn định, có thể chia sẻ có thể được cập nhật để trỏ đến nội dung khác nhau theo thời gian. Trong khi CID IPFS thay đổi mỗi khi nội dung thay đổi, tên IPNS vẫn giữ nguyên -- bạn chỉ cần cập nhật nơi nó trỏ đến.
Có sẵn trên gói Bodhi (3 tên, 100 lần xuất bản/tháng) và Nirvana (10 tên, 1.000 lần xuất bản/tháng).
Tìm hiểu thêm về IPNS
Để tìm hiểu sâu về cách IPNS hoạt động ở cấp giao thức, xem tài liệu chính thức IPFS về IPNS.

Vấn đề: Mỗi khi bạn tải lên phiên bản mới của tệp lên IPFS, bạn nhận được CID khác. Nếu bạn đã chia sẻ CID cũ với người dùng, họ vẫn thấy nội dung cũ. Bạn phải chia sẻ liên kết mới mỗi lần.
Giải pháp: Tạo tên IPNS một lần, chia sẻ nó, và cập nhật nơi nó trỏ đến bất cứ khi nào nội dung thay đổi. Bất kỳ ai có địa chỉ IPNS luôn nhận được phiên bản mới nhất.
tokenURI của NFT đến địa chỉ IPNS. Cập nhật siêu dữ liệu (ví dụ: vật phẩm game lên cấp) mà không thay đổi hợp đồng thông minh.https://yourdomain.com luôn phục vụ nội dung IPFS mới nhất.k51...) -- đây là địa chỉ vĩnh viễn, có thể chia sẻ.
QmXk7VRz... hoặc bafybei...).https://ipfs.ninja/ipns/{ten-ipns-cua-ban}https://dweb.link/ipns/{ten-ipns-cua-ban}ipns://{ten-ipns-cua-ban}
Khi nội dung thay đổi:
Sử dụng phần Phân giải ở cuối trang để tra cứu CID hiện tại cho bất kỳ tên IPNS nào -- của bạn hoặc của bất kỳ ai khác.
Nhấn nút xóa bên cạnh bất kỳ tên nào. Bản ghi IPNS sẽ hết hạn từ mạng trong vòng 48 giờ.
Bạn có thể trỏ tên miền riêng đến địa chỉ IPNS bằng DNSLink. Điều này cho phép người dùng truy cập nội dung IPFS qua URL thông thường như https://yourdomain.com.
Tạo tên IPNS và xuất bản CID nội dung lên đó (các bước ở trên).
Thêm bản ghi DNS TXT tại nhà cung cấp DNS của miền:
_dnslink.yourdomain.com TXT "dnslink=/ipns/{ten-ipns-cua-ban}"Ví dụ: Nếu tên IPNS của bạn là k51qzi5uqu5djcpbukxs...:
_dnslink.myapp.com TXT "dnslink=/ipns/k51qzi5uqu5djcpbukxs..."Xác minh bản ghi bằng dig hoặc nslookup:
dig +short TXT _dnslink.myapp.com
# Nên trả về: "dnslink=/ipns/k51qzi5uqu5djcpbukxs..."Truy cập qua bất kỳ gateway IPFS nào hỗ trợ DNSLink:
https://ipfs.ninja/ipns/myapp.comHoặc qua trình duyệt hỗ trợ IPFS (như Brave):
ipns://myapp.comLan truyền DNS
Thay đổi DNS có thể mất tới 24 giờ để lan truyền toàn cầu. Sau khi thêm bản ghi TXT, đợi vài giờ trước khi kiểm tra.
TIP
Bạn chỉ cần thiết lập DNSLink một lần. Khi bạn xuất bản CID mới lên tên IPNS, miền tự động phân giải đến nội dung mới -- không cần thay đổi DNS.
Nếu bạn sử dụng Cloudflare:
_dnslink, Nội dung: dnslink=/ipns/k51..._dnslink.yourdomain.com, Loại: TXT, Giá trị: "dnslink=/ipns/k51..."# 1. Build trang web
npm run build
# 2. Tải đầu ra build lên IPFS
CID=$(curl -s -X POST https://api.ipfs.ninja/upload/new \
-H "X-Api-Key: bws_your_api_key" \
-H "Content-Type: application/json" \
-d "{\"content\": $(cat dist/index.html | base64 -w0 | jq -Rs .), \"description\": \"Website v2.1\"}" \
| jq -r '.cid')
echo "Uploaded: $CID"
# 3. Cập nhật tên IPNS trỏ đến build mới
curl -X POST https://api.ipfs.ninja/ipns/publish \
-H "X-Api-Key: bws_your_api_key" \
-H "Content-Type: application/json" \
-d "{\"ipnsName\": \"k51qzi5uqu5dlvj2bv6...\", \"cid\": \"$CID\"}"
# Trang web tại ipns://k51... giờ phục vụ phiên bản mới// Hợp đồng thông minh trỏ tokenURI đến địa chỉ IPNS:
// tokenURI = "ipns://k51qzi5uqu5dlvj2bv6..."
// Khi NFT tiến hóa (ví dụ: vật phẩm game lên cấp):
const newMetadata = {
name: "Dragon Sword",
description: "A legendary weapon — Level 5",
image: "ipfs://QmNewImageCID...",
attributes: [
{ trait_type: "Level", value: 5 },
{ trait_type: "Damage", value: 150 }
]
};
// Tải siêu dữ liệu mới
const uploadRes = await fetch("https://api.ipfs.ninja/upload/new", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "bws_your_api_key"
},
body: JSON.stringify({ content: newMetadata, description: "Dragon Sword v5" })
});
const { cid } = await uploadRes.json();
// Cập nhật con trỏ IPNS -- tokenURI vẫn giữ nguyên!
await fetch("https://api.ipfs.ninja/ipns/publish", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "bws_your_api_key"
},
body: JSON.stringify({ ipnsName: "k51qzi5uqu5dlvj2bv6...", cid })
});# GitHub Actions: tự động xuất bản lên IPNS mỗi lần push
- name: Upload to IPFS and publish IPNS
run: |
CID=$(curl -s -X POST https://api.ipfs.ninja/upload/new \
-H "X-Api-Key: ${{ secrets.IPFS_NINJA_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{"content": '"$(cat build/output.json)"', "description": "Deploy ${{ github.sha }}"}' \
| jq -r '.cid')
curl -X POST https://api.ipfs.ninja/ipns/publish \
-H "X-Api-Key: ${{ secrets.IPFS_NINJA_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{"ipnsName": "${{ vars.IPNS_NAME }}", "cid": "'"$CID"'"}'Tất cả ví dụ API sử dụng tiêu đề X-Api-Key. Lấy khóa API từ trang Khóa API.
curl https://api.ipfs.ninja/ipns/keys \
-H "X-Api-Key: bws_your_api_key_here"Phản hồi:
[
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"keyName": "my-website",
"currentCid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
"lastPublishedAt": 1711123200000,
"publishCountMonth": 12,
"status": "active",
"createdAt": 1711036800000
}
]curl -X POST https://api.ipfs.ninja/ipns/keys \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"name": "my-website"}'Phản hồi 201:
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"keyName": "my-website",
"createdAt": 1711036800000
}Xuất bản cập nhật tên IPNS để trỏ đến CID mới. Điều này lan truyền đến DHT IPFS và có thể mất tới 60 giây.
curl -X POST https://api.ipfs.ninja/ipns/publish \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"ipnsName": "k51qzi5uqu5dlvj2bv6...", "cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"}'Phản hồi:
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
"published": true
}Tra cứu CID hiện tại cho bất kỳ tên IPNS nào.
curl https://api.ipfs.ninja/ipns/resolve/k51qzi5uqu5dlvj2bv6... \
-H "X-Api-Key: bws_your_api_key_here"Phản hồi:
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"
}curl -X DELETE https://api.ipfs.ninja/ipns/keys/k51qzi5uqu5dlvj2bv6... \
-H "X-Api-Key: bws_your_api_key_here"Phản hồi:
{ "success": true }k51...).| Gói | Tên IPNS | Xuất bản / Tháng |
|---|---|---|
| Dharma (Miễn phí) | Không có sẵn | -- |
| Bodhi ($5/tháng) | 3 | 100 |
| Nirvana ($29/tháng) | 10 | 1.000 |