Solidity je jako napredovao otkako je prvi put predložen 2014. godine, a kasnije ga je razvio Ethereumov tim Solidity. Postoje stotine tisuća programera koji koriste programski jezik za stvaranje usluga temeljenih na blockchainu za sve veći broj slučajeva korištenja.

Ovaj članak objašnjava što je Solidity i kako se koristi u ekosustavu Ethereum. Ovaj je članak za vas ako želite saznati više o unutarnjem radu ovog programskog jezika temeljenog na blockchainu.

Što je solidnost?

Solidity je objektno orijentirani programski jezik visoke razine koji se koristi za stvaranje pametnih ugovora koji automatiziraju transakcije na blockchainu. Nakon što je predložen 2014. godine, jezik su razvili suradnici na projektu Ethereum. Jezik se prvenstveno koristi za stvaranje pametnih ugovora na Ethereum blockchain i stvoriti pametne ugovore na drugim blockchainima.

Čvrstoća je slična jednom od najčešćih programskih jezika, JavaScript. Može se smatrati dijalektom JavaScript-a. To znači da ako razumijete JavaScript, lako ćete pokupiti Solidnost. Solidnost također dijeli slične karakteristike kao programski jezici C ++ i Python.

instagram viewer

Kao jezik visoke razine, Solidity ukida potrebu za upisivanjem koda u jedinice i nule. Ljudima je mnogo lakše pisati programe na način koji im je lakše razumjeti, koristeći kombinaciju slova i brojeva.

Čvrstoća je statički upisana, s podrškom za nasljeđivanje, knjižnicama i složenim korisnički definiranim vrstama. Kako je Solidity statički upisan, korisnik mnogo određuje svaku varijablu. Vrste podataka omogućuju prevoditelju da provjeri ispravnu upotrebu varijabli. Tipovi podataka o solidnosti obično se kategoriziraju ili kao vrijednosti ili kao referentni tipovi.

Glavna razlika između tipova vrijednosti i referentnih tipova može se pronaći u načinu na koji su dodijeljeni varijabli i pohranjeni u EVM (Ethereum Virtual Machine). Iako promjena vrijednosti u jednoj varijabli tipa vrijednosti ne utječe na vrijednost u drugoj varijabli, svatko tko se poziva na promijenjene vrijednosti u varijablama referentnog tipa može dobiti ažurirane vrijednosti.

Kako djeluje solidnost?

Ljepota ekosustava Ethereum je u tome što ga može koristiti toliko različitih kriptovaluta i decentraliziranih aplikacija. Pametni ugovori omogućuju izradu jedinstvenih tehnologija na Ethereumu za sve vrste tvrtki i organizacija.

Svake godine svijet troši milijarde dolara na blockchain rješenja. Mnoga od ovih rješenja stvorena su pomoću Solidity. Pametni ugovori izgrađeni pomoću Solidity-a mogu se smatrati načinom automatizacije poslovnih i ne-poslovnih procesa između različitih ljudi. To osigurava da se ljudi koji obavljaju transakcije na blockchainu ne moraju brinuti o rizicima kao što su prijevara ili nemogućnost korištenja iste valute.

Jedna od ključnih komponenti koja omogućuje izvršenje Solidity koda je EVM. EVM je opisan kao virtualno računalo na blockchainu koje pretvara ideje ljudi u kod koji pokreće aplikacije na blockchainu.

Ispod haube, Solidity stvara kôd na razini stroja koji se izvršava na EVM-u. Kompajler se koristi za razgradnju koda čitljivog na visokoj razini, što pretvara u upute koje procesor čita. Različite platforme pružaju besplatnu kompilaciju Solidity, uključujući internetski kompajler Remix i preuzeti kompajler sličan naredbama na računalu.

EVM pametni ugovori imaju neka ograničenja koja treba riješiti. Jedan od najznačajnijih od njih je ograničeni pristup korisnim funkcijama knjižnice za raščlanjivanje JSON struktura ili aritmetike s pomičnim zarezom.

Javne i privatne funkcije

Javne funkcije slične su API-ima kojima može pristupiti bilo tko na svijetu. Svatko ih može nazvati u svom kodu. Javne su funkcije dizajnirane, u mnogim slučajevima, za dijeljene procese na platformi koju koriste svi korisnici.

Na primjer, može se napraviti javna funkcija koja omogućuje svim korisnicima platforme provjeru stanja na računu. Jedan od najčešćih načina iskorištavanja pametnih ugovora je putem javnih funkcija.

Povezano: Što je blockchain i kako djeluje?

Iako je pametne ugovore lako napisati pomoću Solidityja, često je vrlo teško sigurno ih napisati. Na primjer, ako funkcija povlačenja u pametnom ugovoru nije sigurna, napadač može manipulirati ranjivom funkcijom kako bi ispraznio račun sredstava.

Napadač bi mogao pozvati funkciju povlačenja da pošalje novac na drugi račun, koristeći petlju koja opetovano ponavlja funkciju povlačenja.

Privatne funkcije mogu se pozvati samo iz ugovora. Sadrže upute koje se mogu izvršiti samo nakon što ih druge funkcije u lancu pozovu. To otežava zlonamjernim glumcima manipulaciju kodom.

Standardi i logika koda

Pojavljuju se različiti standardi koji određuju kako se Solidity pametni ugovori koriste za izgradnju aplikacija na Ethereumu. Ti su standardi poznati kao ERC (Ethereum Zahtjev za komentarom) standardi. Standardi se temelje na dokumentu koji sadrži smjernice o potrebnim funkcijama i ograničenjima ponašanja koda.

ERC standardi koji određuju kako Solidity djeluje uključuju:

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

Postoje različiti načini na koje se Solidity može koristiti za interakciju pametnih ugovora. Čvrstoća se također može koristiti za izradu posebnih uputa o tome kako se podaci pohranjuju u pametnom ugovoru. Logika i podaci u pametnim ugovorima mogu se razdvojiti pomoću Solidity. Koristeći zamjenske ugovore, logika ugovora može se promijeniti kako bi se to omogućilo.

Nepromjenljivost

Nemoguće je promijeniti kod pametnog ugovora nakon što je napisan i sastavljen. To znači da svaki redak koda mora raditi kako je predviđeno, jer bi inače mogao postojati ozbiljan rizik od iskorištavanja koda.

Povezano: Kako postati Blockchain programer i početi zarađivati ​​velike novce

Kako je Ethereum blockchain nepromjenjiv, nemoguće je promijeniti podatke i logiku koji su mu zapisani. Način da se to zaobiđe je korištenje proxyja da ukaže na drugi ugovor koji sadrži stvarnu poslovnu logiku. To omogućuje ispravljanje grešaka dok se provodi nova verzija ugovora.

Troškovi plina

Postoje dodatni troškovi koji se plaćaju za upotrebu Solidity na mrežnoj mreži Ethereum. Neki od dodatnih troškova temelje se na plinskom sustavu na Ethereumu, koji zahtijeva plaćanje rudarima za osiguravanje blockchain mreže kako bi kôd mogao sigurno na njoj raditi.

Pri pisanju pametnih ugovora važno je imati na umu da troškovi plina mogu odrediti koliko je pametni ugovor izveden. Kako se naknade za plin plaćaju za svaki korišteni utor za skladištenje, radnje izvršene s kodom Solidity koštaju plin. Pametan ugovor koji je skupo voditi vjerojatno neće biti korišten dugoročno.

Optimizacija plina pomaže smanjiti cijenu plina kada se izvrši Solidity kod. Neke od najpopularnijih metoda optimizacije plina uključuju upotrebu knjižnica i korištenje manje funkcija. Knjižnice se često koriste za spremanje bajt-koda.

Umjesto da se pametnom ugovoru doda nepotreban bytecode, logika se može staviti u knjižnice. To pomaže da veličina pametnog ugovora ostane mala. Korištenjem manje funkcija potrebno je manje bajt-koda, a smanjena je i poteškoća s revizijom koda.

Kako se solidnost može koristiti u Ethereumu?

Čvrstoća se koristi za stvaranje pametnih ugovora za zamjenjive tokene i nezamjenjive tokene. Različiti standardi koriste se za izgradnju nezamjenjivih tokena i zamjenjivih tokena u ekosustavu Ethereum.

Omogućuju stvaranje različitih vrsta slučajeva za korisnike koji koriste blockchain. Solidnost omogućuje ljudima upotrebu žetona i nezamjenjivi tokeni na Ethereumu. Od kovanja nezamjenjivih tokena do njihovog dodavanja u poljoprivredne bazene za dodatni interes, Ethereum omogućuje različite vrste upotrebe tokena.

Decentralizirane autonomne organizacije (DAO) također su omogućene putem Solidity. DAO, koji je nova vrsta mrežne organizacijske strukture, prvenstveno je napisan u Solidity. DAO-i omogućavaju različitim ljudima da se okupe kao članovi na mrežnoj platformi na kojoj glasaju o ključnim odlukama DAO-a.

Čvrstoća omogućuje automatizaciju procesa unutar DAO-a. Primjeri automatizacije procesa u DAO-ima uključuju glasanje za ključne odluke i dodjelu reputacije članovima DAO-a za njihov doprinos grupi.

Utvrđivanje standarda za blockchains

Čvrstoća je mnogo više od programskog jezika. Definira standarde za budućnost blockchain tehnologije.

Zahvaljujući broju programera otvorenog koda koji rade na poboljšanju sigurnosti i performansi Solidityja, tisuće aplikacija u ekosustavu Ethereum i dalje ovise o njemu za svoje aplikacije operirati. Kako se stvaraju novi standardi za pametne ugovore u Ethereumu, jezik će postati sigurniji za upotrebu.

E-mail
Je li moguć doista decentralizirani Internet? Kako to može funkcionirati s Blockchainom

Je li moguć uistinu decentralizirani internet? Što znači decentralizacija i kako bi vas zaštitila?

Pročitajte Dalje

Povezane teme
  • Objašnjena tehnologija
  • Programiranje
  • Ethereum
  • Blockchain
O autoru
Calvin Ebun-Amu (Objavljeno 15 članaka)

Calvin je pisac u MakeUseOf-u. Kad ne gleda Ricka i Mortyja ili njegove omiljene sportske timove, Calvin piše o startupovima, blockchainu, cyber-sigurnosti i drugim područjima tehnologije.

Više od Calvina Ebun-Amua

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Još jedan korak…!

Potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.

.