kriptovijesti
  • Home
  • Vijesti
  • Bitcoin
  • Blockchain
  • Ethereum
  • Market
  • Guide
  • Kontakt
No Result
View All Result
  • Home
  • Vijesti
  • Bitcoin
  • Blockchain
  • Ethereum
  • Market
  • Guide
  • Kontakt
No Result
View All Result
kriptovijesti
No Result
View All Result
Home Ethereum

Uvod u Solidity: Izgradite Ethereum pametni ugovor

CryptoVijest by CryptoVijest
June 28, 2023
in Ethereum
0
Uvod u Solidity: Izgradite Ethereum pametni ugovor
191
SHARES
1.5k
VIEWS
Share on FacebookShare on Twitter

Related articles

Ant Intl upravlja korporativnom riznicom koristeći Amundi tokenizirani novčani fond na Ethereumu – Ledger Insights

Ant Intl upravlja korporativnom riznicom koristeći Amundi tokenizirani novčani fond na Ethereumu – Ledger Insights

June 15, 2026
Najbolja kriptovaluta za kupnju sa 135 USD upravo sada

Najbolja kriptovaluta za kupnju sa 135 USD upravo sada

June 15, 2026


Od svog uvođenja 2014. programski jezik Solidity postao je de facto standard za pisanje pametnih ugovora na Ethereum blockchain mreži. Solidity je toliko popularan da ga podržavaju brojne blockchain mreže, uključujući Avalanche, Polygon i Binance Smart Chain.

U ovom ću članku pokriti osnove pisanja jednostavnog pametnog ugovora u Solidityju koji je varijacija uvodnog programa Hello World. Primjer ugovora može se činiti trivijalnim, ali pokazuje neke vrlo važne detalje koje svaki programer mora razumjeti da bi programirao u Solidityju.

Kako kompajlirati i implementirati pametni ugovor pomoću IDE-a

Solidity je prevedeni jezik koji koristi model prevođenja sličan Javi. U ovom modelu, Solidity izvorni kod je kompajliran u bajt kod. Taj se bajt kod pohranjuje na blockchainu i obrađuje ga Ethereum Virtual Machine (EVM) koji se nalazi na jednom od brojnih računalnih čvorova na blockchain mreži. Slika 1 ilustrira proces, sličan načinu na koji JVM obrađuje Java bajt kod.

Proces stvaranja i pohrane pametnog ugovora na blockchain mreži.
Slika 1. Proces pametnog ugovora. Izvorni kod se kompilira u bajt kod, pohranjuje na blockchain, obrađuje VM i nalazi se na čvoru na blockchain mreži.

Uobičajeni način za stvaranje Solidity pametnog ugovora je korištenje IDE-a kao što je Visual Studio Code ili Remix. VS Code IDE podržava Solidity putem dodatka za proširenje; Remix IDE, kao što je prikazano na slici 2, namijenjen je prvenstveno za korištenje kao mrežni IDE i podržava Solidity odmah nakon postavljanja.

Snimka zaslona Remix IDE.
Slika 2. Remix IDE programerima omogućuje stvaranje, kompajliranje i implementaciju pametnih ugovora za testiranje i proizvodnju blockchaina.

Remix se također čvrsto integrira s blockchain tehnologijom. Programeri mogu izraditi, kompajlirati i implementirati pametni ugovor na interni blockchain emulator, testni blockchain na mreži zvan testnet ili proizvodni blockchain koji se obično naziva a glavna mreža. Za programere koji tek počinju s Solidity programiranjem, korištenje Remixa je najlakši način jer je to sve-u-jednom način za stvaranje pametnih ugovora.

Struktura Solidity pametnog ugovora

Programeri obično stvaraju izvorni kod Solidity pametnog ugovora kao .sol datoteku.

Struktura Solidity pametnog ugovora slična je klasi u objektno orijentiranom programiranju. U OOP-u, klasa je osnovna organizacijska jedinica za grupiranje funkcija i članova podataka; analogni ekvivalent u Solidityju je ugovor.

Slika 3 prikazuje jednostavan pametni ugovor koji izlaže funkciju pod nazivom getMessage() koja vraća poruku kada se pozove. Odjeljci u nastavku opisuju detalje pametnog ugovora.

Pametni ugovor Hello World napravljen uz Solidity.
Slika 3. Pametni ugovor Hello World kreiran pomoću Solidityja. (1) Deklarirajte verziju prevoditelja; (2) izjaviti da je ovo pametni ugovor; (3) dodijeliti vrijednost Hello, World!; (4) deklarirati funkciju getMessage() i njezina svojstva.

Kao što je ranije spomenuto, Solidity je kompajlirani programski jezik. Solidity prevodilac se razvio tijekom godina kako bi se prilagodio brojnim današnjim verzijama prevoditelja. Kao takav, Solidity pametni ugovor mora deklarirati verziju kompajlera koju izvorni kod podržava. Ova je deklaracija prva izjava u pametnom ugovoru i definirana je pomoću ključne riječi pragma kao što je prikazano u oblačiću 1, slika 3. U ovom primjeru izjava pragma označava da razvojni programer koristi Solidity kompajler verzije 0.8.9.0 ili novije. Kod za stvarni pametni ugovor slijedi nakon ove izjave.

Programer zatim objavljuje pametni ugovor koristeći ključnu riječ contract u oblačiću 2, slika 3. U gornjem primjeru, pametni ugovor se zove BasicContract. Sav kod pametnog ugovora nalazi se između vitičastih zagrada BasicContracta.

Kao što je spomenuto na početku članka, Solidity je vrlo sličan OOP jezicima kao što su Java ili C#. Jedna od tih sličnosti je da Solidity podržava konstruktor za implementaciju ponašanja inicijalizacije u pametnom ugovoru. Konstruktor u oblačiću 3, sl. 3 dodjeljuje vrijednost Hello, World! na varijablu imenovanu frazom. Ovo se ponašanje pokreće kada se pametni ugovor prvi put implementira na ciljanu blockchain mrežu.

Još jedna sličnost s OOP-om je da Solidity podržava privatni i javni opseg. Privatni opseg znači da su varijable i funkcije deklarirane kao privatne vidljive samo unutar pametnog ugovora. Varijable i funkcije deklarirane kao javne dostupne su izvan pametnog ugovora.

U kodu BasicContract prikazanom na slici 3, varijabla pod nazivom fraza deklarirana je u retku 6. Varijabla je tipa niz i ima privatni opseg, što znači da je održiva samo unutar pametnog ugovora. Međutim, funkcija pod nazivom getMessage() u oblačiću 4, slika 3 je javna. To znači da se funkcija može pozvati izvan pametnog ugovora.

Za one od vas koji su programirali u Javi ili C#, ovo je prilično standardna stvar. Ali interni kod funkcije getMessage() sadrži ključne riječi kao što su memorija, pogled i bajtovi koji otkrivaju posebne aspekte Solidity programiranja.

Pogledajmo još jednom izoliranu funkciju getMessage().

Anatomija funkcije čvrstoće

Slika 4 prikazuje funkciju Solidity getMessage() u izolaciji. Funkcija vraća niz kako ga je deklarirao (string memory) u retku 12. Ključna riječ memory znači da je vraćena vrijednost pohranjena samo u memoriji. Ništa nije pohranjeno na temeljnom računalu koje podržava pametni ugovor.

Funkcija Solidity getMessage() u izolaciji.
Slika 4. Funkcija getMessage() pretvara niz bajtova u niz i vraća niz.

Također primijetite da funkcija getMessage() dobiva javni opseg i da potpis funkcije koristi prikaz ključne riječi.

Ključna riječ view, koja je specifična za Solidity, znači da je stanje ugovora nepromjenjivo — drugim riječima, funkcija je samo za čitanje. U pametni ugovor ne dodaju se novi podaci, a vrijednosti za varijable izvan funkcije ostaju nepromijenjene.

Na primjer, slika 5 prikazuje pogrešnu upotrebu pogleda u Solidity kodu. Primijetite da se pogled ključne riječi koristi u potpisu funkcije add() u retku 22, no funkcija add() mijenja stanje varijable pod nazivom c deklarirane u retku 20 koja je izvan funkcije. Korištenje prikaza ključne riječi omogućuje Remix IDE-u da izbaci pogrešku tijekom dizajna jer je stanje ugovora promijenjeno.

Pogrešna upotreba ključne riječi pogled u Solidity kodu.
Slika 5. Primjer Solidity koda koji uzrokuje promjenu stanja ugovora i time krši ključnu riječ pogleda.

Uz tehnike programiranja koje se obično vide u jezicima više razine kao što su Java i JavaScript, Solidity ima mnoge značajke koje se obično povezuju s jezicima niske razine kao što su C i C++. To je osobito vidljivo kod manipulacije stringovima. Jezici kao što su JavaScript i Java automatski spajaju nizove kada je to potrebno bez potrebe za manipulacijom memorije niske razine. Takva manipulacija stringovima u Solidityju malo je složenija.

Na primjer, u retku 13 na gornjoj slici 4, za spajanje dva niza zajedno u Solidityju potrebno je konvertirati nizove u nizove od dva bajta u kombinaciji pomoću funkcije abi.encodePacked() za stvaranje trećeg niza nazvanog spojeni. Rezultirajući niz je vrijednost koju vraća funkcija getMessage().

Biblioteka abi, koja je ugrađena u Solidity, pruža funkcije za kodiranje i dekodiranje podataka prema ABI specifikaciji. ABI specifikacija opisuje skup funkcija koje se obično koriste u programiranju pametnih ugovora na jezično-agnostički način; spajanje nizova je jedna takva funkcija.

Postoje druge biblioteke koje se mogu uvesti u pametni ugovor koje pojednostavljuju manipulaciju nizovima. Međutim, korištenje Solidity-a izvan okvira za kombiniranje nizova ima pristup niske razine za rad sa nizovima. Detaljnije ćemo raspravljati o uvozu knjižnica u Solidity u budućim člancima.

Razumijevanje naknada za plin u funkciji Solidity

Uz pružanje mogućnosti programiranja niske razine, postoji još nešto što je posebno u Solidity programiranju i programiranju pametnih ugovora općenito. Pokretanje pametnog ugovora na blockchainu zahtijeva naknade koje se moraju platiti u kriptovaluti koja je izvorna za određeni blockchain.

Na primjer, ako pokrenete Solidity pametni ugovor na mreži Ethereum, platit ćete naknade koje morate platiti u kriptovaluti Ether (ETH). Pokrenite Solidity program u mreži Hedera i platit ćete naknade koje morate platiti u HBAR-u. Postoje i drugi tandemi blockchaina i kriptovaluta koje također treba razmotriti.

Te se naknade naplaćuju zbog prirode odnosa između pametnih ugovora i pridružene blockchain mreže.

Ovih dana, cijena računalstva u smislu stvarno obavljenog posla nije toliko briga za mnoge programere. Pohranjivanje je jeftino, memorija je jeftina, a cijena CPU ciklusa je beskrajno mala.

Međutim, važan je svaki dio posla koji obavi pametni ugovor i svaki resurs koji koristi. Blockchain mreže su, po definiciji, konzorcij od desetaka pa do tisuća autonomnih strojeva u neovisnom vlasništvu koji djeluju usklađeno prema dobro poznatim algoritmima. Vlasnici tih strojeva žele biti plaćeni za resurse koje koristi pametni ugovor.

Za implementaciju Solidity pametnog ugovora na proizvodni blockchain, kao što je Ethereum mainnet, postoji naknada kad god se resursi kao što su memorija i CPU ciklusi koriste za provjeru valjanosti transakcije. Na primjer, postoji naknada kada se pametni ugovor implementira, a još jedna kada se pozove funkcija pametnog ugovora. Sve naknade nastale za potvrdu transakcije nazivaju se naknada za plin.

Izračun naknade za plin ovisi o blockchainu na kojem je implementiran pametni ugovor. Pojedinosti o optimizaciji naknade za plin malo su izvan opsega ovog članka; obradit ćemo ih kasnije. Za sada je važno razumjeti da će vas pametni ugovor koji implementirate na produkcijski blockchain koštati dok radi. Također, morate imati dovoljno kriptovalute blockchaina da biste platili transakcijske naknade koje naplaćuje vaš pametni ugovor.

Kad imate pametni ugovor, nema besplatnog ručka. Takva je priroda decentraliziranog računalstva.

Sve skupa

Pametni ugovori izgrađeni na blockchainovima transformiraju poduzeća i opskrbne lance. Razne blockchain platforme podržavaju Solidity, što sugerira da će svijetu trebati više Solidity programera, a ne manje. Slučajevi korištenja će rasti. Prilike su očite.

Solidity je vrlo moćan programski jezik koji razvojnim programerima omogućuje pisanje pametnih ugovora koji upravljaju zadacima koji su mnogo važniji za poslovanje od jednostavne aplikacije Hello World. Zakup nekretnina, kupnja karata i aktivnosti opskrbnog lanca mogu proizaći iz blockchaina. Kao i kod učenja bilo kojeg programskog jezika, najbolje je započeti od početka sa Solidityjem prije nego prijeđete na njegove naprednije značajke.


Share76Tweet48

Previous Post

Dogecoin od 4 milijarde dolara u pokretu: Robinhood povećava svoje rezerve

Next Post

Cijena Bitcoin BTC-a održava se na 30 tisuća dolara jer ‘ekonomija još nije u raspadu’

Related Posts

Ant Intl upravlja korporativnom riznicom koristeći Amundi tokenizirani novčani fond na Ethereumu – Ledger Insights

Ant Intl upravlja korporativnom riznicom koristeći Amundi tokenizirani novčani fond na Ethereumu – Ledger Insights

by CryptoVijest
June 15, 2026
0

Ant International, vlasnik Alipay+ i drugih rješenja za upravljanje novcem, već godinama koristi blockchain za interno upravljanje riznicom, koristeći svoju...

Najbolja kriptovaluta za kupnju sa 135 USD upravo sada

Najbolja kriptovaluta za kupnju sa 135 USD upravo sada

by CryptoVijest
June 15, 2026
0

Mnogo toga možete učiniti sa 135 USD na financijskim tržištima. Mogli ste ga, na primjer, iskoristiti za kupnju jedne dionice...

Ethereum doseže povijesno preprodane razine dok dugoročni ulagači promatraju ključne signale

Ethereum doseže povijesno preprodane razine dok dugoročni ulagači promatraju ključne signale

by CryptoVijest
June 15, 2026
0

Ethereum privlači značajnu pozornost trgovaca i analitičara nakon što je dosegao ono što neki promatrači tržišta opisuju kao uvjete s...

Ethereum u opasnosti od strmije rasprodaje kako se konsolidacija nastavlja Ethereum u opasnosti od strmije rasprodaje kao C

Ethereum u opasnosti od strmije rasprodaje kako se konsolidacija nastavlja Ethereum u opasnosti od strmije rasprodaje kao C

by CryptoVijest
June 14, 2026
0

Cijena Ethereuma mogla bi dodatno pasti kako Wall Street prodajePostoje znakovi da se američki ulagači rotiraju iz kripto industrije i...

Wall Street prelazi s eksperimenata na usvajanje Ethereuma

Wall Street prelazi s eksperimenata na usvajanje Ethereuma

by CryptoVijest
June 14, 2026
0

Wall Street prihvaća Ethereum izvan eksperimenta. Tradicionalne financijske institucije više ne gledaju na blockchain kao na eksperimentalnu tehnologiju i počinju...

Load More

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Zašto kupujem Bitcoin u listopadu

    Zašto kupujem Bitcoin u listopadu

    1698 shares
    Share 679 Tweet 425
  • Kriptovalute, što trebate znati o njima, osnove!

    1641 shares
    Share 656 Tweet 410
  • Bored Ape #4096 prodan za 80 ETH – Ethereum (ETH/USD)

    1631 shares
    Share 652 Tweet 408
  • Najbolji filmovi o Bitcoinu i blockchainu

    1612 shares
    Share 645 Tweet 403
  • Je li u tijeku najveća kripto prevara u Hrvatskoj?

    1468 shares
    Share 587 Tweet 367

Kupite nam kavicu i podržite naš rad? :)

Recent News

Ant Intl upravlja korporativnom riznicom koristeći Amundi tokenizirani novčani fond na Ethereumu – Ledger Insights

Ant Intl upravlja korporativnom riznicom koristeći Amundi tokenizirani novčani fond na Ethereumu – Ledger Insights

June 15, 2026
Bitkoin je skočio iznad 65.500 dolara jer sporazum SAD-a i Irana dovodi do pada nafte

Bitkoin je skočio iznad 65.500 dolara jer sporazum SAD-a i Irana dovodi do pada nafte

June 15, 2026

Stranice

  • Home
  • Kontakt
  • Newsletter
  • Politika privatnosti

Prijavite se na naš povremeni newsletter

© 2022 All right reserved by kriptovijesti.net

Please enter Coingecko Free Api Key to get this plugin works
No Result
View All Result
  • Home
  • Vijesti
  • Bitcoin
  • Blockchain
  • Ethereum
  • Market
  • Guide
  • Kontakt

© 2022 All right reserved by kriptovijesti.net