Solana ağında baştan sona bir program oluşturma örneği ve adımları
Selam herkeze, internet de genelde örnekler arasında 100% döngüyü sağlayan pek örnekler bulamadığım için madem öyle ben bildiklerimle bir örnek yapıyım dedim. Bu seride 3 farklı alan anlatıcağım, tabi içerisinde bir çok teknoloji var.
Sistemler
- Anchor lang ile bir solana programı geliştirmek
- Geliştirdiğimiz Anchor programına front-end (Vue) üzerinden bağlanmak ve işlem yapmak
- Solana pay ile geliştirdiğimiz anchor programına qr ile işlem talebi göndermek
Tüm adımlar ve kodlar Github reposunda
https://github.com/berkayoztunc/purple-piggy/wiki
Başlamadan önce gereksinimler
Eğitime başlamadan önce bir çok yazılım vs kurmanız gerekmekte ama ben bunuda biraz kolaylaştırmak adına bazı öneriler ekledim.
Kurulumlu gereksinimler
- ide
https://medium.com/nerd-for-tech/install-visual-studio-code-fe3908c5cf15 - Phantom cüzdan
https://phantom.app/ - Solana CLI wallet
https://docs.solana.com/cli/install-solana-cli-tools - node@18
https://nodejs.dev/en/learn/how-to-install-nodejs/ - rust 1.69.0
https://www.rust-lang.org/tools/install - cargo 1.69.0
https://github.com/rust-lang/cargo - Anchor lang
https://www.anchor-lang.com/docs/installation - firebase cli
https://firebase.google.com/docs/cli
Okey eğer bunları kurmaya üşendiyseniz o zaman direk 2 site size yeterli olucaktır ama örnek repo kurulum yapılmış şekilde kodlar barındırmakta.
Sistem özeti
Bu program ne iş yapıyor ?
Örnek de ki program verilen cüzdan adreslerini(Pubkey) ve bu cüzdan oranlarına göre bir kumbara hesabı oluşturuyor. Oluşan bu cüzdana yarırılan para orana göre dağılım sağlıyor, ve cüzdan oluştururken verilen pubkey’ler bu kumbaradan para çekebiliyor, özetlemek gerekirse basit ama yinede temel mekanikler içeren bir örnek.
Programın amacı ve vizyonu nedir ?
Bir bağış, ödeme veya ortak birikim yaparken, güven odaklı para dağılımı sağlanması. Temelde inovasyonel olan kısım dağılım oranlarının solana programı tarafından hesaplanması ve manüpilasyona kapalı olması.
Programın çalışmasına bir örnek;
Solana superteamtr bir bounty yayınladı ve bu bounty de bir tutorial yapılarak ödül kazanılma durumu söz konusu. PurplePiggy(bizim örnek programın adı) ile 4 farklı developer %25 olucak şekilde bir kumbara oluşturuyoruz, olurda etkinliği kazanırsak, ödül bu kumbaraya yatırılıyor ve tüm geliştiriciler başlangıçta belirledikde orana göre kumbaradan paralarını alabiliyorlar 🥳 örnek aşırı gerçekçi bu arada. Micro ölçekli örneği bu ama bunu geniş ölçekli bir alanda işletmelerin gelirlerini kırılımlamalarını da bu sayede sağlayabilirsiniz.
Evet sanırım yapıcağımız örneğe biraz hakim oldunuz o zaman hemen sistemi adım adım geliştirdiğimize geçelim
Solpg üzerinde kodları açmak
Solpg üzerinde ilk defa siteye giriş yapıyorsanız sizden bir geliştirici cüzdanı kurmanızı isticek ve anahtar dosyalarını indirmenizi önericek. Dosyayı kaydedip yeni geliştiric cüzdanınız açılmış olucak
Bu işlemden sonra “solana airdrop 2” yazarak 2 sol devnet SOL ü alabilirsiniz. Bu işlem ardı ardına yapılamaz belirli aralıklarda yapmanızda fayda var. Ki muhtemelen 2 sol programı deploy etmenize yetmiyicek o yüzden siz şimdiden yapmaya başlayın 😉
solpg’nin sunmuş olduğu güzel sistemlerden biri olan github üzerinden direk ide açma özelliğini olması. Bu özellik için
“https://beta.solpg.io/github” linkinden sonra açmak istediğiniz reponun içindeki program klasörünü vermeniz gerekmekte. Sonrasında repoyu otomatik olarak sistem kendi içinde web editörde açıcaktır.
https://beta.solpg.io/github/berkayoztunc/purple-piggy/tree/master/programs/puprle-piggy
Şimdi kodları açabildiniz, ve hesabınızda da yeterli SOL var ise programı build alıp deploy etme zamanı gelmiştir. Bunun için SOL menüde bulunan çekiç ikonu’na tıklayabilirsiniz. ilk başta build buttonu tek başınıca çıkıcaktır. Bunun sebebi yeni anchor kurulumu yapmış olmanız. İlk build sonrasunda programID’niz değişicektir. Github reposunda olan programID bana ait, bu yüzden yeni bir anchor ile yeni bir ID üretebilirsiniz. Normal kurulumda ise “anchor deploy” çalıştırdığınızda çıktı olarak size yeni bir ID verir ve o ID’yi lib.rs ve anchor.toml dosyasına manuel yazmanız lazım.
Eğer işlemleriniz başarsız oluyorsa mutlaka hesabınızdaki SOL miktarınız yetersizdir. O yüzden airdrop isteyin ve tekrar deneyin.
Tüm bu işlemlerden sonra sisteminiz artık test etmek üzere hazır durumda ve tebrikler programınızı devnet üzerine yüklediniz. Artık solpg üzerinden sisteme inputlar gönderip içeride oluşan PDA’leri listeleyebilirsiniz.
EK BİLGİ : eğer kendi bilgisayarınız üzerinden ilerlediyseniz sol menüde “update program id” sekmesinden local olan program id’nizi güncelleyebilirsiniz.
Manuel kurulum ve diğer adımlara devam etmek için github üzerindeki wiki bölümünden faydalanabilirsiniz. Tüm detaylar wiki ve kod içinde yer almaktadır.
Bonus
Eğer solana cli wallet ve gerekli gereksinimleri kuramadıysanız burada eski olan bir örnek bulunmakta localnet üzerinde nasıl kurucağını anlatan detaylı bir video