Blockchain for Test Engineers: Merkle Trees
#testing #blockchain
Переклав та трохи доробив свою статтю про дерева Меркла.
#testing #blockchain
Переклав та трохи доробив свою статтю про дерева Меркла.
Test Engineering Notes
Blockchain for Test Engineers: Merkle Trees
What are Merkle Trees - from tester's point view
👍4
Запис доповіді - "What does it mean to test a blockchain?"
#video #blockchain #testing
Минулого місяця, я брав участь у Quality Management Week від Soft Serve.
На цій конференції я коротко розповів про те, що ж таке блокчейн, що там можна тестувати та що почитати, щоб почати розбиратися у цій сфері.
Слайди доповіді (з купою корисних посилань) можна подивитися тут.
#video #blockchain #testing
Минулого місяця, я брав участь у Quality Management Week від Soft Serve.
На цій конференції я коротко розповів про те, що ж таке блокчейн, що там можна тестувати та що почитати, щоб почати розбиратися у цій сфері.
Слайди доповіді (з купою корисних посилань) можна подивитися тут.
👍17🔥3
Blockchain 101 - A Visual Demo
#blockchain #engineering
Доброго ранку, тест інженери
Якщо ви колись задавалися питанням, як жеж працює блокчейн концептуально та з технічної точки зору - маю для вас, мабуть, найкраще відео пояснення. Найкраще - бо воно візуальне.
До того ж - саме викладання матеріалу мені дуже подобається.
А точніше:
- що таке хеш на прикладі SHA256
- що таке блок та як з блоків формується блокчейн
- як це виглядає в розподіленому середовищі
А для тих, хто хотів би дізнатися, що таке публічні та приватні ключі - існує ще друга частина цього відео.
#blockchain #engineering
Доброго ранку, тест інженери
Якщо ви колись задавалися питанням, як жеж працює блокчейн концептуально та з технічної точки зору - маю для вас, мабуть, найкраще відео пояснення. Найкраще - бо воно візуальне.
До того ж - саме викладання матеріалу мені дуже подобається.
А точніше:
- що таке хеш на прикладі SHA256
- що таке блок та як з блоків формується блокчейн
- як це виглядає в розподіленому середовищі
А для тих, хто хотів би дізнатися, що таке публічні та приватні ключі - існує ще друга частина цього відео.
YouTube
Blockchain 101 - A Visual Demo
This is a very basic visual introduction to the concepts behind a blockchain. We introduce the idea of an immutable ledger using an interactive web demo.
0:00 Intro
0:15 SHA256 Hash
2:18 Block
5:16 Blockchain
9:20 Distributed Blockchain
12:19 Tokens
14:36…
0:00 Intro
0:15 SHA256 Hash
2:18 Block
5:16 Blockchain
9:20 Distributed Blockchain
12:19 Tokens
14:36…
👍15
Hardcore у п'ятницю: Перша ремарка про перфоманс блокчейн систем
#testing #performance #blockchain
Цього тижня я тільки-но почав досліджувати питання перфомансу блокчейн систем. А саме - як та що вимірювати.
Ось що я встиг зрозуміти.
Блокчейн систему (як дуже спеціалізований вид розподілених систем) не можна тестувати та вимірювати звичайними метриками та засобами до яких ми звикли. Тобто не буде дуже правильно ставити питання “скільки TPS (transaction per second) може витримати система?” (а люди все ще запитують)
Чому? Бо блокчейн веде себе зовсім по-іншому. В звичайній системі (наприклад у веб додатку) більшість запитів повинні отримати відповідь через деякий час. Чим більше запитів від користувачів, тим більше ресурсів бекенду задіяні в обробці цих засобів.
Для того, щоб обробляти більше запитів - ми просто додаємо більше “машин” для обробки. (Наприклад автоматично через auto-scaling).
В блокчейні такий підхід не працює.
Кожен вузол в блокчейні може обробляти деяку кількість запитів. Причому запити в блокчейні - це звичайні транзакції. Коли транзакцій стає більше, ніж влазить у mempool вузла, нові транзакції не будуть оброблятись.
Вузлу треба час, багато часу:
- Вузлу треба час, щоб зрозуміти - чи може він створити новий блок в PoS
- Або вузлу треба час, щоб підібрати потрібний хеш для блоку в PoW консенсусі.
- Треба час, для того, щоб згідно алгоритму обрати з пулу транзакції та створити новий блок.
- Вузлу треба час, щоб обмінятися з іншими вузлами інформацією про новий блок.
- Вузлу треба час, щоб вирішити конфлікти, якщо одночасно створені декілька блоків.
- Вузлам в системі потрібен час, щоб більшість з них погодились на новий блок.
В окремому випадку потрібно зачекати, поки транзакція стане “стабільною”. Це може бути N блоків поверх того, в якому ця транзакція опинилась або інший варіант алгоритму. Тільки після цього можна відправити дійсно правдивий респонс користувачеві про те, що його транзакція успішна.
То ж підвищити швидкість обробки транзакцій (тобто “перфоманс” блокчейну) не можливо простим додаванням більшої кількості вузлів. Бо вузлам потрібен час, щоб комунікувати між собою та досягти консенсусу.
Один з варіантів оцінки швидкості - це наскільки швидко буде транзакція оброблена, включена в блок та стане стабільною. Тобто block propagation time.
Попереду в мене ще багато відкриттів. Продовжую дослідження.
#testing #performance #blockchain
Цього тижня я тільки-но почав досліджувати питання перфомансу блокчейн систем. А саме - як та що вимірювати.
Ось що я встиг зрозуміти.
Блокчейн систему (як дуже спеціалізований вид розподілених систем) не можна тестувати та вимірювати звичайними метриками та засобами до яких ми звикли. Тобто не буде дуже правильно ставити питання “скільки TPS (transaction per second) може витримати система?” (а люди все ще запитують)
Чому? Бо блокчейн веде себе зовсім по-іншому. В звичайній системі (наприклад у веб додатку) більшість запитів повинні отримати відповідь через деякий час. Чим більше запитів від користувачів, тим більше ресурсів бекенду задіяні в обробці цих засобів.
Для того, щоб обробляти більше запитів - ми просто додаємо більше “машин” для обробки. (Наприклад автоматично через auto-scaling).
В блокчейні такий підхід не працює.
Кожен вузол в блокчейні може обробляти деяку кількість запитів. Причому запити в блокчейні - це звичайні транзакції. Коли транзакцій стає більше, ніж влазить у mempool вузла, нові транзакції не будуть оброблятись.
Вузлу треба час, багато часу:
- Вузлу треба час, щоб зрозуміти - чи може він створити новий блок в PoS
- Або вузлу треба час, щоб підібрати потрібний хеш для блоку в PoW консенсусі.
- Треба час, для того, щоб згідно алгоритму обрати з пулу транзакції та створити новий блок.
- Вузлу треба час, щоб обмінятися з іншими вузлами інформацією про новий блок.
- Вузлу треба час, щоб вирішити конфлікти, якщо одночасно створені декілька блоків.
- Вузлам в системі потрібен час, щоб більшість з них погодились на новий блок.
В окремому випадку потрібно зачекати, поки транзакція стане “стабільною”. Це може бути N блоків поверх того, в якому ця транзакція опинилась або інший варіант алгоритму. Тільки після цього можна відправити дійсно правдивий респонс користувачеві про те, що його транзакція успішна.
То ж підвищити швидкість обробки транзакцій (тобто “перфоманс” блокчейну) не можливо простим додаванням більшої кількості вузлів. Бо вузлам потрібен час, щоб комунікувати між собою та досягти консенсусу.
Один з варіантів оцінки швидкості - це наскільки швидко буде транзакція оброблена, включена в блок та стане стабільною. Тобто block propagation time.
Попереду в мене ще багато відкриттів. Продовжую дослідження.
👍21
Інтерв'ю для Web3 Test Series
#testing #blockchain
Нещодавно я дав коротеньке інтерв'ю для Web3Tests ком'юніті про те, що таке тестування у світі блокчейну та Web3, а також - що там по інструментам в наявності.
#testing #blockchain
Нещодавно я дав коротеньке інтерв'ю для Web3Tests ком'юніті про те, що таке тестування у світі блокчейну та Web3, а також - що там по інструментам в наявності.
Rafaela Azevedo
Web3 Test Series: Oleksandr Romanov
Oleksandr Romanov Oleksandr Romanov is a Software Engineer in Test / Software Engineer from Dnipro, Ukraine. He has 11+ years of experience in testing and test automation. His main area of expertis…
👍18❤1🔥1
Читаємо - "Mastering Blockchain"
#books #blockchain #review
Сьогодні я хочу поділитися оглядом книжки про блокчейн, яку я читав доволі довго. Бо книга велика та містить дуже багато корисної інформації.
Фактично, можна прочитати одну книгу - та отримати увесь набір необхідних базових знань з блокчейну.
#books #blockchain #review
Сьогодні я хочу поділитися оглядом книжки про блокчейн, яку я читав доволі довго. Бо книга велика та містить дуже багато корисної інформації.
Фактично, можна прочитати одну книгу - та отримати увесь набір необхідних базових знань з блокчейну.
Друкарня
Читаємо: “Mastering Blockchain”
Чи варто читати книгу Mastering Blockchain від Imran Bashir, якщо ви хочете розібратись у сучасному світі блокчейну
👍13
Оновлення Awesome Blockchain Testing
#testing #blockchain
Зробив оновлення для мого списку цікавих ресурсів з тестування блокчейну, смартконтрактів та web3 додатків
Можна знайти що почитати, подивитись та поклацати з тестування та безпеки блокчейнів.
#testing #blockchain
Зробив оновлення для мого списку цікавих ресурсів з тестування блокчейну, смартконтрактів та web3 додатків
Можна знайти що почитати, подивитись та поклацати з тестування та безпеки блокчейнів.
GitHub
GitHub - alexromanov/awesome-blockchain-testing: Curated list of blog posts, videos and resources on testing blockchains and blockchain…
Curated list of blog posts, videos and resources on testing blockchains and blockchain-based applications - alexromanov/awesome-blockchain-testing
👍12🔥5
Запис - Що таке блокчейн та як його тестувати?
#testing #blockchain
В цю п'ятницю хочу поділитись записом мого минулорічного виступу на QA Party Hard у Львові.
Про блокчейн, що воно таке, як його тестувати та чи потрібно воно вам взагалі.
#testing #blockchain
В цю п'ятницю хочу поділитись записом мого минулорічного виступу на QA Party Hard у Львові.
Про блокчейн, що воно таке, як його тестувати та чи потрібно воно вам взагалі.
YouTube
Олександр Романов - Прекрасний та легенький світ блокчейну, ні
слайди https://www.beautiful.ai/player/-NcHTTQfntL6ecbQ-aX1
❤17🔥5
Тестування блокчейну - що почитати?
#testing #blockchain
Вчора я провів лекцію з тестування блокчейну для Суворого QA Community.
Крім покрокових пояснень що таке блокчейн "під капотом", я також поділився списком того, що можна почитати теми тестування.
Поділюся цим списком тут.
Від мене
- Blockchain for Test Engineers - цикл статей, де я розбираю складові частини блокчейну з точки зору тестувальника.
- Awesome Blockchain Testing - величезна підбірка статей, відео та дослідницьких робіт з тестування блокчейнів.
Книжки
- Блокчейн і децентралізовані системи - єдиний україномовний підручник для ВУЗу з теми блокчейну.
- Mastering Blockchain - одна книжка, щоб покрити практично все, що пов'язане з темою. Четверте видання - найповніше.
- Mastering Ethereum: Building Smart Contracts and DApps - книжка, якщо ви конкретно хочете розібратися в Ethereum.
Курси
- "Solidity Smart Contracts" - безкоштовний україномовний курс з розробки смарт-контрактів на Solidity (Ethereum). Він непростий, попереджаю.
- Спеціалізація Блокчейн на Coursera - непогана підбірка курсів для початків.
- Спеціалізація "Децентралізовані фінанси" - інтро курси з прикладного застосування блокчейну. А саме - для побудови фінансових застосунків.
Приємного читання!
#testing #blockchain
Вчора я провів лекцію з тестування блокчейну для Суворого QA Community.
Крім покрокових пояснень що таке блокчейн "під капотом", я також поділився списком того, що можна почитати теми тестування.
Поділюся цим списком тут.
Від мене
- Blockchain for Test Engineers - цикл статей, де я розбираю складові частини блокчейну з точки зору тестувальника.
- Awesome Blockchain Testing - величезна підбірка статей, відео та дослідницьких робіт з тестування блокчейнів.
Книжки
- Блокчейн і децентралізовані системи - єдиний україномовний підручник для ВУЗу з теми блокчейну.
- Mastering Blockchain - одна книжка, щоб покрити практично все, що пов'язане з темою. Четверте видання - найповніше.
- Mastering Ethereum: Building Smart Contracts and DApps - книжка, якщо ви конкретно хочете розібратися в Ethereum.
Курси
- "Solidity Smart Contracts" - безкоштовний україномовний курс з розробки смарт-контрактів на Solidity (Ethereum). Він непростий, попереджаю.
- Спеціалізація Блокчейн на Coursera - непогана підбірка курсів для початків.
- Спеціалізація "Децентралізовані фінанси" - інтро курси з прикладного застосування блокчейну. А саме - для побудови фінансових застосунків.
Приємного читання!
👍25❤12
Оновлення в Awesome Blockchain Testing
#blockchain #testing
❗️Для тих, хто ще не чув - я дуже люблю розбиратись в тестуванні складних речей. Насамперед - блокчейну. Як тільки я стартував роботу в цій сфері - я створив окремий репозиторій та ділюся там посиланнями, відео, постами та інструментами зі світу блокчейну тестування.
🔄Сьогодні я додав ще трохи матеріалів, оновив структуру, видалив трохи застарілого контенту.
А далі буду більше розповідати про цей чарівний світ блокчейнів ще більше. Чому? Бо він цікавий, складний та постійно розвивається.
#blockchain #testing
❗️Для тих, хто ще не чув - я дуже люблю розбиратись в тестуванні складних речей. Насамперед - блокчейну. Як тільки я стартував роботу в цій сфері - я створив окремий репозиторій та ділюся там посиланнями, відео, постами та інструментами зі світу блокчейну тестування.
🔄Сьогодні я додав ще трохи матеріалів, оновив структуру, видалив трохи застарілого контенту.
А далі буду більше розповідати про цей чарівний світ блокчейнів ще більше. Чому? Бо він цікавий, складний та постійно розвивається.
GitHub
GitHub - alexromanov/awesome-blockchain-testing: Curated list of blog posts, videos and resources on testing blockchains and blockchain…
Curated list of blog posts, videos and resources on testing blockchains and blockchain-based applications - alexromanov/awesome-blockchain-testing
❤25🔥8❤🔥2
Partner Chains Development Lifecycle: Our CI Evolution
#testing #automation #blockchain
Колеги з команди поділились історією розвитку нашого CI.
Наша система залежить від довжини епохи основного блокчейну. На різних енвайроментах вона різна - від 24 годин до 5 днів!
Спочатку в нас була кастомна модифікація блокчейну з довжиною епохи в 2 години.
На наступному етапі ми працювали із Cardano Preview, де епоха становить 24 години. Підтримувати CI стало набагато простіше, але тестувати - ніт. Будь-які модифікації в нашій системі можна побачити ... через 48 годин. Більшість автотестів була - "почни тест, перевір що результати два дві тому були коректні, зроби нові зміни, зафіксуй їх в тестовій базі даних". Це ... працювало, але дуже довго.
Як покращення, ми взяли тестову версію головного блокчейну (як тільки-но зʼявилась), закинули усі компоненти в Docker та запускаємо їх docker-compose. Тепер результати автотестів не треба чекати 48 годин - а тільки 15 хвилин. Це суттєво краще та зручніше.
#testing #automation #blockchain
Колеги з команди поділились історією розвитку нашого CI.
Наша система залежить від довжини епохи основного блокчейну. На різних енвайроментах вона різна - від 24 годин до 5 днів!
Спочатку в нас була кастомна модифікація блокчейну з довжиною епохи в 2 години.
На наступному етапі ми працювали із Cardano Preview, де епоха становить 24 години. Підтримувати CI стало набагато простіше, але тестувати - ніт. Будь-які модифікації в нашій системі можна побачити ... через 48 годин. Більшість автотестів була - "почни тест, перевір що результати два дві тому були коректні, зроби нові зміни, зафіксуй їх в тестовій базі даних". Це ... працювало, але дуже довго.
Як покращення, ми взяли тестову версію головного блокчейну (як тільки-но зʼявилась), закинули усі компоненти в Docker та запускаємо їх docker-compose. Тепер результати автотестів не треба чекати 48 годин - а тільки 15 хвилин. Це суттєво краще та зручніше.
👍9❤1
Rust - це не завжди швидко й ефективно
#rust #blockchain
Виявилося, що обробка транзакцій в блокчейні Solana була не те, щоб дуже ефективною. Приніс вам історію про те, як можна зменшити використання оперативної памʼяті з 2.6 Gb до 124 Mb.
В багатопотоковому світ структури типу Cow (Clone on Write) чи Arc не завжди підходять.
Є ще Bytes crate - який дозволяє ефективно клонувати не сам масив, а лишень покажчик (pointer) на нього.
#rust #blockchain
Виявилося, що обробка транзакцій в блокчейні Solana була не те, щоб дуже ефективною. Приніс вам історію про те, як можна зменшити використання оперативної памʼяті з 2.6 Gb до 124 Mb.
В багатопотоковому світ структури типу Cow (Clone on Write) чи Arc не завжди підходять.
Є ще Bytes crate - який дозволяє ефективно клонувати не сам масив, а лишень покажчик (pointer) на нього.
Christian Visintin | veeso.dev | Blog | Rust Blog
Rust on a Diet
So if you don't know, I also develop on the Solana Validator (but please don't leave, it's about Rust and not blockchain things 😓) mostly mods for Solana RPC…
❤13🤯4