Привіт, субстрат!

/
1 min read
                 
             

У цій публікації я спробую пояснити рамку блокчейн Substrate таким чином, щоб хтось, хто має трохи технічного досвіду, міг зрозуміти.

Ви, можливо, чули раніше, що Субстрат є розширюваною , модульною та рамкою з відкритим кодом для побудови блокчейнів. Але що це означає?

Субстрат надає всі основні компоненти, необхідні для побудови розподіленої блокчейн-мережі:

  • База даних
  • Мережа
  • Черга транзакцій
  • Консенсус

Хоча ці шари є розширюваними, субстрат здебільшого передбачає, що середній розробник блокчейна не повинен піклуватися про конкретні деталі реалізації цих основних компонентів. Натомість основна філософія субстрату полягає в тому, щоб зробити функцію переходу стану блокчейна максимально гнучким і простим. Цей шар називається часом підкладки.

Але перш ніж ми зануримось у всі ці деталі, спершу нам потрібно встановити спільне розуміння того, що таке блокчейн…

Що таке блокчейн?

Блокчейн – це проста структура даних, де блоки даних пов’язані між собою, утворюючи впорядкований ланцюг . Конкретні деталі блокчейна можуть змінюватися залежно від функціональності цього ланцюга. Однак на високому рівні всі блокчейн повинні мати загальні властивості.

Блоки

Кожен блок в блокчейні має деякі дані, які можна використовувати для створення унікального ідентифікатора для цього блоку. Одна частина цих даних є унікальним ідентифікатором попереднього блоку, відомим як “батьківський блок”. Оскільки кожен блок має вказівник на його батьківський блок, блоки можна упорядкувати детермінованим способом.

Будь-які невеликі зміни даних у блоці змінять його унікальний ідентифікатор. Оскільки ідентифікатор цього блоку змінився, блок, що надходить після нього (“дочірній блок”), також зміниться. Те саме з наступною дитиною, і з наступною, і з наступною…. Насправді всі блоки, що надходять після спочатку модифікованого блоку, повинні буде змінити свій унікальний ідентифікатор, щоб підтримувати ланцюг! Це означає, що легко перевірити, що два блокчейна мають точно однакові дані, просто перевіривши унікальний ідентифікатор останнього блоку в ланцюзі.

Щоб дізнатися більше про ці основи блокчейна, відвідайте демонстраційне відео / відео, знайдене тут: https://anders.com/blockchain/

Блок Виробництво

Завдяки цим властивостям системи блокчейн зазвичай використовуються для відстеження спільної книги . Вміст книги змінюється не шляхом зміни існуючого блоку, а шляхом додавання нових блоків до блокчейн із вказівками про те, як стан книги слід змінювати від блоку до блоку. Ці інструкції зазвичай називають транзакціями .

Зазвичай існують правила, пов’язані з тим, як може змінюватися головна книга, які визначаються функцією переходу держави . Для криптовалютних систем ці правила можуть бути досить простими; наприклад:

Правило: Користувачі можуть витрачати лише ті кошти, які їм належать.

Ці правила також можуть бути складнішими, навіть дозволяючи блокчейн-системам діяти як комп’ютер Тьюрінга , а також головна книга, що виступає в якості сховища цього комп’ютера.

Після того, як зібрано дійсний набір транзакцій, вони ставляться до вмісту блоку, а потім цей блок розміщується в кінці ланцюга. Цей процес виробництва блоку дозволяє змінювати базовий стан блок-ланцюга з часом.

Фіналізація блоку

Тепер, коли був створений новий блок, ним можна поділитися з іншими, хто хоче побудувати ту саму загальну книгу. Однак, оскільки блокчейн є децентралізованим за своєю суттю, можливо, два різних, але все ще дійсних блоки змагаються за одне і те ж місце в кінці ланцюга. Різні механізми доопрацювання блоків можуть бути використані для визначення того, який “ланцюжок блоків” є канонічним блокчейн . Для будь-якого даного блокчейна має бути лише одне справжнє остаточне стан загальної книги. Будь-які альтернативні стани блокчейна відомі як «вилки».

Вилки в нормі, очікувані і взагалі не є проблемою. Процес завершення блоку діє, щоб допомогти некононічним ланцюгам повернутися в синхронізацію. Ми повернемося до розгортання пізніше в цій публікації.

Вузли

На цьому етапі ви повинні мати можливість бачити, що блокчейн призначений для розподілу та децентралізації. Ви хочете, щоб кілька користувачів у всьому світі могли відслідковувати цю спільну книгу без необхідності посередницьких сторонніх осіб. Дотримуючись вищезазначених правил, кожен учасник цієї спільної книги може запустити вузол , який представляє собою комп’ютерну програму, яка дотримується правил мережі блокчейн і підключається до інших вузлів, які роблять те саме, все без потреби. за централізовану послугу. Блокчейн-системи часто є “відкритими” системами, що означає, що кожен може брати участь. Для запобігання від зловмисних акторів застосовуються механізми стимулювання доброї поведінки, а покарання за погану поведінку. З урахуванням усіх цих механізмів блокчейн-система може стати машиною, що не зупиняється.

Компоненти підкладки

Тепер, коли ви добре розумієте, що таке блокчейн, ми можемо почати розуміти, як субстрат є основою для їх побудови. Перше твердження про основу субстрату полягає в тому, що він розширюється . Це означає, що це робить якнайменше припущень щодо того, як ви розробляєте блокчейн та намагаєтеся бути максимально загальним .

База даних

Як ми проілюстрували, серцем блокчейна є його спільна книга, яку необхідно підтримувати і зберігати. Субстрат не передбачає припущень щодо вмісту чи структури даних у вашій блокчейн. У базовому шарі бази даних використовується просте сховище ключових значень, поверх якого реалізовано модифіковане дерево Патріції Меркле ( трие ). Ця спеціальна структура зберігання дозволяє нам легко перевірити, чи є елемент у цьому сховищі. Це особливо важливо для підтримки легких клієнтів, які залежатимуть від цих доказів зберігання, щоб забезпечити легку, але надійну взаємодію з мережею блокчейн.

Мережа

Для того, щоб децентралізована система блокчейну могла спілкуватися, їй потрібно встановити протокол мережевої передачі рівномірних. Субстрат використовує libp2p як модульний стек-мереж однорангових мереж. Завдяки цьому мережевому шару, блокчейн на основі субстрату може ділитися транзакціями, блоками, одноранговими та іншими важливими деталями системи без необхідності централізованих серверів. Відповідно до філософії субстрату, libp2p унікальний тим, що він не робить припущень щодо вашого конкретного мережевого протоколу. Як результат, ви можете реалізувати та використовувати різні транспорти поверх блокчейна на основі субстрату.

Peer-to-Peer Networking

Черга транзакцій

Як було сказано вище, транзакції збираються і формуються в блоки, які в кінцевому рахунку визначають, як змінюється стан блокчейн . Однак порядок цих операцій може вплинути на остаточний стан книги. Субстрат дозволяє вам повністю контролювати залежність та керування чергою транзакцій у вашій мережі. Субстрат передбачає лише те, що транзакція має вагу та набір необхідних тегів , які використовуються для створення графіків залежності. Ці графіки залежності є найпростішими лінійними, але вони можуть стати складнішими. Субстрат автоматично обробляє ці складності для вас.

Консенсус

Нагадаємо, що існують різні способи того, що блокчейн-мережа може прийти до консенсусу щодо змін ланцюга. Традиційно ці двигуни консенсусу тісно пов’язані з іншими компонентами блокчейна. Однак субстрат витратив додаткові зусилля на розробку консенсусного шару, який можна легко змінити під час розробки. Насправді це було зроблено таким чином, що консенсус може бути навіть гарячим заміною після того, як ланцюг буде жити! Вбудований у субстрат є декілька різних двигунів консенсусу, таких як традиційний Доказ роботи (PoW) , Aura (Раунд повноважень) , і консенсус Polkadot, який унікальний тим, що він розділяє процес виробництва блоків ( BABE ) від процесу завершення блоку ( GRANDPA ).

GRANDPA Consensus

Виконання підкладки

Поки ми торкнулися всіх основних компонентів блокчейна, які надає вам субстрат. Як ви вже прочитали, субстрат доклав усіх зусиль, щоб бути максимально загальним та розширюваним. Однак, можливо, найбільш настроюваною частиною субстрату є його модульний час виконання. Час виконання – перехідна функція стану субстрату , згадана раніше.

Субстрат вважає, що середньому розробнику blockchain не потрібно так сильно піклуватися про перераховані вище компоненти blockchain. Поки компоненти є випробуваними на бою та готові до виробництва, деталі реалізації часто мають мало значення. Однак основна логіка blockchain, яка визначає, що є, а що недійсна для мережі, часто має вирішальне значення для будь-якої ланцюга.

Таким чином, основна філософія субстрату полягає в тому, щоб зробити процес виконання блокчейну максимально гнучким і простим.

Бібліотека модулів часу виконання субстратів (SRML)

Час виконання субстрату поділяється на окремі логічні компоненти, відомі як модулі виконання . Ці модулі керуватимуть деяким аспектом ланцюгової логіки, якою керує цей блокчейн. Ви можете думати про такі модулі, як “плагіни” для вашої системи. Як розробник субстрату, ви можете вибирати модулі та функціональні можливості, які ви хочете включити у свою мережу.

Наприклад, є модуль під назвою «Баланси», який управляє валютою ланцюга. Існує також набір модулів на кшталт “Колектив”, “Демократія” та “Вибори”, які керують прийняттям рішень та управління ланцюгом. Існує навіть модуль під назвою “Контракти”, який може перетворити будь-який ланцюжок на основі субстрату в платформу розумного контракту . Такі модулі надаються вам автоматично під час створення субстрату.

Однак ви не обмежуєтесь лише модулями, що надаються субстратом. Насправді, розробники можуть легко створювати власні модулі виконання або як незалежні логічні компоненти, або навіть безпосередньо взаємодіяти з іншими модулями виконання, щоб створити складнішу логіку. Ми віримо, що в довгостроковій перспективі система модулів в субстраті буде діяти так само, як “магазин додатків”, де користувачі можуть просто вибрати і вибрати функціонал, який вони хочуть включити, і з мінімальними технічними знаннями розгорнути розподілену блокчейн-мережу!

Безкрайні оновлення часу виконання

Якщо ми будемо слідувати аналогії екосистеми модуля субстрату, яка діє як магазин додатків, тоді ми також повинні адресу, як ми оновлюємо час виконання. Будь-які виправлення помилок, загальні вдосконалення існуючих модулів або навіть нові функції, які ви хочете додати у свій блокчейн, можливість зміни часу виконання – це те, що субстрат зробив процес першого класу.

Однак зміни функції переходу стану вашої ланцюга також впливають на консенсус мережі. Якщо один вузол, який працює у вашій мережі, має одну версію вашої логіки виконання, а інший – інший, ці два вузли не зможуть досягти консенсусу між собою. Вони принципово не погоджуються щодо справжнього стану книги, в результаті чого ми визначили раніше вилку. Такі види непримиренних виделок погані, оскільки знижують безпеку вашої мережі, оскільки лише підмножина вузлів правильно створить та перевірить нові блоки.

Субстрат вирішив це питання, домігшись до мережі консенсусу щодо самої логіки виконання! Використовуючи двійковий формат Wasm , ми можемо помістити код виконання субстрату на блокчейн як частину спільної книги. Це означає, що кожен, хто працює з вузлом, здатний переконатися, що їхній вузол має останню логіку. Якщо цього не відбудеться, то він замість цього виконуватиме ланцюговий Wasm безпосередньо! Це означає, що оновлення вашого блочного ланцюга може відбуватися в режимі реального часу, в реальній мережі, без створення вилок!

У дусі гнучкості субстрату вам взагалі не потрібно вмикати цю функцію. Якщо ви хочете відключити оновлення мережі, ви можете. Воістину, субстрат надає вам усі інструменти, необхідні для вашої ланцюга.

Вільний та з відкритим кодом

Субстрат є абсолютно вільним і проектом з відкритим кодом . Він побудований за допомогою мови програмування Rust , яка призначена для створення швидкого та суттєво безпечного програмного забезпечення. Координація та розвиток субстратів відбувається через громадські спільноти, такі як GitHub та Riot , що мають понад 100 окремих учасників.

Субстрат – це проект, що народився від Полкадот , більшого бачення світу з безліччю сумісних блокчейнів. Субстрат працює на блокчейн, який підключатиме цю загальнодоступну мережу на додаток до більшості ланцюгів, які підключатимуться до цієї мережі. Коли запускається Polkadot, ви можете бути впевнені, що технологія, яка підтримує ваш блокчейн, – це та сама технологія, яка забезпечує багато інших блокчейн рівня виробництва.

Субстрат має на меті стати абсолютною найкращою платформою для інноваторів blockchain та природним вибором для всіх, хто замислюється над створенням блокчейна.

Підсумок

На цей момент я сподіваюся, що ви можете зрозуміти, чому ми говоримо, що субстрат розширюваний , модульний , і платформа з відкритим кодом для побудови блокчейн-систем. На кожному етапі процесу розробки субстрату пріоритетним залишається збереження загальних речей. В результаті субстрат може бути використаний як платформа для побудови майбутніх технологій, навіть тих, про які ще не думали.

            
            
           

Leave a Reply

Your email address will not be published.

Previous Story

Dutch football trials blockchain ticketing

Next Story

EC, EIF launch blockchain investment scheme, contribute €100m