Solidity е изминал дълъг път, откакто беше предложен за първи път през 2014 г. и по-късно разработен от екипа на Ethereum Solidity. Има стотици хиляди разработчици, които използват езика за програмиране, за да създават базирани на блокчейн услуги за все по-голям брой случаи на употреба.
Тази статия обяснява какво е Solidity и как се използва в екосистемата Ethereum. Тази статия е за вас, ако се интересувате да научите повече за вътрешната работа на този базиран на блокчейн език за програмиране.
Какво е солидност?
Solidity е обектно-ориентиран език за програмиране на високо ниво, използван за създаване на интелигентни договори, които автоматизират транзакциите в блокчейна. След като беше предложен през 2014 г., езикът беше разработен от сътрудници на проекта Ethereum. Езикът се използва предимно за създаване на интелигентни договори блокчейнът Ethereum и създайте интелигентни договори на други блокчейн.
Solidity е подобен на един от най-често срещаните езици за програмиране, JavaScript. Може да се разглежда като диалект на JavaScript. Това означава, че ако разбирате JavaScript, може лесно да вземете Solidity. Solidity също споделя подобни характеристики на програмните езици C ++ и Python.
Като език на високо ниво, Solidity премахва необходимостта от въвеждане на код в единици и нули. Улеснява хората много да пишат програми по начини, които им е по-лесно да разберат, като използват комбинация от букви и цифри.
Солидността се набира статично, с поддръжка за наследяване, библиотеки и сложни дефинирани от потребителя типове. Тъй като Solidity се набира статично, потребителят много указва всяка променлива. Типовете данни позволяват на компилатора да проверява за правилното използване на променливи. Типовете данни за солидност обикновено се категоризират като типове стойности или референтни типове.
Основната разлика между типовете стойности и референтните типове може да се намери в начина, по който те се присвояват на променлива и се съхраняват в EVM (Ethereum Virtual Machine). Докато промяната на стойността в една променлива от тип стойност не влияе върху стойността в друга променлива, всеки, който се позовава на променените стойности в променливите от референтен тип, може да получи актуализирани стойности.
Как работи солидността?
Красотата на екосистемата Ethereum е, че толкова много различни криптовалути и децентрализирани приложения могат да я използват. Интелигентните договори правят възможно създаването на уникални технологии на Ethereum за всякакви бизнеси и организации.
Всяка година светът харчи милиарди долари за блокчейн решения. Много от тези решения са създадени с помощта на Solidity. Интелигентните договори, изградени с помощта на Solidity, могат да се възприемат като начин за автоматизиране на бизнес и не-бизнес процеси между различни хора. Това гарантира, че хората, които извършват транзакции в блокчейна, не трябва да се притесняват от рискове като измама или невъзможност да използват същата валута.
Един от ключовите компоненти, който прави възможно изпълнението на кода на Solidity, е EVM. EVM е описан като виртуален компютър на блокчейн, който превръща идеите на хората в код, който изпълнява приложения на блокчейна.
Под капака Solidity създава код на ниво машина, който се изпълнява на EVM. Компилаторът се използва за разбиване на четлив от хора код на високо ниво, който се превръща в инструкции, които процесорът чете. Различни платформи осигуряват безплатна компилация Solidity, включително онлайн компилатор Remix и изтеглен команден компилатор на компютър.
Интелигентните договори на EVM имат някои ограничения, на които трябва да се обърне внимание. Един от най-значимите от тях е ограничен достъп до полезни библиотечни функции за синтактичен анализ на JSON структури или аритметика с плаваща запетая.
Публични и частни функции
Публичните функции са подобни на API, до които всеки по света може да има достъп. Всеки може да им се обади в техния код. Публичните функции са проектирани, в много случаи, за споделени процеси на платформа, която всички потребители използват.
Например може да се направи публична функция, която да позволи на всички потребители на платформата да проверяват салдото по сметката си. Един от най-често срещаните начини за използване на интелигентни договори е чрез публични функции.
Свързани: Какво е блокчейн и как работи?
Докато интелигентните договори могат да бъдат лесни за писане с Solidity, често е много трудно да ги напишете сигурно. Например, ако функцията за теглене в интелигентен договор не е сигурна, нападателят може да манипулира уязвимата функция, за да източи сметка на средства.
Нападателят може да извика функция за теглене, за да изпрати пари на друга сметка, използвайки цикъл, който многократно повтаря функцията за теглене.
Частните функции се извикват само от договорите. Те съдържат инструкции, които могат да бъдат изпълнени само след извикване от други функции, във верига. Това затруднява манипулирането на кода от злонамерени участници.
Стандарти и логика на кода
Появяват се различни стандарти, които определят как интелигентните договори Solidity се използват за изграждане на приложения на Ethereum. Тези стандарти са известни като ERC (Ethereum Request for Comments) стандарти. Стандартите се основават на документ, който съдържа насоки за необходимите функции и ограничения за това как трябва да се държи кодът.
ERC стандартите, които определят как работи Solidity, включват:
- ERC20
- ERC165
- ERC721
- ERC223
- ERC621
- ERC777
- ERC827
- ERC884
- ERC865
- ERC1155
Има различни начини, по които Solidity може да се използва, за да накара интелигентните договори да взаимодействат помежду си. Солидността може да се използва и за изготвяне на специални инструкции за това как данните се съхраняват в интелигентния договор. Логиката и данните в интелигентните договори могат да бъдат разделени с помощта на Solidity. Използвайки заместващи договори, логиката на договора може да бъде променена, за да позволи това.
Неизменност
Невъзможно е да се промени кодът на интелигентен договор, след като е написан и компилиран. Това означава, че всеки ред код трябва да работи по предназначение, иначе може да има сериозни рискове кодът да бъде експлоатиран.
Свързани: Как да станете Blockchain програмист и да започнете да печелите големи пари
Тъй като блокчейнът Ethereum е неизменен, е невъзможно да се променят данните и логиката, които са му записани. Начин да се заобиколи това е да се използва прокси за посочване на друг договор, който съдържа действителна бизнес логика. Това позволява да се поправят грешки, докато се изпълнява нова версия на договора.
Разходи за газ
Има допълнителни разходи, които се плащат за използване на Solidity в основната мрежа на Ethereum. Някои от допълнителните разходи се основават на газовата система на Ethereum, която изисква плащане на майнери за осигуряване на блокчейн мрежата, така че кодът да може да работи безопасно върху нея.
Когато пишете интелигентни договори, е важно да запомните, че разходите за газ могат да определят ефективността на интелигентния договор. Тъй като таксите за газ се плащат за всеки използван слот за съхранение, действията, изпълнявани с код на Solidity, струват газ. Интелигентен договор, който е скъп за изпълнение, е малко вероятно да бъде използван в дългосрочен план.
Оптимизацията на газ помага да се намалят разходите за газ при изпълнение на кода Solidity. Някои от най-популярните методи за оптимизация на газа включват използването на библиотеки и използването на по-малко функции. Библиотеките често се използват за запазване на байт код.
Вместо да добавя ненужен байт код към интелигентния договор, логиката може да бъде поставена в библиотеките. Това помага да се запази размерът на интелигентния договор малък. Чрез използването на по-малко функции е необходим по-малко байт код и трудността при одита на кода също е намалена.
Как може да се използва солидността в Ethereum?
Солидността се използва за създаване на интелигентни договори за заменяеми жетони и незаменими жетони. Различни стандарти се използват за изграждане на незаменяеми символи и заменими символи в екосистемата Ethereum.
Те позволяват да се създават различни видове случаи на употреба за хора, които използват блокчейна. Солидността дава възможност на хората да използват жетони и незаменими символи на Ethereum. От изсичане на незаменими жетони до добавянето им, за да се получат земеделски пулове за допълнителен интерес, различни видове употреба на жетони са възможни от Ethereum.
Децентрализираните автономни организации (DAO) също са възможни от Solidity. DAO, който е нов тип онлайн организационна структура, е написан предимно в Solidity. DAO позволяват на различни хора да се събират като членове на онлайн платформа, където гласуват за ключовите решения на DAO.
Солидността дава възможност за автоматизиране на процесите в рамките на DAO. Примерите за автоматизация на процесите в DAO включват гласуване за ключови решения и разпределяне на репутация на членове на DAO за техния принос в групата.
Определяне на стандарти за блокчейн
Солидността е много повече от език за програмиране. Той определя стандартите за бъдещето на блокчейн технологията.
Благодарение на броя разработчици с отворен код, работещи за подобряване на сигурността и производителността на Solidity, хиляди приложения в екосистемата Ethereum продължават да зависят от него за своите приложения работят. С създаването на нови стандарти за интелигентни договори в Ethereum, езикът ще стане по-безопасен за използване.
Възможен ли е наистина децентрализиран интернет? Какво означава децентрализация и как ще ви предпази?
Прочетете Напред
- Обяснени технологии
- Програмиране
- Ethereum
- Блокчейн
Калвин е писател в MakeUseOf. Когато не гледа Рик и Морти или любимите си спортни отбори, Калвин пише за стартиращи компании, блокчейн, киберсигурност и други сфери на технологиите.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!
Още една стъпка…!
Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.