Ухххх!
Еще один язык программирования, который стоит изучить!
Когда будет достаточно ??
Разве мы не можем просто использовать уже имеющиеся у нас языки программирования…?
Конечно, можем, если вы не против потерять все свои деньги! * подавляет смех *
Разве вы потеряете свои деньги, если блокчейн DAPP будет построен с использованием C ++, Python, Javascript, Golang, Solidity…? НЕТ!
Но, к сожалению, вы не доверяете языку; Вы доверяете каждому программисту! Все ли они знают, что делают?
Знают ли они обо всех недостатках безопасности, связанных с этим языком… Доверяете ли вы 10 программистам, которые доведут его до совершенства? А как насчет 10 000?
Я бы не стал!
Но уже есть несколько действительно хороших языков программирования!
Зачем нужно создавать новую?
Ничего себе, этот парень задает правильные вопросы !!
На самом деле это довольно просто, если подумать логически.
Вы бы использовали раллийную машину для участия в Формуле 1? или наоборот?
НЕТ, это было бы глупо!
В конце концов, это обе машины, но обе были созданы с нуля, чтобы быть хорошими в определенных вещах. Размышляя логически, вы бы предложили использовать устаревший язык, такой как C ++ или даже превосходный Golang, для создания финансовой революции (криптовалюты) и всех этих блестящих приложений распределенного реестра? Наверное, нет!
«Программирование блокчейн требует математических требований, таких как необходимость канонической сериализации, детерминизма; чего не могут удовлетворить C, C ++, Java, Python, Javascript, Golang. Отсюда необходимость в таких языках, как язык смарт-контрактов Ethereum и язык разработки блокчейнов Skycoin CX. Существуют математические требования, такие как последовательная обработка целочисленных переполнений и детерминизм на всех платформах исполнения, которые требовали, чтобы мы написали новый язык »
Ага, тогда мы используем Solidity! Ну нет, и вот почему ...
Soilidity был первым «функциональным» языком программирования блокчейнов,
и я заключил это в кавычки, потому что вы можете сделать больше, чем было возможно раньше. Он даже близко не подходит к использованию всей вычислительной мощности и того, что необходимо для создания масштабной децентрализованной экономики.
Частично это связано с проблемами масштабируемости Ethereum, но с Solidity также есть много проблем, которые продолжают обнаруживаться и эксплуатироваться, что равняется миллиардам, украденным хакерами! Это лишь некоторые из основных инцидентов:
- The DAO: 3,6 миллиона ETH при стоимости около 76 миллионов долларов в то время.
- Заморозка паритета: тратит 150 тысяч ETH на сумму около 30 000 000 долларов США на тот момент. Еще 150 миллионов долларов были «случайно» заморожены при попытке решить эту проблему.
- Небезопасные узлы: в 2018 году более 20 000 000 долларов США в ETH было медленно выведено из плохо настроенных узлов ETH, которые можно было взломать и перенастроить для выплаты вознаграждений другому кошельку.
Список действительно ошеломляет и заставляет задуматься, зачем кому-то подумать об использовании Ethereum! Думаю, многие люди не знают всего этого…
Сегодня исследователи подсчитали, что 45% смарт-контрактов, написанных на языке программирования Ethereum Solidity, уязвимы для атак. В отчетах, поступивших в конце 2018 года, также говорилось, что кража криптовалюты или, как ее еще называют, криптоджекинг в 2018 году выросла на 500% по сравнению с историческим максимумом.
Тогда ваши средства - Safu с Solidity…
Давайте продолжим делать то, что делали мы! лол, НЕТ!
Для Skycoin было ясно, что им нужен новый язык программирования Blockchain, который возвестит о децентрализованной экономике и безопасный вариант для их денег.
Почему Skycoin? Потому что, когда другие не подходят, вы делаете это сами!
Введите CX:
CX - это ответ Skycoins на язык программирования блокчейнов.
Первоначально основанный на Golang, CX был впервые разработан и разработан в 2014 году Synth (соучредитель Skycoins). По мере развития CX становится все меньше похожим на Голанг и больше на свой собственный уникальный язык.
Одна из основных целей языка - снизить затраты на разработку программного обеспечения за счет повышения производительности программиста.
CX достигает этого, предоставляя хорошо известные инструменты программирования, такие как
цикл чтения-вычисления-печати (REPL) для интерактивного программирования и интерактивных механизмов отладки.
CX идет дальше, расширяя общие возможности REPL.
Другая цель CX - предоставить разработчику множество высокоуровневых инструментов, которые являются частью основного языка, т.е. программисту не нужно будет устанавливать какие-либо внешние пакеты, и язык будет беспрепятственно взаимодействовать с этими функциями. Наглядными примерами являются взаимодействие CX с экосистемой Skycoin для создания децентрализованных приложений, а также система аффорданса CX и функции генетического программирования, которые помогают программисту создавать приложения в более интерактивной манере.
«CX - это интерпретируемый и компилируемый язык программирования общего назначения с очень строгой системой типов и синтаксисом, аналогичным Golang. CX предоставляет новую парадигму программирования, основанную на концепции возможностей, когда пользователь может спрашивать язык программирования во время выполнения, что можно сделать с объектом CX (функции, выражения, пакеты и т. Д.), И интерактивно или автоматически выбирать один из возможность применения. Основная цель этой парадигмы - обеспечить дополнительный уровень безопасности для децентрализованных приложений на основе блокчейнов, но ее также можно использовать для программирования общего назначения ».
Почему НЕОБХОДИМО изучать CX!
Skycoin разработал CX с целью создания безопасного, удобного для разработчиков языка программирования, способного выйти за рамки того, на что способны смарт-контракты Solidities. Вот некоторые из основных функций:
Ваши программы CX могут стать умнее
CX содержит встроенные инструменты машинного обучения, позволяющие приложениям CX решать проблемы, на которые они в настоящее время не знают ответа. Используя генетическое программирование, CX может взять проблему и попытаться ее решить, со временем корректируя свой подход и предлагая убедительные прогнозы.
CX может убрать после себя
Используя мощный сборщик мусора, CX может оптимизировать себя, освобождая неиспользуемые ресурсы и освобождая память. Это дает ему преимущества перед языками, которые позволяют программисту вручную находить эти неиспользуемые ресурсы.
Ваш глаз в небе
Готовое к производству приложение может содержать тысячи строк кода, распределенных по десяткам или сотням различных файлов, написанных в течение нескольких месяцев. Понятно, что объект может остаться в коде, потому что никто не помнит, почему он существует, и его изменение или удаление может иметь непредсказуемые последствия. Обозреватель объектов CX дает разработчикам обзор всех объектов и распределения их памяти с высоты птичьего полета.
Собираем все вместе, шаг за шагом
Функция пошагового выполнения CX позволяет остановить запущенную программу, устранить неполадки, добавить несколько шагов и продолжить работу. На этом этапе вы можете сделать много вещей, например, получить краткое изложение текущего состояния с помощью обозревателя объектов или использовать генетическое программирование для улучшения вашей отладки. Функция сериализации CX означает, что каждый объект может быть сериализован, поэтому вы можете сохранить свое состояние и отправить его по цепочке блоков.
Подробную статью о возможностях CX можно найти здесь:
Ethereum и другие платформы не обладают достаточно мощной семантикой языка программирования, чтобы на самом деле реализовать настоящий DEX.
Хотя CX может реализовать все, что может быть реализовано на реальном языке программирования, таком как C, C ++, C # или Golang.
«Одним из основных нововведений, добавленных в CX, является парадигма аффордансов. Мы изучили крупные скандалы с блокчейнами и стоящие за ними взломы и встроили в CX функции, предотвращающие подобные взломы ».
Synth на CX:
Я не думаю, что люди понимают, насколько продвинутый CX по сравнению с другими языками ... CX может иметь двоичный код компилятора CX, компилировать свой собственный исходный код и возвращать немного идентичный двоичный вывод самому исполняемому файлу компилятора.
Почему важен детерминизм?
Мы не можем позволить 10 000 человек писать код на блокчейне и просто молиться, чтобы все 10 000 из них «кодировали его правильно» и не вызывали ошибку хард-форка. Мы не Биткойн / Эфириум!
Мы помещаем в язык условия, необходимые для детерминизма. Чтобы блокчейн был безопасен для разработчиков. CX гарантирует детерминированную сборку для всех программ, которые могут быть написаны на CX.
CX имеет встроенный детерминизм как математическое ограничение, а также детерминированные сборки (которые сейчас невозможно реализовать полностью с помощью java, C, Golang).
Какие еще функции были добавлены в CX?
В CX также есть аффордансы и метасинтаксические операторы, которые проще и мощнее, чем шаблоны в C ++. Они позволяют реализовать любой синтаксис или семантику, а также расширить язык внутри самого языка.
CX очень хорошо работает с независимыми от источника сетями и новыми типами сетевого транспорта и неизменяемыми данными в Skywire и блокчейне.
Семантика языка программирования CX может быть расширена для ДНК и квантовых компьютеров. А также логические схемы и графические процессоры.
CX не предполагает Архитектуру фон Неймана. Только состояние и операторы, которые действуют на состояние.
У других блокчейнов вообще нет программ, у них есть смарт-контракты.
CX-программы намного мощнее смарт-контрактов, смарт-контракт имеет только состояние и некоторые функции, которые вы можете вызывать для состояния; тогда как программа CX намного мощнее смарт-контракта, потому что она может делать что угодно и имеет свой собственный массив байтов.
Он имеет массив байтов для программы и массив байтов для выполнения.
Любая программа, которую можно запустить на обычном компьютере, теперь может выполняться в цепочке блоков.
План развития CX:
CX начал серьезное развитие в июне 2017 года с тех пор (по состоянию на 30.01.18) более 900 коммитов по генеральному репо и 132 из них за последние 30 дней… Skycoin серьезно относится к быстрому завершению CX!
На момент написания этой статьи CX работал над бета-версией и интеграцией с Fiber. (Блокчейн Skycoins) Этот процесс стремительно развивается, и все больше и больше людей хотят помочь! Ознакомьтесь со списком коммитов.
При интеграции CX в блокчейн есть две или три различных конкурирующих модели, которые мы могли бы использовать для реализации. И я не знаю, какой из них на самом деле собираются использовать, поэтому мы просто собираемся создать тип транзакции, который выполняет программы CX.
Транзакции для нового типа транзакции в конечном итоге будут подтверждены самим CX. Таким образом, пользователи при создании своей цепочки блоков будут выбирать правила проверки транзакций. Они просто смогут встроить любую виртуальную машину, какую захотят, в блокчейн и любую семантику выполнения, которую захотят.
Думаю, будет два или три разных метода программирования или встраивания программ CX в блокчейн… В зависимости от того, что вы делаете. Например, если я встраиваю потоковое видео в блокчейн, я просто сохраняю данные, мне в действительности не нужны монеты. Но если у меня есть монеты, такие как DAPP для азартных игр, существует целый ряд других ограничений, не позволяющих людям воровать деньги.
Существует несколько различных методов программирования блокчейнов, и CX поддерживает все методы, а также все гибридные методы. Мы позволим сообществу разработчиков попробовать все, что они хотят, и посмотреть, какие методы работают. Разные приложения будут использовать разные типы архитектур виртуальных машин, единого стандарта не будет.
Как начать работу с CX?
У нас есть хорошо написанный учебник о том, как начать программировать на CX.
Самую последнюю версию можно найти здесь:
Я бы порекомендовал вам присоединиться к General CX Development Room или CX Game Development Room в Telegram, где большинство разработчиков (включая создателей) тусуются и обсуждают язык.
Если вы серьезно настроены изучить язык и даже помочь с его созданием… Зайдите в репозиторий CX, ознакомьтесь с некоторыми проблемами и внесите предложения или просто начните комментировать идеи. Как здорово, что у вас есть возможность внести свой вклад в создание языка программирования!
Также есть игровая площадка CX, чтобы возиться с языком, и разрабатываемый веб-сайт для интерактивного изучения языка.
Вы можете сказать, что Skycoin серьезно относится к CX, потому что они делают его удобным для разработчиков! По этому поводу Ютубер Hashoshi сказал следующее:
что вам нужно сделать, чтобы они захотели использовать этот родной язык?
вы должны дать им инструменты, вы должны предоставить им документацию!
вы, ребята, должны это знать, я теперь фанат документации; Мне нравится видеть документацию, и именно здесь я действительно в восторге от CX в экосистеме Skycoin.
Они выпустили книгу! Да, книга, которая научит вас всему, что вам нужно знать об использовании CX. У меня была возможность прочитать эту книгу, и я зашел на страницу GitHub и прочитал средство отслеживания проблем, чтобы увидеть, какие вещи отслеживаются и как все выглядит. Пока что, основываясь на моих ограниченных исследованиях, книга выглядит супер всеобъемлющей, я прочитал некоторые из нее; для меня имеет смысл, мне это нравится!
Я обязательно еще почитаю.
Параметры языка блокчейна!
Насколько мне известно, очень немногие проекты блокчейнов действительно прилагают усилия для создания специального языка программирования блокчейнов.
Это известные мне проекты:
- Skycoin имеет CX
- Эфир имеет твердость
- Waves has Ride
- У Rchain есть Род
- У Zillquilla есть Scilla
Мне интересно узнать, действительно ли какие-либо другие проекты решают эту важную задачу, поэтому, пожалуйста, добавьте комментарий, если вы знаете о каких-либо других!
Спасибо, что нашли время, чтобы прочитать эту статью!
Пожалуйста, оставьте аплодисменты или 3…
Источники:
- Https://github.com/skycoin/cx
- Https://medium.com/skycoin/cx-the-next-generation-blockchain-programming-language-ab765dc95026
- Https://medium.com/@Skycoinproject/pac-man-flappy-bird-yes-using-the-skycoin-cx-language-f4201b6a28a7
- Https://medium.com/@Skycoinproject/developing-cx-f8b54b58c1cc
- Https://github.com/skycoin/cx/releases/tag/book-v0.5
- Https://medium.com/solidified/the-biggest-smart-contract-hacks-in-history-or-how-to-endanger-up-to-us-2-2-billion-d5a72961d15d
- Https://blog.sigmaprime.io/solidity-security.html