Solidity

Keskmine
Solidity on programmeerimiskeel, mis on ette nähtud Ethereumi plokiahelas nutilepingute kirjutamiseks ja rakendamiseks. Selle pakkus 2014. aastal välja Gavin Wood ning seda arendasid Christian Reitwiessner ja teised plokiahela arendajad.
Solidity töötati välja peamiselt selleks, et aidata arendajatel Ethereumi platvormil kiiremini ja tõhusamalt programme ja rakendusi kirjutada. Arendajad saavad Solidity abil määrata detsentraliseeritud rakenduste (nn DAppide) toimimise reeglid.

Solidity on avatud lähtekoodiga kogukonnaprojekt, mida haldab põhimeeskond ja toetab Ethereum Foundation.

Uuel plokiahela ja krüptoraha kasutajal võib tekkida küsimus, mida tähendab nutileping. Nutileping on koodilõik, mida talletatakse detsentraliseeritud võrgus, mida nimetatakse plokiahelaks. Lühidalt öeldes täidab nutileping automaatselt ülesandeid ja teeb tehinguid, kui ettemääratud tingimused on täidetud.

Näiteks saad lepingus määrata tingimuse teha krüptorahas kindlal kuupäeval teatud summas ülekanne isikult A isikule B. Nutilepingute pluss on see, et tänu neile ei pruugi vaja olla vahendajat ning see suurendab tehingu usaldusväärsust, läbipaistvust ja turvalisust.

Solidity on oluline nutilepingute programmeerimiskeel ega erine eriti sellistest keeltest nagu näiteks JavaScript ja C++. Kui oled varem näiteks just JavaScriptis skripte kirjutanud või programmeerinud, siis võib Solidity tunduda mõnevõrra tuttav.

Üks Solidity põhiomadusi on võimalus määrata eri sidusrühmade vahel kindlaks keerukaid lepingulisi kokkuleppeid. Lisaks tokenite arendamisele (kõige ilmsem kasutus) luuakse selle mitmekülgse keele abil ühisrahastuskampaaniaid, pimeoksjone, mitme allkirjaga rahakotte ja isegi hääletussüsteeme.

Märkimist väärib, et Solidity on staatiline keel. Solidity ametliku veebisaidi kohaselt on Solidity „staatiliselt tüübitud looksulgudega programmeerimiskeel, mis on loodud Ethereumi platvormil töötavate nutilepingute arendamiseks“.

See tähendab, et tuleb määrata muutujate tüübid (kas täisarvud, kahendarvud, stringid või kasutaja määratud tüübid), sest selle alusel tehakse kompileerimise ajal tüübikontroll. Teisisõnu on staatiliselt tüübitud keeles muutujad kompileerimise ajal teada (nt Java, C või C++ keeles). Looksulud on koodiplokke (kus saab määrata muutujaid) tähistavad sulud.

Kui sulle pakub huvi plokiahela arendamine või detsentraliseeritud rahandus, on mõttekas alustada Solidity õppimisest. Sarnaselt kõigi teiste programmeerimiskeeltega on ka Solidityl oma kitsaskohad. Arendajad peavad Soliditys nutilepingute koostamisel olema väga ettevaatlikud, et välistada programmivead ja turbenõrkused, sest need võivad viia suurte rahaliste kaotusteni. Kuna plokiahela tehnoloogia ja nutilepingud on pidevas arengus, siis väärtustatakse ja hinnatakse tehnoloogiamaailmas Solidity kasutamise oskust.