Niyazi Çoban Jr.
3 min readApr 7, 2022

--

İlk Merkeziyetsiz Uygulamam, WAVES ve RIDE Programlama Dili

RIDE’ı anlamak

Geçtiğimiz dönemde insanlık için küçük benim için büyük bir adım atarak ilk merkeziyetsiz (Decenteralized) uygalamalarımı yaptım. (Wordle on WAVES: https://wavedle.icu ) Bunun için seçtiğim platform, 2018 hypeında tesadüfen rastladığım ve zamanla benimsediğim WAVES ekosistemi oldu.

Özellikle son zamanlarda meydana gelen balina savaşlarıyla adından sıkça söz ettirse de, WAVES yeni bir proje değil. Çok atılıp kapılmayan, yavaş yavaş ve emin ve sağlam adımlarla ilerlediğini düşündüğüm bir proje. Bu yüzden piyasada nispeten daha az biliniyor.

Platform içerisinde uygulama geliştirmek için kendi yazılım dili var. Adına RIDE demişler. Programlama deneyimi olan birisi için uygun dökümantasyonla iki günde rahatça öğrenilebilecek bir dil. If yine bildiğiniz If sonuçta :).

Ama for bildiğiniz for değil, zira for yok. Yukarıdan aşağıya sadece bir sefer çalışan bir program yapısına sahip, looplar yok. Non-Turing meselesi de buradan geliyormuş. Değişkenin değerini 0 verip de sonradan o değişkenin değerini değiştireyim 1-2 yapayım diye bişey yok. Başta ne dendiyse o. Bu durum istediğinizi yapmak için yeni yollar inşa etmeye yönlendiriyor sizi. Ama aynı zamanda sonsuz loopları engellediği için de network ve uygulama zaafiyetlerini azaltıyor.

Yazdığınız kodlar, dApp’in Script kısmında açık açık görünüyor. Her şey tam şeffaf, tam open source. Benim yazdığım uygulamada gizli kalması gereken bir bilgi olduğu için mecburen bir ayağını blockzincirin dışına inşa ettim.

RIDE’ı öğrenmek

https://docs.waves.tech/en/ride/ sayfasında çok güzel ve özenle hazırlanmış bir RIDE dökümantasyonu mevcut. Temel seviyede programlama bilgisi olan birisine anlatır gibi; her şeyi tane tane, güzelce, sabırla anlatmışlar. Çok fazla olmasa da bazı örnek kodlar verilmiş çalışma mantığını göstermek ve deneyerek uygulamalar geliştirmek için.

Komünite desteği konusunda ne yazık ki diğer diller kadar fazla yol gösterici yok, ancak WAVES platformunun her şeyinde olduğu gibi Telegram üzerinde bir araya gelen RIDE geliştiricileri de sorduğunuz her soruyla ilgileniyor, çözümlerde yardımcı oluyorlar.

Grup burada https://t.me/waves_ride_dapps_dev

Grubu, uygulamayı yaptıktan sonra gördüm.

RIDE’ı kullanmak

Bunlar yanında https://waves-ide.com adresinde online kod editörü de var. Otomatik tamamlamadan tutun da yazdığınız scriptleri testnet veya mainnet’e yüklemeye kadar ihtiyaç duyacağınız hemen hemen her şeyi buradan halledeibliyorsunuz. RIDE’ın bir de VSCode eklentisi olmasına rağmen hiç kullanmadım, her şeyi waves-ide üzerinden hallettim. Gerçek zamanlı olarak yazdığınız kodun hata mesajlarını da görebiliyorsunuz. Eğer kodunuzda hata varsa blockchaine yüklemenize izin vermiyor. Hatanın nerede olduğunu izah ediyor size. Gerçekten kullanışlı.

Dökümantasyonda genel olarak her şey tamam olsa da bazı noktaların gözden kaçtığını söylemem gerek. Mesela ve beni en çok yoranı; Callable functionlarda dönüşlerde array mantığıyla yapılacak işleri sıralamam gerektiğini 2. gün anlayabildim. Bazı build-in fonksiyonların özellikle data type olarak hangi değerleri alabilecekleri tam bir karmaşa olmuş. String mi, base58 mi, Address mi olacak belirsiz. Ne olacağını söylemişler ancak hangisi nerede kullanılır nasıl yapılır öğrenebilmek anlayabilmek için fazlaca deneme-yanılma ve vakit harcamak gerekecek gibi.

“My code doesn’t work, I don’t know why. My code works I don’t know why.” durumlarını her zaman olmasa da fazlaca yaşadım ilk dApp’imi yazma sürecimde.

Belki de dökümantasyonda yazılmıştır da benim gözümden kaçtı, bilemiyorum. Ancak objektif bir inceleme yazısında bundan bahsetmem gerektiğini düşündüm. Örnek kodlara bakarak tahmin yürütüp buldum öyle olması gerektiğini. Bulunmaz değil yani, bulunuyor ancak yolun çok başında olanları biraz zorlayabilir bu durum.

İlk uygulamanızı yazdıktan sonra testnet’te deploy edebilir, çalışıp çalışmadığını, ne durumda olduğunu test edebilirsiniz. Bunu yapmak için waves-ide.com ‘u veya Waves Keeper uygulamasını kullanabilirsiniz. Testnet’te uygulamanızı barındırmak tamamen ücretsiz. Testnet explorer sayfasında testnet Faucet de var hem.

Ayrıca WAVES yanında bir WAVES forku olan Turtle Network de RIDE dilini kullanıyor. Yani yazacağınız uygulamalar aynı kodlarla Turtle Network’de de çalışacaktır.

Overall RIDE

Blockchain programlama konusunda çekincelerim vardı. Çok zor ve karmaşık olacağını düşünmüştüm ama açıkçası herhangi bir programlama dilini derdini anlatacak seviyede bilen herhangi birisi rahatlıkla hemen bugün ilk merkeziyetsiz uygulamasını geliştirmeye başlayabilir. Yukarıda verdiğim sitelerde geçirilecek 2-3 saat ve öğrenme / üretme isteğinden başka bir şeye ihtiyacınız yok :)

--

--