Solidity nedir ? Smart Contracts nedir ? Solidity ile yazılım geliştirirken gerekli araçlar ve kurulumları.
Solidity nedir sorusunu kısaca açmak gerekirse Ethereum blockchaininde smart contract yazmak için kullanılan object oriented bir yazılım dilidir. Dr.Christian Reitwiessner ve ekibi tarafından geliştirilmektedir. Javascript’e benzeyen syntax’i sayesinde web developerlar bu ortama çok hızlı bir şekilde adapte olabilir.
Smart Contracts ( Akıllı sözleşmeler) ise programlanabilir protokollerdir. Para , mülk vb değerli herhangi bir şeyi herhangi bir ara bulucunun hizmetlerinden faydalanmadan önceden belirlenmiş kurallar çerçevesinde transferini sağlayan eğer varsa transfer işlemleri tamamlandıktan sonra yapılacak işleri otomatize eden kod bloklarıdır.
İnternet’te bir çok yerde daha geniş ve detaylı tanımlamalar ve örnekler bulabilirsiniz. Bu konu ile alakalı bir çok ingilizce kaynak bulunmasına rağmen doyurucu bir Türkçe kaynak ben şahsen bulamadım. Bende kendim için aldığım notları ve kendimi geliştirmeye çalışırken ki yaşadığım sıkıntıları ve çözümlerini bu blog altında paylaşmaya karar verdim.
Solidity ve Ethereum blockchainin de yazılım geliştirmek için birden fazla IDE / Framework ve test ortamı mevcut. Ben bu yazımda kısaca kendi kullandığım IDE leri programları vs leri tanıtıp kurulumlarını nasıl gerçekleştireceğimizi anlatacağım. Anlatacaklarım OS X işletim sisteminde olup windows işletim sistemi içinde aynı paketlerin windows için olanını kurup kullanabilirsiniz.
Öncelikle bilgisayarımızda xcode command line paketinin yüklü olması gerekiyor.Bilgisayarınızda xcode command line’ın yüklü olup olmadığını xcode-select -p yazarak anlayabilirsiniz.Eğer karşınıza şöyle bir yazı çıkarsa /Applications/Apple Dev Tools/Xcode.app/Contents/Developer command line bilgisayarınızda yüklü demektir. Değilse de xcode-select --install yazarak yükleyebilirsiniz. Karşınıza alttaki gibi bir diyalog penceresi açılacak , install deyip kurulumu tamamlayabilirsiniz.
İkinci olarak yüklememiz gereken tool ise Homebrew.Homebrew bir paket yöneticisidir. Homebrew’ı bu sayfadaki direktifleri uygulayıp kurabilirsiniz. Terminal ekranında çalıştırmamız gereken ruby komutu şu şekilde. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Bu şekilde bir ekranla karşılaşmanız gerekir.brew --version komutuyla düzgün yüklenip yüklenmediğini kontrol edebilirsiniz. Homebrew yükledikten sonra brew install node kodu ile node.js i de yüklüyoruz. Yükledikten sonra brew upgrade node komutu ile de kullanılan son stabil versiyona upgrade edebiliriz. Tüm bu adımları tamamladıktan sonra sıra geldi brew e ethereumu source liste eklemeye. Eklemeyi brew tap ethereum/ethereum komutuyla hallettikten sonra brew install ethereum ile de ethereum repository sini kurabiliriz. Yüklenmesi bir kaç dakika alıyor. brew upgrade ethereum komutuyla da zaman zaman update mi diye kontrol edebilirsiniz.
Sıradaki kurmamız gereken tool testrpc. Testrpc node js le yazılmış bir ethereum node simulatörüdür. Amacı ise test ve development ortamı için hızlıca bir ethereum nodu ayaklandırmanızı sağlar. İlerki yazılarım da da bahsedeceğim ama yine bu yazıda da olsun testrpc yi her yeniden başlattığınızda smart contract larınızı tekrar yüklemeniz gerekir ve testrpc gerçek bir node değil yanlızca bir simülatördür. Smart contract larınızı live a almadan önce kesinlikle testnet te deneyiniz . Şimdi gelelim kuruluma. Kurulum için kullanacağımız komut npm install -g ethereumjs-testrpc
Testrpc yi kurduktan sonra edinmemiz gereken bir sonraki tool ise Truffle. Truffle smart contract larınızı kolay ve hızlı bir şekilde develop ve test etmeniz için hazırlanmış bir framework. Aynı işi yapaban bir çok alternatifi mevcut ama community tarafından uzak ara en çok kullanılan framework olduğu için ben bunu kullanıyorum ve ilerdeki yazılarda da bunun üzerinden gideceğim. npm install -g truffle komutuyla hızlı bir şekilde kurabilirsiniz.npm update -g truffle komutu ilede son versiyona upgrade edebilirsiniz.
Son olarak bize smart contract larımızı yazmak için bir text editör lazım. Ben bunun için ATOM kullanıyorum. www.atom.io adresinden indirip kurabilirsiniz. Atom kendi package managerı ile birlikte geliyor. Sadece text editör için extension yüklememiz gerekiyor. Atomu kurdugunuzda apm ( atom package manager) da yüklenmiş olması gerekiyor. Kontrol etmek için wich apm yazıp düzgün bir şekilde yüklenip yüklenmediğini kontrol edebilirsiniz. Eğer sorunsuz bir şekilde yüklenmiş ise apm install language-ethereum yazıp solidity için gerekli paketi yükleyebiliriz.
İlerki yazılarda tüm bu tool ları kullanmayı göreceğiz. Şimdilik kalın sağlıcakla.
Basarili bir yazı. Baska yazilarinizi da merakla bekliyorum.