Если вы тоже интересуетесь, то добро пожаловать под кат, расскажу своё видение ситуации.
Если всё максимально упростить, то блокчейн-разработчик — это такой же разработчик софта, только разобравшийся в ещё одной технологии или выучивший ещё один синтаксис условно нового языка программирования. Но такие короткие статьи писать неинтересно, поэтому мы попробуем классифицировать предметную область, немного поговорим о зарплатах, обязательно — о стеке и посмотрим короткие ответы действующих БЧ разработчиков.
Что же такое блокчейн?
Итак, сначала давайте поговорим о том, что же такое блокчейн. Подразумеваем, что у всех уже есть понимание, поэтому углубляться не буду, а приведу два определения, которые мне больше всего нравятся. Одно простое, второе сложное.
Первое
Блокчейн — это иммутабельная децентрализованная база данных.
Второе
A blockchain is a “cryptographically secure transactional singleton machine with shared-state.” [1]
“Transactional singleton machine” means that there’s a single canonical instance of the machine responsible for all the transactions being created in the system. In other words, there’s a single global truth that everyone believes in.
“With shared-state” means that the state stored on this machine is shared and open to everyone.
Определение взято отсюда — medium.com/@preethikasireddy/how-does-ethereum-work-anyway-22d1df506369
Простая классификация разработчиков, занятых в блокчейн
Давайте попробуем классифицировать.
Классифицировать отрасль по стеку технологий ещё рано, поэтому лучше всего ввести деление по отношению к самой технологии:
Опосредованное отношение
Опосредованное означает, что разработчику не приходилось погружаться в саму технологию, и она для него используется скорее как предметная область. Например, кто-то работает с автомобильной промышленностью, а кто-то автоматизирует рекрутинг. В данный пункт можно включить создание лендингов для криптовалютных проектов, использование готовых API от криптовалютных шлюзов. Данная категория нам не особо интересна.
Прямое же отношение к блокчейну можно, в свою очередь, разделить на использование результатов технологии и на создание и развитие технологии. Например, кто-то пользуется elastic search, а кто-то его пишет/развивает. Та же самая история здесь. Блокчейн — это не rocket science, а просто ещё одна технология, которой довольно просто пользоваться, если вы, конечно, не хотите разработать свою сеть.
Прямое отношение (Результаты технологии)
В данную категорию, например, можно отнести написание смарт-контрактов на языке Solidity. Смарт-контракт — это такая штука, которая представляет собой алгоритм типа “if this then that” и которая умеет общаться с внешним миром с помощью специальных оракулов (http://www.oraclize.it/). Например, на смарт-контракте можно написать форвадный контракт на цену биткоина через месяц, и эта сделка будет надёжнее любой биржи, потому что будет заложена полная децентрализация и неподдельность данных. Подробнее можно почитать здесь.
Кстати, малоизвестных специализированных языков программирования для смарт-контрактов создано очень много. Наиболее полный список есть здесь — https://github.com/s-tikhomirov/smart-contract-languages
Подробнее и хорошо о деривативах написано вот в этой статье — geektimes.ru/post/60141
Самый популярный смарт-контракт — на выпуск токена для ICO. Но он стал настолько популярным, что уже есть конструкторы (https://wizard.oracles.org/), и можно всё делать без программирования.
К данному пункту также можно отнести такую работу, как создание личного кабинета инвестора для ICO. Здесь разработчику надо разбираться, как устроены ноды эфира, биткоина, выбрать инструменты и фреймворки.
Сюда же относится написание различных кошельков к криптовалютам, создание биржи для торговли криптовалютами (кажется, каждый второй хочет открыть себе новую :-) ), или даже просто интеграции с биржами для создания своих новых продуктов.
Вклад в развитие технологии
Здесь уже сложнее. Можно провести разделение на тех, кто пишет сам код и на тех, кто занимается проектированием. В том числе теоретическим. Например, надо продумывать консенсус, и здесь вам поможет теория игр. Или продумывать экономику, и здесь уже неплохо бы иметь экономическое/финансовое образование.
Сами разработчики блокчейн-нод часто используют С++, Go. Иногда Rust и ещё реже Haskell. Разработчики ядра обычно обладают математическим образованием, им важно также знать криптографию.
Какие сложности и нюансы
Как это ни парадоксально, но в блокчейн-разработку легче входят front-end программисты. Причина очень простая — привыкли, что у них слой данных абстрактный. Back-end разработчикам и особенно разработчикам баз данных труднее. Они привыкли, что БД надо защитить, следить за консистентностью, целостностью. Надо понимать, как хранить информацию. А ведь в блокчейне всё не так. Тут вам:
- Открытость;
- Заложенная иммутабельность;
- Безопасность.
И всё уже разработано и придумано до нас. Просто используй.
А вот Solidity хорошим разработчиком учиться за 3-4 дня. Он очень простой. Но надо понимать, что важно знать best practices, быть в курсе последних уязвимостей, уметь проводить аудит.
Сложно перейти в блокчейн тем, кто не любит новое и консервативен. Часто проекты требуют интересных решений, для которых стандартных методов не достаточно.
Подытожим, чем же можно заниматься. Попробуем просто перечислить, чем же может заниматься БЧ-разработчик:
- Пишет смарт-контракты;
- Занимается разработкой блокчейн-нод;
- Разрабатывает концепт, занимается теоретической частью;
- Проектирует консенсус (узкая специализация под определённые задачи);
- Разрабатывает различные dAPP-продукты.
Как обучаться
На самом деле это тема отдельной статьи, если коротко то в интернете есть уже и платные и бесплатные курсы.
Как можно поучаствовать на практике после того, как обучитесь.
Биткоин появился благодаря шифропанкам (подробнее об истории здесь — https://www.ozon.ru/context/detail/id/135325988/), а это значит, что у основной технологии, стоящей за биткоином (блокчейн), очень хорошее коммьюнити. Что, в свою очередь, указывает на большое количество опен-сорса, простого и сложного. Например, у проекта DeCenter есть прекрасный бот для Телеграма (https://github.com/DeCenterOrg/moneebot). Он же эфир кошелёк. Репозиторий уже давно не обновлялся. Можно помочь в развитии. Например, очень нужно внедрить туда backup и восстановление кошелька по 12 словам (Стандарты BIP-32, BIP-39, BIP-44).
А ещё можно в core биткоина закоммитить, но нужно постараться, если хотите, чтобы ваш pull request приняли.
Так же ниже представлены ответы блокчейн-разработчиков, которых я знаю. Надеюсь, их комментарии вам помогут понять эту новую отрасль получше.
Короткие ответы блокчейн-разработчиков
Константин, freelance-разработчик
Как ты начал заниматься блокчейном?
Случайно получилось, уже тогда я фрилансил, и текущий заказчик предложил проект, связанный с блокчейном. Пришлось разбираться с нуля, поначалу было сложно. Это был 2015 год.
Чем тебе конкретно довелось заниматься в БЧ?
Делал поддержку мультиподписных адресов в bitcoinJ. Клиент для биткойна на Java, который используется в большинстве андроид устройств. Ещё для интересного проекта COLU делал интеграцию их протокола и их COLU SDK в opensource-кошелёк в copay. Покер ещё делал на Ethereum.
Нравится ли?
Нравится, если проект стоящий. А так есть большие ограничения и очень много ерунды сейчас вокруг блокчейна.
Считаешь ли ты, что зарплаты блокчейн-разработчиков выше?
По моим ненаучным наблюдениям, да, больше. Но если честно, считаю, что сеньор-разработчиков сейчас очень мало, можно по пальцам пересчитать.
Какие советы можешь дать тем, кто хотел бы начать?
Если человек хочет, то и так начнёт. Solidity, например, очень простая штука) Mastering Bitcoin прочитать можно.
Игорь Гуламов, VP Engineering in Bankex
Как ты начал заниматься блокчейном? Чем тебе конкретно довелось заниматься в БЧ?
Начал активно следить ещё в 2012, с 2017 начал работать, написал несколько смарт-контрактов. Сейчас фулл-тайм в блокчейне, но не совсем как разработчик, скорее как руководитель.
Нравится ли?
Да. Интересно, потому что блокчейн даёт новые экономические инструменты, анонимность. Это технология, которая привносит много хорошего в жизнь.
Считаешь ли ты, что зарплаты блокчейн-разработчиков выше?
Сейчас, во время хайпа, точно выше. До хайпа зарплаты были как у программистов на каком-нибудь эзотерическом языке типа Haskell.
Какие советы можешь дать тем, кто хотел бы начать?
Участвовать в опенсорсных проектах, в том же эфириуме. Например, есть проект магазин чисел. На гитхабе есть большая статья, как программировать на Solidity. Можно с неё начать — https://github.com/ethereum/wiki/wiki/%5BRussian%5D-%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BF%D0%BE-Solidity
https://ownanumber.github.io/
Sergey Zenkov, System Architect and Lead developer with blockchain experience
https://www.linkedin.com/in/sergey-zenkov-1b0713b2
Как ты начал заниматься блокчейном?
Много лет занимался веб-разработкой. Интересовался блокчейном давно, но без конкретных применений. Однажды друзьям нужна была помощь в этой сфере и я согласился принять участие в блокчейн проекте. Сейчас большая часть работы уже связана с dapp приложениями.
Чем тебе конкретно довелось заниматься в БЧ?
В основном пишу смарт-контракты и провожу code-review чужого кода. Участвовал также в проектах по созданию кастомного блокчейна. Периодически приходится проводить R&D исследования для различных проектов связанных с БЧ.
Нравится ли?
Да, отрасль новая. Мысли и подходы нужны другие, а это всегда интересно. Люблю изучать новые технологии и перспективные направления.
Считаешь ли ты, что зарплаты блокчейн-разработчиков выше?
Зависит от того, чем именно занимается блокчейн-разработчик. В целом, думаю, да, выше на текущий момент. Дальше уже будет видно по тому как будет развиваться отрасль.
Какие советы можешь дать тем, кто хотел бы начать?
Главное — читайте документацию и научитесь добывать нужную для работы информацию. Для работы со смарт-контрактами нужно прочитать всю документацию по solidity, truffle, OpenZeppelin, Infura и нужных для работы в truffle: chai (библиотека для asset) и mocha (тестовый фреймворк).
Критически важным является тестирование кода в testnet (ROPSTEN, KOVAN, RINKEBY)
Рекомендую читать побольше чужого кода, анализировать различные бизнес-кейсы интеграции блокчейна в бизнес-процессы, использовать актуальные паттерны разработки и следовать code-style выбранного стека. Следите за изменениями в отрасли и за появлением новых инструментов для разработчиков.
После изучения Ethereum и EVM, погружаться в другие блокчейны.
Заключение
Как видим, профессия блокчейн-разработчика пока в процессе формирования. Многое ещё в индустрии необходимо будет пройти, доработать и стандартизовать. Но уже сейчас есть понимание, что востребованность, а значит оплата на рынке труда определённо выше. К текущему моменту уже есть понимание как войти в профессию, где обучаться.
Даже если вы совсем не верите в блокчейн, а биткоин считаете самым большим пузырём, то всё равно рекомендуем присмотреться к технологии поближе, хотя бы с технической точки зрения.
Комментарии (5)
j8kin
29.11.2018 17:16+2Рынок ICO схлопнулся к середине 18 года. 90% ICO были признаны мошенническими и не принесли бабки вложившим. Сейчас пена сходит, но обратного отскока и денег в ICO проектах пока нет. Вместе с этим ушло большинство проектов на блокчейне. Почти все токены — мусорные посмотрите хотя бы на www.coinmarketcap.com.
На данный момент с введением multi-owner контракта стало сложнее автоматически тестировать деплойнутые контракты через myetherwallet. Причем имхо я не увидел в этом механизме суперположительные моменты, а кривость тестирования через метемаск прямо убила.
Поэтому я бы не рекомендовал входить сейчас в блокчейн на профессиональном уровне, только для интереса. Возможно выстрелит, но не сейчас.
С этой статьей вы на полтора года запоздали, даже может больше.NikMelnikov Автор
29.11.2018 17:25я её писал в феврале примерно, но по опредлённым причинам не было возможности опубликовать.
balexa
Что-то я не заметил что зарплаты выше. Но хайпа много, да. Последние пару месяцев мой линкедин просто засыпали эйчары предлагающие должность синьор-стаф-чиф-лид-блокчейн-девелопера аж за 180 тысяч в месяц и печеньки.
NikMelnikov Автор
ну это немного
balexa
О том и речь. «Классические» компании более надежны и предлагают больше.