1. Anasayfa
  2. Akıllı Sözleşme

OpenZeppelin Rehberi

En İyi OpenZeppelin Kılavuzu

OpenZeppelin Rehberi
OpenZeppelin
0

OpenZeppelin Rehberi

Merkezi olmayan uygulamalar (dApp’ler) her zamankinden daha sıcak. Ancak, merkezi olmayan uygulamaların önemli güvenlik avantajlarına rağmen, bazı güvenlik ihlallerine karşı hala savunmasızdırlar. Bu, OpenZeppelin’in telafi etmeye çalıştığı bir şeydir. Bu tam kılavuz “OpenZeppelin nedir?” sorusunu yanıtlar. ve Moralis’i kullanırken OpenZeppelin‘den özelliklerin nasıl entegre edileceğine daha yakından bakacağız. Ek olarak, popüler ERC-20 belirteç standardı ile ilgili olarak OpenZeppelin akıllı sözleşmelerine bakacağız.

Statista’nın bir raporuna göre, bankacılık sektörü 2020’de blok zincir pazar payının yaklaşık yüzde 30’unu oluşturuyordu. Ayrıca, Ethereum aracılığıyla erişilebilen merkezi olmayan finans (DeFi) platformlarının popülaritesi son zamanlarda artıyor. Bu, insanların güvenliğin çok önemli olduğu bir senaryo olan dApp’leri kullanarak düzenli olarak büyük miktarlarda para transfer ettiği anlamına gelir. Ayrıca DeFi platformlarının en önemli özelliklerinden biri aracılara ihtiyaç duymamasıdır. Bunun yerine, bu kılavuzda daha sonra açıklayacağımız akıllı sözleşmeleri kullanırlar. OpenZeppelin, bir dizi incelenmiş akıllı sözleşmedir. Web3 uygulamalarınız için ihtiyati güvenlik önlemleri almanıza yardımcı olur. Denetim hizmetlerini kullanarak uygulamalarınızın bir dizi yerleşik standarda uygun olmasını sağlayabilirsiniz. Bu şekilde, suçlular sisteminizin güvenliğini tehlikeye atmaz.

OpenZeppelin nedir?

OpenZeppelin, güvenli dApp’ler oluşturmak için açık kaynaklı bir platformdur. Çerçeve, Web3 uygulamaları oluşturmak ve otomatikleştirmek için gerekli araçları sağlar. Ayrıca, her büyüklükteki şirket, sektördeki en iyi uygulamaları bulmak için OpenZeppelin‘in denetim hizmetlerine başvurabilir. Ayrıca OpenZeppelin, müşterileri arasında Ethereum Foundation ve Coinbase gibi büyük isimlere sahiptir. Ethereum projeleri için güvenlik, güvenilirlik ve risk yönetimi sağlar ve “açık ekonomiyi koruma” misyonuna sahiptir. İsteğiniz üzerine güvenlik denetimleri yapar ve dApp’lerinizin güvende olmasını sağlamak için güvenlik önlemleri uygular. Koddaki olası sorunları fark ettikten sonra, sistemdeki zayıflıkları gidermek için en iyi uygulamaları ve önerileri içeren bir rapor sunarlar.

Ayrıca OpenZeppelin Defender, OpenZeppelin’in web uygulamalarından biridir. Akıllı sözleşme operasyonlarını güvence altına almak ve otomatikleştirmek için bir platformdur. Defender’ı kullanarak ekibinizle işbirliği yapabilir, farklı iş akışları tanımlayabilir, sözleşmelerle manuel olarak etkileşime girebilir ve finansal işlemler gerçekleştirebilirsiniz. Ayrıca Defender, kullanıcı dostu bir kullanıcı arayüzüne ve işlemlerinizi göndermek ve otomatik komut dosyaları oluşturmak için gerekli altyapıya erişim sağlar. Ayrıca OpenZeppelin, şu anda 3.000’den fazla kamu projesini destekleyen akıllı sözleşmeler geliştirmek için etkileyici bir kitaplık oluşturmuştur.

OpenZeppelin geliştiricileri, kitaplığı içinde ERC-20 ile ilgili OpenZeppelin sözleşmeleri de dahil olmak üzere modüler ve yeniden kullanılabilir sözleşmeler geliştirmek için Solidity’nin programlama dilini kullanır. Ayrıca topluluk, OpenZeppelin‘e göre sektördeki en popüler sözleşmeleri test etmiş ve gözden geçirmiştir. “OpenZeppelin nedir” sorusunu yanıtladığımıza göre, şimdi yeteneklerini keşfetme zamanı. Son olarak, Moralis’in Web3 platformu ile nasıl entegre edileceğini detaylandıracağız.

OpenZeppelin Nasıl Kurulur?

Akıllı sözleşme ile yeni bir OpenZeppelin projesi oluşturmak için öncelikle sisteminize “komut satırı arayüzü” (CLI) yüklemelisiniz. CLI, düğüm projenize bir bağımlılık olduğundan, npm’yi (düğüm paket yöneticisi) yüklemeniz gerekir. OpenZeppelin, geliştiricilere CLI’yi küresel yerine yerel olarak yüklemelerini önerir. Bu şekilde, her proje için farklı CLI sürümlerine sahip olabilirler ve olası küresel bağımlılık sorunlarından kaçınabilirler.

CLI’yi kurmak için aşağıdaki komutu girin:

$ npm install @openzeppelin/cli

Yeni bir OpenZeppelin projesini başlatmak için terminalinizin içine (düğüm projenizin içinde) aşağıdaki komutu yazın:

$ npx openzeppelin init

CLI’yi yüklemekle ilgili daha ayrıntılı bir açıklama istiyorsanız, lütfen OpenZeppelin belgelerini ziyaret edin.

Sonraki adımda, projenizin adını ve sürümünü belirtin ve ardından yeni projenizi çalıştırmak için birkaç dosya ve dizin oluşturun. Daha önce de belirtildiği gibi, OpenZeppelin‘in akıllı sözleşmeleri Solidity‘de yazılmıştır, bu nedenle dosya adı “sl” ekine sahip olacaktır. Hataları kontrol etmek ve sözleşmenizi derlemek için “oz compile” komutunu kullanın. Sözleşmenizi derlemeyi unutursanız, CLI bunu yapar çünkü sözleşmenizdeki değişiklikleri sürekli olarak izler. Bir komutu çalıştırdığınızda ve sözleşmeyi değiştirdiğinizde, derlemeyi otomatik olarak yönetecektir.

Ardından, Ethereum’da dApp geliştirme için yerel bir blok zinciri oluşturun. En iyi simülatörlerden biri, hakkında detaylı bir yazımız olan Ganache‘dir. Yüklemek için “npm install ganache-cli” komut satırını kullanın. Ganache kullanarak yeni bir geliştirme ağı başlatmak için aşağıdaki komutu ayrı bir terminale yazın:

 $ npx ganache-cli  --deterministic

Ganache üzerinde yeni geliştirme ağını kurduktan sonra “oz create” komutunu kullanarak yeni bir sözleşme oluşturabilirsiniz.

Solidity Geliştirme Yol Haritası
Solidity Geliştirme Yol Haritası

Akıllı Sözleşmeler nedir?

OpenZeppelin sözleşmelerine değinmeden önce akıllı sözleşmeler kavramına bakmamız gerekiyor. “Akıllı sözleşme” terimini ilk kez 1997 yılında Nick Szabo adlı bir bilgisayar bilimcisi ve kriptografi uzmanı ortaya attı. Dağıtılmış defterlerde saklanan sözleşmeleri ifade eder. Akıllı sözleşmeler, gerçek dünyadaki sözleşmelerle aynıdır, ancak programlama dilleriyle yazılır ve blok zincirlerinde saklanır. Kitle fonlaması web siteleri, gerçek dünya ile akıllı sözleşmeler arasındaki farkı göstermek için iyi bir örnek olabilir. İş modellerine göre, bağış toplama siteleri proje sahipleri ve finansal sponsorlar arasında bir aracı rolü oynamaktadır.

Proje sahipleri bir finansman hedefi belirleyecek ve mali destekçilerden para toplamaya başlayacak. Bağış toplama web sitesi, proje sahipleri ve finansal destekçiler arasında yer alacaktır. Ürün ekibine komisyonunu ve parasını alacak ve her iki tarafın da web sitesine güvenmesi gerekiyor. Amaca ulaşırlarsa parayı proje sahibine aktaracak; aksi takdirde parayı sponsorlara iade edin. Akıllı sözleşmelerde üçüncü taraf yoktur ve programın kendisi bağış toplamayı yönetir. Fonlama hedefine ulaştığında süreci durdurur ve parayı ürün ekiplerine aktarır. Proje gerekli parayı toplayamadığında, destekçilerine iade edecek. Bu sözleşmelerde hukuk sistemlerine veya kolluk kuvvetlerine ihtiyaç yoktur. Geliştiriciler, sözleşmelerin şartlarını, otomatik olarak yürütülen sözleşmenin koduna ekler.

OpenZeppelin Sözleşmesi nedir?

Akıllı sözleşmeler kullanılarak anonim taraflar arasında gerçekleştirilen işlemler güvenilir, değişmez, dağıtılabilir, izlenebilir ve değiştirilemezdir. Başka bir deyişle, bir işlem gönderdikten sonra hiç kimse sözleşmeyi manipüle edemez. Peki, OpenZeppelin sözleşmesi nedir? Benzer şekilde, OpenZeppelin sözleşmeleri, Solidity for Ethereum ve diğer DLT’ler (dağıtılmış defter teknolojileri) ile yazılmış akıllı sözleşme kitaplıklarıdır. Bu sözleşmeler, topluluk tarafından incelenen bilgisayar programlarıdır ve dApp geliştirme için güvenli seçeneklerdir. Sözleşmeler tamamen modüler ve yeniden kullanılabilir niteliktedir ve ERC (ERC, “Ethereum Request for Comments” anlamına gelir) standartlarının en çok kullanılan uygulamalarını içerir. Bu, şirketlerin akıllı sözleşmeler için güvenlik özellikleri ve araçları geliştirmesine gerek olmadığı anlamına gelir. Bunun yerine, OpenZeppelin arşivinde depolanan önceden paketlenmiş akıllı sözleşmeleri dağıtmaya odaklanabilirler.

OpenZeppelin Sözleşme Sihirbazı, sözleşmelerinizi yeniden başlatabileceğiniz çevrimiçi etkileşimli bir oluşturucudur. Sihirbaz, belirteç seçimi, ayarlar, özellikler, erişim denetimi ve etkileşimli kod gösterimi dahil olmak üzere beş farklı bölümden oluşur. Şu anda sihirbaz üç ERC standardını desteklemektedir:

  • ERC20 – Fiat para birimleri gibi EIP-20’yi takip eden değiştirilebilir bir token standardı.
  • ERC721 – EIP-721’i izleyen bir NFT belirteç standardıdır.
  • ERC1155 – Hem takas edilebilir hem de takas edilemez belirteçleri temsil eder. Çok jetonlu bir sözleşme olarak bilinir ve EIP-1155’i takip eder.

Her OpenZeppelin sözleşmesinin kararlı bir API’si vardır ve hepsini Ethereum projelerinize aktarabilirsiniz. Platformun geliştiricileri, kullanıcılarına kodu değiştirmemelerini ve bunun yerine kodu OpenZeppelin’den alıp olduğu gibi tutmalarını tavsiye ediyor.

Blockchain ​​Developer Olmak
Blockchain ​​Developer Olmak

Token Standartları ve ERC-20 ile İlgili OpenZeppelin Sözleşmeleri

Belirteç, akıllı sözleşmelere uygulanan bir dizi kural ve standarttır. Kullanıcılar bu jetonları Ethereum’un blok zinciri ekosisteminde satabilir, satın alabilir ve takas edebilir. IOU’lar, kuponlar, zaman, sanal evcil hayvanlar ve hatta para ve hizmetler gibi somut nesneler dahil olmak üzere çok çeşitli varlıkları temsil ederler.

ERC-20, Ethereum topluluğu tarafından değiştirilebilir varlıklar için geliştirilen popüler token standartlarından biridir. Fungible token’lar, fungible token’ların (NFT) tam tersidir. Eşit değerde olduklarından, takas edilebilir jetonları, bir Bitcoin için başka bir Bitcoin gibi başka bir takas edilebilir jetonla değiştirirsiniz. Ancak, benzersiz olan, değiştirilemez jetonlarla, bunları başkalarıyla değiştiremezsiniz. Örnek olarak, çizimleriniz somut değil ve tam olarak benzerlerini bulamıyorsunuz. ERC-20 tabanlı bir OpenZeppelin sözleşmesi, değiştirilebilir jetonları takip eder ve oy hakları ve bahisle ilgili akıllı sözleşmeler için uygundur. OpenZeppelin’in ERC-20 sözleşmeleri, çeşitli uzantıları olan ERC-20 arayüzünün temel uygulamasını temsil eder. Bu uzantıların her biri farklı işlevlere sahiptir. Örnek olarak, “ERC20Detailed” sözleşmesi, OpenZeppelin’in ERC-20 sözleşmesine ad, sembol ve ondalık sayılar gibi ayrıntıları ekler. Bir diğeri ise maksimum limitli tokenlerle ilgili adresleri belirtmek için kullanılan “ERC20Capped”dir.

OpenZeppelin Kullanım Örnekleri

OpenZeppelin’i kurduktan sonra, incelenmiş sözleşmelerini çeşitli Ethereum projelerinde kullanabilirsiniz. OpenZeppelin örnek kullanım durumları aşağıdaki öğeleri içerir ancak bunlarla sınırlı değildir:

Erişim Kısıtlaması – Erişimi kontrol etmek, OpenZeppelin’in ana kullanım durumlarından biridir. Bu sözleşme, bir sistemdeki belirli kaynaklara ve işlevlere kimlerin erişebileceğini belirlemenize olanak tanır. Bu yetenek sayesinde, belirli varlıklara oylama, para basma, gönderme işlemleri vb.

Mülkiyet – “Sahip olunabilir”, sözleşmelerde mülkiyeti tanımlayabileceğiniz başka bir OpenZeppelin sözleşmesidir. Başka bir deyişle, bu sözleşmenin uygulanması, belirli kuruluşların belirli yetenekler edinmesine yardımcı olacaktır. Temel sözleşme için uzantıları kullanarak, sahipliği bir hesaptan diğerine de aktarabilirsiniz. Bu sözleşmenin bir başka uzantısı sayesinde, önceki mülkiyetten vazgeçebilirsiniz.

Hesaplamalar – “SafeMath”, kesin ve doğru hesaplamalar yapmaya yardımcı olan kullanışlı bir OpenZeppelin sözleşmesidir. Bu kitaplık, özellikle Solidity’de kodlama yaparken işlem taşmasını önlemek için kullanışlıdır. Belirli bir aritmetik işlemdeki değer izin verilen aralıkta olmadığında durum ortaya çıkar.

Jetonlar – OpenZeppelin, geliştiricilerin takas edilebilir jetonlar oluşturması ve bunları ağınızdaki katılımcılara tahsis etmesi için gerekli altyapıyı oluşturdu. Bu sözleşmeyi kullanarak fiyatları izleyebilir, jeton transfer yöntemlerini belirleyebilir, satın alma işlemlerini doğrulayabilir ve daha fazlasını yapabilirsiniz.

Ödemeler – Çeşitli yararlanıcılarla bir dApp geliştiriyor musunuz? OpenZeppelin “paymentSplitter” sözleşmesini kullanarak dApp satın alımlarınızdan elde ettiğiniz geliri farklı taraflara gönderebilirsiniz.

Ödeme İstasyonu Ağı – Bu sözleşme, kullanıcılarınız adına ödeme yapacağınız dApp’ler geliştirmenize yardımcı olur. Bu yöntemde, kullanıcıların cüzdanlarında ETH tutmaları gerekmez ve bunun yerine onlar için ödeme yaparsınız.

OpenZeppelin Kitaplıklarını Moralis ile Entegre Etme

Daha önce belirtildiği gibi, OpenZeppelin, Ethereum ağı veya diğer blok zincirleri üzerinde dApp’ler oluşturan geliştiriciler için onaylanmış sözleşmeler sağlar. Moralis, Ethereum ile tamamen uyumlu olduğundan, Moralis projelerinizde tüm modüler OpenZeppelin sözleşmelerini kullanabilirsiniz. Moralis’in mükemmel platformu, blockchain uygulamaları oluşturmak için ihtiyaç duyacağınız gerekli araçları ve hizmetleri sağlar. Platform sayesinde bir kullanıcı arayüzüne, kullanıcı kimlik doğrulamasına, veri yönetimi araçlarına, bulut depolamaya ve Web3’e erişebilirsiniz. OpenZeppelin’in ERC-20 sözleşmelerini kullanarak ERC-20 olaylarının nasıl konuşlandırılacağı ve izleneceği hakkında daha fazla ayrıntı için belgelerimizi okuyun.

Kullanıcı kimlik doğrulaması için tarayıcınızda da MetaMask kurmanız gerekir. Cüzdan adresiniz yoksa MetaMask’ı “metamask.io” adresinden indirin. Her şey kurulup hazır olduğunda, Moralis ile OpenZeppelin sözleşmelerini dağıtabilirsiniz. Ek olarak, Solidity‘de yazılan kodu yazmak, derlemek ve hata ayıklamak için Remix’i kullanmanız gerekir. Tarayıcınızda açabilir veya Ethereum’un resmi web sitesine gidebilirsiniz.

OpenZeppelin – Sonuç Bağlamı

Şu anda “OpenZeppelin nedir?” sorusunun cevabını biliyorsunuz. ayrıca OpenZeppelin sözleşmelerinin ne olduğunu da anlıyorsunuz. ERC-20 belirteç standardı ile ilgili OpenZeppelin sözleşmelerine baktık ve OpenZeppelin örnek kullanım durumlarını detaylandırdık. Şimdi OpenZeppelin kitaplıklarını Moralis’e entegre ederek projelerinizi oluşturma ve başlatma zamanı.

Solidity Eğitimi
Solidity Eğitimi

Akıllı sözleşme geliştirme yolculuğunuz hakkında daha iyi rehberlik almak için Solidity nedir? Ethereum Akıllı Sözleşmelerinin Dili Rehberi içeriğimize göz atın. Dilerseniz Yeni Başlayanlar için Solidity – Akıllı Sözleşme Geliştirme Hızlandırılmış Kursuna katılın.

Çalışmaya nereden başlayacağım diyenler için Blockchain ​​Developer Olmak İçin Yol Haritası içeriğine de muhakkak bakın.

Bu makaleyi okuduğunuz için teşekkürler! Bana destek olmak isterseniz;

Beni TwitterLinkedin ve YouTube‘da takip edin.

Kısa bir yorum bırakmayı UNUTMAYIN!

solidity101 - Solidity, 2015 yılında Christian Reitwiessner liderliğinde piyasaya sürülen, büyük harf kullanımına göre ikinci en büyük kripto para piyasası olan Ethereum tarafından oluşturulan yepyeni bir programlama dilidir.

Yazarın Profili
İlginizi Çekebilir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir