Погружение в Move — язык программирования блокчейна Libra от Facebook
10 мин
Перевод
Далее мы рассмотрим в деталях основные характеристики языка Move и в чем его ключевые различия с другим, уже популярным языком для смарт-контрактов — Solidity (на платформе Ethereum). Материал основан на изучении доступного он-лайн 26-страничного whitepaper-а.
Move — это исполняемый язык байт-кода, который используется для выполнения пользовательских транзакций и смарт-контрактов. Обратите внимание на два момента:
Введение
Move — это исполняемый язык байт-кода, который используется для выполнения пользовательских транзакций и смарт-контрактов. Обратите внимание на два момента:
- В то время как Move является языком байт-кода, который может напрямую выполняться на виртуальной машине Move, Solidity (язык смарт-контрактов в Ethereum) — язык более высокого уровня, который сначала компилируется в байт-код перед выполнением в EVM (Ethereum Virtual Machine).
- Move можно использовать не только для реализации смарт-контрактов, но и для пользовательских транзакций (подробнее об этом будет дальше), в то время как Solidity — это язык только для смарт-контрактов.
С Новым Годом! Пока на улице праздник, я занимался одной из интересных проблем (или задач, как кому) своего проекта. Дано — система, схожая с Google Readers, которая принимает от пользователя некоторый адрес и должна обеспечить просмотр (а позже, и подписку) доступных там RSS-фидов. Задача осложняется тем, что от пользователя нельзя требовать ввода именно полного адреса ленты, да и даже просто адреса сайта или произвольной страницы — он может быть введен в совершенно разных вариантах, полностью или частично и т.п. Самих лент на странице также может быть более одно, часто нескольких форматов сразу (а то и не быть вовсе). Поэтому нам надо выбрать из всех доступных лент последние сообщения и отобразить пользователю, чтобы именно он выбрал в конечном итоге одну ленту, которая его интересует. Открою секрет — да, это только начало и в последующих статьях мы вместе постоим несколько уменьшенную версию системы агрегации и чтениях новостей. Но сегодня попробуем решить первую задачу, без которой наша «читалка» просто не сможет работать, какие бы дальше технологии не применялись.
В проекте, который я сейчас разрабатываю, возникла необходимость смены протокола, который используется для обмена данными между частями приложения. Сейчас, на уровне внутренних сервисов, обмен происходит через передачу сериализированных массивов РНР поверх TCP сокетов. Так как по обе стороны находятся приложения на РНР, проблем не возникает, формат пакета данных также стандартный, поэтому особых сложностей нет. Разве что часто меня не удовлетворяет скорость обработки, а также то, что мы сильно завязаны на язык и платформу. Если придется стыковать с другой системой или же переписать что-либо, будут сложности — ведь сериализированный формат поймет лишь родной язык, а писать парсер мне не очень хочется. Первоначальный выбор был более чем оправданным — скорость разработки и отладки были приоритетными, сейчас есть немного времени и желания посмотреть на архитектуру с высока и другим взглядом.
Сегодня мы продолжим исследования различных новых и не очень технологий, необычного их применения или просто оригинальных вещей. Возможно, вы вспомните, я когда-то писал о проекте
Что-то давненько мы не обсуждали наш любимый
Сегодня поговорим о
Как вам наверное известно, недавно состоялась первая конференция, организованная компанией ExtJS LLC, посвященная как новым продуктам (ExtJS 3.0, Ext Core, ExtGWT), так и практическим аспектам работы с фреймворком, проектированием приложений и работу с новыми технологиями (вроде поддержки Adobe AIR). К сожалению, мне не удалось побывать на конференции, но там был один из читателей моего блога, Сергей Козлов, который любезно предложил свою помощь в организации этого небольшого обзора.
Как то в этой суете и проблемах забылось, что традиционная конференция стартапов DEMO, несмотря на кризис (и просто страхи, не столько кризиса, сколько муть в умах), прошла по расписанию в начале этого года, и, более того, нельзя сказать, что безуспешно. Конечно, проектов было немного меньше, но это вполне объясняется различными факторами. Но пусть меньше, да лучше — думаю, вы согласитесь. Далее я кратко расскажу, какие проекты были представлены и в чем их основная суть. Более детально вы сможете посмотреть на официальном сайте, благо все выступления доступны для просмотра онлайн. Кстати, жизнь то продолжается, и уже
Да, на конференции буквально 10 минут назад объявили о выходе следующей версии ExtJS 3.0, обозначив, таким образом, новую веху в истории AJAX-проектов. Кстати, что интересно, это было приурочено ровно к второй годовщине компании — 15 апреля 2007 года вышла версия 1.0, а теперь
Cегодня одна из самых популярных и активных тем какая?
Об электронном документообороте и прочих радостях электронной жизни речь идет уже не первое десятилетие, начиная с изобретения компьютера вообще. Но «воз и ныне там», так как несмотря на легкость и доступность пересылки документов по почте, редактирование и просмотр онлайн в браузере, финальный акт жизни многих документов заключается в банальной распечатке и потом хождению по отделах за подписями и печатями. Но постойте, есть же электронно-цифровые подписи, даже законодательные документы, регламентирующие их оборот. Есть то есть, но сравните — документ с размашистой подписью Самого и обычный набор цифр и букв… как то не то, верно?
Вот вы часто создаете проекты? И, наверное, везде применяете базу данных, в частности, MySQL (а кто-то и PostgreSQL). Но вот что интересно, по опыту да и просто после чтения описания различных архитектур видно, что далеко не везде в проекте нужны ключевые особенности баз данных, во многих случаях базу используют просто как некоторое хранилище обычных данных. Например, в системах кеширования базы обычно не применяются, более того, кеширование как раз используют для того, чтобы избежать лишних запросов. А что используют для кеширования наиболее часто? Memcached. А что это такое? Это распределенная система хранения данных на основе хеш-таблицы. В общих чертах, это просто хранилище пар ключ-значение, над которыми можно производить только основные операции — запись, чтение, удаление и проверку на присутствие. Да-да, нет никаких фильтров, выборок, сортировки, самый максимум — система тегов для выборки одним запросом всех связанных записей. И во многих случаях такого функционала вполне достаточно.