Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
kensyin
4 года назад
ico

КАРТЕСИ Инфраструктура Linux для масштабируемых DApps 

Введение

Найдите минутку, чтобы подумать о сложности программной инфраструктуры, которая все больше пронизывает все аспекты нашей жизни. Это включает в себя операционные системы, библиотеки программного обеспечения, инструменты, протоколы, языки программирования, компиляторы и другие технологии. Эта среда является результатом продолжающихся глобальных усилий на протяжении последних 50 лет и потратила миллиарды часов работы. Эта взаимозависимая сеть компонентов позволяет программному обеспечению стать настолько распространенным. Без этого ни одна из служб и приложений, на которые мы полагаемся, не будет возможной или даже возможной.

Блокчейн, неизменные, рандомизированные, децентрализованные записи - имеет возможность делать все процедуры, действия и ассоциации полностью сосредоточены в своих собственных решениях. Это означает, что мы можем избавиться от посредников, экспертов и подошвать доверие третьих сторон. Таким образом, рационализация каждого бизнеса, административного и некоммерческого движения.

Взлеты и падения сцены ипотечного кредита требуют запутанной веб-выступления, защита прав, и бесчисленные небольшие сборы обмена, которые имеют важное значение для поддержания инфраструктуры работает. Эта основа существует на том основании, что, действительно, обмен земельными участками стал процедурой, которая требует большого доверия в отчетные даты. Тем не менее, Blockchain преодолеет эту озабоченность, и некоторые записи собственности могут содержать четкие и утвержденные обменные истории, ограничивая требования к фондам, чтобы обеспечить возможности выпуска и размещения акций в администрации, вместо обмен его в нем. личные права.

Ethereum значительно обобщает эту идею, позволяя транзакциям выражаться как произвольные программы или смарт-контракты. Вскоре стало ясно, что программируемые транзакции в децентрализованной ситуации могут быть использованы не только для поддержания платежной системы. Блокчейн в основном становится децентрализованным и децентрализованным «мировым компьютером», который не может быть выключен и не может контролироваться отдельными лицами или учреждениями. Новый тип (децентрализованного) приложения, называется DApp, для запуска на этом компьютере мира.

По сравнению с традиционными компьютерными программами, DApps сталкивается с двумя основными ограничениями. Во-первых, масштабируемость. Поскольку смарт-контракты должны выполняться всеми участниками блокчейна, DApps парализован строгими ограничениями на расчеты, медленными скоростями транзакций, ограниченным пространством для хранения данных и высокими ценами. Эта проблема получила широкое признание в качестве одного из ключевых факторов, ограничивающих рост внедрения блокчейна. В результате несколько проектов в настоящее время сосредоточены на разработке решений масштабируемости для блокчейна (например, плазма, осколки, боковые цепи, государственные каналы и т.д.).

Второе ограничение получило гораздо меньше внимания: примитивная инфраструктура программного обеспечения. Здесь виновником является отсутствие операционной системы. Операционные системы являются основой, на которой все последние 50 лет разработки программного обеспечения построен. Оторвавшись от всей этой предыдущей работы, разработчики DApp изо всех сил пытаются выполнить тривиальные для обычных разработчиков задачи, такие как передача файлов, сжатие данных, поиск цвета пикселя на изображении или запрос базы данных для записи. Даже сама концепция файла отсутствует!

Существует произвм между сегодняшним незрелым блокчейн-программным обеспечением и обширной инфраструктурой программного обеспечения, которая легко доступна и работает на наших ноутбуках и смартфонах.

DApps должны быть способны выполнять вычисления, как это регулярно делают «централизованные» приложения. Разработка DApp должна иметь доступ к языкам, библиотекам и инструментам, которые являются стандартными в современных операционных системах, таких как Linux. Идя еще дальше, мы должны стремиться к созданию инфраструктуры более высокого уровня, которая является универсальной и масштабируемой, а страдлягай и болтов отдельных блокчейнов и слоев консенсуса. Разработчики должны иметь возможность сосредоточиться на своей специфической логике DApp, а не на тонкостях государственных каналов, боковых цепей и самого блокчейна. DApps должны быть легко портативными в различных блокчейнах.

Такая инфраструктура будет размыть границы между навыками, необходимыми для разработки централизованного и децентрализованного применения. Это проложит путь для нового поколения DApps, которые немыслимы сегодня, как современный Интернет был 50 лет назад. Мы в Картези преследовали это неизбежное будущее. С этой целью мы определили и внедрили децентрализованную инфраструктуру Linux для масштабируемых блокчейн-приложений.

Прежде чем попасть в сорняки нашего проекта, давайте сделаем короткий крюк в основах систем слоя-2 для масштабируемых DApps. Такие системы, как плазма, государственные каналы, TrueBit и Cartesi отличаются друг от друга во многих отношениях, но они основаны на одних и тех же фундаментальных концепциях.

Решения уровня-2

Блокчейны достигают консенсуса путем избыточности, репликации вычислений и данных по всей сети. Из-за этого DApps не могут полагаться на них для высокочастотных транзакций, для сложной обработки или для хранения больших объемов данных. Это было бы дорого, расточительно и неэффективно. Диапазон практических DApps серьезно ограничен этими ограничениями. В отличие от этого, централизованные приложения, работающие на серверах в облаке (или даже на наших персональных устройствах), не страдают от этих ограничений. Нам нужно сочетать производительность и общность обычных программных систем с консенсусом и гарантиями безопасности блокчейнов.

Хотя глобальный консенсус является дорогостоящим ресурсом, большая часть данных и обработки, связанных с DApp (т.е. помимо финансовых аспектов), не представляют интереса для всей сети. Они имеют значение только для нескольких сторон, участвующих в этом конкретном DApp. Из-за этого почти всегда достаточно, чтобы вовлеченные стороны сохраняли свой собственный местный консенсус. Сильные гарантии, предлагаемые глобальным консенсусом всей блокчейн-сети, могут быть использованы экономно для разрешения возможных споров между этими сторонами.

Общая идея заключается в следующем. Все стороны, связанные с данной DApp связаны друг с другом смарт-контрактов с четко определенными крипто-экономических стимулов, которые вознаграждают честное поведение и наказывают нечестность. Общий дизайн заключается в том, чтобы иметь смарт-контракты требуют от всех заинтересованных сторон разместить депозит в качестве залога, прежде чем взаимодействовать с DApp. Когда все участники соглашаются с изменением локального состояния DApp, они сообщают о своем согласии и наборе изменений в блокчейне. Блокчейн затем реагирует, изменяя соответствующее глобальное состояние. Когда у любой вовлеченной стороны есть доказательства неправильного поведения, они могут обратиться к блокчейну до того, как изменения станут постоянными.

Блокчейн становится арбитром, который выдает себя за честную сторону, вознаграждая его залогом, изъятым у плохого актера.

Эта простая, но мощная идея сводит к минимуму потребление ресурсов блокчейна, сохраняя при этом сильные гарантии безопасности всей сети. Этот арбитражный механизм вдохновлен вековыми взаимодействиями между людьми. Мы не привлекаем Верховный суд перед каждым человеческим взаимодействием. Подавляющее большинство сделок, даже связанных с деньгами, урегулированы на местном уровне. Мы не вызываем адвоката, прежде чем выйти и купить фрукты на уличном рынке. Это было бы крайне неэффективно. Вместо этого, у нас есть система, которая используется только в случае необходимости: судебная система участвует только в случае правовых споров.

Применение этой метафоры к хорошо продуманным блокчейн-системам, включающим криптоэкономические стимулы, является ключом к эффективным, масштабируемым DApps.

Cartesi: Linux на блокчейне
Мы только что видели, как система layer-2 может отделить локальные взаимодействия от блокчейна, сохраняя при этом свои гарантии безопасности. Теперь мы можем использовать это разъединение, чтобы значительно увеличить выразительность и мощность инфраструктуры. В частности, мы создаем сдвиг парадигмы в разработке DApp, превратив платформу из того, что кажется игрушечной электронной таблицей, в нечто, что ведет себя как настоящий компьютер под управлением Linux.

Рисунок 1. Архитектура Картесского ядра.

Cartesi Core (см. рисунок 1) представляет собой набор базовых технологий, которые представляют собой первый шаг на пути к видению, которое мы обсуждали. Она включает в себя компоненты на цепи и вне цепи. Компонент вне цепи является то, что мы называем Cartesi узла. В двух словах, каждый участник, который хочет взаимодействовать с Cartesi DApp делает это через cartesi узла. Они могут либо запустить свой собственный cartesi узла или нанять третью сторону, которая делает, чтобы представлять свои интересы.

Основным модулем в cartesi Node является Cartesi Machine, пользовательский виртуальный аппарат, который эмулирует микропроцессор RISC-V и управляет встроенным дистрибутивом Linux. При разработке DApp с Cartesi большая часть децентрализованной логики будет закодирована для запуска под Linux вне цепочки, а не закодирована как смарт-контракты и развернута в цепочке.

Машины картези
Cartesi машины являются специальными во многих отношениях. Во-первых, они полностью автономны. Это означает, что нет внешних источников энтропии, которые могут изменить состояние машины недетерминированным способом (например, клавиатура, мышь или часы на стенометра). Во-вторых, они воспроизводимы. Другими словами, когда две машины Cartesi начинаются из того же исходного состояния и работают для одного и того же количества циклов процессора, они достигают точно такого же конечного состояния. Это верно независимо от архитектуры и операционной системы, худелей Cartesi Узла. Наконец, Cartesi Машины предлагают полную прозрачность. Состояние определяется и подвергается таким образом, что любой внешний наблюдатель, имеватель с доступом ко всему состоянию в заданном цикле процессора, может предсказать все состояние на следующем цикле процессора.

Свойства самосдерживания и воспроизводимости гарантируют, что две стороны, которые имеют доступ к исходному состоянию cartesi Machine, получат те же результаты, когда они заводят машину в своих узлах Cartesi. Естественно, это жизненно важно для достижения консенсуса. К сожалению, это, в общем,не гарантируется аппаратными архитектурами или виртуальными машинами. Cartesi Машина была разработана специально для удовлетворения этих требований. Свойство прозрачности означает, что все состояние cartesi Machine может быть Merklized. Помимо всего прочего, это позволяет блокчейну представлять машину с одним хэшом. Как мы увидим, эти свойства позволяют блокчейну эффективно урегулировать любые споры по поводу результатов выполнения Cartesi Machines вне цепочки.

Представление машины

Рисунок 2. Вид на машину Cartesi.

Off-цепь, Cartesi машина представлена явно (см. рисунок 2, слева). Его основными компонентами являются его память и ассортимент дисков. В типичной конфигурации ядро Linux загружается в память, а диск 1 содержит файловую систему со встроенным дистрибутивом Linux. Распределение может быть настроено для загрузки и выполнения любой программы в этой файловой системе. Гипотетическая программа может обработать вход, найденный в диске 2, и написать результаты для вождения 3. Снаружи диски — это просто файлы, проживающие в узеле Cartesi. Cartesi Машина подвергает их ядро Linux в качестве устройств. С точки зрения программ, работающих под Linux, они могут быть установлены в качестве обычных файловых систем и могут содержать несколько каталогов и файлов. Запуск Cartesi Machine будет производить выходной файл в узлах Cartersi, который содержит другую файловую систему, и внутри этой файловой системы находятся желаемые результаты вычислений.

На цепи, Cartesi машина представлена хэш корня дерева Merkle всего состояния (см. рисунок 2, справа). Это состояние включает в себя память и диски, а также все остальное, необходимое для работы Cartesi Machine (например, значения всех регистров и устройств). Хэши корня дерева Merkle являются особенными в том, что они поддерживают две важные операции. Во-первых, можно проверить или отклонить любые претензии по поводу стоимости любой части государства. Во-вторых, можно получить новый хэш корня дерева Merkle, соответствующий любой модификации состояния. Эти операции могут выполняться очень эффективно в рамках блокчейна. Смарт-контракты могут, например, заменить весь диск в Cartesi Machine и получить соответствующий новый корневой хэш. И наоборот, учитывая окончательный корневой хэш для cartesi Machine, и хэш выходного диска, смарт-контракты могут убедиться, что диск действительно принадлежит этой машине.

Урегулирование споров
Рассмотрим двух актеров, Алису и Боба, которые участвуют в сделке, контролируемой смарт-контрактом. Допустим, что транзакция включает в себя некоторые сложные вычисления, которые непрактично выполнять по цепочке. Теперь предположим далее, что смарт-контракт знает первоначальный хэш корней для машины Cartesi, которая, при загрузке, запускает программу в диске 1, которая выполняет необходимые вычисления с помощью ввода от диска 2 и записывает выход для привода 3. Используя эффективные операции с хэшем, смарт-контракт может заменить диск 2 с желаемым ввозам. Затем он может потребовать от Боба корневой хэш, что приводит к выполнения соответствующего Cartesi Машины вне цепочки.

В настоящее время существуют две возможности. Если Алиса соглашается с Бобом, смарт-контракт может продолжиться, запрашивая у Боба подробную информацию о диске 3, удовлетворенные тем, что И Алиса и Боб согласятся с последствиями. Если Алиса не согласна, она начинает спор путем внесения залога. Если Боб хочет защититься от спора, он отвечает, внося в него то же обеспечение. (В противном случае, после тайм-аута, он считается утраченным.) Ниже приводится интерактивный протокол, с участием Алисы и Боба и при посредничестве blockchain, который гарантирует, что тот, кто будет честным, победит в споре.

Игра по проверке «Feige and Kilian 1997» — это алгоритм, который позволяет арбитру с ограниченными вычислительными ресурсами высылать игру между двумя вычислительно неограниченными игроками. В нашем случае ограниченным посредником является набор смарт-контрактов, работающих на блокчейне. Неограниченные игроки - машины Картези, работающие на узлах Алисы и Боба Картези. Эта процедура также используется TrueBit, и подробное объяснение можно найти в этой большой статье Сина Хабибян.

В двух словах, используя n-ary поиск, смарт-контракт определяет последний цикл процессора, для которого Алиса и Боб договориться о корневой хэш для всего состояния Cartesi машины. Затем блокчейн выполняет одну инструкцию RISC-V для получения корневого хэша для следующего состояния. Алиса и Боб, как известно, не согласны на этот хэш. Определяя, кто разместил правильные результаты, смарт-контракт может арбитраж в пользу честной стороны и вознаградить его или ее с обоими залога.

Запуск одной инструкции RISC-V безболезненна и очень рентабельен для блокчейна. Поиск инструкции занимает только логарифмическое время и пространство. Более того, этот процесс ведется только в случае возникновения спора. Споры крайне редки, потому что обман всегда будет пойман, а обман приносит наказание.

Полный пример: Игр на основе пошагов
В качестве конкретного примера мы покажем, как Cartesi Core может значительно упростить работу разработчика DApp, реализующего пошаговую игру, такую как Go или Chess. Алиса и Боб будут играть на деньги, победитель забирает все. Игроки представлены в игре компонентами DApp, работающими внутри своих узлов Cartesi. Они начинают новую игру, внося стоимость своих ставок в смарт-контракт. После этого игра продолжается почти полностью за цепью.

Алиса и Боб сохраняют всю последовательность ходов, которые Мерклизованы вне цепочки. Давайте назовем корневый хэш этого дерева хэшом последовательности. Когда Алиса очередь сделать ход, она придает его последовательности, получает новую последовательность хэш, и подписывает его. Затем она отправляет ход, хэш последовательности и подпись Бобу с помощью государственного канала. Боб проверяет ход Алисы, прикладывает его к своей копии последовательности перемещения, вычисляет хэш последовательности, подтверждает, что он соответствует движению Алисы, а затем проверяет ее подпись. Если все выяснится, теперь его очередь. Игра продолжается таким образом, пока не произойдет одна из двух вещей: они преждевременно перестают играть в игру правильно, или один из них, наконец, выигрывает игру.

Предположим, Боб хочет претендовать на победу. Он публикует хэш последовательности Алисы, ее подпись и его выигрышный переход на блокчейн. Смарт-контракт сначала проверяет подпись Алисы на хэше последовательности. Затем он делегирует решение о том, кто выиграл в "конце игры" Cartesi machine (работает первоначально на узлах Боба себя, как мы покажем в ближайшее время). Это машина, которая, учитывая последовательность ходов в диске 2 и окончательный ход в диске 3, останавливается с кодом выхода успеха, если ход выигрывает игру, или с отказом, если это не так. Программное обеспечение, которое работает внутри этой машины Cartesi была написана разработчиком на языке программирования по своему выбору. Он может свободно воспользоваться всеми современными удобствами и программным обеспечением с открытым исходным кодом, доступным в операционной системе Linux, работающей без каких-либо искусственных ограничений ресурсов на автономной машине RISC-V.

Чтобы определить исходное состояние машины в конце игры, смарт-контракт использует хэш-операции, чтобы заменить диск 2 с последовательностью ходов, предоставляемых Алисой, и заменить диск 3 последним ходом Боба. Он требует, чтобы Боб запускал соответствующую машину вне цепочки и вывешивает хэш корня Merkle-tree его окончательного состояния на блокчейн. Если Боб говорит правду, он сможет защититься от любых потенциальных проблем Алисы относительно ценности этого хэша. Боб также сможет доказать блокчейну, что машина в конце игры остановилась в его пользу, показав, что слово, обозначенное как код выхода в его памяти, имеет соответствующее значение. Если Боб лжет, Алиса оспорит свой последний хэш и выиграет последующую игру проверки.

Интересная проблема возникает, когда игроки преждевременно перестают сотрудничать друг с другом. Возможно, настала очередь Боба и, понимая, что его положение безнадежно, он отказывается отправить свой переезд к Алисе. Сам по себе блокчейн не может знать, действительно ли это происходит, или Алиса игнорирует попытки Боба связаться через государственный канал. К счастью, существуют способы решения этой проблемы доступности данных. Простое решение заключается в следующем. Разочарованная поведением Боба, Алиса сообщает блокчейну о своем отказе сотрудничать. Для этого она представляет последнюю последовательность хэша Боба и его подпись. Блокчейн предлагает Бобу возможность представить еще более позднюю последовательность хэша, подписанного Алисой. Теперь оба игрока должны представлять будущие ходы через блокчейн.

Отныне все, что блокчейн должен сделать, это контроль, чья очередь, принять новый шаг от правильного игрока, и использовать хэш-операции, чтобы держать последовательность хэш в актуальном состоянии. Если один из игроков перестает размещать ходы, другой может претендовать на тайм-аут и выиграть ставку. Если один из игроков заявляет о победе, в блокчейне есть вся информация, необходимая для создания машины конца игры, как и раньше: проблема решена.

Преимущества этого дизайна

Преимущества этой конструкции заключаются в том, что все сложности, обработка и хранение данных, связанные с игрой, происходят вне блокчейна. Часть его работает в узлах Cartesi, и часть в машине Cartesi. Обе системы работают под обесистемой Linux, где разработчики наиболее продуктивны. В типичном сценарии, где игроки сотрудничают, блокчейн просто принимает ставки, когда игра начинается, и передает их победителю, когда она заканчивается. Когда игроки перестают сотрудничать, блокчейну все еще остается очень мало работы: он сохраняет только последовательность хэша в актуальном состоянии. Он никогда не хранит последовательность ходов, никогда не нуждается в доступе к состоянию игры, или даже заботится о своих правилах. Даже когда возникает спор, он автоматически урегулируются Ядром Картези.

Рассмотрим, что повышение производительности повышает сяротку, как это приводит к разработке блокчейна и увеличению спектра приложений, которые позволяет эта дополнительная масштабируемость. Мы можем только начать представлять.

Будущее

В течение последних 20 месяцев, большая часть Cartesi Core, как описано в нашей белой бумаге, была реализована. В будущих статьях мы продемонстрируем его мощь и гибкость, создавая пример DApps. Излишне говорить, что эти DApps будут включать проверяемые вычисления по большим объемам данных, используя при этом обширную программную инфраструктуру, доступную разработчикам на Linux.

Ядро Картези является лишь первым шагом на пути к нашему видению. Миссия Cartesi заключается в том, чтобы закрыть разрыв между централизованными и децентрализованными приложениями, как с точки зрения возможностей, так и с точки зрения удобства.

Мы будем продолжать работать над устранением всех ограничений от DApps на питание от Cartesi. Мы предложим бесшовные государственные каналы и проверяемый внецепной протокол обмена данными. Мы создадим новую среду программирования, которая интегрирует разработку всех компонентов Cartesi DApp. В конечном счете, мы сделаем DApps легко портативными через различные блокчейны.

Мы надеемся, что, расширяя возможности разработчиков DApp, мы поможем им создавать продукты, которые становятся все более привлекательными для пользователей, и приближаем всех нас к будущему, в котором децентрализация станет менее обременительной.

Заключение

Миссия Cartesian заключается в том, чтобы помочь разработчикам DApp создавать продукты, которые становятся все более привлекательными для их клиентов. По мере изменения каждой парадигмы блокчейн открывает возможности для реальных инноваций и рисков.
«Колесо переосмысления». В прямом применении принцип минимален
Как ни странно, ядро Cartesi позволяет разработчикам использовать имеющиеся знания и инструменты для повышения производительности.

ИНФОРМАЦИЯ О ССЫЛКАХ:

Сайт: https://cartesi.io
Сообщество Telegram: https://t.me/cartesiproject
Объявление Telegram: https://t.me/cartesiannouncements
Сообщество Дидрд Дев: https://discordapp.com/invite/Pt2NrnS
GitHub: https://github.com/cartesi

Социальные сети:
Твиттер: https://twitter.com/cartesiproject
Reddit: https://www.reddit.com/r/cartesi
FaceBook: https://www.facebook.com/cartesiproject
LinkedIn: https://www.linkedin.com/company/cartesiproject/
YouTube: https://www.youtube.com/channel/UCJ2As__5GSeP6yPBGPbzSOw
Моя учетная запись: Профиль: https://bitcointalk.org/index.php?action=profile;u=25753895
Адрес ETH: 0x08204147D36cE05456A3c99242cB3781b6B6875f

ico
20
0.053 GOLOS
На Golos с August 2019
Комментарии (0)
Сортировать по:
Сначала старые