ru ru ru ru ru ru ru fa bg mk ky uk bg ru ru mk bg hbs_cyr vi hbs_cyr bg ru hbs_cyr bg bg ru ru bg en en ru bg bg bg bg bg bg bg bg bg bg bg bg bg ru bg bg bg bg bg bg bg bg bg bg bg bg bg vi hbs_cyr bg ru hbs_cyr bg bg ru ru vi es en es ru bg bg bg en bg bg bg bg bg ru ru ru bg ca en fr bg bg bg bg bg bg bg bg bg bg bg bg bg bg bg bg bg bg bg bg bg bg bg bg ba bg en bg bg en bg bg kn bg bg en bg kn bg bg bg ru es hbs_cyr bg kn bg bg bg bg ru en bg en bg ru bg bg bg bg en es es en en tr en en en bg en ru bg bg bg bg ru bg ru bg bg bg bg en bg id bg fa bg vi en bg bg bg en bg bg vi en ru bg bg en bg bg bg en bg bg ru bg ru ru bg vi ru bg vi ru bg vi ky bg vi bg ru bg ru ru bg vi ru bg vi bg bg ru it en en en bg ru bg es en es ru ru vi hbs_cyr bg ru hbs_cyr bg bg ru ru ru fa hbs_cyr ru bg bg az en en en ru
Как да програмирате интелигентни договори с Ethereum | CryptosBG
Крипто валути по Пазарна Капитализация (в реално време)
Пулове за копаене на криптовалути
Най-голямата промяна в нашата финансова система от 50 години се случва през ноември…
Топ 3 DEX на Solana за 2022 г
Въпреки нестабилността на пазара, Cardano надхвърля повече от 2000 нови притежатели дневно
Семейства в цяла Европа виждат криптовалутите като начин да увеличат финансите си
Bitcoin Miner App. Печелете биткойни в Lightning Network, докато играете.
Русия ще легализира криптовалутите като форма на плащане, каза министърът
Най-голямата промяна в нашата финансова система от 50 години се случва през ноември…
Топ 3 DEX на Solana за 2022 г
Въпреки нестабилността на пазара, Cardano надхвърля повече от 2000 нови притежатели дневно
Семейства в цяла Европа виждат криптовалутите като начин да увеличат финансите си
Bitcoin Miner App. Печелете биткойни в Lightning Network, докато играете.
Русия ще легализира криптовалутите като форма на плащане, каза министърът
Крипто валути по Пазарна Капитализация (в реално време)
Пулове за копаене на криптовалути
Добре дошли! влезте в профила си
Forgot your password? Get help
Паролата ще бъде изпратено до вас.
НачалоКриптовалутиЕтериумКак да програмирате интелигентни договори с Ethereum
Как да програмирате интелигентни договори с Ethereum
Ethereum стои зад една от най-популярните криптовалути – и въпреки това е много повече от това. Това означава, че криптографските пари могат да се управляват напълно автономно благодарение на алгоритми. Но как работят така наречените интелигентни договори и къде отива пътуването?
За да разберем принципа на интелигентните договори в Ethereum, е необходимо първо да направим кратка екскурзия в света на програмните езици. Общите езици за програмиране са разделени на две групи: интерпретирани и компилирани езици. В първата група програмите се пишат на език от високо ниво, които след това се изпълняват от преводач. Два популярни примера за това са Python и JavaScript. Интерпретираните езици са често срещани в много домейни на приложения (като мрежата), защото можете да започнете веднага. Освен това те са много универсални и могат да се използват на различни платформи, без да е необходимо допълнително инструментално оборудване.
От друга страна, има компилирани езици, в които компилаторът първо преобразува програмния текст в друг език – често двоичен машинен код. Този двоичен код зависи от платформата и се изпълнява директно на процесор. Компилаторът може (и трябва) да изведе специален код за набор от инструкции на процесора, например за ARM или Intel съвместими процесори. Известни представители от този тип са C и Rust.
Реалността обаче, както винаги, е по-сложна, отколкото предполагат тези прости категории. От дълго време има смесени форми, като Java. Java компилаторът не превежда Java кода директно в „истински“ машинен код, а в специален междинен формат. Този междинен формат от своя страна се изпълнява от интерпретатор – Java Virtual Machine – на специфичната архитектура на процесора.
Умните договори в Ethereum работят по подобен начин. Всички възли, които валидират транзакции в Ethereum и добиват нови валути, съдържат екземпляр на виртуалната машина Ethereum (EVM). В жълтата книга, техническата спецификация на Ethereum, е точно определено кои инструкции поддържа EVM – и как те трябва да бъдат изпълнени.
Това е вътрешна разработка, която има многобройни специални характеристики:
Взаимодействието с външния свят не е възможно: Всички алгоритмични решения трябва да са резултат от блокчейна и неговите транзакции.
Аритметиката се основава на 256-битови стойности, за да улесни справянето с адреси и големи суми пари.
Специални операции като хеш функциите са вградени директно за повишаване на производителността.
На всички инструкции се присвоява функция на разходите (гориво), която приблизително съответства на необходимото време за изпълнение и необходимия обем памет. Терминът измерване е често срещан в английския език.
Подобно на екосистемата Java, има няколко езика за програмиране, за които са налични EVM компилатори. Най-често срещаният език е Solidity, който повърхностно (синтактично) напомня на JavaScript. Към края на 2020 г. документацията на Ethereum изброява още два езика: Vyper, който се основава на Python, и Yul Plus, напълно независима разработка.
Общото между всички тези езици е, че те са специфични за дадена област, тъй като за разлика от езиците с общо предназначение, те заемат ниша със специални функции и по-специално специална среда на изпълнение: EVM. Разбира се, такива специфични за домейна езици (DSL) обикновено са добра идея за намаляване на сложността на приложенията.
Но в случая с EVM това няма особен смисъл. В края на краищата, независимо от липсата на възможности за взаимодействие с външния свят на блокчейн, той може да изпълнява всеки алгоритъм, така че е (с прости думи) Turing-пълен.
И така, защо да не използваме съществуващ език и среда за изпълнение? Ако е необходимо, тогава ще трябва да премахнете функции, но можете да се върнете към по-дълъг опит, по-стабилни инструменти и – много по-важното – по-широка база от програмисти. Тъй като в днешно време популярността на даден програмен език зависи от старата шапка, зависи не само дали можете да програмирате в него особено кратко, безопасно или динамично, но и колко лесно можете да получите достъп до колко съществуващи библиотеки и пакети. Тази промяна на времената е илюстрирана особено от JavaScript, който често е критикуван заради грубата си семантика, но е най-популярният език за програмиране най-късно от милионния NPM пакет.
Хората, които стоят зад спецификацията Ethereum, стигнаха до заключението, че някои проблеми могат да бъдат решени чрез мигриране от вътрешна разработка към универсален език. Колко практично това развитие в момента тече в мрежата, за да се установи алтернатива на най-добрия JavaScript за кучета: уеб събрание (WASM). Това е едновременно универсален междинен език и двоичен формат, съчетан със спецификация за преводачи. Както подсказва името, отвореният стандарт първоначално е замислен за мрежата; Междувременно обаче се обсъждат и други области на приложение (напр. Приложения за смартфони).
Развитието на WASM се ръководи от индустриални гиганти като Microsoft, Google и Apple. Това, което отличава езика, е, че той е проектиран за преносимост от самото начало. Това може да се разпознае от факта, че многобройни съществуващи програмни езици като Rust, C ++ или Go вече могат да се компилират за уеб сглобяване.
И така също перфектна основа за интелигентни договори? Всъщност Webassembly изглежда е направен за тази цел. Също така в браузъра – оригиналния домейн за WASM – е необходимо стриктно да се регулира текущия код, за да се предотвратят пропуски в сигурността. Освен това фактът, че WASM няма събиране на боклука, т.е. програмистът трябва сам да се погрижи за управлението на паметта, гарантира детерминираното изпълнение на алгоритмите. Като бонус има солидни и ефективни устни преводачи за различни платформи.
Всичко това са и критерии, които са изключително важни за дизайна на блокчейн. Следователно използването на ароматизиран уеб сглобяване на Ethereum (EWASM) е логичната цел на дългосрочното планиране на Ethereum 2. EWASM е напълно съвместим с WASM, но въвежда допълнителен интерфейс към блокчейна, за да може да контролира типичния Ethereum операции (например прехвърляне на жетони). За потребителите на Ethereum взаимодействието с интелигентните договори на EWASM е прозрачно и работи точно като EVM договорите.
Интелигентни договори при уеб сглобяване
Но как да постъпите, ако искате да програмирате интелигентен договор в EWASM? От една страна, имате нужда от подходяща мрежа Ethereum. Защото колкото и красива да е визията на Ethereum 2.0, тя е просто визия. За съжаление няма официална тестова мрежа, но можете да преминете към Oasis Ethereum, който е съвместим с Ethereum и до известна степен предлага преглед на бъдещия Ethereum 2.0.
Необходим ви е и език за програмиране, така че да не се налага да пишете ръчно код за сглобяване. Ръждата предлага много предимства тук. Благодарение на подкрепата на WASM в компилатора Rust, съвместими интелигентни договори могат да бъдат генерирани директно от програма Rust. В момента обаче Rust не е разумен избор за Ethereum, тъй като веригата с инструменти все още е твърде крехка. Повечето примери, които могат да бъдат намерени в Интернет, вече са остарели малко след публикуването.
Ето защо си струва вместо това да разгледаме Solidity тук. Класическият пример за интелигентен договор в Solidity е ERC-20 токен, стандартизиран интерфейс за управление на всеки токен по веригата Ethereum. По подразбиране Ethereum използва валутния етер. С токените ERC-20 можете да дефинирате други валути, например жетон, който може да бъде заменен един за един за евро. Такъв договор има фиксирана структура. По принцип в договора има полета за съхранение за:
Броят на жетоните в обращение (следователно може да се зададе горна граница)
Салда по текущата сметка
В Solidity това може да се определи, както следва:
картографиране (адрес => uint256) частни салда;
функция добавяне (uint256 a, uint256 b) вътрешни чисти връщания (uint256) {
uint256 c = a + b;
изискване (c> = a, „SafeMath: преливане на добавяне“);
функция sub (uint256 a, uint256 b) вътрешни чисти връщания (uint256) {
изискване (b <= a, „SafeMath: изваждане препълване“);
uint256 c = a – b;
Тези два метода се използват за безопасно събиране или изваждане на две числа. Например, ако в акаунта на източника няма достатъчно токени, транзакцията се прекъсва със съобщение за грешка („Преливане на изваждане“). Тогава действителната трансферна функция се изпълнява бързо:
прехвърляне на функция (
баланси [msg.sender] = под (баланси [msg.sender], сума);
салда [получател] = добавяне (салда [получател], сума);
Първо, салдото по сметката при подателя се намалява, след това се увеличава при получателя. Извикването на този метод винаги е транзакционно: Ако получателят вече има твърде много или изпращачът няма достатъчно токени, нито една от двете операции не се извършва. Горният код за солидност може да бъде преведен в уеб сглобка с помощта на компилатора SOLL.
Разполагане и други опции
Този завършен WASM файл може да бъде разположен на блокчейн с помощта на web3.js, както е обичайно за Ethereum. Ако искате да използвате Oasis за това, можете да конфигурирате подходящ доставчик. Можете да работите в браузъра или в Node.js.
За да разгърнете договора, трябва да създадете нова транзакция, която не е дала адрес на получател. HEX-кодираният низ на кода на уеб сборката се прехвърля като данни:
const квитанция = изчакайте web3.eth.sendTransaction ({от: 0, данни: „0061736d …“, газ: 10000000});
Ако всичко е наред, последният ред извежда адреса на новосъздадения договор:
Освен че се използва в блокчейн, WASM кодът, генериран от компилатора, може теоретично да се изпълни и непроменен в браузъра, при условие че са осигурени необходимите функции на Ethereum. Инструментите за уеб сглобяване предлагат и редица други опции за обработка, например двоичният код може да бъде преведен на C. Следователно би било напълно възможно да се използва един и същ код както в интелигентни договори, така и в класически приложения.
С EWASM общността на Ethereum е определила курса за поставяне на интелигентни договори на солидна основа в бъдеще. За разлика от самостоятелно направения EVM, уеб сглобяването предлага осезаеми предимства – например широка приложимост и по-голяма сигурност благодарение на многобройни възможности за анализ.
Различни клиенти на Ethereum вече прилагат тази алтернативна виртуална машина, но някои от тях все още не са съвместими един с друг. Жалко, че веригата инструменти Rust все още не е интегрирана правилно в Ethereum. Тъй като обаче развитието на Ethereum 2.0 непрекъснато напредва и има голям интерес към уеб сглобяването, надяваме се скоро да има по-стабилни инструменти.
Кликнете върху звезда, за да оцените!
[Общо гласове: 3 Среден рейтинг: 5]
ВАШИЯТ КОМЕНТАР Отказване на отговора
Моля, въведете името си тук
сте въвели неправилен имейл адрес!
Моля, въведете имейл адреса си тук
запишете моето име, имейл и уебсайт в този браузър за следващия път, когато коментирам.
Този сайт използва Akismet за намаляване на спама. Научете как се обработват данните ви за коментари.
Как да направите пасивен доход с криптовалути през 2022 година
CRYPTOSBG.EU - май 13, 2021
Топ 6 блокчейн игри за печелене на крипто, които да очакваме до края на 2021
CRYPTOSBG.EU - юни 15, 2021
Топ 5 на най-добрите биткойн кранове / фосети за безплатни криптовалути през 2021 г.
CRYPTOSBG.EU - май 29, 2021
Солана (SOL) фундаментален анализ и прогнозиране на цените 2021-2025
CRYPTOSBG.EU - юни 20, 2021
CRYPTOSBG.EU - септември 28, 2021
СПИСЪК С НАГРАДИ (AIRDROPS)
Най-голямата промяна в нашата финансова система от 50 години се случва през ноември…
CRYPTOSBG.EU - август 18, 2022
Топ 3 DEX на Solana за 2022 г
CRYPTOSBG.EU - май 22, 2022
Въпреки нестабилността на пазара, Cardano надхвърля повече от 2000 нови притежатели дневно
CRYPTOSBG.EU - май 22, 2022
Семейства в цяла Европа виждат криптовалутите като начин да увеличат финансите си
CRYPTOSBG.EU - май 22, 2022
Bitcoin Miner App. Печелете биткойни в Lightning Network, докато играете.
CRYPTOSBG.EU - май 22, 2022
Също може да ви харесат...
Най-голямата промяна в нашата финансова система от 50 години се случва през ноември…
CRYPTOSBG.EU - август 18, 2022
Топ 3 DEX на Solana за 2022 г
CRYPTOSBG.EU - май 22, 2022
Въпреки нестабилността на пазара, Cardano надхвърля повече от 2000 нови притежатели дневно
CRYPTOSBG.EU - май 22, 2022
Абонирайте се за Новини
9 x 5 = ?
Subscribe to CryptosBG | Крипто Портал by Email
↑ Grab this Headline Animator
Получете дневния имейл от CryptoNews, който прави четенето на новините действително приятно. Присъединете се към нашия пощенски списък, за да бъдете информирани, безплатно.
Crypto News & Earnings Portal | BG | - новини, сигнали, стратегии за пасивни доходи, инвестиции, оферти и съвети от света на блокчейн и криптовалутите.
Крипто валути по Пазарна Капитализация (в реално време)
Пулове за копаене на криптовалути
Топ 20 Крипто Чарт / Таблици /
(DAOs)(LINK)(MORPHER)ADAairdropairdrop kingAirdropsAlgorand (ALGO)Alpaca FinanceASICAvalanche (AVAX)BananoBATBCH