Pevnost

Pevnost
Jazyková třída orientovaný na smlouvu
Objevil se v 2014
Uvolnění
Byl ovlivněn JavaScript , C++
Licence GNU GPL 3
webová stránka github.com/ethereum/solidity

Solidity  je objektově orientovaný , doménově specifický programovací jazyk [2] samovykonatelných smluv pro platformu Ethereum .

Historie

Jazyk navrhl v srpnu 2014 Gavin Wood [3] . Další vývoj jazyka prováděl pod vedením Christiana Reitwiessnera tým Solidity v rámci projektu Ethereum . Je to jeden ze čtyř jazyků, spolu s Serpent, LLL a Mutan, navržený k překladu do bajtkódu virtuálního stroje Ethereum . Rozšířil se s příchodem technologií blockchain , zejména technologického zásobníku založeného na Ethereu , k vytvoření softwaru pro inteligentní smlouvy .

Popis

Staticky typovaný programovací jazyk podobný JavaScriptu určený k vývoji samoobslužných smluv , které běží na virtuálním stroji Ethereum (EVM). Programy jsou přeloženy do EVM bytecode. Umožňuje vývojářům vytvářet samostatné aplikace obsahující obchodní logiku, která vede k nevratným záznamům blockchainových transakcí .

Použití syntaxe ECMAScript, jak zamýšlel Wood, by mělo pomoci jazyk přijmout skutečnými webovými vývojáři. Na rozdíl od ECMAScript však jazyk obdržel statické typování proměnných a dynamické typy návratových hodnot. Ve srovnání s jazyky Serpent a Mutan kompilovanými do stejného bajtového kódu má jazyk důležité rozdíly. Jsou podporovány komplexní smluvní proměnné, včetně libovolných hierarchických mapování a struktur. Smlouvy podporují dědičnost, včetně vícenásobné a C3 linearizace . Je podporováno binární programovací rozhraní (ABI), které má v každé smlouvě mnoho typově bezpečných funkcí (následně se objevilo i v Serpentu). Specifikoval systém dokumentace kódu pro vlastní vysvětlení sekvence volání, nazvaný Ethereum Natural Specification Format.V Solidity se místo obvyklých tříd deklarují smlouvy. Existují knihovny pro psaní chytrých kontraktů jako: Open Zeppelin, Truffle. Knihovny vám umožňují vytvořit si vlastní coin (token) na základě hotových šablon, se všemi specifikacemi (ERC20) a bezpečnostními kontrolami (knihovna safemath).

Solidní smlouvy mohou po sobě dědit. To znamená, že funkce a proměnné smlouvy, ze které dědíme, budou dostupné ve smlouvě, která dědí. Solidity, stejně jako C++, má vícenásobnou dědičnost (ve tvaru diamantu).

kontrakt StandardToken je ER7C5F , BasicToken { mapování ( adresa => mapování ( adresa => uint256 )) povoleno ; // } contract MintableToken is StandardToken , Ownable { událost Mint ( adresa indexovaná na , částka uint256 ); událost MintFinished (); bool public mintingFinished = false ; modifikátor canMint () { required ( ! mintingFinished ); _ ; } // }

Ukázkový program v jazyce Solidity [4] :

kontrakt GavCoin { mapování ( adresa => uint ) zůstatky ; uint konstanta totalCoins = 100000000000 ; /// Poskytne tvůrci smlouvy 1 mil. GAV. function GavCoin (){ zůstatky [ msg . odesílatel ] = celkemCoins ; } /// Odešle $((valueInmGAV / 1000).fixed(0,3)) GAV z účtu $(message.caller.address()) na účet přístupný pouze $(to.address()). function send ( adresa do , uint256 hodnotaInmGAV ) { if ( zůstatky [ odesílatel zprávy ] >= hodnotaInmGAV ) { zůstatky [ do ] + = hodnotaInmGAV ; zůstatky [ msg . odesílatel ] -= hodnotaInmGAV ; } } /// funkce getter pro funkci rovnováhy balance ( adresa kdo ) konstanta vrací ( uint256 balanceInmGAV ) { balanceInmGAV = zůstatky [ kdo ]; } };

Dostupné vývojové platformy

Poznámky

  1. https://github.com/ethereum/solidity/releases/tag/v0.8.17
  2. Dokumentace Solidity - Solidity 0.2.0 . readthedocs.io . Získáno 19. listopadu 2016. Archivováno z originálu 23. listopadu 2016.
  3. Benoit Schweblin. StackEditViewer . stackedit.io _ Získáno 19. listopadu 2016. Archivováno z originálu 1. dubna 2016.
  4. RJ Catalano, jeden z hlavních vývojářů, viz VoR0220 na githubu
  5. Solidity Etherea je nyní k dispozici v Microsoft Visual Studio (odkaz není k dispozici) . CCN: Finanční zprávy o bitcoinech a kryptoměnách . Staženo 1. 5. 2016. Archivováno z originálu 18. 4. 2016. 
  6. http://rethink-iot.com/2016/04/01/hyperledger-blockchain-code-almost-comes-together-for-iot/ Archivováno 16. srpna 2016 na Wayback Machine , přístup 23. dubna 2016.
  7. Microsoft přidává Ethereum na platformu Windows pro více než 3 miliony vývojářů . CoinDesk . Získáno 1. května 2016. Archivováno z originálu 09. ledna 2018.
  8. Allison, Ian Microsoft přidává jazyk Ethereum Solidity do Visual Studia . International Business Times (30. března 2016). Staženo 11. 5. 2016. Archivováno z originálu 29. 5. 2016.

Literatura

  • Chris Danen. představujeme Ethereum a Solidity: Základy programování kryptoměn a blockchainu pro začátečníky. - 2017. - S. 256. - ISBN 978-5-8459-1349-4 .
  • Siraj Raval. decentralizované aplikace. - " Apress ", 2016. - S. 118. - ISBN 978-1-491-92454-9 .
  • Axt R. Co je to chytrá smlouva. nebo Ethereum za hodinu. - 2017. - S. 19. - ISBN 978-5-4485-2907-8 .
  • Rawal S. Decentralizované aplikace. Technologie blockchain v akci. - 2017. - S. 240. - ISBN 978-5-496-02988-9 .

Odkazy