Урок за Ethereum - по-задълбочен поглед към Ethereum!



Този урок за Ethereum обяснява Ethereum от архитектурна гледна точка и също така как той представлява най-голямата платформа за изграждане на DAPPS и DAO.

Ethereum Урок:

В този блог за урок на Ethereum ще обясня вътрешната работа на архитектурата на ethereum и ще ви покажа и прилагането на ethereum чрез прост интелигентен договор .

Виждам Ethereum като програмируем блокчейн, който ще обслужва по-голямата част от B2C предприятието в бъдеще. Ethereum предоставя на разработчиците свободата да създават сложни модели, които да бъдат изпълнявани на блокчейна, вместо да ги ограничават до предварително дефинирани операции като блокчейн Bitcoin.





С този подход Ethereum се превърна в платформа за множество децентрализирани приложения и организации, която включва, но не се ограничава до крипто-валути.

Ще обхващам различни теми по изчерпателен начин чрез публикуването на този блог „Урок на Ethereum“. Тези теми включват:



Можете да преминете през този запис на Ethereum Tutorial, където нашите инструктори са обяснили подробно темите с това ще ви помогне да разберете по-добре тази концепция.

Урок за Ethereum | Интелигентни договори на Ethereum | Едурека

Урок за Ethereum: Акаунти в Ethereum

Мрежата Ethereum има два вида акаунти, а именно:



  • Външни акаунти
  • Договорни сметки

Тези сметки, както външни, така и договорни, се наричат ​​„държавни обекти“ и съставляват „състоянието“ на мрежата на ethereum. Всеки обект на състояние има добре дефинирано състояние. За външни сметки състоянието се състои от салдото по сметката, докато за договорните сметки състоянието се определя от паметта и баланса на паметта.

Ще визирам външните акаунти просто като акаунти. Тези акаунти се притежават от са представени от външни агенти на мрежата, които включват всеки обикновен потребител, майнери, автоматизирани агенти и т.н.

Тези акаунти обикновено се контролират с помощта на алгоритми за криптография с публичен ключ като RSA. Основната цел на външните акаунти е да служат като среда за взаимодействие на потребителите с блокчейна Ethereum.

Договорните сметки, от друга страна, са колекция от код, който се намира в блокчейна на определен адрес. Тези договори се извикват от външни сметки или от други договори чрез специфична функция за призив за действие. Тези договори са написани на скриптови езици на високо ниво като Solidity, Serpent или LLL. Всеки договор, който се намира в блокчейна на ethereum, се съхранява в определен формат, наречен байт код EVM (Ethereum Virtual Machine), който е двоичен формат, специфичен за ethereum.

Ще бъде справедливо само да обясня EVM сега, след като ви казах за EVM-байт кода.

Урок за Ethereum: Виртуална машина Ethereum

Ethereum, по селски начин, определя набор от обобщени протоколи, които са се превърнали в стълбовете на развитието на децентрализирани приложения. В основата на това лежи виртуалната машина Ethereum. Фигурата по-долу обяснява архитектурата:

Архитектура на Ethereum - Урок за Ethereum - Edureka

пример за статичен блок в java

Важно е да се отбележи, че виртуалната машина Ethereum е не само напълно изолирана, но и напълно изолирана. Това означава, че кодът, който в момента се изпълнява на EVM, няма достъп до мрежата или файловата система и може пестеливо да има достъп до други договори.

Сега, когато разбираме ядрото на платформата, нека разгледаме по-задълбочено мрежовите възли.

Урок за Ethereum: Мрежата Ethereum

Мрежата ethereum е публична блокчейн мрежа. Той формира основата на всички децентрализирани равнопоставени приложения и организации, работещи в мрежата. Мрежата се състои от два типа възли, а именно пълни възли и възли с малко тегло.

Пълни възли съдържа цялата история на транзакциите от генезисния блок. Те са пълноценно доказателство за целостта на блокчейн мрежата. Пълните възли трябва да съдържат всяка транзакция, която е била проверена съгласно правилата, определени от спецификациите на Ethereum.

Леки възли от друга страна съдържат само подмножество на цялата блокчейн. Този тип възли се използват най-вече в електронни портфейли, които трябва да са с леко тегло и следователно целият блокчейн не може да се съхранява върху тях. Тези възли, за разлика от тях, не проверяват всеки блок или транзакция и може да нямат копие на текущото състояние на блокчейн. Те разчитат на пълни възли, за да им предоставят липсващи подробности (или просто им липсва определена функционалност). Предимството на леките възли е, че те могат да стартират и работят много по-бързо, могат да работят на по-изчислителни / ограничени устройства и не изяждат почти толкова място за съхранение.

Всеки публичен блокчейн има прикрепена валута. Ethereum не е по-различен. Нека разгледаме по-задълбочено криптовалутата на Ethereum.

Урок за Ethereum: Етер и газ

Ether е името на криптовалутата, използвана за плащане на транзакции в мрежата на ethereum. Освен плащането за общи транзакции и услуги, Ether се използва и за закупуване на газ, който от своя страна се използва за плащане на изчисления в рамките на EVM.

Етерът е метричната единица и има много деноминации, които помагат точно да се плащат транзакции и газ. Най-малката деноминация, известна още като основна единица, се нарича Wei. Деноминациите заедно с техните конкретни имена могат да се видят в таблицата по-долу:

ЕдинициWei ValueУей
wei1 weiедин
Kwei1e3 wei1000
Mwei1e6 wei1 000 000
Плета1e9 wei1 000 000 000
микроетер1e12 wei1 000 000 000 000
милиетер1e15 wei1 000 000 000 000 000
Етер1e18 wei1 000 000 000 000 000 000

Както беше обсъдено по-рано, знаем, че EVM е отговорен за стартирането на код, който е разположен в неговата мрежа. И така, какво пречи на някой да изпълни безкраен цикъл на EVM и напълно да претовари паметта му? Тук се появява концепцията за газ.

Газът се използва като показател за плащане на изчислителни ресурси в мрежата. Всеки договор в мрежата има зададено максимално количество газ, което може да използва за своите изчисления. Това е известно като „ Ограничение на газа „Други термини за свързан газ са както следва:

  • Цена на газ : Това е цената на бензина по отношение на символи като Етер и другите му деноминации. За да стабилизира стойността на газа, цената на газа е плаваща стойност, така че ако цената на жетоните или валутата варира, цената на газа се променя, за да запази същата реална стойност.
  • Такса за газ : Това на практика е количеството газ, което трябва да бъде платено за изпълнението на определена транзакция или програма (наречена договор).

Следователно, ако някой се опита да изпълни парче код, който работи завинаги, договорът в крайна сметка ще надвиши ограничението си за газ и цялата транзакция, която се е позовала на договора, ще бъде върната в предишното си състояние.


След като вече знаем за валутата, нека да разгледаме процеса, който генерира нова валута.

Урок за Ethereum: Майнинг

Ethereum, подобно на другите публични блокчейн технологии, осигурява сигурност чрез модел, базиран на стимули. Това се нарича механизъм за доказателство за работа. Фигурата по-долу показва как работи добивът на ethereum:

От по-техническа гледна точка използваният алгоритъм за доказателство за работа се нарича Ethash, който е хеширащ алгоритъм, вдъхновен от алгоритъма Dagger-Hashimoto.

Сега, когато видяхме работещата архитектура на ethereum и обсъдихме, че това са основни елементи, нека видим реалния проблем и ethereum подхода за решаване на същото.

Урок за Ethereum: Децентрализиран случай на използване на финансиране на тълпа

Декларация за проблема : Добрата „идея“ не е всичко в днешния свят за започване на успешен бизнес. За реализирането на една идея са необходими много средства и усилия. Тук участват организации като „Kickstarter“. Те предоставят на проектите публичната експозиция, необходима за дарения за техния проект, за да започне да работи, но централизираната архитектура на такъв мотив има своите недостатъци, главно в начина, по който се обработват наградите. Тъй като централизираният орган взема всички решения, системите са склонни към правила като:

  • всеки, който е пропуснал крайния срок за кампанията, не може да влезе повече
  • всеки донор, който е променил мнението си, не може да излезе

Приближаване :

Вземаме децентрализирана методология за справяне с проблема, както е обяснено на снимката по-долу:

Решение :

Тук е солидният интелигентен договор за горното изявление на проблема.

прагма солидност ^ 0.4.16 интерфейс токен {трансфер на функция (адрес получател, uint сума)} договор Crowdsale {адрес публичен бенефициент uint публично финансиранеЦел uint публична сума Повишен uint публичен срок uint публична цена токен публичен маркер Награда карта (адрес => uint256) публичен балансOf bool financiGoalReached = false bool crowdsaleClosed = false event GoalReached (адрес получател, uint totalAmountRaised) събитие FundTransfer (адресен бекър, uint сума, bool isContribution) / ** * Constrctor функция * * Настройка на собственика * / функция Crowdsale (адрес ifSuccessfulSendTo // адрес на собственика, когато финансирането е успешно uint финансиранеGoalInEthers // целева сума за повишаване на uint durationInMinutes // зададено време uint etherCostOfEachToken // цена на собствения капитал в етер адрес addressOfTokenUsedAsReward // токен адрес) {бенефициент = ifSuccessfulSendTo финансиранеGoal = финансиранеGoalInEther + durationInMinutes * 1 минута цена = etherCostOfEachToken * 1 етер до kenReward = token (addressOfTokenUsedAsReward)} / ** * Резервна функция * * Функцията без име е функцията по подразбиране, която се извиква всеки път, когато някой изпраща средства към договор * / функция () платима {изисква (! crowdsaleClosed) uint сума = съобщение. стойност балансOf [msg.sender] + = сумаRaised + = сума токенReward.transfer (msg.sender, сума / цена) FundTransfer (msg.sender, сума, вярно)} модификатор afterDeadline () {if (сега = финансиранеGoal) {финансиранеGoalReached = true GoalReached (бенефициент, набрана сума)} crowdsaleClosed = true} / ** * Теглене на средствата * * Проверява дали целта или ограничението е достигната и ако да, и целта за финансиране е постигната, * изпраща цялата сума на бенефициента. Ако целта не е била постигната, всеки участник може да изтегли * сумата, която е допринесъл. * / функция safeWithdrawal () afterDeadline {if (! финансиранеGoalReached) {uint сума = баланс [msg.sender] баланс [msg.sender] = 0 ако (сума> 0) {ако (msg.sender.send (сума)) { FundTransfer (msg.sender, amount, false)} else {balanceOf [msg.sender] = amount}}} if (финансиранеGoalReached && бенефициент == msg.sender) {if (бенефициер.send (сумаРайз)) {FundTransfer (бенефициент amountRaised, false)} else {// Ако не успеем да изпратим средствата на бенефициент, отключете финансиращите балансирайте финансиранеGoalReached = false}}}}

В случай, че се интересувате от учене на солидност, разгледайте нашия блог на , който се използва за разработванеперсонализираниинтелигентни договори.

Ако искате да научите Blockchain и да изградите кариера в Blockchain Technologies, тогава разгледайте нашата което се предлага с обучение под ръководството на инструктори на живо и опит в реалния живот на проекти. Това обучение ще ви помогне да разберете по-задълбочено Blockchain и ще ви помогне да постигнете майсторство по темата.

Имате въпрос към нас? Моля, споменете го в раздела за коментари и ние ще се свържем с вас възможно най-скоро.