Субстратні працівники поза мережею: безпечні та ефективні обчислювальні завдання

/
1 min read
                 
             

У багатьох розробників, ентузіастів та технологів блокчейну часто виникає питання “що ми можемо поставити на блокчейн?” Ми можемо навести перші приклади такої валюти, як біткойн або децентралізовані програми та смарт-контракти, побудовані на Ethereum. Ми також можемо продемонструвати ще новіші спеціалізовані приклади, такі як проект будівельних блоків Всесвітньої продовольчої програми ООН , який дає біженцям готівку за продукти харчування в місцях, де банки та платіжні системи ненадійні, або навіть відстеження постачань фармацевтичних препаратів у різних країнах США , використовуючи мережу Mediledger . Parity Technologies побудував технологію з підкладкою та навколишнім технологічним стеком, щоб зробити ці нові блок-ланцюги можливими для розробки та розгортання для будь-якого проекту чи підприємства, а наш досвід показав нам можливості того, що можна поставити на блокчейн.

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

Які роботи найкраще виконувати поза ланцюгами?

Можливо, відповісти на протилежні запитання краще: ланцюгова логіка обробляється всією мережею . Тому кожна обчислювальна операція, необхідна для обробки транзакції, є дорогою (ви платите всім, щоб її виконати і зберегли результати), повільною (всім потрібен час, щоб узгодити відповідь) і повністю детермінованою (у всіх повинні бути всі , точно еквівалентні дані для обчислення результату). Таким чином, логіка поза ланцюга не тільки підходить, але й потрібна, коли обчислення є суттєвими (як складні демократичні механізми, такі як делеговане голосування), слід зберігання великий (наприклад, архівування інформації про розміщення, яка може знадобитися пізніше) , коли час є суттєвим, коли елементи обчислення повинні залишатися приватними (наприклад, вузли, здатні керувати власними секретами для можливої ​​ідентифікації) або де операції, які потрібно виконати, обов’язково не детерміновані або локалізовані іншим чином (наприклад, у випадкових числах, отримання даних з веб-сайту або виклик зовнішнього RPC).

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

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

  • Механізми поза ланцюга є незалежним процесом, і тому вони вимагають власне обслуговування, яке потрібно координувати окремо від самого блокчейна. Це створює великі накладні витрати для мережі в цілому. Для підтримки та оновлення функцій поза ланцюга потрібно багато додаткових зусиль та комунікацій. Можливо, будуть потрібні нові вимоги або виявлені помилки та їх потрібно виправити.
  • Обчислення поза ланцюгами також традиційно передаються через RPC, що може бути повільним і ненадійним. Запитати стан блокчейна та отримати всі необхідні заголовки важко і ненадійно. Іноді, якщо стан, який ви запитуєте, занадто великий, для вузлів у мережі це може бути нездійсненним.

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

Представлення субстратних робітників

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

Код для працівників, що працюють поза ланцюгом, зберігається в мережі та має доступ до ланцюгового середовища, але ніколи не виконується як частина блокової обробки. Працівники поза мережею полегшують запуск правильного коду і дозволяють виконувати більш тривалі завдання, не затримуючи блокчейн. Але, ланцюговий код дозволяє механізми перевірки, такі як голосування, усереднення та складні завдання, реалізовуватися у функції переходу стану блокової ланцюга, на якій він працює. Від дизайнера мережі blockchain / oracle та тих, хто працює в мережі, вирішувати, хто саме повинен робити що, коли та нагороди та покарання для учасників.

Хочете ознайомитись із детальною інформацією про код? Перевірте цей приклад зворотного виклику .

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

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

Інтерфейси робочих програм поза ланцюгами

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

  • Місцеве зберігання. Додаткова локальна база даних ключових значень, що ділиться між усіма співробітниками поза ланцюгами
  • API HTTP-запитів. Повнофункціональний HTTP-клієнт, що дозволяє отримувати доступ та отримувати дані із зовнішніх служб.
  • Безпечне, локальне джерело ентропії для генерації випадкових чисел.
  • Доступ до локального вузла, точний час та можливість сну / відновлення роботи.
  • Доступ до локальної сховища даних для підписання та перевірки заяв чи транзакцій.
  • Можливість подавати транзакції (або підписані, або без підпису) назад у мережі, щоб публікувати результати обчислень.

Примітка. Деякі з цих API ще знаходяться на стадії розробки. Більше інформації та використання документації буде опубліковано як і коли API будуть доступні для використання.

Почніть грати із субстратними робочими субстратами, перейшовши на репост GitHub . розробникам на технічному каналі Субстрат .

            
            
           

Leave a Reply

Your email address will not be published.

Previous Story

Everything You Need to Know about Multichain’s Service Portfolio

Next Story

Crypto.com Grows Offerings With New Exchange and Fundraising Platform