23 декабря, 2021
Вкратце, криптопрограммирование — это разработка программного обеспечения с использованием технологий блокчейна, а также их комбинации с более знакомыми фреймворками и языками, такими как React и C++.
Разработка криптовалют и блокчейна становится все более востребованной. Это работа с огромными зарплатами, бесконечным количеством вакансий и неограниченным потенциалом на будущее. Это большая основа для будущего, которая продвигает эти технологии далеко вперед.
Дело в том, что криптовалюты и блокчейн лягут в основу экономики будущего, где балом будут править децентрализованные финансовые системы. А сама технология блокчейн оказалась достаточно универсальной, чтобы быть полезной не только в строго финансовых вопросах (инвестиции, аукционы, коммерческие отношения и т.д.), но и в других сферах человеческой деятельности.
Выбрав криптопрограммирование, вы будете создавать программы, как и другие разработчики, но под колпаком ваших проектов всегда будет код, непосредственно связанный с самыми передовыми существующими технологиями.
Разработчик криптовалюты — это человек, который не просто близок к компьютерам и знает, как создать страницу или код, но и тот, кто хорошо знаком с технологиями децентрализованных финансов. В лучшем случае — наличие опыта работы с серверной составляющей программ, а в худшем — хотя бы понимание того, как писать программный код в принципе.
Такой разработчик занимается созданием серверного кода для децентрализованных приложений, которые называются приложениями. Обычно они существуют в сети Эфириум (Ethereum) и представляют собой не что иное, как смарт-контракты.
Эфириум — это целая блокчейн-среда, которая позволяет каждому запускать программы в надежной среде, поддерживаемой смарт-контрактами.
В отличие от биткоина, платформа Эфириум позволяет вам взаимодействовать не только с криптовалютами, но и с другими данными.
Соответствующие программы выполняются в среде, называемой EVM (виртуальная машина Эфириум). Она позволяет преобразовывать код, написанный людьми, в набор символов для блокчейна, и поддерживает смарт-контракты, созданные для выполнения определенных задач внутри блокчейна. Он также использует свою собственную валюту, называемую Эфиром.
Это самая крупная система в своем роде и в то же время самая популярная. В большинстве случаев работодатели ищут криптопрограммистов для создания программного обеспечения, которое будет реализовано в интерфейсе проекта Эфириум.
Это код, который выполняется в среде EVM и способен обрабатывать передаваемые в него данные. Для смарт-контрактов написаны функции, позволяющие манипулировать передаваемой им информацией. Вы можете обмениваться данными с другими смарт-контрактами или, на основе полученной информации, передавать их между пользователями смарт-контрактов.
Смарт-контракт позволяет вам исключить третью сторону из любой транзакции. Программный код будет отвечать за справедливость: открытый, неподкупный и работающий корректно.
Криптопрограммисты занимаются созданием смарт-контактов, позволяющих обитателям блокчейн-сети совершать транзакции, связанные с Эфиром.
Для создания смарт-контрактов и других компонентов криптовалютой сети, используются как традиционные языки общего назначения, так и новые, созданные специально для работы с Эфириумом или его аналогами.
Чтобы начать работу в этой сфере, нет каких-то особых требований. Из-за высокого спроса, требования не особенно строги, но одного энтузиазма недостаточно. Необходимо приобрести базовые знания и углубиться в изучение языков программирования блокчейна.
Для начала стоит почитать о блокчейне в целом. Нам нужно понять, как работает вся система в общих чертах. Знакомство с техническими особенностями реализации необязательно, по крайней мере, на ранних стадиях.
После этого вам нужно определиться с языком. Для начинающих рекомендуется использовать Solidity, так как его легче понять. Следующим этапом должно быть либо углубленное изучение документации с постоянной самостоятельной практикой, либо посещение соответствующих курсов.
Что касается оборудования, то вам ничего не нужно. Достаточно открыть веб-среду IDE под названием Remix и написать свой первый смарт-контракт в соответствии с инструкциями на официальном сайте Solidity.
Вы можете получить доступ к Remix IDE различными способами: через Интернет, через веб-браузер, такой как Chrome, из локальной копии или из Mist (браузер Ethereum Dapp).
Вы можете получить доступ к Remix IDE из своего веб-браузера без какой-либо специальной установки. Посетите сайт https://remix.ethereum.org , и вам будет представлена полная среда разработки с редактором кода и различными панелями для компиляции, запуска и отладки ваших смарт-контрактов. У вас будет пример контракта с рассылкой новостей по умолчанию, с которым вы можете играть.
Remix IDE
После Solidity вам нужно будет изучить используемые фреймворки: Truffle для упрощения создания смарт-контрактов, Ganache для тестирования программного обеспечения в виртуальной блокчейн-сети, Web3.js для соединения серверного компонента вашего детища с фронтальной частью (это может быть React или Vue).
На онлайн-курсах вы получите образование сразу по всем аспектам. Многие активные разработчики Solidity получили профессию сразу после курсов. Среднее время обучения занимает менее шести месяцев.
Криптопрограммирование — это новый этап профессии разработчика, который постоянно набирает популярность. Если вы заинтересованы в перспективной и прибыльной работе, вам следует обратить внимание на разработку блокчейна.
Если вы создаете DApp на базе Ethereum или токен ERC20, вам необходимо изучить язык Solidity. Хотя блокчейны не зависят от языка и многие из существующих языков используются блокчейн-инженерами, существуют некоторые задачи, которые не могут быть удобно реализованы существующими языками. Это открыло спрос на новые, специфичные для криптовалют варианты. Одним из таких языков является Solidity.
Независимо от того, являетесь ли вы опытным разработчиком или только начинаете заниматься криптографией, было бы неплохо начать изучать Solidity, потому что смарт-контракты стали важной частью экосистемы блокчейна. В дополнение к активному внедрению dApps, они активно интегрируются в блокчейны на уровне инфраструктуры и даже в биткоины через таких провайдеров, как RSK. Зная, как создавать смарт-контракты, вы сможете отслеживать, как работают блокчейн-программисты, и сможете находить лучшие решения.
В рамках разработки смарт-контракт состоит из трех разделов: баланс, хранилище и коды. Баланс показывает, сколько Эфириума есть в смарт-контракте. Хранилище содержит такие данные, как строки и массивы, которые специфичны для каждого приложения. Раздел кода содержит необработанный машинный код, который компилируется из того, что мы пишем в Solidity.
В отличие от учетных записей пользователей, учетные записи смарт-контрактов не являются внешними по отношению к соответствующим сетям. Другими словами, вы можете использовать свой кошелек в различных сетях, таких как Kovan и Ropsten, но вы не можете сделать это с помощью смарт-контракта. Смарт-контракты являются внутренними.
Каждый смарт-контракт имеет источник, который хранится на устройстве автора, и экземпляры, которые хранятся в блокчейне. Чтобы создать экземпляр (учетную запись) смарт-контракта, нам необходимо развернуть его в сети. Это очень похоже на отношения между классами и экземплярами в традиционном объектно-ориентированном программировании (ООП) и языках, представляющих его (JS, Ruby). Чтобы дать вам более наглядное представление, давайте создадим класс Bike и добавим его экземпляр.
Bike class & instance
Мы напишем определение контракта, которое затем будет запущено через компилятор, который создаст два файла: байт-код и двоичный интерфейс приложения (ABI). Байт-код — это то, что на самом деле будет передано в EVM, а ABI — это слой между байт-кодом и обычным кодом JavaScript, который позволяет создавать пользовательский интерфейс (UI).
Прежде чем мы начнем, нам нужна надлежащая интегрированная среда разработки (IDE). Другими словами, нам нужен удобный терминал с необходимыми инструментами для написания нашего кода. Для целей этого руководства мы выберем Remix, IDE, созданную Ethereum Foundation, которая позволяет вам писать, тестировать, отлаживать, запускать смарт-контракты и многое другое. Вы можете использовать его либо непосредственно в браузере, либо загрузить локально, если хотите.
После запуска Remix, вы увидите редактор кода в центре, файловый менеджер слева и компилятор справа.
Окно Initial Remix
Там будет какой-то заранее написанный код — он нам не понадобится. Чтобы создать первый уникальный смарт-контракт, давайте нажмем на значок плюса в левом верхнем углу терминала и дадим ему имя.
Создание нового проекта в Remix
Итак, мы должны указать версию Solidity, которую будет запускать компилятор. На момент написания этого руководства последней версией была 0.5.7. Если вы не уверены, какую версию использовать, вы можете указать диапазон версий.
Версия или диапазон версий Solidity
Давайте дадим нашему смарт-контракту имя, за которым последуют круглые скобки.
Название контракта
Как только у нас будет готов холст, настало время определить основные строительные блоки — переменные. Хотя у опытных разработчиков программного обеспечения не возникнет проблем с пониманием этой концепции, мы кратко познакомим с ней новичков. Переменные являются заполнителями для частей информации, на которые впоследствии ссылается программа, которая их запускает.
Давайте создадим пару переменных: строку (последовательность символов) и целое число. В случае Эфириумом, переменные хранятся в блокчейне вместе с остальными контрактами и, следовательно, могут быть доступны и обновлены из любого места. Еще одной ключевой характеристикой переменных Solidity является то, что вы можете сделать их закрытыми, написав “private” рядом с переменными. Наконец, для целых чисел Solidity имеет два типа: со знаком (может быть положительным и отрицательным) и без знака (может быть только положительным). Чтобы указать переменную без знака, мы должны просто поставить перед ней букву «u».
Скрытая строка и целое число
Когда у нас есть переменная name, нам нужно написать методы установки и получения. Это похоже на функцию JS. Помните, что Solidity имеет статическую типизацию, поэтому мы должны определить типы переменных. Теперь любое значение, которое мы вводим в ‘setName’, будет определять строку ‘name’. Чтобы получить его, мы будем использовать getName и укажем, какую переменную мы ожидаем увидеть. Теперь пришло время сделать то же самое для переменной age. Метод построен аналогично getName.
Устанавливаем имя и возраст
Давайте проверим наш маленький фрагмент кода. Перейдите на вкладку “Выполнить” компилятора и нажмите “Развернуть” под названием вашего контракта. В самом низу компилятора вы увидите раздел “Развернутые контракты”, где доступны наши методы. Чтобы передать имя в значение “Newname”, нам нужно убедиться, что наша строка записана в формате JSON. В противном случае “getName” ничего не вернет. Для “setAge” просто укажите свой возраст без кавычек. Как вы можете видеть, теперь мы можем устанавливать и получать переменные имени и возраста с помощью нашего смарт-контракта.
Компилятор
Одной из самых замечательных особенностей смарт-контрактов является то, что для их развертывания в сети Эфириума вам нужно будет инициировать транзакцию, которая стоит определенной суммы денег, которая выплачивается в Эфире. Чрезвычайно важно понимать, как используются сборы в системе, поскольку они будут вычитаться каждый раз, когда вы взаимодействуете с EVM.
Давайте предположим, что, читая наш урок, вы хотя бы раз использовали биткойн. Вероятно, вы совершили небольшую транзакцию стоимостью менее 1 BTC. В данном случае вы использовали сатоши, что-то вроде центов на доллар. Wei похож на Satoshi — это наименьшая часть 1 Эфира. Если мы подумаем об этом с точки зрения программирования, то это самое низкое целое число без знака в сети. Взаимодействуя с сетью, вы чаще всего сталкиваетесь с Gwei, который принадлежит Gigawee и равен 1 миллиарду Wei.
Газ является неотъемлемой частью механизма исполнения смарт-контрактов. Он имеет два значения для каждой транзакции: потребляемый газ и его цена. Стоит отметить, что пользователь, инициирующий транзакцию, сам определяет эти значения. Однако, если заданного значения газа недостаточно для выполнения определенной операции, то газ будет израсходован, но транзакция не будет выполнена. Более того, если цена на газ установлена слишком низкой для сети в данный момент времени, транзакция не будет обработана узлами, что в конечном итоге сделает ее неудачной. Существует несколько сервисов для проверки оптимальных значений для ваших транзакций, одним из которых является ethgasstation.info. Чтобы лучше понять газ и почему он стоит определенных денег, давайте начнем кодировать некоторые из них сами.
Вернитесь к окну Remix и создайте новый файл. В нашем примере мы назовем его “Gas” и создадим контракт с тем же именем. Имейте в виду, что чем больше данных нам нужно хранить в блокчейне, тем больше газа нам понадобится. В то же время, для целей этого урока, мы создадим дешевый контракт. Чем больше вы добавите к нему, тем выше будет плата.
Существует функция, которая возвращает целое число, представляющее собой сумму двух входных данных. Чтобы сделать это как можно проще, мы укажем, что наш контракт ничего не будет хранить в блокчейне, и для этого мы добавим “pure” рядом с функцией.
Дешевый контракт
Теперь вы можете развернуть его в компиляторе и ввести любые два числа, чтобы получить целое число “c”. Чтобы проверить цену нашей транзакции, мы должны посмотреть на терминал, расположенный под разделом кода. Существует стоимость транзакции и стоимость исполнения. Первый относится к тому, сколько данных содержится в транзакции. Второй относится к тому, сколько энергии EVM потребовалось для транзакции.
Это очень простая транзакция, которая практически ничего не стоит сети. При написании содержательных смарт-контрактов, вы добавите больше деталей, что увеличивает их вес и, следовательно, комиссионные за транзакции.
Давайте посмотрим правде в глаза, большинство разработчиков блокчейнов, которые только начинают свою деятельность, склонны играть по-крупному и создавать свои собственные блокчейны и токены. Хотя это чрезвычайно сложная тема, которая привлекла некоторых из лучших разработчиков программного обеспечения из других областей, создание базового токена ERC20 не является сложной задачей.
Во-первых, нам нужно создать еще один файл в Remix и загрузить интерфейс ERC20, а именно:
Функция totalSupply позволяет нам увидеть, сколько всего у нас токенов. Функция баланса используется для получения количества токенов по определенным адресам. Функция передачи позволяет пользователям совершать транзакции между собой. Функции “transferFrom”, “allow” и “approve”позволяют пользователям разрешать другим пользователям инициировать транзакции от их имени. События — это инструменты регистрации для главной книги.
В дополнение к самому интерфейсу нам понадобится отдельный файл. Здесь мы импортируем интерфейс ERC20 и указываем символ, имя и десятичные числа нашего токена.
Токен uToday
Ограничения токена UToday
Код готов, так что давайте проверим его. Перейдите на вкладку “Выполнить” компилятора и разверните наш контракт. Вы увидите, что у нас есть данные токена, а также общее предложение, остатки средств и доплаты. Поздравляем, вы создали свой первый токен.
Для того, чтобы наш токен действительно работал в сети, нам необходимо развернуть смарт-контракт (обратите внимание, что это отличается от его развертывания для тестирования в Remix). В этом уроке мы будем использовать Remix и MetaMask, но есть и другие способы сделать это. MetaMask — это простая, но эффективная программа для кошелька Ethereum с приятным пользовательским интерфейсом, которая интегрируется в качестве расширения в некоторые из самых популярных браузеров. В нашем случае мы будем использовать Opera. Во-первых, перейдите к metamask.io и загрузите расширение. Как только это будет сделано, вы увидите иконку лисы в правом верхнем углу вашего браузера.
Загрузка и расположение значков
Нажмите на значок и следуйте предложенным инструкциям, чтобы создать кошелек. Не забудьте сохранить секретную фразу! Когда у вас есть кошелек, нажмите на значок MetamMask и измените сеть на “Ropsten”, потому что мы не хотим связываться с основной сетью Эфириума.
Замена MetaMask на Ropsten
Последний шаг — создать немного Эфира (к сожалению, вы не сможете использовать его для каких-либо реальных покупок, но они необходимы для тестирования). Перейдите к faucet.metamask.io и запросите 1 эфир.
Теперь у вас все готово. Вернитесь к окну Remix и измените среду в компиляторе на “Injected Web3”. Кроме того, взгляните на вкладку учетной записи — ваш адрес должен совпадать с адресом, который вы создали в MetaMask. Выберите смарт-контракт, который вы хотите развернуть, который является вашим токен-контрактом, но не интерфейсом ERC20, и нажмите соответствующую кнопку. Появится окно MetaMask с транзакцией, ее деталями и вариантами взаимодействия с ней. Отправьте транзакцию, и наш токен оживет.
Всплывающее окно MetaMask
Теперь вы можете поиграть со всеми функциями, о которых мы упоминали ранее. Давайте посмотрим на наш контракт с другой стороны, чтобы убедиться, что он работает правильно. Как и в любом другом блокчейне, в Эфириуме есть несколько исследователей блоков, которые служат основной цели мониторинга того, что происходит в сети. В нашем случае мы будем использовать Еtherscan, хотя есть несколько других отличных альтернатив. Обратите внимание, что если вы просто войдете в Etherscan, вы увидите основную сеть. Поскольку нам нужно увидеть сеть Ropsten, вам нужно будет поставить “ropsten” перед адресом сайта. Найдите свой адрес, и вы увидите две транзакции — одну для бесплатного Эфира, который вы получили, а другую для развертывания контракта.
Адрес пользователя в Etherscan
Чтобы найти адрес вашего контракта, нажмите на TxHash и перейдите в поле «Кому». Здесь вы можете проверить транзакции, код и события вашего смарт-контракта. На данный момент нам нужно проверить и опубликовать наш контракт. Перейдите в раздел «Код» и нажмите на ссылку «Проверить и опубликовать». Здесь вам нужно будет снова указать имя вашего токена, версию компилятора (в нашем случае последней версией Solidity, которую мы использовали, была 0.5.7, поэтому мы будем придерживаться соответствующей версии компилятора). Теперь вам нужно скопировать код смарт-контракта токена вместе с кодом интерфейса ERC20 из окна Remix в Etherscan и нажать «Подтвердить и опубликовать» («Confirm and Publish» ‘Verify and Publish’) в нижней части экрана.
Проверка смарт-контракта
Пришло время вернуться к адресу вашего контракта. Код на вкладке «Код» теперь будет подлежать проверке. Кроме того, теперь у вас будут еще две вкладки: «Прочитать контракт» и «Написать контракт». В разделе «Чтение» мы можем проверить функциональность нашего токена. Введите свой адрес (не адрес контракта) в поле «balanceOf», чтобы узнать, сколько у вас токенов; он должен показать 1 миллион, который мы жестко запрограммировали как общий запас и перевели на наш кошелек. Это означает, что наш токен теперь корректно работает в тестовой сети.
Достижение баланса
Если вы хотите начать карьеру разработчика в криптоиндустрии, вы должны понимать, что, несмотря на свою относительную простоту в основе, блокчейн обладает невероятной гибкостью и функциональностью. С 2017 года блокчейны значительно эволюционировали, и варианты их использования вышли за рамки просто финансовых транзакций. С появлением Эфириума возник совершенно новый уровень сетей, в которых размещаются различные приложения dApps и решения на основе блокчейна. Инструментом этой эволюции стал смарт-контракт, и если вы хотите расширить свой опыт, сделать его более ценным и ориентированным на будущее, вам нужно знать, как он работает.
Если вы можете кодировать смарт-контракты с использованием других языков, Solidity все равно лучше всего подходит для этих целей. Более того, если вы хотите стать разработчиком Эфириума или создать токены ICO/ERC20 для своего проекта, это определенно ваш выбор. Если у вас есть какой-то опыт работы с C++ или JavaScript, кодирование в Solidity должно быть относительно легким для вас. Однако вам придется понять некоторые различия между клиент-серверной и децентрализованной моделями запуска программного обеспечения. Благодаря Ethereum Foundation и некоторым сторонним организациям, разработчикам предоставляется набор удобных инструментов, таких как Remix и Etherscan, для кодирования и развертывания смарт-контрактов.
Мы надеемся, что наша статья помогла вам понять большинство концепций Solidity, чтобы начать увлекательное путешествие по изучению технологии блокчейн. Помните, что вы всегда можете ознакомиться с последней документацией Solidity.
Rate the article
Политика конфиденциальности сайта
Общие положения
Раздел Политика конфиденциальности («политика») поможет вам понять, как Global Digital Consulting LLC использует и защищает данные, которые вы предоставляете нам, когда вы посещаете и используете https://icoda.io («веб-сайт», «услуга»).
Мы оставляем за собой право изменять политику конфиденциальности в любое время, о чем вы будете своевременно проинформированы. Если вы хотите быть в курсе последних изменений, мы рекомендуем чаще посещать эту страницу.
Какие пользовательские данные мы собираем
Во время посещения вами сайта, мы можем собирать следующие данные:
Почему мы собираем ваши данные
Мы собираем ваши данные по нескольким причинам:
Конфиденциальность и защита данных
Global Digital Consulting LLC стремится защищать ваши данные и сохранять их конфиденциальность. Global Digital Consulting LLC сделал все возможное, чтобы предотвратить хищение данных, несанкционированный доступ и раскрытие информации, внедрив новейшие технологии и программное обеспечение, которые помогают нам защитить всю информацию, собранную онлайн.
Наша политика использования файлов cookie
Как только вы разрешаете нашему веб-сайту использовать файлы cookie, вы также соглашаетесь использовать данные, которые он собирает о ваших действиях в Интернете (анализирует веб-трафик, веб-страницы, на которых вы проводите больше всего времени, и веб-сайты, которые вы посещаете).
Данные, собранные с помощью файлов cookie, используются для настройки нашего веб-сайта в соответствии с вашими потребностями. После того, как мы используем данные для статистического анализа, они полностью удаляются из наших систем.
Пожалуйста, обратите внимание, что файлы cookie никаким образом не позволяют нам получить контроль над вашим компьютером. Они используются исключительно для того, чтобы отслеживать, какие страницы вы находите для себя полезными, а какие нет, чтобы мы могли предоставлять лучшие для вас услуги.
Ограничение сбора ваших персональных данных
Рано или поздно, вы захотите ограничить использование и сбор ваших персональных данных. Вы можете достичь этого, выполнив следующие действия:
Global Digital Consulting LLC не сдает в аренду, не продает и не распространяет вашу личную информацию третьим лицам без вашего согласия. Мы можем сделать это, только если того потребует закон. Ваша личная информация будет использоваться, когда нам нужно отправить вам рекламные материалы, если вы согласны с этой политикой конфиденциальности.
Условия и положения
Пожалуйста, внимательно ознакомьтесь с настоящими условиями и положениями («Условия», «Условия и положения») перед использованием веб-сайта https://icoda.io («Сервис»), управляемого Global Digital Consulting LLC.
Ваш доступ к сервису и его использование зависят от вашего согласия и соблюдения настоящих условий. Настоящие условия распространяются на всех посетителей, пользователей и других лиц, которые получают доступ к сервису или используют его.
Ссылки на другие веб-сайты
Наш сервис может содержать ссылки на сторонние веб-сайты или сервисы, которые не принадлежат или не контролируются Global Digital Consulting LLC.
Global Digital Consulting LLC не контролирует и не несет ответственности за содержание, политику конфиденциальности или действия любых сторонних веб-сайтов или служб. Вы также признаете и соглашаетесь с тем, что Global Digital Consulting LLC не несет прямой или косвенной ответственности за любой ущерб или убытки, вызванные или предположительно вызванные или связанные с использованием или доверием к любому такому контенту, товарам или услугам на любых таких веб-сайтах или сервисах или через них.
Изменения
Мы оставляем за собой право, по собственному усмотрению, изменять или заменять эти условия в любое время. Если мы решимся на существенные изменения в условиях, мы постараемся оповестить вас хотя бы за 30 дней до вступления в силу новых условий. Что представляет собой существенные изменения, будет определяться по нашему собственному усмотрению.
Свяжитесь с нами
Если у вас остались какие-либо вопросы об этих Условиях, пожалуйста, свяжитесь с нами.