Найти тему
Definition

​Стек технологий для Web3. Часть 1. С++

Стек технологий для Web3. Часть 1. С++

Первый публичный блокчейн биткоин был написан на C++. Выбор этого языка не был случайным: C++ идеально подходил для многопоточной модели биткоина.

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

Примерами многопоточных параллельных операций в биткойне являются верификация адресов, проверка цифровых подписей и т. д.

Другими достоинствами C++ как языка программирования блокчейна были:

🔹его зрелость с точки зрения обновлений и отладки

🔹модель управления динамической памятью с помощью семантики перемещения и пересылки , что позволяет разработчикам извлекать объекты без создания копий временных объектов

Хотя C++ хорошо сочетался с функциональностью сети биткоина, его было недостаточно для других блокчейнов, чьи стеки включали элементы, отсутствовавшие в биткоине, — например, смарт-контракты.

Как правило, правильный язык программирования для стека блокчейна — это тот, который, по крайней мере, обеспечивает:

🔸компактный размер кода.

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

🔸повышенный уровень безопасности

🔸возможности аудита и быстрых фиксов

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

Языки с этими характеристиками: Solidity, Rust, Vyper, Yul+, Plutus, Python.

Также для разработки блокчейна используются Go Lang , Rholang и Javascript. Их минус в том, что они непригодны для создания смарт-контрактов. Вместо этого эти языки можно использовать для создания сред для взаимодействия с блокчейнами (например, среды JavaScript) с помощью функций вызова смарт-контрактов .