Блокчейн, биткойн… всички приказват за тях. Технологията, която стои зад всичко това, изглежда особено сложна и неразбираема… но само на пръв поглед. Блокчейн е изключително перспективно направление в компютърните технологии, което се очаква тепърва да развие сериозния си потенциал, при това далеч не само с криптовалутите.
Оказва се, съвсем не е чак толкова трудно човек да започне с такъв тип програмиране. Защото всичко, което съществува в обичайното програмиране, го има и тук.
Но как? Не е ли това драстично различна парадигма, толкова сложна, затворена само за малцина?
Да пипнеш блокчейн
Не си позволявайте подобни мисли, ако направлението ви се струва перспективно и се чудите дали да не се насочите към него. Блокчейн е много, много интересна технология, но тя не се отличава чак толкова драстично от всичко, което представлява модерното програмиране. Единствената по-съществена разлика е основният принцип, че веднъж попаднала информацията в историята на блокчейна, тя си остава непроменена и винаги може да бъде проследена и проверена.
Извиняваме се, ако това определение прозвуча прекалено абстрактно, не след дълго в блога на ZETTAHOST.bg очаквайте и отделна публикация за основните принципи на блокчейн, но днес целта ни е друга – да създадем свой малък проект, базиран на тази технология.
Никоя от модерните блокчейн мрежи не е толкова готова за по-широко прилагане на проекти, различни от алтернативните валути, от тази, която крепи на плещите си криптовалутата етериум.
На езика на вечността
Блокчейн мрежата на етериум е особено популярна заради възможността за така наречените „умни договори“. Благодарение на тях в своеобразния регистър за информация на блокчейна попадат и данни, които нямат връзка с криптовалутите, но са важни по една или друга причина.
За създаването на такъв тип програми в мрежата на етериум работи един особено симпатичен, семпъл и удобен за използване език за програмиране, наречен Solidity.
Името му съвсем не е нито случайно, нито безсмислено. Благодарение на него можем да си позволим наистина да добавим в блокчейна данни, които ще са стабилно защитени, солидни дори повече от стоманата заради основния принцип на този тип технологии, за който вече стана дума.
План програма
Ако имате поне минимален опит с програмирането на някой от най-популярните езици в уеб разработката днес, много бързо ще напреднете и със Solidity. Синтаксисът му е семпъл, разбираем и доста подобен на всички най-популярни програмни решения, базирани на С.
Удобно в случая също е, че за базовата разработка няма нужда да инсталирате каквито и да било допълнителни програми. Не се налага и да избирате дълго IDE – програмата, на която да пишете кода си, защото съществува почти универсално – удобно и доказано решение, което работи достатъчно добре и в браузъра ви – Remix.
Разбира се, ако сте програмисти, можете да използвате почти всяка от най-популярните програми. Remix може също така да се свали като отделна апликация, или пък да ползвате Mist – официалния браузър на мрежата на етериум. Така или иначе, за целите на нашата съвсем базова апликация, просто отворен в любимия ви браузър, Remix ще ни свърши чудесна работа.
В Remix имате всичко, специализирано насочено към разработването на умни договори. Отваряте страницата, приемате условията и… вече имате пред себе си първия примерен умен договор. Програма, която е готова да бъде вкарана в, макар и тестов, блокчейн.
Здравей, блокчейн!
И така, готови сте за първия си проект? По добрата стара традиция на програмирането, това е съвсем базисната програма (в случая умен договор), която да каже символичното “Hello World”. Здравей, свят!
В случая „ще каже“, разбира се, има съвсем различен смисъл. Ако целта на обичайните уеб проекти – например при фронтенда, е, щом бъдат „пуснати“ или „деплойнати“, да се появят и да могат да заработят онлайн, то при „умните договори“ идеята е те да се включат в блокчейна и после всяка уеб апликация, която има съответното предназначение, да може да се свърже с тях.
Проектите, които се пишат в Remix, попадат в тестовия блокчейн на етериум. Който обаче работи на съвсем същия принцип, на който и реалният – вашият умен договор си остава деплойнат там и би трябвало да имате достъп до него в много, много дълъг период от време… дори завинаги.
Стъпка по стъпка чейн
И така, започваме конкретните стъпки. След като сте отворили страницата, намирате иконката за File explorer вляво, избирате като среда за разработка (environment) Solidity и кликвате върху добре познатото плюсче за създаване на нов файл. Очевидно това ще ви помогне да направите първия си файл с разширение .sol, който ще приюти и вашия умен договор, с който да кажете „здравей“ на света.
Въвеждате има на файла, а после и следното примерно съдържание:
// Първият ми умен договор!!!!
pragma solidity >=0.5.0 <0.7.0;
contract HelloWorld {
function get()public pure returns (string memory){
return 'Hello World!';
}
}
Какво казва кодът по-горе? В началото задавате версията на езика solidity, която ще се прилага при компилирането – по този начин си гарантирате, че синтаксисът, който ползвате, е поддържан от останалата част от софтуера, която ще го „задвижи“.
Имаме ли сделка?
Следва самият договор – нещо като своеобразна главна функция на клас. И после идва единствената реална функция вътре във вашия договор. Тя е от типа get, защото само връща съдържание. Публична е – не е с ограничен достъп. Не приема аргументи, а връща само стринг (или „низ“, ако предпочитате българския термин). Който пък в нашия случай е с добре познатото съдържание “Hello World!”.
Разбира се, това е най-най-базовият договор, в реалността нещата могат да станат доста по-сложни. Но въпреки това, като цяло самите договори обикновено не са с прекалено комплициран и голям по обем код, защото там се включват само функционалностите, които е задължително да бъдат вкарани в блокчейна. Тъй като всяка връзка с деплойнатия договор в същинския блокчейн си има цена. Всичко, за което непроменимостта не е чак толкова важна, би могло да остане в апликацията, която после ще се свързва със самия договор.
И така, време е нашият… (може би не прекалено) умен договор да попадне в блокчейна. Избирате иконата точно под File explorer – Solidity compiler. Тук имате възможност да променяте доста настройки, но за нашите най-най-основни цели това съвсем не е необходимо. Достатъчно е да приключите всичко с “Compile HelloWorld.sol” и кодът вече е компилиран и готов да се отправи към бъдещия си дом – блокчейн мрежата.
Влизаме във веригата
Когато получите зелена светлина, че компилирането е приключило, продължавате с третата икона в същата лява редичка – Deploy and run transactions. Отново не е нужно да променяте нищо в настройките, кликате на Deploy и… колелото се завърта. Кодът ви си взаимодейства с инфраструктурата на блокчейна и след определено време попада в поредното блокче код от веригата.
Накрая договорът ви вече се появява в списъка с деплойнати в съответното прозорче на Remix. И можете колкото пъти си искате да викате функцията, която включихте в първия си умен договор и тя без умора всеки път да ви връща очакваното приветствие „Здравей, свят!“.
Надяваме се, че за вас това е първата стъпка от едно дълго и смислено приключение. А когато напреднете с умните договори и Solidity, ви очакваме да опитате как ще работят проектите ви, свързващи се с блокчейна, с нашия безплатен хостинг. Успех!