Türkçe
Türkçe
Appearance
Türkçe
Türkçe
Appearance
IPNS (InterPlanetary Name System), zaman içinde farklı içeriklere işaret edecek şekilde güncellenebilen kararlı, paylaşılabilir adresler sunar. IPFS CID'leri içerik her değiştiğinde değişirken, IPNS adı aynı kalır — sadece nereye işaret ettiğini güncellersiniz.
Bodhi (3 ad, aylık 100 yayın) ve Nirvana (10 ad, aylık 1.000 yayın) planlarında mevcuttur.
IPNS hakkında daha fazla bilgi
IPNS'in protokol düzeyinde nasıl çalıştığına dair derinlemesine bilgi için resmi IPFS IPNS dokümantasyonuna bakın.

Sorun: IPFS'e bir dosyanın yeni sürümünü her yüklediğinizde farklı bir CID alırsınız. Eski CID'yi kullanıcılarla paylaştıysanız, hala eski içeriği görürler. Her seferinde yeni bir bağlantı paylaşmanız gerekirdi.
Çözüm: Bir IPNS adı oluşturun, paylaşın ve içeriğiniz değiştiğinde nereye işaret ettiğini güncelleyin. IPNS adresine sahip herkes her zaman en son sürümü alır.
tokenURI'sini bir IPNS adresine yönlendirin. Akıllı sözleşmeyi değiştirmeden meta verileri güncelleyin (örn. oyun öğesi seviye atlar).https://yourdomain.com her zaman en son IPFS içeriğini sunar.k51... ile başlar) — bu sizin kalıcı, paylaşılabilir adresinizdir.
QmXk7VRz... veya bafybei...).https://ipfs.ninja/ipns/{your-ipns-name}https://dweb.link/ipns/{your-ipns-name}ipns://{your-ipns-name}
İçeriğiniz değiştiğinde:
Herhangi bir IPNS adı için — sizinki veya başka birinin — geçerli CID'yi aramak için sayfanın alt kısmındaki Çözümle bölümünü kullanın.
Herhangi bir adın yanındaki sil düğmesine tıklayın. IPNS kaydı 48 saat içinde ağdan sona erecektir.
DNSLink kullanarak kendi alan adınızı bir IPNS adresine yönlendirebilirsiniz. Bu, kullanıcıların IPFS içeriğinize https://yourdomain.com gibi normal bir URL üzerinden erişmesini sağlar.
Bir IPNS adı oluşturun ve içerik CID'nizi ona yayınlayın (yukarıdaki adımlar).
Alan adınızın DNS sağlayıcısında DNS TXT kaydı ekleyin:
_dnslink.yourdomain.com TXT "dnslink=/ipns/{your-ipns-name}"Örnek: IPNS adınız k51qzi5uqu5djcpbukxs... ise:
_dnslink.myapp.com TXT "dnslink=/ipns/k51qzi5uqu5djcpbukxs..."Kaydı doğrulayın dig veya nslookup ile:
dig +short TXT _dnslink.myapp.com
# Döndürmesi gereken: "dnslink=/ipns/k51qzi5uqu5djcpbukxs..."DNSLink destekleyen herhangi bir IPFS gateway'inden erişin:
https://ipfs.ninja/ipns/myapp.comVeya IPFS destekli bir tarayıcı (Brave gibi) üzerinden:
ipns://myapp.comDNS yayılımı
DNS değişikliklerinin küresel olarak yayılması 24 saate kadar sürebilir. TXT kaydını ekledikten sonra test etmeden önce birkaç saat bekleyin.
TIP
DNSLink'i yalnızca bir kez kurmanız gerekir. IPNS adınıza yeni bir CID yayınladığınızda, alan adı otomatik olarak yeni içeriğe çözümlenir — DNS değişikliği gerekmez.
Cloudflare kullanıyorsanız:
_dnslink, İçerik: dnslink=/ipns/k51..._dnslink.yourdomain.com, Tür: TXT, Değer: "dnslink=/ipns/k51..."# 1. Build your site
npm run build
# 2. Upload the build output to 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. Update your IPNS name to point to the new build
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\"}"
# Your site at ipns://k51... now serves the new version// Smart contract points tokenURI to IPNS address:
// tokenURI = "ipns://k51qzi5uqu5dlvj2bv6..."
// When the NFT evolves (e.g., game item levels up):
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 }
]
};
// Upload new metadata
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();
// Update the IPNS pointer — tokenURI stays the same!
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: auto-publish to IPNS on every 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üm API örnekleri X-Api-Key başlığını kullanır. API anahtarınızı API Anahtarları sayfasından alın.
curl https://api.ipfs.ninja/ipns/keys \
-H "X-Api-Key: bws_your_api_key_here"Yanıt:
[
{
"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"}'Yanıt 201:
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"keyName": "my-website",
"createdAt": 1711036800000
}Yayınlama, IPNS adını yeni bir CID'ye işaret edecek şekilde günceller. IPFS DHT'ye yayılır ve 60 saniyeye kadar sürebilir.
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"}'Yanıt:
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
"published": true
}Herhangi bir IPNS adının mevcut CID'sini arayın.
curl https://api.ipfs.ninja/ipns/resolve/k51qzi5uqu5dlvj2bv6... \
-H "X-Api-Key: bws_your_api_key_here"Yanıt:
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"
}curl -X DELETE https://api.ipfs.ninja/ipns/keys/k51qzi5uqu5dlvj2bv6... \
-H "X-Api-Key: bws_your_api_key_here"Yanıt:
{ "success": true }k51...) olur.| Plan | IPNS Adları | Aylık Yayın |
|---|---|---|
| Dharma (Ücretsiz) | Mevcut değil | — |
| Bodhi ($5/ay) | 3 | 100 |
| Nirvana ($29/ay) | 10 | 1.000 |