Soliditate

Soliditate
Clasa de limba orientat spre contract
Aparut in 2014
Eliberare
A fost influențat JavaScript , C++
Licență GNU GPL 3
Site-ul web github.com/ethereum/solidity

Solidity  este un limbaj de programare orientat pe obiecte , specific domeniului [2] de contracte auto-executive pentru platforma Ethereum .

Istorie

Limbajul a fost propus în august 2014 de Gavin Wood [3] . Dezvoltarea ulterioară a limbajului a fost realizată sub conducerea lui Christian Reitwiessner de către echipa Solidity, ca parte a proiectului Ethereum . Este una dintre cele patru limbi, împreună cu Serpent, LLL și Mutan, concepute pentru a fi traduse în bytecode al mașinii virtuale Ethereum . S-a răspândit pe scară largă odată cu apariția tehnologiilor blockchain , în special a stivei de tehnologie bazată pe Ethereum , pentru a crea software pentru contracte inteligente .

Descriere

Un limbaj de programare tip JavaScript, tip static, conceput pentru a dezvolta contracte cu autoexecuție care rulează pe mașina virtuală Ethereum (EVM). Programele sunt traduse în bytecode EVM. Permite dezvoltatorilor să creeze aplicații autonome care conțin logica de afaceri care au ca rezultat înregistrări ireversibile ale tranzacțiilor blockchain .

Utilizarea sintaxei ECMAScript, așa cum intenționează Wood, ar trebui să ajute limbajul să fie adoptat de către dezvoltatorii web actuali. Cu toate acestea, spre deosebire de ECMAScript, limbajul a primit tastare statică a variabilelor și tipuri dinamice de valori returnate. În comparație cu limbile Serpent și Mutan compilate în același cod octet, limbajul are diferențe importante. Sunt acceptate variabilele contractuale complexe, inclusiv mapările și structurile ierarhice arbitrare. Contractele acceptă moștenirea, inclusiv liniarizarea multiplă și C3 . Este suportată o interfață de programare binară (ABI), care are multe funcții de siguranță de tip în fiecare contract (apărut ulterior și în Serpent). S-a specificat un sistem de documentare a codului pentru explicarea personalizată a secvenței apelurilor, numit Formatul de specificație naturală Ethereum.În Solidity, în loc de clasele obișnuite, sunt declarate contracte. Există biblioteci pentru scrierea de contracte inteligente precum: Open Zeppelin, Truffle. Bibliotecile vă permit să vă creați propria monedă (token) pe baza șabloanelor gata făcute, cu toate specificațiile (ERC20) și verificări de securitate (biblioteca safemath).

Contractele în soliditate pot moșteni unele de la altele. Aceasta înseamnă că funcțiile și variabilele contractului din care moștenim vor fi disponibile în contractul care moștenește. Soliditatea, ca și C++, are moștenire multiplă (în formă de diamant).

contractul StandardToken este ER7C5F , BasicToken { mapare ( adresa => mapare ( adresa => uint256 )) permisă ; // } contractul MintableToken este StandardToken , deținut { eveniment Mint ( adresa indexată la , suma uint256 ); eveniment MintFinished (); bool public mintingFinished = false ; modificatorul canMint () { require ( ! mintingFinished ); _ ; } // }

Exemplu de program în limbajul Solidity [4] :

contract GavCoin { mapping ( adresa => uint ) solduri ; uint constant totalCoins = 100000000000 ; /// Dotează creatorul contractului cu 1m GAV. function GavCoin (){ solduri [ msg . expeditor ] = totalCoins ; } /// Trimite $((valueInmGAV / 1000).fixed(0,3)) GAV din contul $(message.caller.address()), la un cont accesibil doar de $(to.address()). function send ( adresa catre , uint256 valueInmGAV ) { if ( solduri [ msg . expeditor ] >= valueInmGAV ) { solduri [ to ] += valueInmGAV ; solduri [ msg . expeditor ] -= valueInmGAV ; } } /// funcție getter pentru funcția de echilibru echilibru ( adresa cine ) returnări constante ( uint256 balanceInmGAV ) { balanceInmGAV = solduri [ who ] ; } };

Platforme de dezvoltare disponibile

Note

  1. https://github.com/ethereum/solidity/releases/tag/v0.8.17
  2. Documentația Solidity - Solidity 0.2.0 . readthedocs.io . Consultat la 19 noiembrie 2016. Arhivat din original pe 23 noiembrie 2016.
  3. Benoit Schweblin. StackEditViewer . stackedit.io _ Consultat la 19 noiembrie 2016. Arhivat din original la 1 aprilie 2016.
  4. RJ Catalano, unul dintre dezvoltatorii de bază, vezi VoR0220 pe github
  5. Soliditatea lui Ethereum este acum disponibilă în Microsoft Visual Studio (link nu este disponibil) . CCN: Știri financiare privind Bitcoin și Cryptocurrency . Preluat la 1 mai 2016. Arhivat din original la 18 aprilie 2016. 
  6. http://rethink-iot.com/2016/04/01/hyperledger-blockchain-code-almost-comes-together-for-iot/ Arhivat la 16 august 2016 la Wayback Machine , accesat la 23 aprilie 2016.
  7. Microsoft adaugă Ethereum pe platforma Windows pentru peste 3 milioane de dezvoltatori . CoinDesk . Preluat la 1 mai 2016. Arhivat din original la 09 ianuarie 2018.
  8. Allison, Ian Microsoft adaugă limbajul Ethereum Solidity la Visual Studio . International Business Times (30 martie 2016). Preluat la 11 mai 2016. Arhivat din original la 29 mai 2016.

Literatură

  • Chris Danen. introducerea Ethereum și Solidity: Fundamente ale programării criptomonede și blockchain pentru începători. - 2017. - S. 256. - ISBN 978-5-8459-1349-4 .
  • Siraj Raval. aplicatii descentralizate. - " Apress ", 2016. - P. 118. - ISBN 978-1-491-92454-9 .
  • Axt R. Ce este un Smart Contract. sau Ethereum pe oră. - 2017. - S. 19. - ISBN 978-5-4485-2907-8 .
  • Rawal S. Aplicaţii descentralizate. Tehnologia Blockchain în acțiune. - 2017. - S. 240. - ISBN 978-5-496-02988-9 .

Link -uri