Solidity, akıllı sözleşme yazmak için kullanılan nesne yönelimli bir programlama dilidir. Çeşitli blockchain platformlarında akıllı sözleşmeleri çalıştırmak ve yürütmek için kullanılır. Ethereum gibi blockchain platformlarında akıllı sözleşmeleri imzalamayı sağlayan eski Ethereum çekirdeği geliştiricilerinden Gain Wood, Christian Reitwiessner, Alex Beregszaszi ve Yoichi Hirai tarafından geliştirildi.
Solidity başlangıçta Ağustos 2014’te Gavin Wood tarafından önerildi; daha sonra Ethereum projesi bünyesindeki Christian Reitwiessner yönetimindeki Solidity ekibi tarafından tarafından yönetildi. Ethereum Sanal Makinesi’ni (EVM) hedeflemek için tasarlanmış üç dilden biridir (diğerleri Serpent ve LLL’dir).
Günümüzde Solidity, Ethereum’daki ana dildir. Ayrıca Ethereum ile rekabet eden bazı diğer blockchain platformlarda da kullanılır. SWIFT, Burrow’da çalışan Solidity’yi kullanarak bir konsept ispatını dağıttı.
Cornell Üniversitesi’nden bir araştırmacı, 2016’da gerçekleşen DAO saldırısında Solidity’nin kısmen sorumlu olduğunu belirtti. Bu aslında DAO sözleşmesinde bir kusur veya istismar değildi: teknik olarak EVM amaçlandığı şekilde çalışıyordu, ancak Solidity sözleşmelere -hem topluluk hem de geliştiricilerinin gözünden kaçan- güvenlik açıklarını getiriyordu.
Solidity, EVM’de çalışan akıllı sözleşmeleri geliştirmek için tasarlanmış statik olarak yazılmış bir programlama dilidir. Solidity, EVM’de yürütülebilen baytcode olarak derlenir. Solidity ile geliştiriciler, akıllı sözleşmelere dönüştürülmüş kendi kendini force eden iş mantığını uygulayan uygulamalar yazabilir ve işlemin yetkili bir kaydını bırakabilir. Solidity gibi akıllı sözleşmeye özgü dillerde akıllı sözleşmeler yazmak kolay (görünüşte programlama becerisine sahip olanlar için) olarak anılır.
Wood’un belirttiği gibi, mevcut web geliştiricilerin aşina olduğu ECMAScript sintaksı etrafında tasarlanmıştır. ECMAScript’in aksine statik yazım ve değişken dönüş türleri vardır. Serpent ve Mutan gibi diğer EVM hedefleyen dillerle karşılaştırıldığında, Solidity bazı önemli farklılıklar içerir. Sözleşmeler için keyfi hiyerarşik eşlemeler ve yapılar da dahil olmak üzere kompleks üye değişkenleri desteklenmektedir. Sözleşmeler, C3 linearizasyonu ile çoklu kalıtım da dahil olmak üzere devralmayı (inheritance) destekler. Tek bir sözleşmeyle birden fazla türde emniyetli işlevi kolaylaştıran bir uygulama ikili arabirimi (ABI) de Serpent tarafından tanıtıldı.
contract GavCoin { mapping(address=>uint) balances; uint constant totalCoins = 100000000000; /// Endows creator of contract with 1m GAV. function GavCoin(){ balances[msg.sender] = totalCoins; } /// Send $((valueInmGAV / 1000).fixed(0,3)) GAV from the account of $(message.caller.address()), to an account accessible only by $(to.address()). function send(address to, uint256 valueInmGAV) { if (balances[msg.sender] >= valueInmGAV) { balances[to] += valueInmGAV; balances[msg.sender] -= valueInmGAV; } } /// getter function for the balance function balance(address who) constant returns (uint256 balanceInmGAV) { balanceInmGAV = balances[who]; } }
Solidity nedir sorunuza umarım cevap bulabilmişsinizdir. Yorumlarınız varsa eklemeyi unutmayın.
blokzincir.info Yayında! Türkiye'nin İlk ve Tek Ücretsiz Kripto Analiz Platformu!
Kripto paraların en önemli özelliklerinden ikisi bir merkezi yapıya sahip olmaması ve bütün işlemlerin herkes…
Sanal kripto para ya da teknik adıyla Bitcoin (BTC) özellikle 2016 yılından itibaren adını sıklıkla…
Kripto sanal para olgusu her ne kadar dünya üzerinde 2000’li yıllardan beri düşünülmüş ve tartışılmış…
Günlük hayatta yaptığımız birçok işlem içerisinde mobil teknolojiler yer almaya başladıkça internet ve internet tabanlı…
Blockchain teknolojisi ve alternatif kripto para birimleri dünyada fırtına estirdi. Ancak, yüksek volatilite ve açık…