Нараян Прасти



Download 9,22 Mb.
Pdf ko'rish
bet16/47
Sana26.02.2022
Hajmi9,22 Mb.
#472912
1   ...   12   13   14   15   16   17   18   19   ...   47
Bog'liq
Прасти Н. - Блокчейн. Разработка приложений - 2018


Глава 2 
____________________________________ 
[ 52 ] 
___________________________________ 
После смены исходного кода узла могут возникнуть конфликты версий узлов.
В зависимости от типа конфликта может потребоваться обязательное обновление 
узлов у майнеров, чья совокупная вычислительная мощность превышает 50% мощ-
ности сети, либо обновление абсолютно всех узлов сети. Первый тип конфликта 
называется 
мягким ветвлением
, а второй — 
жестким
. Примером мягкого ветвле-
ния является такое обновление программного обеспечения (реализации протокола), 
при котором старые блоки/транзакции теряют валидность. Но если у майнеров, ко-
торые обновили свои узлы, совокупная мощность более 50%, то их новая версия 
блокчейна будет иметь более высокую сложность и в конечном итоге будет приня-
та всей сетью. Примером жесткого ветвления является такое обновление исходного 
кода, при котором меняется механизм расчета вознаграждения, и для разрешения 
конфликта все майнеры должны обновиться. 
Ethereum с момента запуска прошел через несколько жестких и мягких ветвлений
7

Генезис 
Первый блок блокчейна называют 
генезисом
(genesis block) или блоком-
прародителем. Он имеет нулевой номер. Это единственный блок в блокчейне,
который не ссылается на предыдущий блок. Он не содержит транзакции, потому 
что к этому моменту не выпущен ни один эфир. 
Два узла сети могут установить связь между собой, если имеют одинаковый гене-
зис, т. е. синхронизация блоков между узлами может происходить только в том 
случае, если они оба хранят одинаковый блок-прародитель. Другой генезис, имею-
щий более высокую сложность, не может заменить менее сложный генезис. Во 
многих сетях код блока-прародителя вписан в исходный код клиентского прило- 
жения. 
Деноминация эфира 
Эфир, как и любая другая валюта, имеет свою шкалу деноминации: 
1 Ether = 1000000000000000000 Wei; 
1 Ether = 1000000000000000 Kwei; 
1 Ether = 1000000000000 Mwei; 
1 Ether = 1000000000 Gwei; 
1 Ether = 1000000 Szabo; 
1 Ether = 1000 Finney; 
7
Во время работы над переводом книги был активирован плановый хардфорк Ethereum, который 
стартовал 16 октября 2017 г. в 5:22 UTC. В результате успешного обновления в работу введен новый 
протокол под названием Byzantium. Это пятый по счету хардфорк Ethereum (предыдущий состоялся 
16 ноября 2016 года).


Принципы работы Ethereum 
____________________________________ 
[ 53 ] 
___________________________________ 
1 Ether = 0.001 Kether; 
1 Ether = 0.000001 Mether; 
1 Ether = 0.000000001 Gether; 
1 Ether = 0.000000000001 Tether. 
Виртуальная машина Ethereum 
Виртуальная машина Ethereum (Ethereum Virtual Machine, EVM) — это среда вы-
полнения байт-кода контрактов. EVM работает на каждом узле сети. Все узлы сети 
выполняют все транзакции, на которые указывают смарт-контракты, поэтому каж-
дый узел выполняет одни и те же вычисления и хранит одинаковые значения. Тран-
закции, которые только перемещают эфир, тоже требуют некоторых вычислений, 
таких как определение достаточности баланса на счете или вычитание суммы из 
баланса. 
Каждый узел выполняет транзакции и хранит окончательное состояние по несколь-
ким причинам. Например, существует смарт-контракт, который хранит имена и 
данные гостей, приглашенных на вечеринку. Каждый раз, когда добавляют нового 
гостя, новая транзакция транслируется в сеть. Любой узел может ознакомиться
с данными каждого приглашенного на вечеринку. Для этого достаточно прочитать 
финальное состояние контракта. 
Для любой транзакции необходимы вычисления и хранилище в сети. Следователь-
но, должны существовать затраты на транзакцию, иначе вся сеть будет переполнена 
транзакционным спамом, а у майнеров не будет стимула включать транзакции
в блок, и они начнут генерировать пустые блоки. Каждая транзакция требует раз-
ных ресурсов для обработки и хранения, следовательно, разные транзакции должны 
иметь различную стоимость. 
Существуют две реализации виртуальной машины: на исполняемом байт-коде и
JIT-VM
8
. На момент подготовки этой книги JIT-VM была доступна для использо-
вания, но оставалась в состоянии разработки. В обоих случаях исходный код
Solidity компилируется в байт-код. В случае JIT-VM байт-код подвергается допол-
нительной компиляции непосредственно в исполняемый код, поэтому JIT-VM ра-
ботает быстрее своего коллеги. 
Газ 
Газ (gas) — это единица измерения вычислительных шагов. Каждая транзакция 
должна содержать лимит газа и величину вознаграждения за газ (за единичное вы-
числение). У майнера есть возможность выбирать транзакции и собирать вознагра-
ждение. Если количество затраченного газа меньше или равно лимиту газа, то тран-
8
Just-in-Time, компиляция на ходу. 


Download 9,22 Mb.

Do'stlaringiz bilan baham:
1   ...   12   13   14   15   16   17   18   19   ...   47




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish