Golang Decentralized Storage

Furkan Samaraz
2 min readJun 14, 2022

Web3 ?

Web 3.0, Bitcoin ve Ethereum gibi merkeziyetçi olmayan çeşitli ağlar tarafından mümkün kılınan bir dijital teknoloji anlamına gelir. Bu ağların temel yeniliği, tek bir şirket veya kuruluşun kontrolünde olamayan, herkesin güvenebileceği platform ve ortamların oluşturulmasını hedeflemektedir.

IPFS Nedir?

IPFS; veriler, web siteleri, dosyalar ve uygulamalar dahil olmak üzere her türlü içeriği depolamak ve bu içeriğe merkezi olmayan bir şekilde erişebilmek için tasarlanmış bir protokol olarak tanımlanabilir. IPFS, dosyaları depolamak ve dosyalara erişmek için P2P (Peer-to-peer ya da P2P olarak tanımlanır. Peer eş, denk demektir. İki veya daha fazla istemci arasında veri paylaşmak için kullanılan bir ağ protokolüdür.) tabanlı merkeziyetsiz bir alternatif olarak tasarlandı. Aslında tasarlanan bu çalışma torrentteki çalışma prensibi ile benzerlik gösteriyor çünkü torentte de data karşı taraftaki eşlerden data blokları halinde çekiliyor.

IPFS Alternatifi;

  • SWARM

IPFS’in Dezavantajı

IPFS en büyük sorunu, teknoloji nispeten yeni olduğu için, yani henüz ana akım olmadığı için dosyaları sürekli olarak erişilebilir kılmakta yaşıyor. Eğer bir dosyanın kopyası sadece birkaç node’da bulunuyorsa ve bu node’lar o sırada çevrimdışıysa dosya ulaşılamaz olur. Tam olarak torentte bir dosyayı indireceğimiz zaman seeder olmaması gibi.

Bunu aşmanın iki yolu var:

1- Node’ları sürekli online olmak konusunda teşvik etmek

2- Dosyaları proaktif olarak dağıtmak ve belirli sayıda kopyanın mevcut olduğundan emin olmak.

Bugün, blockchain tabanlı çeşitli dosyalama ve depolama projeleri bu yöntemleri kendi çalışma sistemlerine entegre ediyorlar.

Golang IPFS Example

Web3 Token

  • https://web3.storage/ sitesine giderek hesap oluşturuyoruz ve HOME/TOKEN alanına giderek token oluşturuyoruz.
  • Oluşturduğumuz Token’ i ;

“conn, err :=w3s.NewClient(w3s.WithToken(“TOKEN”))’”satırın daki. TOKEN alanına yapıştırıyoruz.

Github: https://github.com/FurkanSamaraz/Golang_IPFS_Token-Url

--

--