Ana içeriğe atla

Merkeziyetsiz kullanıcı arayüzleri için IPFS

ipfs
dapps
ön yüz
Başlangıç
Ori Pomerantz
29 Haziran 2024
4 dakikalık okuma

İnanılmaz yeni bir merkeziyetsiz uygulama (dapp) yazdınız. Hatta bunun için bir kullanıcı arayüzü bile yazdınız. Ancak şimdi, buluttaki tek bir sunucudan ibaret olan kullanıcı arayüzünüzü çökerterek birinin onu sansürlemeye çalışacağından korkuyorsunuz. Bu eğitimde, ilgilenen herkesin gelecekte erişmek üzere bir sunucuya sabitleyebilmesi (pin) için kullanıcı arayüzünüzü gezegenler arası dosya sistemine (IPFS) (yeni sekmede açılır) koyarak sansürden nasıl kaçınacağınızı öğreneceksiniz.

Tüm işi yapması için Fleek (yeni sekmede açılır) gibi üçüncü taraf bir hizmet kullanabilirsiniz. Bu eğitim, daha fazla iş gerektirse bile ne yaptıklarını anlayacak kadarını kendi yapmak isteyenler içindir.

Yerel olarak başlama

Birden fazla üçüncü taraf IPFS sağlayıcısı (yeni sekmede açılır) vardır, ancak test için IPFS'yi yerel olarak çalıştırarak başlamak en iyisidir.

  1. IPFS kullanıcı arayüzünü (yeni sekmede açılır) yükleyin.

  2. Web sitenizi içeren bir dizin oluşturun. Eğer Vite (yeni sekmede açılır) kullanıyorsanız, şu komutu kullanın:

    pnpm vite build
    
  3. IPFS Desktop'ta İçe Aktar > Klasör (Import > Folder) seçeneğine tıklayın ve önceki adımda oluşturduğunuz dizini seçin.

  4. Yeni yüklediğiniz klasörü seçin ve Yeniden Adlandır'a (Rename) tıklayın. Daha anlamlı bir isim verin.

  5. Tekrar seçin ve Bağlantıyı paylaş'a (Share link) tıklayın. URL'yi panoya kopyalayın. Bağlantı https://ipfs.io/ipfs/QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ benzeri bir şey olacaktır.

  6. Durum'a (Status) tıklayın. Ağ geçidi adresini görmek için Gelişmiş (Advanced) sekmesini genişletin. Örneğin, benim sistemimde adres http://127.0.0.1:8080 şeklindedir.

  7. Adresinizi bulmak için bağlantı adımındaki yolu ağ geçidi adresiyle birleştirin. Örneğin, yukarıdaki örnek için URL http://127.0.0.1:8080/ipfs/QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ şeklindedir. Sitenizi görmek için bu URL'yi bir tarayıcıda açın.

Yükleme

Artık dosyaları yerel olarak sunmak için IPFS'yi kullanabilirsiniz, ki bu pek de heyecan verici değildir. Bir sonraki adım, siz çevrimdışıyken bunları dünyanın erişimine açmaktır.

Çok sayıda iyi bilinen sabitleme (pinning) hizmeti (yeni sekmede açılır) vardır. Bunlardan birini seçin. Hangi hizmeti kullanırsanız kullanın, bir hesap oluşturmanız ve IPFS masaüstünüzdeki içerik tanımlayıcısını (CID) bu hizmete sağlamanız gerekir.

Kişisel olarak, 4EVERLAND (yeni sekmede açılır)'i kullanması en kolay olanı olarak buldum. İşte bunun için talimatlar:

  1. Kontrol paneline (yeni sekmede açılır) gidin ve cüzdanınızla giriş yapın.

  2. Sol kenar çubuğunda Storage > 4EVER Pin seçeneğine tıklayın.

  3. Upload > Selected CID seçeneğine tıklayın. İçeriğinize bir isim verin ve IPFS masaüstünden CID'yi sağlayın. Şu anda bir CID, Qm ile başlayan ve ardından QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ gibi base-58 kodlu (yeni sekmede açılır) bir hash'i temsil eden 44 harf ve rakamdan oluşan bir dizedir, ancak bunun değişmesi muhtemeldir (yeni sekmede açılır).

  4. Başlangıç durumu Queued (Kuyrukta) şeklindedir. Pinned (Sabitlendi) olarak değişene kadar sayfayı yeniden yükleyin.

  5. Bağlantıyı almak için CID'nize tıklayın. Uygulamamı buradan (yeni sekmede açılır) görebilirsiniz.

  6. Bir aydan daha uzun süre sabitlenmesi için hesabınızı etkinleştirmeniz gerekebilir. Hesap etkinleştirme maliyeti yaklaşık 1 dolardır. Eğer kapattıysanız, tekrar etkinleştirme sorulması için çıkış yapıp yeniden giriş yapın.

IPFS'den kullanma

Bu noktada, IPFS içeriğinizi sunan merkezi bir ağ geçidine giden bir bağlantınız var. Kısacası, kullanıcı arayüzünüz biraz daha güvenli olabilir ancak yine de sansüre dirençli değildir. Gerçek bir sansür direnci için kullanıcıların IPFS'yi doğrudan bir tarayıcıdan (yeni sekmede açılır) kullanması gerekir.

Bunu yükledikten (ve masaüstü IPFS çalıştıktan) sonra, herhangi bir sitede /ipfs/<CID> (yeni sekmede açılır) adresine gidebilirsiniz ve bu içeriği merkeziyetsiz bir şekilde sunulmuş olarak alırsınız.

Dezavantajlar

IPFS dosyalarını güvenilir bir şekilde silemezsiniz, bu nedenle kullanıcı arayüzünüzü değiştirdiğiniz sürece, onu merkezi bırakmak veya IPFS üzerinde değiştirilebilirlik sağlayan bir sistem olan gezegenler arası isim sistemini (IPNS) (yeni sekmede açılır) kullanmak muhtemelen en iyisidir. Elbette, değiştirilebilir olan her şey sansürlenebilir; IPNS durumunda bu, karşılık geldiği özel anahtara sahip kişiye baskı yapılarak gerçekleştirilebilir.

Ek olarak, bazı paketlerin IPFS ile sorunları vardır, bu nedenle web siteniz çok karmaşıksa bu iyi bir çözüm olmayabilir. Ve elbette, sunucu entegrasyonuna dayanan hiçbir şey sadece istemci tarafının IPFS üzerinde olmasıyla merkeziyetsiz hale getirilemez.

ENS aracılığıyla keşfedilebilirlik

Eğer bir ENS adını (vitalik.eth gibi) web sitenize yönlendirirseniz, bu tamamen merkeziyetsiz bir web sayfası olarak kabul edilecek ve dweb3.wtf (yeni sekmede açılır) hizmeti tarafından otomatik olarak sabitlenecektir; ayrıca tıpkı DuckDuckGo, Brave Search veya Google'ın geleneksel web için yaptığı gibi web3compass.net (yeni sekmede açılır) arama motoru üzerinden aranabilir hale getirilecektir.

Sonuç

Tıpkı Ethereum'un dapp'inizin veritabanı ve iş mantığı yönlerini merkeziyetsizleştirmenize izin vermesi gibi, IPFS de kullanıcı arayüzünü merkeziyetsizleştirmenize olanak tanır. Bu, dapp'inize yönelik bir saldırı vektörünü daha kapatmanızı sağlar.

Çalışmalarımın daha fazlası için buraya bakın (yeni sekmede açılır).