⚒Хард-скиллы для будущего джедая блокчейн-разработки
Чтобы претендовать на должность блокчейн-разработчика, нужно уметь программировать (и не обязательно уходить с головой в full-stack — достаточно одного из упомянутых языков), разбираться в архитектуре, знать технологии, лежащие в основе блокчейна и иметь практический кейс разработки смарт-контрактов (очень желательно).
Список хард-скиллов, о которых спросят на собеседовании, примерно такой:
▫️знать Solidity и JavaScript (C# будет плюсом), если предстоит работать с блокчейном Ethereum; Python пригодится только для программной блокчейн-платформы Tezos;
▫️уметь применять протоколы RPC, gRPC, HTTPS;
▫️понимать, как работают на практике принципы архитектурного стиля REST API;
▫️разбираться в технологиях одной из популярных сетей, например, Ethereum, TON, Solana — с их помощью создаются приложения с децентрализованной схемой хранения данных и обеспечивается работа криптовалют;
▫️иметь опыт разработки смарт-контрактов на принятом для используемой сети языке, например, Solidity для Ethereum;
▫️понимать работу с криптографическими инструментами –– а при их разработке применять знания информатики и математики; с помощью криптографических методов данные шифруются у отправителя и дешифруются у получателя;
▫️знать основы блокчейна –– системы управления базами данных и компьютерными сетями (это неотъемлемые части создания и поддержания технологии), уметь строить топологию;
▫️понимать различные типы структур данных (массивы, разветвленные и линейные связанные списки, «деревья», векторы, множества и т. д.).
Чтобы претендовать на должность блокчейн-разработчика, нужно уметь программировать (и не обязательно уходить с головой в full-stack — достаточно одного из упомянутых языков), разбираться в архитектуре, знать технологии, лежащие в основе блокчейна и иметь практический кейс разработки смарт-контрактов (очень желательно).
Список хард-скиллов, о которых спросят на собеседовании, примерно такой:
▫️знать Solidity и JavaScript (C# будет плюсом), если предстоит работать с блокчейном Ethereum; Python пригодится только для программной блокчейн-платформы Tezos;
▫️уметь применять протоколы RPC, gRPC, HTTPS;
▫️понимать, как работают на практике принципы архитектурного стиля REST API;
▫️разбираться в технологиях одной из популярных сетей, например, Ethereum, TON, Solana — с их помощью создаются приложения с децентрализованной схемой хранения данных и обеспечивается работа криптовалют;
▫️иметь опыт разработки смарт-контрактов на принятом для используемой сети языке, например, Solidity для Ethereum;
▫️понимать работу с криптографическими инструментами –– а при их разработке применять знания информатики и математики; с помощью криптографических методов данные шифруются у отправителя и дешифруются у получателя;
▫️знать основы блокчейна –– системы управления базами данных и компьютерными сетями (это неотъемлемые части создания и поддержания технологии), уметь строить топологию;
▫️понимать различные типы структур данных (массивы, разветвленные и линейные связанные списки, «деревья», векторы, множества и т. д.).
👍3
Вопрос для ETH разработчика.
В чем разница между private, internal, public, and external functions?
Возможный вариант ответа:
Модификаторы видимости обязательны, всего их бывает 4. Указывает на то, откуда функция может быть вызвана:
external - внешние функции, могут быть вызваны только из другого контракта или через транзакцию, вызов func() не сработает внутри контракта, сработает this.func(), но практика с использованием this нежелательна, поскольку такая операция дороже. Если у вас появилась потребность вызвать external функцию внутри контракта, то лучше переименуйте её в public(следующий пункт)
public - функции с этим модификатором могут быть вызваны откуда угодно
internal - внутренние функции, нельзя вызвать через транзакцию, можно вызвать внутри контракта и контрактов, наследующих его. В этом случае this не работает
private - функции с этим модификатором можно вызвать только внутри текущего контракта
#вопрос #eth #собеседование
В чем разница между private, internal, public, and external functions?
Возможный вариант ответа:
Модификаторы видимости обязательны, всего их бывает 4. Указывает на то, откуда функция может быть вызвана:
external - внешние функции, могут быть вызваны только из другого контракта или через транзакцию, вызов func() не сработает внутри контракта, сработает this.func(), но практика с использованием this нежелательна, поскольку такая операция дороже. Если у вас появилась потребность вызвать external функцию внутри контракта, то лучше переименуйте её в public(следующий пункт)
public - функции с этим модификатором могут быть вызваны откуда угодно
internal - внутренние функции, нельзя вызвать через транзакцию, можно вызвать внутри контракта и контрактов, наследующих его. В этом случае this не работает
private - функции с этим модификатором можно вызвать только внутри текущего контракта
#вопрос #eth #собеседование
👍4
⚒Софт-скиллы, которые помогут
Какие еще навыки нужно прокачать, чтобы комфортно чувствовать себя на позиции блокчейн-разработчика? В них много общего с требованиями, предъявляемыми к разработчику, но есть нюансы и особенности.
Важны:
▫️склонность к аналитическому мышлению,
▫️проактивный подход к обучению новому инструментарию,
▫️навыки аргументации и problem solving в быстро меняющихся условиях — своего рода операционный риск-менеджмент, необходимый во времена турбулентности,
▫️умение находить нетривиальное решение проблемы.
Главное же отличие блокчейна от другой разработки заключается в том, что это новая сфера, для которой пока не существует полноценной законодательной базы. А значит, блокчейн-специалисту потребуется здоровое любопытство и искренний интерес, стремление отслеживать появление новых норм регулирования и сфер, на которые распространяется блокчейн. Также необходимо следовать этическим нормам и правилам, закрепленным в сообществе.
Какие еще навыки нужно прокачать, чтобы комфортно чувствовать себя на позиции блокчейн-разработчика? В них много общего с требованиями, предъявляемыми к разработчику, но есть нюансы и особенности.
Важны:
▫️склонность к аналитическому мышлению,
▫️проактивный подход к обучению новому инструментарию,
▫️навыки аргументации и problem solving в быстро меняющихся условиях — своего рода операционный риск-менеджмент, необходимый во времена турбулентности,
▫️умение находить нетривиальное решение проблемы.
Главное же отличие блокчейна от другой разработки заключается в том, что это новая сфера, для которой пока не существует полноценной законодательной базы. А значит, блокчейн-специалисту потребуется здоровое любопытство и искренний интерес, стремление отслеживать появление новых норм регулирования и сфер, на которые распространяется блокчейн. Также необходимо следовать этическим нормам и правилам, закрепленным в сообществе.
👌4
Proof of Work (PoW). Как работает и что это такое?
Данный согласованный алгоритм используется для выбора майнера, который сгенерирует следующий блок в цепочке. Bitcoin, Ethereum, Litecoin и многие другие мастодонты блокчейн-индустрии используют PoW в своей работе.
Основная идея этого алгоритма состоит в том, чтобы решить сложную случайную математическую задачу, сгенерированную блокчейном и выдать решение.
Особенностью данного алгоритма является сложность решения задачи, но при этом его можно легко перепроверить.
Эта математическая головоломка требует больших вычислительных мощностей и, таким образом, узел, который решает головоломку, раньше остальных добирается до следующего блока.
PoW стремится, чтобы атака на сеть была чрезмерно дорогой и требует высоких энергозатрат, так как майнеры потребляют энергоресурсы для предоставления услуг учета и безопасности сети. Недостатками данного механизма принято считать ограниченную масштабируемость и невысокую пропускную способность .
#pow #blockchain #собеседование
Основная идея этого алгоритма состоит в том, чтобы решить сложную случайную математическую задачу, сгенерированную блокчейном и выдать решение.
Особенностью данного алгоритма является сложность решения задачи, но при этом его можно легко перепроверить.
Эта математическая головоломка требует больших вычислительных мощностей и, таким образом, узел, который решает головоломку, раньше остальных добирается до следующего блока.
PoW стремится, чтобы атака на сеть была чрезмерно дорогой и требует высоких энергозатрат, так как майнеры потребляют энергоресурсы для предоставления услуг учета и безопасности сети. Недостатками данного механизма принято считать ограниченную масштабируемость и невысокую пропускную способность
#pow #blockchain #собеседование
🔥5
Вопрос для ETH разработчика.
What is the difference between create and create2?
What is CREATE
Smart contracts can be created both by other contracts and regular EOA.They both compute the new address the same way:
So each created address is associated with a nonce value.Nonce increased on every transaction.It is related to the number of transactions we make and is unpredictable. That’s why we need CREATE2.
What is CREATE2?
The whole idea behind this opcode is to make the resulting address independent of future events. Regardless of what may happen on the blockchain, it will always be possible to deploy the contract at the precomputed address.There are four parameters in CREATE2 function:
* 0xFF
* the address of sender
* A salt (random value from sender)
* bytecode (the code of the new contract)
Обьяснение на русском читайте по ССЫЛКЕ
#вопрос #eth #собеседование
What is the difference between create and create2?
What is CREATE
Smart contracts can be created both by other contracts and regular EOA.They both compute the new address the same way:
new_address = keccak256(sender, nonce)
So each created address is associated with a nonce value.Nonce increased on every transaction.It is related to the number of transactions we make and is unpredictable. That’s why we need CREATE2.
What is CREATE2?
The whole idea behind this opcode is to make the resulting address independent of future events. Regardless of what may happen on the blockchain, it will always be possible to deploy the contract at the precomputed address.There are four parameters in CREATE2 function:
* 0xFF
* the address of sender
* A salt (random value from sender)
* bytecode (the code of the new contract)
new_address = keccak256(0xFF, sender, salt, bytecode)
Обьяснение на русском читайте по ССЫЛКЕ
#вопрос #eth #собеседование
🔥3👍1
Вопрос для ETH разработчика.
Насколько большим может быть смарт-контракт?
Ответ:
The Solidity max contract size is 24,576 bytes. This contract code size limit was introduced in EIP-170 with the Spurious Dragon hard-fork. The purpose of this limit is to prevent denial-of-service (DOS) attacks.
Максимальный размер контракта Solidity составляет 24 576 байт. Это ограничение размера кода контракта было введено в EIP-170 с хард-форком Spurious Dragon. Целью этого ограничения является предотвращение DOS aтак.
#вопрос #eth #собеседование
Насколько большим может быть смарт-контракт?
Ответ:
Максимальный размер контракта Solidity составляет 24 576 байт. Это ограничение размера кода контракта было введено в
#вопрос #eth #собеседование
Как работает атака 51%?
Проще говоря, атака 51% «отменяет» существующую сеть. Хакеры управляют протоколами безопасности сети, что может привести к значительному ущербу. Серьезный урон не гарантирован, но вероятен. В конечном счете, все зависит от того, насколько конкретная атака мощна и агрессивна.
Для проведения атаки хакеры используют значительные майнинговые или вычислительные мощности. Чем больше вычислительной мощности, тем легче захватить сеть.
Проведение атаки 51% — это непростая задача, благодаря децентрализации. Децентрализация — это когда устройства, на которых работает сеть, не соединены кабелями и вовсе находятся в разных местах.
Они принадлежат пользователям со всего мира, что делает захват всей сети затруднительным. Поэтому у хакеров остается один вариант — обойти основную сеть. Однако если в сети работает лишь несколько нод, то можно взломать их напрямую.
У небольших сетей меньше нод, что, в большинстве случаев, означает меньшую вычислительную мощность. Поэтому для взлома такой сети хакерам потребуется приложить намного меньше усилий. Однако в таких сетях циркулирует меньше средств, что делает их не слишком привлекательными.
Итак, чем больше сеть и чем больше в ней нод, тем сложнее ее захватить.
#собеседование
Для проведения атаки хакеры используют значительные майнинговые или вычислительные мощности. Чем больше вычислительной мощности, тем легче захватить сеть.
Проведение атаки 51% — это непростая задача, благодаря децентрализации. Децентрализация — это когда устройства, на которых работает сеть, не соединены кабелями и вовсе находятся в разных местах.
Они принадлежат пользователям со всего мира, что делает захват всей сети затруднительным. Поэтому у хакеров остается один вариант — обойти основную сеть. Однако если в сети работает лишь несколько нод, то можно взломать их напрямую.
У небольших сетей меньше нод, что, в большинстве случаев, означает меньшую вычислительную мощность. Поэтому для взлома такой сети хакерам потребуется приложить намного меньше усилий. Однако в таких сетях циркулирует меньше средств, что делает их не слишком привлекательными.
Итак, чем больше сеть и чем больше в ней нод, тем сложнее ее захватить.
#собеседование
👍4
What prevents infinite loops from running forever?
Почему нет бесконечных циклов в Solidity?
The transaction gas limit prevents infinite loops from running forever.
Так как есть лимит газа.
#вопрос #eth #собеседование
Почему нет бесконечных циклов в Solidity?
Так как есть лимит газа.
#вопрос #eth #собеседование
🔥6👍1
Какие бывают типы блокчейна?
Публичный блокчейн. Публичные блокчейны отличаются тем, что они открыты для всех желающих присоединиться к сети. ...
Частный блокчейн. Частные блокчейны, или управляемые сети, контролируются одной организацией или группой организаций. ...
Гибридный блокчейн.
Блокчейн-консорциумы.
#собеседование
Частный блокчейн. Частные блокчейны, или управляемые сети, контролируются одной организацией или группой организаций. ...
Гибридный блокчейн.
Блокчейн-консорциумы.
#собеседование
👍2🔥1
Вопрос для SOLIDITY разработчика.
What major change with arithmetic happened with Solidity 0.8.0?
Starting with version 0.8.0, Solidity automatically includes checks for arithmetic underflows and overflows as a built-in feature of the language. Before version 0.8.0, integer underflows and overflows were allowed and would not cause an error. Since version 0.8.0, Solidity will revert if an expression causes an integer underflow or overflow.
На русском можно почитать по ссылке
#вопрос #eth #собеседование
What major change with arithmetic happened with Solidity 0.8.0?
На русском можно почитать по ссылке
#вопрос #eth #собеседование
Хабр
Solidity: Путешествие в сердце оптимизации
Приветствую, кодеры Solidity! Если вы здесь, то или у вас есть смарт-контракт, который готов к "похудению", или вы просто пытаетесь нарастить свои мышцы в области оптимизации Solidity. Как бы то ни...
⚒ Топ-10 платформ для разработки блокчейна.
▫️Ethereum: Является второй по величине сетью блокчейн и содержит тысячи децентрализованных приложений. Полностью поддерживает смарт-контракты.
▫️Блокчейн IBM: Эта частная сеть была разработана с учетом гибкости и функциональности. Имеет высокий уровень кастомизации, удобный интерфейс и свободное владение несколькими языками программирования.
▫️ConsenSys Quorum: Разработана инвестиционным банком JPMorgan и основана на сети Ethereum, но оптимизирована для поддержки более быстрых транзакций. Известна своей поддержкой GDPR и другими мерами безопасности.
▫️Hydrogen Molecule: Предлагает множество функций, которые делают её хорошим выбором для разработчиков, желающих предоставить пользователям быстрые и безопасные финансовые решения. Токенизированная защита, хэширование и отслеживание данных - лишь некоторые её преимущества.
▫️Hyperledger Fabric: Разработана компанией Linux и предназначена для использования в приложениях различных отраслей. Благодаря модульной архитектуре Fabric процесс создания сложных блокчейн-решений значительно упрощается.
▫️Ripple: Еще одно довольно популярное решение на основе блокчейна. Известная своей прозрачностью, низкими комиссионными за обработку данных и быстрым временем отклика, она используется сотнями финансовых учреждений по всему миру. Не поддерживает смарт-контракты.
▫️Stellar: Это еще одно блокчейн-решение, ориентированное на финансовую сферу. Ключевым отличием от других блокчейн-платформ является то, что оно не принадлежит ни одному человеку, то есть он на 100% децентрализован.
▫️EOSIO: Легкая масштабируемость и быстрое время обработки данных — две основные привлекательные черты платформы EOSIO. Она обладает высокой степенью гибкости, предлагая совместимость со смарт-контрактами и децентрализованными приложениями.
▫️Corda: Отличается от других продуктов в этом списке. Существуют некоторые споры о том, является ли она блокчейном вообще. Самым большим плюсом этой технологии является более быстрое время обработки относительно других традиционных блокчейн-сетей.
▫️Elements: Последний представитель в этом списке, Elements, построен поверх сети Bitcoin, но включает в себя множество новых функций, таких как конфиденциальные транзакции.
А какие платформы вы бы добавили в этот список?
▫️Ethereum: Является второй по величине сетью блокчейн и содержит тысячи децентрализованных приложений. Полностью поддерживает смарт-контракты.
▫️Блокчейн IBM: Эта частная сеть была разработана с учетом гибкости и функциональности. Имеет высокий уровень кастомизации, удобный интерфейс и свободное владение несколькими языками программирования.
▫️ConsenSys Quorum: Разработана инвестиционным банком JPMorgan и основана на сети Ethereum, но оптимизирована для поддержки более быстрых транзакций. Известна своей поддержкой GDPR и другими мерами безопасности.
▫️Hydrogen Molecule: Предлагает множество функций, которые делают её хорошим выбором для разработчиков, желающих предоставить пользователям быстрые и безопасные финансовые решения. Токенизированная защита, хэширование и отслеживание данных - лишь некоторые её преимущества.
▫️Hyperledger Fabric: Разработана компанией Linux и предназначена для использования в приложениях различных отраслей. Благодаря модульной архитектуре Fabric процесс создания сложных блокчейн-решений значительно упрощается.
▫️Ripple: Еще одно довольно популярное решение на основе блокчейна. Известная своей прозрачностью, низкими комиссионными за обработку данных и быстрым временем отклика, она используется сотнями финансовых учреждений по всему миру. Не поддерживает смарт-контракты.
▫️Stellar: Это еще одно блокчейн-решение, ориентированное на финансовую сферу. Ключевым отличием от других блокчейн-платформ является то, что оно не принадлежит ни одному человеку, то есть он на 100% децентрализован.
▫️EOSIO: Легкая масштабируемость и быстрое время обработки данных — две основные привлекательные черты платформы EOSIO. Она обладает высокой степенью гибкости, предлагая совместимость со смарт-контрактами и децентрализованными приложениями.
▫️Corda: Отличается от других продуктов в этом списке. Существуют некоторые споры о том, является ли она блокчейном вообще. Самым большим плюсом этой технологии является более быстрое время обработки относительно других традиционных блокчейн-сетей.
▫️Elements: Последний представитель в этом списке, Elements, построен поверх сети Bitcoin, но включает в себя множество новых функций, таких как конфиденциальные транзакции.
А какие платформы вы бы добавили в этот список?
👍3🔥1
Вопрос для solidity разработчика.
What special CALL is required for proxies to work?
DELEGATECALL is required for proxy contracts to work because this type of call will preserve the msg (msg.sender, msg.value, etc…) and run in the context of the calling contract instead of the called contract. This enables the proxy contract to call an implementation contract to modify the proxy contract’s state.
By using DELEGATECALL, the implementation contract can be upgraded without the smart contract system losing any information or having to change the address of the proxy.
Больше про DELEGATECALL по ссылке
#вопрос #eth #собеседование
What special CALL is required for proxies to work?
By using DELEGATECALL, the implementation contract can be upgraded without the smart contract system losing any information or having to change the address of the proxy.
Больше про DELEGATECALL по ссылке
#вопрос #eth #собеседование
Medium
Delegatecall in Solidity
In Solidity, delegatecall is a low-level function that allows one contract to call another contract and run its code within the context of…
👌2
Ключевая разница между доказательством работы (PoW) и доказательством доли (PoS)
- что такое PoW?
- что такое PoS?
- PoW против PoS
- что такое Стейкинг?
- как работает PoW?
- как работает PoS?
..........
Читать по ссылке: https://www.guru99.com/ru/pow-vs-pos.html
- что такое PoW?
- что такое PoS?
- PoW против PoS
- что такое Стейкинг?
- как работает PoW?
- как работает PoS?
..........
Читать по ссылке: https://www.guru99.com/ru/pow-vs-pos.html
Как предотвратить атаку 51%?
Существует несколько способов защиты от атаки 51%. Самый эффективный из них - не использовать консенсус Proof-of-Work. Это не только повысит степень защиты от атаки 51%, но также снизит потребление энергии в блокчейне, сделав его безопаснее, экономичнее и быстрее.
Еще один способ предотвратить атаку — значительно увеличить сеть. Чаще всего блокчейны привлекают дополнительные ноды с помощью программ поощрения. Так, в огромной сети (наподобие Bitcoin) практически невозможно провести атаку 51%.
Кроме того, необходим постоянный мониторинг нодов, участвующих в майнинге и стейкинге. Такая система может обнаружить «подставные ноды» еще на стадии подготовки атаки.
Также защититься от атаки 51% можно с помощью запрета майнинга на потребительских графических процессорах. Чего стоит пример Bitcoin Gold (одна из ветвей Bitcoin), которую взломали несколько раз с помощью нод, работающих на потребительских видеокартах. Такие карты используют алгоритм майнинга Zhash. Потребительские видеопроцессоры довольно дешевые, что значительно снижает расходы хакеров на взлом. К слову, Bitcoin полагается на алгоритм, для работы которого требуются ASIC-майнеры.
ASIC-майнеры известны своей довольно высокой ценой, что значительно повышает стоимость атаки. По некоторым оценкам, атака на Bitcoin будет стоить $752 000 в час. Это слишком высокая цена, и вряд ли такой взлом будет прибыльным.
Однако лучшим способом предотвращения таких атак является мониторинг сети в реальном времени. С его помощью проектам не надо менять алгоритм, а майнерам не надо покупать дорогостоящее оборудование.
#собеседование
Еще один способ предотвратить атаку — значительно увеличить сеть. Чаще всего блокчейны привлекают дополнительные ноды с помощью программ поощрения. Так, в огромной сети (наподобие Bitcoin) практически невозможно провести атаку 51%.
Кроме того, необходим постоянный мониторинг нодов, участвующих в майнинге и стейкинге. Такая система может обнаружить «подставные ноды» еще на стадии подготовки атаки.
Также защититься от атаки 51% можно с помощью запрета майнинга на потребительских графических процессорах. Чего стоит пример Bitcoin Gold (одна из ветвей Bitcoin), которую взломали несколько раз с помощью нод, работающих на потребительских видеокартах. Такие карты используют алгоритм майнинга Zhash. Потребительские видеопроцессоры довольно дешевые, что значительно снижает расходы хакеров на взлом. К слову, Bitcoin полагается на алгоритм, для работы которого требуются ASIC-майнеры.
ASIC-майнеры известны своей довольно высокой ценой, что значительно повышает стоимость атаки. По некоторым оценкам, атака на Bitcoin будет стоить $752 000 в час. Это слишком высокая цена, и вряд ли такой взлом будет прибыльным.
Однако лучшим способом предотвращения таких атак является мониторинг сети в реальном времени. С его помощью проектам не надо менять алгоритм, а майнерам не надо покупать дорогостоящее оборудование.
#собеседование
👍2🔥1