Solidity. Основы. Блокчейн
477 subscribers
13 photos
8 videos
25 links
Solidity.
Основы.
Блокчейн
Download Telegram
Channel name was changed to «Solidity и основы блокчейна»
Roadmap "Как изучать Solidity и блокчейн разработку"

Изучайте алгоритмы

Важность знания и понимания различных алгоритмов не может быть переоценена, особенно при их использовании в смарт-контрактах. Рассмотрим, например, задачу сортировки массива данных (картинка номер 1 сверху)

Как вы можете наиболее эффективно и экономно обработать такую задачу на Solidity? Здесь знание алгоритмов придет на помощь, позволяя вам выбрать наиболее подходящий метод сортировки (картинка номер 2 снизу)

В контексте данного примера, одним из возможных решений может быть применение алгоритма сортировки "Merge". Если вам не знаком этот алгоритм, вы можете ознакомиться с ним и с другими алгоритмами по ссылке.

#roadmap #howtolearn
Blockchain Developer. Roadmap "Как стать блокчейн разработчиком"
Step by step guide to becoming a blockchain developer in 2024.

https://roadmap.sh/blockchain
Roadmap "Как изучать Solidity и блокчейн разработку"

Погружайся глубоко в изучение Solidity

Solidity - это относительно простой язык программирования. В отличие от таких языков как C/C++, Java, Python, где для достижения уровня эксперта может потребоваться более 30 лет, в случае с Solidity вы можете достичь этого уровня за пару лет. Настоятельно рекомендую полностью изучить официальную документацию, и после поэкспериментировать с интерактивный справочником по опкодам на сайте evm.codes.

Вполне верно, важно осознать суть того, с чем мы работаем. Эту мысль ярко иллюстрирует известное высказывание Авраама Линкольна:
Дайте мне шесть часов для того, чтобы срубить дерево, и я потрачу первые четыре часа на то, чтобы заточить топор.


#roadmap #howtolearn
Что такое атака 51%?

Атака 51% на блокчейн происходит, когда группа или отдельный человек в конечном итоге контролируют более половины (или> 50%) хешрейта майнинга или вычислительной мощности.
В этом случае они могут управлять системой, отклоняя и одобряя транзакции, и даже могут выполнять двойное расходование(двойные траты).


#вопрос #собеседование
Solidity и смарт-контракты Ethereum. Введение, Remix IDE, аккаунты, газ, первый контракт

#видео

Таймкоды:
00:00 Введение: о чём эти уроки?
01:13 Централизованные приложения
02:00 Децентрализованные приложения (DApps)
05:26 Особенности Ethereum и смарт-контрактов
08:15 Особенности Solidity
09:20 Remix IDE
10:40 Интерфейс Remix IDE
13:40 Аккаунты в Ethereum
15:53 Что такое газ (gas)?
18:50 Остальные элементы интерфейса
19:32 Напишем первый смарт-контракт!
22:34 Сохранение владельца контракта
23:50 Конструкторы
25:36 Функция и payable (приём денег)
27:40 Использование mapping
29:50 Функция для вывода денег на аккаунт
36:17 Взаимодействие со смарт-контрактом
42:10 Заключение

Смотреть полное видео
👍2
Хард-скиллы для будущего джедая блокчейн-разработки

Чтобы претендовать на должность блокчейн-разработчика, нужно уметь программировать (и не обязательно уходить с головой в 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 #собеседование
👍4
Софт-скиллы, которые помогут

Какие еще навыки нужно прокачать, чтобы комфортно чувствовать себя на позиции блокчейн-разработчика? В них много общего с требованиями, предъявляемыми к разработчику, но есть нюансы и особенности.

Важны:

▫️склонность к аналитическому мышлению,

▫️проактивный подход к обучению новому инструментарию,

▫️навыки аргументации и problem solving в быстро меняющихся условиях — своего рода операционный риск-менеджмент, необходимый во времена турбулентности,

▫️умение находить нетривиальное решение проблемы.

Главное же отличие блокчейна от другой разработки заключается в том, что это новая сфера, для которой пока не существует полноценной законодательной базы. А значит, блокчейн-специалисту потребуется здоровое любопытство и искренний интерес, стремление отслеживать появление новых норм регулирования и сфер, на которые распространяется блокчейн. Также необходимо следовать этическим нормам и правилам, закрепленным в сообществе.
👌4
This media is not supported in your browser
VIEW IN TELEGRAM
Solidity v0.8 - Hello World

Пример базового шаблонного
приложения на Solidity

#solidity
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Найдите ошибку в коде.
Can you solve this solidity coding challenge?

#solidity #challenge
👍4
Proof of Work (PoW). Как работает и что это такое?

Данный согласованный алгоритм используется для выбора майнера, который сгенерирует следующий блок в цепочке. Bitcoin, Ethereum, Litecoin и многие другие мастодонты блокчейн-индустрии используют PoW в своей работе.

Основная идея этого алгоритма состоит в том, чтобы решить сложную случайную математическую задачу, сгенерированную блокчейном и выдать решение.
Особенностью данного алгоритма является сложность решения задачи, но при этом его можно легко перепроверить.

Эта математическая головоломка требует больших вычислительных мощностей и, таким образом, узел, который решает головоломку, раньше остальных добирается до следующего блока.

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:

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 #собеседование