Останні функції та дорожня карта на 2016 рік

Вихідний вузол: 1576913

Оновлення з заводу MultiChain

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

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

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

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

Тож де MultiChain вписується з усім цим шумом? Коротше кажучи, це зосереджено на продукт і практичність:

  • Стабільність. Розділивши від Биткойн ядро, еталонна реалізація для мережі біткойн, MultiChain спирається на багаторічну стабільність і безпеку, зароблені з працею, завдяки управлінню криптовалютами на мільярди доларів у відкритому Інтернеті. Щоб було зрозуміло, кодова база Bitcoin Core має архітектурні обмеження, і нам, можливо, доведеться відійти від неї. Тим не менш, для поточних вимог користувачів витрати на це значно перевищують переваги.
  • Простота використання. Багато користувачів MultiChain сказали нам, що використовувати його набагато простіше, ніж конкуруючі платформи блокчейн. Я навіть не пам’ятаю, скільки разів я говорив комусь, що вони можуть перейти від нуля до свого приватного блокчейну за лічені хвилини, і вони мені просто не повірили. Але це дійсно так – просто дотримуйтесь інструкцій на сайті скачати та починаємо сторінок і переконайтеся самі. Ні залежностей, ні компіляції, ні возитися з Docker. Всього три автономні виконувані файли та файл README.
  • риси. Коли MultiChain був вперше випущений, він мав набагато менше функцій, ніж сьогодні. Немає контролю над активами за адресами, транзакцій атомарного обміну, немає простих метаданих транзакцій. Отже, як ми вирішимо, що додати? Просто – ми слухаємо наших користувачів. Іноді вони точно знають, чого хочуть, як-от подальшу емісію активів, і ми з радістю зобов’язуємось. Інколи вони знають, чого хочуть досягти, але не знають, як висловити це як особливість, і наша робота – це розібратися. У будь-якому випадку, дорожня карта MultiChain невпинно керується відгуками користувачів, і тому вона буде продовжуватися.
  • Сумісність з біткойнами. Якщо ви створюєте блокчейн-рішення, ви побачите, що вузол — це лише невелика частина картини. Можливо, вам знадобляться мобільні або веб-гаманці, рішення для керування ключами та бібліотека якоюсь незрозумілою мовою для декодування, підписання та кодування транзакцій. MultiChain розроблений, щоб зробити все це максимально простим і швидким, зберігаючи максимальну сумісність з біткойном, для якого у вільному доступі величезна кількість інформації, інструментів і коду. Щоб довести це, MultiChain може навіть бути налаштованим як вузол мережі біткойн.

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

Подальша емісія активів (альфа 17)

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

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

З іншого боку, MultiChain також тепер надає канонічну «адресу запису» для кожного ланцюга. Ця адреса сповнена X і тому, очевидно, була створена без відповідного приватного ключа (це зайняло б нескінченну кількість часу). Тому будь-які одиниці активів, надіслані на цю адресу, ніколи не можуть бути витрачені і знищуються прозорим способом. Зауважте, що для вашої безпеки адресі запису має бути явно надано дозвіл на отримання, перш ніж її можна буде використовувати.

Виклики API: issue, issuefrom, issuemore, issuemorefrom, listassets, getinfo відповіді burnaddress поле.

MultiChain Explorer

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

MultiChain Explorer утворився від популярного Абе проект, написаний в Python і працює на SQLite. Він підключається до API локального вузла MultiChain і включає в себе автономний веб-сервер, тому немає додаткових залежностей. Сподіваємося, що вам сподобається цей інструмент, і ми раді вашим відгукам, які допоможуть нам зробити його ще кращим.

Інтерактивний командний режим (альфа 16)

Як форк Bitcoin Core, MultiChain успадкував bitcoin-cli інструмент, який ми відповідним чином перейменували multichain-cli звичайно. Цей інструмент забезпечує зручний інтерфейс командного рядка для API JSON-RPC MultiChain, що дозволяє надсилати виклики API із системного командного рядка, а їхні відповіді відображаються в терміналі. За лаштунками він зчитує облікові дані API з файлу конфігурації відповідного ланцюжка, створює запит JSON-RPC і декодує його відповідь.

Ми самі, як користувачі MultiChain, мали одне розчарування multichain-cli потрібно було запускати окремо для кожного запиту API. Окрім системних накладних витрат, це запобігає такій плавній взаємодії, яку забезпечують бази даних SQL. І так ми це виправили. Починаючи з альфа-версії 16, якщо ви біжите multichain-cli [chain-name] без команди ви перебуваєте в інтерактивному режимі, який дозволяє багаторазово вводити команди та бачити їх відповідь. Інтерактивний режим підтримує стандартні функції редагування, такі як історія (стрілки вгору і вниз), перехід на початок (Ctrl A) або кінець (Ctrl E) рядка, а також перехід до наступного (Ctrl →) і попереднього (Ctrl ←) слів .

Швидша перевірка підпису (альфа 15)

Коли справа доходить до продуктивності в біткойнах або MultiChain, найважливішим вузьким місцем є перевірка Підписи ECDSA на якій побудована модель безпеки блокчейну. Оригінальне програмне забезпечення Bitcoin Core покладалося на бібліотеку з відкритим вихідним кодом під назвою OpenSSL для генерації та перевірки підпису, яка виконала свою роботу, хоча мала деякі проблеми з ковкість, що означає, що для даного приватного ключа та корисного навантаження було дійсним більше ніж один підпис.

Останні версії Bitcoin Core представили нову бібліотеку для підписання та перевірки ECDSA, яка називається libsecp256k1. Ця бібліотека, написана з нуля розробники блокчейну світового класу, усуває залежність від OpenSSL, вирішує проблеми з пластичністю та працює в кілька разів швидше. Однією з переваг використання Bitcoin Core є те, що MultiChain може скористатися перевагами такого роду вдосконалень, які ретельно перевіряються та перевіряються перед розгортанням у мережі біткойн. І тому alpha 15 робить саме це з libsecp256k1.

Активувати дозвіл (альфа 14)

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

Виявляється, що в даному випадку просте насправді дуже добре. Але одному серйозному партнеру, з яким ми працюємо, було потрібно щось більше. Розумієте, адреса MultiChain з правами адміністратора може керувати всіма типами дозволів на блокчейні, в деяких випадках за умови узгодження з іншими адміністраторами. Але цей партнер хотів надати адресі можливість контролювати підключення інших, надсилати й отримувати дозволи лише з метою адаптації та не впливати на важливіші процеси, такі як майнінг та випуск активів. Тому ми додали новий дозвіл «активувати», який робить саме це. Це також був перший приклад того, що партнер платив за впровадження функції, яка їм потрібна в продукті, безпрограшний варіант, якщо він коли-небудь був.

API транзакцій Wallet (альфа 13)

Як форк Bitcoin Core, MultiChain успадкував деякі погані разом з хорошими. Одним із слабких місць Bitcoin Core є API для отримання інформації про транзакції в гаманці локального вузла. Він пропонує два варіанти: (а) getrawtransaction виклик, який декодує двійковий вміст транзакцій, але не пояснює, як вони вплинули на локальний гаманець, і (b) gettransaction та listtransactions виклики, які мають на меті описати транзакції з точки зору гаманця, але роблять це в заплутаний спосіб, з кількома елементами відповіді на транзакцію. Ще гірше те, що результати цих викликів не можна було легко розширити на роботу з реалізацією активів, випущених блокчейном, MultiChain.

Таким чином, цей випуск представив купу нових API для запитів транзакцій вузла. Результати цих викликів зберігають усі корисні поля з тих, які вони замінюють. Але вони також додають купу нових полів, які описують, як кожна транзакція вплинула на баланс локального гаманця, які адреси вона задіяла, як вона змінювала дозволи та будь-які містяться метадані. Після введення (в альфа-8) можливості ізолювати активність кожної адреси в гаманці, виклики надходять у двох версіях – одна пара, яка описує транзакції з точки зору гаманця в цілому, а інша, яка описує їх з точки зору перспектива адреси індивідуального гаманця.

Виклики API: listwallettransactions, getwallettransaction, listaddresstransactions, getaddresstransaction.

Забігаючи вперед до 2016 року

Це одні з основних удосконалень, запроваджених у MultiChain за останні кілька місяців. Звичайно, також було додано багато менших функцій, які повністю перераховані у файлі README для завантаження. І нашим першочерговим завданням завжди буде виправляйте помилки, щойно вони з’являються. На щастя, проблеми, які ми бачили, ніколи не мали серйозного архітектурного характеру – щасливий результат використання Bitcoin Core як відправної точки.

З точки зору самого MultiChain, після шаленого графіка випуску ми збираємося трохи сповільнитися. Це тому, що ми працюємо над чимось великим, на завершення якого знадобиться кілька місяців. Я детально опишу цю функцію в майбутній публікації блогу, але основна ідея полягає в тому, щоб забезпечити простий та ефективний незмінний механізм запису та часових позначок. для будь-якої інформації, свого роду цифрова «стрічка». Хоча метадані транзакцій у MultiChain вже можна використовувати для цієї мети (в фрагментах до 8 МБ), вони не особливо зручні для зберігання чи пошуку, а також виникають проблеми з масштабованістю при роботі з великими частинами даних.

Що мотивує цю особливість? Звичайно, ваш відгук навчив нас, що незмінне сховище загального призначення є дуже поширеним випадком використання блокчейнів. І якщо ми коли-небудь побачимо значний попит на «розумні контракти» (тобто обчислення на блокчейні) у MultiChain, ця система може слугувати базовим рівнем зберігання з обчисленнями, що виконуються на вузол, коли це потрібно. Як я пояснювалося раніше, вимагати від кожного вузла в приватному блокчейні виконання обчислень у ланцюжку в режимі реального часу мало цінності.

А після цього? Безсумнівно, у безкоштовному продукті буде більше покращень, але ми також почнемо працювати над а преміальна версія MultiChain. На щастя, за останні 8 місяців ми бачили купу запитів на загальні функції, які мають такі характеристики:

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

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

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

Одне, чого я навчився за останні пару років, це те, що ніхто не сприймає програмне забезпечення всерйоз, поки не зможе його побачити та використовувати. За місяць до першого випуску MultiChain я розповідав людям про продукт і помітив, як вони ввічливо кивають, очевидно думаючи: «О, рятуйте мене, ось ще один швидкий розмовник з білим папером і без робочого коду». Але як тільки ви робите продукт доступним, відповідь повністю змінюється. Тож якщо ви читаєте про цю майбутню преміум-версію з часткою скепсису, я розумію і не буду вам заперечувати. Все, що я можу сказати, це те, що наразі MultiChain має дуже надійний досвід виконання своїх обіцянок, і ми з нетерпінням чекаємо продовження.

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

І, нарешті, дякую вам за те, що ви читаєте, і за те, що ви ранні користувачі платформи MultiChain.

Часова мітка:

Більше від Багатоканальний