• Bitcoin $ 11,324.17 (4.9025%)
  • Ethereum $ 313.17 (2.03734%)
 22.06.2019 в 23:33   dev_coin

CX язык программирования блокчейна Skycoin

Проект Skycoin состоит из нескольких ключевых компонентов с несколькими решениями для создания сбалансированной экосистемы. CX — это спецификация и язык программирования Skycoin. В отличие от других блокчейн-проектов, которые могут похвастаться использованием умных контрактов для автоматического обеспечения выполнения цифровых соглашений, Skycoin использует CX, полноценный язык программирования с возможностью выполнять функции контрактного цифрового посредника, простые и сложные функции. Отчеты об ошибках, операторы потока управления, такие как if / else, для циклов, массивов, срезов, указателей и пакетов — все это стандартные функции языка программирования CX. В качестве языка программирования общего назначения CX будет использоваться для создания чего угодно, от веб-сайтов, настольных приложений до мобильных приложений. CX находится в постоянном развитии.

CX vs Smart Contracts

Если умные контракты являются новейшей технологией для выполнения соглашений в блокчейнах, CX является полным языком для создания широких вариантов использования цифровых технологий с помощью интеллектуальных контрактов, а также более сложных методологий. Умные контракты — это революционная технология ведения бизнеса без посредников. Интеллектуальные контракты выступают в качестве цифрового эквивалента физического контракта, где программное обеспечение может согласовывать правила соглашения и в цифровой форме проверять выполнение обязательств. Однако у них есть свои ограничения. Развертывая умные контракты, программист должен быть уверен, что поддерживает точный и еще раз точный код. Если в умном договоре обнаружены ошибки, то логически или программно сложно изменить условия договора во время его использования. Вы можете представить себе умные контракты как двусторонний метод исполнения соглашений, например похожий на вызов между двумя пользователями сотовых телефонов, то CX — это языковая сеть, которая может взаимодействовать и создавать логику с множеством приложений.

Ключевые особенности CX

CX имеет несколько ключевых отличительных особенностей. Биткоин написан на C ++, для которого характерна проблема небезопасности памяти, что делает его подверженным ошибкам во кодирования, которые могут привести в свою очередь к атакам. Вот почему код Биткоина может быть обработан только несколькими разработчиками одновременно. CX для Skycoin использует Golang, который устойчив к выполнению произвольного кода, уязвимости или программной ошибке. Это позволяет избежать ошибок кодирования, которые приводят к более широким проблемам безопасности приложений блокчейна.

Библиотеки OpenGL и OpenGLFW

В настоящее время CX можно использовать для создания приложений и игр с использованием командной строки, используя Open Graphics Library (OpenGL), кросс-языковой, кросс-платформенный интерфейс прикладного программирования (API) для визуализации 2D и 3D векторной графики, а GLFW — многоплатформенную библиотеку для OpenGL. CX нужно только импортировать «gl» и «glfw», чтобы иметь полный доступ к доступным функциям в обеих библиотеках.

Kittycash — прекрасный пример приложения, которое будет работать на CX. Каждый персонаж Kittycash будет представлять игрового персонажа, который будет доступен для приложений, созданных на CX. Ранее создание приложений и игр на блокчейне оказывалось невозможным с обновлениями состояния блокчейна, происходящими между 30 секундами и более 15 минутами. Представьте себе, что вы пытаетесь играть в игру, где каждое взаимодействие занимает минимум 30 секунд. Пользовательский опыт может вызвать сбои, а потенциальные игроки, даже с экономическими стимулами, со временем это надоест.

В настоящее время ни одна из существующих платформ не имеет ощутимого решения. Skycoin CX станет первой платформой, которая будет иметь обновления состояния блокчейна на 300 мс, что обеспечивает гораздо более удобный интерфейс . Разработчики смогут создавать приложения с рыночными стимулами, одновременно предоставляя желаемый пользовательский опыт.

CX — это детерминированный язык

Применение недетерминированных языков в пространстве блокчейнов стало сомнительным, недетерминированный язык не всегда производит один и тот же вывод для каждого ввода. Процессор AMD может не иметь того же выхода, что и процессор Intel, а 32-разрядные входы компьютеров могут не всегда давать тот же выход, что и его 64-разрядные аналоги. Недетерминированные языки могут стать проблемными для приложений блокчейна, где неправильный вывод из-за спецификаций системы может привести к ошибкам безопасности в блокчейне. Недетерминированные языки могут иметь прямое влияние на материальные активы, где множественные эксплойты могут привести к потере активов на миллионы долларов. CX решает эту проблему как детерминированный язык, а это означает, что для каждого входа алгоритм будет последовательно выводить один и тот же результат независимо от базовой машины.

Скомпилированный и интерпретированный язык

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

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

Возможности для повышения безопасности

В CX есть наборы утверждений под названием Affordances, которые указывают, какие отдельные объекты могут запрашивать функции и объекты. Affordance работает как процесс изоляции компьютерных пакетов, а также обеспечивает меры безопасности, которые ограничивают, какие функции «предоставляют» определенным пользователям доступ к определенным областям памяти языка программирования. Во время взлома Ethereum DAO в 2016 году хакеры использовали рекурсивные вызовы для эффективного отвода средств из DAO на общую сумму в эквиваленте более 70 миллионов долларов США, это было из-за лазеек, найденных в умном контракте. С помощью CX Affordance вызовы функций формализуются для конкретных пользователей, что исключает использование вызовов неуказанными объектами, тем самым эффективно нейтрализуя возможность взлома, такого как напримерDAO.

Представьте себе создание объекта, который представляет собой цифровой ключ от фабрики. Affordance позволяет вам настроить пользователей, которые имеют доступ к этому ключу и когда они могут его использовать. При этом также диктуется, какие пользователи имеют доступ к охраняемым районам завода. Если программист хотел изменить ключ и какие области пользователь может иметь доступ, Affordance позволяет пользователю ограничить или предоставить доступ к любой области. Если каждая область фабрики предоставляет доступ к отдельной среде кодирования, Affordance дает возможность использовать этот объект в указанной среде.

Affordance может действовать на уровне программы, создавая и изменяя существующие структуры в программе. CX использует возможности для определения того, как и кем используются функции, что делает язык достаточно мощным, чтобы иметь программы, которые создают программы внутри себя.

Генетическое Программирование (GP)

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

Строгая система типов

CX имеет строгую систему типирования с явным приведением типов. Компьютерные языки, которые не используют явное приведение типов, могут быть подвержены ошибкам. Эти ошибки могут быть результатом неявного приведения типов, выполняемого компилятором. При неявном приведении типов, в отличие от типов данных, компилятор автоматически комбинирует и получает их как один тип данных. Использование явного приведения типов позволяет пользователям полностью контролировать, какие типы данных передаются компилятору. 32-разрядное число и 64-разрядное число имеют свое отличие в CX, равно как и целые числа и числа с плавающей запятой, а также другие типы данных. Реализация этой системы ввода делает CX по сути более безопасным языком, чем другие языки программирования. Отладка становится более простой, так как большинство ошибок, с которыми вы столкнетесь, будут обнаружены во время компиляции.

Уборщик мусора

CX — это язык для сборки мусора, в то время как другие языки используют ручное управление памятью, что требует от программиста идентификации и освобождения неиспользуемых объектов. Языки с автоматической сборкой мусора используют алгоритмы для восстановления объектов или памяти, которые больше не используются программой. CX использует алгоритм mark-compact для итерации и просмотра каждого указателя в стеке, чтобы найти, какие объекты используются. Алгоритм mark-compact экономит память и позволяет использовать методику программирования.

Обозреватель объектов

На типичном языке программирования пользователь выполняет программу и для пользователя становится неоднозначным понимать, что происходит во время выполнения. Исследователь объектов CX — это API, к которому можно обратиться, чтобы получить список объектов, присутствующих и находящихся в куче. Обозреватель объектов представит графическое представление всех объектов, сколько памяти они занимают и что они в данный момент делают в этом состоянии. Эта функция полезна для отладки в стандартной среде программирования и полезна для приложений с блокчейном, где пользователь должен знать, сколько памяти резервирует каждое приложение в каждом состоянии программы.

Сериализация

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

Интерактивное программирование

Как надежный и универсальный язык, CX предлагает программистам способ эффективно создавать полезный код на платформе Skycoin. CX является первым в своем роде в области блокчейна, предоставляя пользователям скорость и конфиденциальность исходного кода скомпилированного языка, а также обладает преимуществом гибкости, обеспечиваемой интерпретируемым языком. Включение Affordances позволяет пользователям CX предоставлять безопасные методы программирования, а также сочетать прогностическое моделирование с таким генетическим программированием для разработки новых решений проблем. Структуры программы изменяются на лету в строгом порядке. В отличие от умных контрактов в Ethereum, доступность позволяет контрактам динамически обновляться в течение всей жизни программы.

CX Blockchain Прикладное применение

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