Solidaarsus on läinud kaugele sellest ajast, kui see esimest korda välja pakuti 2014. aastal ja hiljem arendas seda Ethereumi meeskond Solidity. Seal on sadu tuhandeid arendajaid, kes kasutavad programmeerimiskeelt, et luua plokiahelapõhiseid teenuseid üha enamate kasutusjuhtumite jaoks.

Selles artiklis selgitatakse, mis on tahkus ja kuidas seda kasutatakse Ethereumi ökosüsteemis. See artikkel on mõeldud teile, kui olete huvitatud selle plokiahelapõhise programmeerimiskeele sisemise töö kohta lisateabe saamisest.

Mis on soliidsus?

Solidity on objektorienteeritud, kõrgetasemeline programmeerimiskeel, mida kasutatakse arukate lepingute loomiseks, mis automatiseerivad tehinguid plokiahelas. Pärast selle väljatöötamist 2014. aastal töötasid selle keele välja Ethereumi projekti kaasautorid. Seda keelt kasutatakse peamiselt nutikate lepingute loomiseks Ethereumi plokiahel ja luua nutikaid lepinguid teistes plokiahelates.

Tugevus sarnaneb ühe levinuma programmeerimiskeelega JavaScripti abil. Seda võib pidada JavaScripti dialektiks. See tähendab, et kui mõistate JavaScripti, võib Solidity'i ülesvõtmine olla lihtne. Solidaarsusel on sarnased omadused ka programmeerimiskeeltel C ++ ja Python.

Kõrgetasemelise keelena kaotab Solidity vajaduse sisestada kood ühedesse ja nullidesse. See muudab inimeste jaoks märksa lihtsamaks programmide kirjutamise neile arusaadaval viisil, kasutades tähtede ja numbrite kombinatsiooni.

Tugevus kirjutatakse staatiliselt, toetades pärimist, teeke ja keerukaid kasutaja määratletud tüüpe. Kuna kindlus kirjutatakse staatiliselt, määrab kasutaja palju iga muutuja. Andmetüübid võimaldavad kompilaatoril kontrollida muutujate õiget kasutamist. Solidity andmetüübid liigitatakse tavaliselt kas väärtuste tüüpideks või viitetüüpideks.

Peamise erinevuse väärtustüüpide ja viitetüüpide vahel võib leida selles, kuidas need muutujale omistatakse ja EVM-is (Ethereum Virtual Machine) salvestatakse. Kui väärtuse tüübi ühe muutuja väärtuse muutmine ei mõjuta teise muutuja väärtust, võivad kõik värskendatud väärtused viidatud tüübi muutujate puhul viidata kõigile.

Kuidas soliidsus töötab?

Ethereumi ökosüsteemi ilu on see, et seda saavad kasutada nii paljud erinevad krüptorahad ja detsentraliseeritud rakendused. Nutikad lepingud võimaldavad Ethereumis teha ainulaadseid tehnoloogiaid igasuguste ettevõtete ja organisatsioonide jaoks.

Igal aastal kulutab maailm plokiahela lahendustele miljardeid dollareid. Paljud neist lahendustest on loodud Solidity abil. Solidity abil loodud arukaid lepinguid võib mõelda kui viisi automatiseerida äri- ja mitteäriprotsesse erinevate inimeste vahel. See tagab, et inimesed, kes teevad plokiahelas tehinguid, ei peaks muretsema selliste riskide pärast nagu pettus või sama raha kasutamata jätmine.

Üks põhikomponente, mis muudab Solidity-koodi täitmise võimalikuks, on EVM. EVM-i kirjeldatakse kui plokiahelas asuvat virtuaalset arvutit, mis muudab inimeste ideed koodiks, mis käivitab rakendusi plokiahelas.

Kapoti all loob Solidity masinataseme koodi, mis käivitatakse EVM-il. Inimese poolt loetava kõrgetasemelise koodi lagundamiseks kasutatakse kompilaatorit, millest saab protsessori loetud juhised. Erinevad platvormid pakuvad tasuta Solidity kompileerimist, sealhulgas Remixi veebikompilaator ja arvutisse allalaaditud käskude sarnane kompilaator.

EVMi nutilepingutel on mõned piirangud, millele tuleb tähelepanu pöörata. Üks olulisemaid neist on piiratud juurdepääs kasulikele raamatukogu funktsioonidele JSON-struktuuride või ujukomaaritmeetika parsimiseks.

Avalikud ja erafunktsioonid

Avalikud funktsioonid sarnanevad API-dega, millele igaüks maailmas pääseb juurde. Igaüks saab neile oma koodis helistada. Avalikud funktsioonid on paljudel juhtudel mõeldud jagatud protsesside jaoks platvormil, mida kõik kasutajad kasutavad.

Näiteks võiks teha avaliku funktsiooni, mis võimaldaks kõigil platvormi kasutajatel oma konto saldot kontrollida. Üks levinumaid arukate lepingute ärakasutamise viise on avalike funktsioonide kaudu.

Seotud: Mis on plokiahel ja kuidas see töötab?

Ehkki tarku lepinguid saab Solidityga hõlpsasti kirjutada, on nende turvaline kirjutamine sageli väga keeruline. Näiteks kui nutika lepingu tagasivõtmise funktsioon pole turvaline, saab ründaja rahakonto tühjendamiseks manipuleerida haavatava funktsiooniga.

Ründaja võib raha välja saatmiseks teisele kontole helistada, kasutades kordust, mis kordab väljavõtmise funktsiooni.

Erafunktsioonid on helistatavad ainult lepingute seest. Need sisaldavad juhiseid, mida saab käivitada alles pärast teiste funktsioonide kutsumist ahelas. See raskendab pahatahtlike tegijate poolt koodiga manipuleerimist.

Standardid ja koodiloogika

Kujunemas on erinevad standardid, mis määravad kindlaks, kuidas kasutatakse Solidity nutikaid lepinguid Ethereumi rakenduste loomiseks. Neid standardeid tuntakse kui ERC (Ethereum Request for Comments) standardeid. Standardid põhinevad dokumendil, mis sisaldab juhiseid vajalike funktsioonide ja piirangute kohta, kuidas kood peaks käituma.

ERC standardid, mis määravad, kuidas töökindlus töötab, hõlmavad järgmist:

  • ERC20
  • ERC165
  • ERC721
  • ERC223
  • ERC621
  • ERC777
  • ERC827
  • ERC884
  • ERC865
  • ERC1155

Nutikate lepingute omavaheliseks suhtlemiseks saab usaldusväärsust kasutada erinevalt. Kindlust saab kasutada ka spetsiaalsete juhiste koostamiseks, kuidas andmeid nutilepingus salvestatakse. Nutilepingute loogikat ja andmeid saab Solidity abil lahutada. Asenduslepingute abil saab lepingu loogikat selle võimaldamiseks muuta.

Muutmatus

Nutika lepingu koodi on pärast selle kirjutamist ja koostamist võimatu muuta. See tähendab, et iga koodirida peab töötama ettenähtud viisil, vastasel juhul võib koodi ärakasutamisel olla tõsiseid riske.

Seotud: Kuidas saada plokiahela programmeerijaks ja hakata suuri dollareid teenima

Kuna Ethereumi plokiahel on muutumatu, on sinna kirjutatud andmeid ja loogikat võimatu muuta. Selle vältimiseks on puhverserveri abil osutamine teisele lepingule, mis sisaldab tegelikku äriloogikat. See võimaldab vead parandada lepingu uue versiooni rakendamise ajal.

Gaasikulud

Ethereumi veebisaidil Solidity kasutamise eest makstakse lisakulusid. Osa lisakuludest põhineb Ethereumi gaasisüsteemil, mis nõuab kaevurite eest plokiahelavõrgu turvalisuse eest tasumist, et kood saaks sellel ohutult töötada.

Nutikate lepingute kirjutamisel on oluline meeles pidada, et gaasikulud võivad määratleda nutika lepingu tulemuslikkuse. Kuna gaasitasusid makstakse iga kasutatud mälupesa eest, maksavad Solidity koodiga sooritatud toimingud gaasi. Nutikat lepingut, mille täitmine on kallis, ei kasutata tõenäoliselt pikas perspektiivis.

Gaasi optimeerimine aitab vähendada gaasi hinda, kui rakendatakse Solidity koodi. Mõned kõige populaarsemad gaasi optimeerimise meetodid hõlmavad raamatukogude kasutamist ja vähemate funktsioonide kasutamist. Baitkoodi salvestamiseks kasutatakse sageli raamatukogusid.

Targa lepingusse tarbetu baidikoodi lisamise asemel saab loogika panna raamatukogudesse. See aitab hoida nutika lepingu suurust väikesena. Kasutades vähem funktsioone, on vaja vähem bait-koode ja ka koodi kontrollimise raskused vähenevad.

Kuidas saab Ethereumis kasutada soliidsust?

Tugevust kasutatakse nutikate lepingute loomiseks vahetatavate ja mittemuutuvate märkide jaoks. Ethereumi ökosüsteemis kasutatakse mitte-asendatavate märkide ja asendatavate märkide ehitamiseks erinevaid standardeid.

Need võimaldavad plokiahelat kasutavate inimeste jaoks luua erinevat tüüpi juhtumeid. Kindlus võimaldab inimestel kasutada märke ja Ethereumi mitte-asendatavad märgid. Alates mittemajutatavate märkide vermimisest kuni nende lisamiseni, et saada põllumajapidamiste basseine lisahuvi huvides, on Ethereum võimaldanud erinevat tüüpi märkide kasutamist.

Detsentraliseeritud autonoomsed organisatsioonid (DAO) on samuti võimalikud Solidity poolt. DAO, mis on uut tüüpi veebipõhine organisatsiooniline struktuur, on peamiselt kirjutatud Solidity'is. DAO-d võimaldavad erinevatel inimestel liituda veebiplatvormil, kus nad hääletavad DAO peamiste otsuste üle.

Tugevus võimaldab DAO-s protsesse automatiseerida. DAO-de protsesside automatiseerimise näited hõlmavad põhiliste otsuste hääletamist ja maine jagamist DAO liikmetele nende panuse eest gruppi.

Blokiahelate standardite määratlemine

Kindlus on palju enamat kui programmeerimiskeel. See määratleb plokiahelate tehnoloogia tuleviku standardid.

Tänu avatud lähtekoodiga arendajate arvule, kes töötavad Solidity turvalisuse ja jõudluse parandamise nimel, tuhanded Ethereumi ökosüsteemi rakendused sõltuvad sellest, milliseid rakendusi nad kasutavad tegutsema. Kuna Ethereumis luuakse nutikate lepingute jaoks uued standardid, muutub keele kasutamine turvalisemaks.

E-post
Kas tõesti detsentraliseeritud Internet on võimalik? Kuidas see võiks plokiahelaga töötada

Kas tõeliselt detsentraliseeritud internet on võimalik? Mida tähendab detsentraliseerimine ja kuidas see teid turvaliselt hoiab?

Loe edasi

Seotud teemad
  • Tehnoloogia selgitatud
  • Programmeerimine
  • Ethereum
  • Plokiahel
Autori kohta
Calvin Ebun-Amu (15 artiklit on avaldatud)

Calvin on MakeUseOfi kirjanik. Kui ta ei vaata Ricki ja Mortyt ega tema lemmikspordimeeskondi, kirjutab Calvin alustavatest ettevõtetest, plokiahelast, küberturvalisusest ja muudest tehnoloogiavaldkondadest.

Veel Calvin Ebun-Amult

Telli meie uudiskiri

Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!

Veel üks samm !!!

Palun kinnitage oma e-posti aadress e-kirjas, mille just teile saatsime.

.