Merkeziyetsiz kullanıcı arayüzleri için IPFS
İ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.
-
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 -
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.
-
Yeni yüklediğiniz klasörü seçin ve Yeniden Adlandır'a (Rename) tıklayın. Daha anlamlı bir isim verin.
-
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/QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJbenzeri bir şey olacaktır. -
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. -
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:
-
Kontrol paneline (yeni sekmede açılır) gidin ve cüzdanınızla giriş yapın.
-
Sol kenar çubuğunda Storage > 4EVER Pin seçeneğine tıklayın.
-
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,
Qmile başlayan ve ardındanQmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJgibi 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). -
Başlangıç durumu Queued (Kuyrukta) şeklindedir. Pinned (Sabitlendi) olarak değişene kadar sayfayı yeniden yükleyin.
-
Bağlantıyı almak için CID'nize tıklayın. Uygulamamı buradan (yeni sekmede açılır) görebilirsiniz.
-
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).