Стек технологий для Web3. Часть 1. С++
Первый публичный блокчейн биткоин был написан на C++. Выбор этого языка не был случайным: C++ идеально подходил для многопоточной модели биткоина.
По сути, многопоточность относится к способности системы разделять свои задачи на несколько отдельных потоков и выполнять их параллельно. Это помогает добиться многозадачности — более высокой производительности и продуктивности за короткое время.
Примерами многопоточных параллельных операций в биткойне являются верификация адресов, проверка цифровых подписей и т. д.
Другими достоинствами C++ как языка программирования блокчейна были:
🔹его зрелость с точки зрения обновлений и отладки
🔹модель управления динамической памятью с помощью семантики перемещения и пересылки , что позволяет разработчикам извлекать объекты без создания копий временных объектов
Хотя C++ хорошо сочетался с функциональностью сети биткоина, его было недостаточно для других блокчейнов, чьи стеки включали элементы, отсутствовавшие в биткоине, — например, смарт-контракты.
Как правило, правильный язык программирования для стека блокчейна — это тот, который, по крайней мере, обеспечивает:
🔸компактный размер кода.
Хранение в блокчейне стоит дорого, поэтому код должен быть компактным.
🔸повышенный уровень безопасности
🔸возможности аудита и быстрых фиксов
🔸детерминированные действия и события, предполагающий, что каждое происходящее событие или действие обусловлено исключительно набором ранее произошедших событий или действий.
Языки с этими характеристиками: Solidity, Rust, Vyper, Yul+, Plutus, Python.
Также для разработки блокчейна используются Go Lang , Rholang и Javascript. Их минус в том, что они непригодны для создания смарт-контрактов. Вместо этого эти языки можно использовать для создания сред для взаимодействия с блокчейнами (например, среды JavaScript) с помощью функций вызова смарт-контрактов .