Pași pentru a programa în Blockchain

Configurare noua (How To)

Situatie

  • Ce este Blockchain și cum funcționează?

Blockchain este o rețea nouă care ne ajută să descentralizăm tranzacțiile si permite ca acestea să fie peer-to-peer fără a folosi intermediari. Ca să faci comerț prin blockchain nu trebuie să cunoști persoana respectivă sau să mergi la magazin. În același timp, prin blockchain este garantat că vei primi banii sau produsul dorit. Practic, blockchain îți garantează prin tehnologia sa că vei primi ceea ce îți dorești fără a apela la companii intermediare sau bănci.

Blockchain este format dintr-o rețea de calculatoare care au același istoric de tranzacții, iar această rețea este deținută de toată lumea. În loc ca această listă de tranzacții să se afle pe serverul unei companii, ea este descentralizată și stocată pe mai multe calculatoare. Pe scurt este o bază de date distribuită într-o rețea de calculatoare.

Solutie

  • Ce sunt dApps?

Aplicațiile blockchain descentralizate sau dApps pot fi scrise pe platforme blockchain precum Ethereum, Cosmos, Solana sau Avalanche. Aplicațiile de acest tip pot fi din zona de finance (DeFi),  artă și obiecte de colecție (NFTs), gaming, portofele digitale, smart contracts.

În zona de Finance (DeFi) aceste aplicații aduc o îmbunătățire considerabilă si vin ca o alternativă la sistemul financiar actual. Aceste produse (dApps) pot fi destinate împrumuturilor, câștigului de dobândă (borrowing, lending), economii și altele. Tehnologiile folosite pentru a construi dApps sunt open source și aici poți inova și contribui la descentralizarea oricărui domeniu.

O altă zonă care a fost descentralizată și care a fost la modă în anul 2021 a fost cea a artei, unde dApps au ajutat creatorii de conținut să aibă control asupra creațiilor lor prin intermediul blockchain-ului. Astfel, artiștii își pot dovedi ușor proprietatea asupra creației eliminând riscul falsurilor, pot face un istoric pentru produsul creat până la deținătorul actual și pot fi plătiți mai bine.

  • Despre platforma Ethereum

Ethereum este o platformă blockchain open source unde programatorii își pot construi și personaliza aplicații în industrii precum (DeFiNFT, security, energy, insurance, health, wallet, gaming).

Ether este o criptomonedă folosită pentru a realiza tranzacții pe platfoma Ethereum. Dacă ești utilizator al platformei sau programator trebuie să plătești comisioane în Ether pentru a realiza tranzacții și a rula aplicații pe rețeaua Ethereum. Limbajul de programare pentru a construi aplicații pe platforma ethereum se numește Solidity. Solidity este un limbaj high level, orientat pe obiect și este folosit exclusiv pentru a scrie smart contracts pe platforma Ethereum.

Aplicațiile descentralizate (dApps) se bazează pe smart contracts (contracte digitale), care sunt folosite de către programatori pentru a executa operații și a menține date pe blockchain.

Exemplul de mai jos va fi un smart contract scris în limbajul Solidity pe platforma Ethereum.

  • Cum scriu un smart contract?

Mai jos este exemplificat un smart contract care implementează câteva funcții destinate stocării datelor si depozitării de ether in contract. Mecanismul este asemănător claselor din OOP (programare orientată pe obiect)

Prima oară este nevoie să informăm compiler-ul ce versiune de solidity folosim si e recomandată folosirea ultimei versiuni.

Linia uint nonPayableData declară o variabilă de tip uint (unsigned integer de 256 biti) al cărei state poate fi schimbat prin intermediul funcției setNonPayableData(). Public se folosește atunci cand se dorește ca state-ul să fie schimbat din afara contractului dar in mod normal nu ne dorim acest lucru.

Functia setPayableData() este urmată de keyword-ul payable ceea ce inseamna ca funcția poate depozita Ether in contract. Cantitatea de ether trebuie setată inainte de a apela funcția.

Functia getPayableData() este folosită pentru a retrage valoarea variabilei payableData, aceasta fiind stocată la o anumită adresă din blockchain-ul Ethereum. View neasigură ca această funcție nu va schimba niciodată state-ul contractului.

  • Conectarea la Testnet prin Metamask

Pentru a te conecta la Testnet prin Metamask, vei alege Injected Web3 care te va conecta la Rinkeby (blockchain de test care funcționează la fel ca rețeaua blockchain propriu-zisă, numită mainnet).

Tranzacția se va realiza cu ajutorul portofelului virtual Metamask. Acesta este un portofel open source folosit pentru a interacționa cu rețeaua blockchain Ethereum.

  • Deploy

Comisioanele plătite pentru tranzacții (denumite gas) sunt mereu plătite în moneda nativă, în acest caz ETH. (deoarece se plătește o fracțiune din 1 ETH, unitatea de măsură se numește gwei). În partea din stânga contractul va apărea colapsat iar în interior vom vedem funcțiile declarate în contract sub forma unor butoane.

  • Butoanele albastre nu creează tranzacții, prin urmare nu vor modifica state-ul și vor afișa date din contract fără a plăti comisioane.
  • Butoanele galbene pot schimba state-ul contractului fără a plăti comision în ether (ETH).
  • Butoanele roșii sunt pentru tranzacții (funcții) pentru care se plătește un comision.
  • Testing

Remix are la dispoziție un command line util pentru testare (disponibil in interfața Remix imediat după deploy), unde putem vedea detalii despre tranzacție, cum ar fi: adresa, comisionul, valoarea setată în smart-contract.

De asemenea, poți vedea detaliile tranzacțiilor direct pe blockchain-ul de test (rinkeby.etherscan.io/).

Tip solutie

Permanent

Voteaza

(4 din 13 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?