Онлайн образование. Этереум

Содержание

Слайд 2

Ethereum Архитектуры и паттерны проектирования Егор Зуев

Ethereum

Архитектуры и паттерны проектирования

Егор Зуев

Слайд 3

Меня хорошо слышно && видно?

Меня хорошо слышно && видно?

Слайд 4

Содержание Свойства ethereum Основные структуры Адреса Форматы приватных ключей Переводы и

Содержание

Свойства ethereum
Основные структуры
Адреса
Форматы приватных ключей
Переводы и nonce
Merkle root
Контракты
Майнинг
Где применять

Слайд 5

Свойства ethereum 01

Свойства ethereum

01

Слайд 6

Свойства Использует POS консенсус Транзакции жестко зависят от предыдущих Быстрая сборка

Свойства

Использует POS консенсус
Транзакции жестко зависят от предыдущих
Быстрая сборка блока (около

10 секунд)
Тоже использует merkle root для валидации целостности блока
Слайд 7

Основные структуры 02

Основные структуры

02

Слайд 8

Блок const receivedBlock = { number: 1, hash: '0x1761c0f04b5a1b03eb8a8d2cb14e9ebc28db69eb63444ff733e4810de0606aaf', transactionsRoot: '0x726a8c24cd754f80e934ccf98687c6dc33f053bbaeb5b2203066c66d9cadaa17',

Блок

const receivedBlock = { number: 1, hash: '0x1761c0f04b5a1b03eb8a8d2cb14e9ebc28db69eb63444ff733e4810de0606aaf', transactionsRoot: '0x726a8c24cd754f80e934ccf98687c6dc33f053bbaeb5b2203066c66d9cadaa17', stateRoot:

'0x3bdf5593dd3b069bcda371ee3939cdc0bac9960be5c93a518afeac49f1a87942', receiptsRoot: '0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2', miner: '0x0000000000000000000000000000000000000000', difficulty: '0’, totalDifficulty: '0', extraData: '0x', size: 1000, gasLimit: 6721975, gasUsed: 21000, timestamp: 1581361808, transactions: ['0x48b465577ead8163c482489d9b4c94dea52030965b8237162c2ebc97df85fd63'] }
Слайд 9

Транзакция const receivedTx = { hash: '0xed01b954f4238d540b6a4a3dacf16ef34bf91901a6175432adb3b0f22ef41e6b', nonce: 0, blockHash: '0x82573e410cc86d869279ef0ace7c6e0a4b574371cec7b2d2ece6531b4badb8b6',

Транзакция

const receivedTx = { hash: '0xed01b954f4238d540b6a4a3dacf16ef34bf91901a6175432adb3b0f22ef41e6b', nonce: 0, blockHash: '0x82573e410cc86d869279ef0ace7c6e0a4b574371cec7b2d2ece6531b4badb8b6', blockNumber:

1, transactionIndex: 0, from: '0x188d061521070af6A75A05Eed4af09b6C37d0000', to: '0x9ad14219984bBd6C26bdeaF5014884dBe0784DdE', value: '12’, gas: 90000, gasPrice: '2000000000', input: '0x', v: '0x26', r: '0xb4f89b6e7cc7da92e791fb28b5183c3fc94019f7bbfe68e2ebc1b93e95a1e077', s: '0x5f9126e3a279c85e29fbd58013ce0443026081e506cc95a3d84d5e6934a70b82' }
Слайд 10

Адреса 04

Адреса

04

Слайд 11

Виды адресов Всего один вид в hex формате

Виды адресов

Всего один вид в hex формате

Слайд 12

Merkle root 05

Merkle root

05

Слайд 13

Merkle root

Merkle root

Слайд 14

Типы приватных ключей 06

Типы приватных ключей

06

Слайд 15

Виды приватных ключей Mnemonic (bip39)* Hex private key

Виды приватных ключей

Mnemonic (bip39)*
Hex private key

Слайд 16

Майнинг 07

Майнинг

07

Слайд 17

Как происходит валидация Раз в определенный промежуток времени (около 10 секунд)

Как происходит валидация

Раз в определенный промежуток времени (около 10 секунд)
Валидатор собирает

блок и подписывает его
При выпуске блока, валидатор поручается своими средствами (эфирами), что блок корректный. Если это не так – то эти средства списываются с его счета
Разблокировка происходит, когда еще несколько блоков будет провалидировано после текущего
Слайд 18

EVM 08

EVM

08

Слайд 19

EVM EVM – Ethereum virtual machine Все действия на Ethereum требуют

EVM

EVM – Ethereum virtual machine
Все действия на Ethereum требуют изменения состояния
Каждое

изменение сопровождается тратой ресурсов
Для этих целей, в Ethereum придуман GAS. Gas – это как топливо
То есть, чтобы выполнить какую либо операцию по мутации состояния, нужно предоставить достаточное кол-во газа
У gas есть своя цена (за одну единицу) – GasPrice
Таким образом, fee = gas * gasPrice
Слайд 20

Контракты 08

Контракты

08

Слайд 21

Контракты Контракт – это программа, которая исполняется на EVM Контракт имеет

Контракты

Контракт – это программа, которая исполняется на EVM
Контракт имеет методы и

интерфейсы, как и многие другие ЯП
Представляет из себя набор инструкций (bytecode), на подобии ассемблера
Контракт позволяет создать программу, которая решает проблемы с нулевым доверием, а также, позволяет покрыть кейсы, связанные с децентрализованным хранением информации
Слайд 22

DApps 09

DApps

09

Слайд 23

DApps DApps – decentralized applications Все действия атомарны Результат действия влияет

DApps

DApps – decentralized applications
Все действия атомарны
Результат действия влияет на глобальный state
Результат

всех действий хранится в blockchain
Также, можно всегда узнать кто какое действие совершал
Нет единой точки истины
Слайд 24

Events События в контракте можно отслеживать Эти события можно перечитывать, как

Events

События в контракте можно отслеживать
Эти события можно перечитывать, как на подобии

kafka
События являются асинхронными
Слайд 25

Blockchain in cloud

Blockchain in cloud

Слайд 26

Опрос https://otus.ru/polls/6415/

Опрос

https://otus.ru/polls/6415/