Hello World with solidity
Hello World with solidity

1. Что такое твердость?

Solidity — это объектно-ориентированный статически типизированный язык программирования, созданный специально для написания смарт-контрактов на Ethereum. Поскольку смарт-контракты на Ethereum могут обрабатывать реальные активы (например, криптовалюты), Solidity разработан с особым упором на безопасность.

Вот некоторые ключевые особенности Solidity:

1. Безопасность типов и статическая типизация. Это позволяет избежать многих ошибок типов во время выполнения. 2. Поддерживает сложные пользовательские типы и легко реализует сложную логику. 3. Встроенные функции для выполнения сложных операций с массивами и отображениями в блокчейне.

В программе Solidity вы можете создавать контракты, которые могут содержать переменные состояния, функции, модификаторы функций, события, типы структур и типы перечислений. Что еще более важно, контракты могут наследовать и взаимодействовать, поддерживая создание и использование библиотек.

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

1.Эфириум:очевидно, Solidity Он предназначен для разработки смарт-контрактов на Ethereum, поэтому Ethereum является основной поддержкой. Solidity из Блокчейнплатформа。2.Binance Smart Chain:Это Эфириумсовместимыйиз Блокчейн,Также поддерживается использование Solidity Написание смарт-контрактов。3.Polygon(Matic):Polygon Это мультичейновая платформа, предназначенная для расширения Ethereum на несколько цепочек. Он поддерживает блокчейны, совместимые с Ethereum (например. Polygon SDK), также поддерживает Solidity язык。4.Tron:Для совместимости и удобства для разработчиков,Tron добавлена ​​пара Solidity изподдерживать。5.Avalanche:Avalanche Это платформа с открытым исходным кодом, которая обеспечивает проверку блокировки для децентрализованных приложений, новых финансовых прототипов и децентрализованных активов. его C-Chain с Ethereum Полная совместимость и поддержка Solidity язык。6.Harmony:это Эфириумсовместимыйизплатформа,Их смарт-контракт также поддерживает Solidity.

На этих платформах разработчики могут использовать Solidity для написания смарт-контрактов для разработки различных децентрализованных приложений.

2. Структура контракта солидности

Структура контракта Solidity состоит из цифровых частей. Ниже приведены относительно стандартные и распространенные компоненты:

1.Версия Прагма:Заявление о версииSolidityдокументсерединаизпервая линия,Используется для указания версии компилятора. Например,pragma solidity ^0.8.0; Это указанная версия компилятораиззаявление。2.Импортируйте другие файлы Solidity (заявление об импорте):ты можешь пройтиimportкоманда для импорта другихSolidityдокумент。Например:import "./AnotherContract.sol";。3.Декларация о контракте:Определите контракт по contract Ключевые словаиз,Далее следует название контракта. Например,contract MyContract {} Просто объявите имя под названием MyContract договор.

В договорную декларацию можно включить следующие части:

Переменные состояния:Переменные состояния хранятся в Блокчейнначальствоизценить。Эти переменные постоянныиз,имею в виду ихизценить会在合约изкаждыйфункция Настойчивость между вызовами。•Функции:функция Используется для изменения статуса контракта.изединица исполняемого кода。•Модификаторы функций:функция Модификаторы можно менятьфункцияиз Поведение。Например,publicprivateinternalexternalждать。•События:событие - контрактизчасть,Они срабатывают при вызове функции контракта.,Добавьте данные в Блокчейниз事务日志середина。•Типы структур:Структура определена как новаяизтипиз Способ。•Типы перечислений:Перечисления определяются как новыеизтипиз另一种Способ,Они выбирают из заранее определенного набора значений.

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

3. Использование Remix IDE

Remix IDE — это мощный инструмент с открытым исходным кодом, который поможет вам писать смарт-контракты Solidity, тестировать, отлаживать и развертывать их в сети Ethereum.

Ниже приведены основные шаги по написанию и тестированию смарт-контрактов с использованием Remix IDE:

3.1 Открытый ремикс

Посетите его официальный сайт: https://remix.ethereum.org/, интерфейс следующий:

Remix

3.2 Написание смарт-контрактов

В окне написания кода вы можете писать новые смарт-контракты Solidity. Например, напишем простой смарт-контракт: «Привет, мир!»:

Язык кода:javascript
копировать
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0 <0.9.0;

contract HelloWorld {
    function sayHello() public pure returns (string memory) {
        return "Hello, world!";
    }
}

HelloWorld

3.3 Составление договора

На левой панели навигации выберите «Компилятор Solidity» и нажмите кнопку «Компилировать». Если ваш код верен, компиляция завершится успешно и никаких дальнейших действий не потребуется. Если есть какие-либо ошибки, они будут отображены в окне вывода внизу раздела «Компиляция».

compiler

3.4 Контракт на развертывание

Выберите «Развертывание и запуск транзакций» на левой панели навигации, выберите соответствующую среду Ethereum в раскрывающемся меню, а затем нажмите кнопку «Развернуть», чтобы развернуть свой контракт в этой среде. Вашей средой может быть виртуальная машина JavaScript (среда песочницы, которая работает только в вашем браузере) или любая подключенная к ней тестовая сеть Ethereum.

deploy

3.5 Контракт на тестирование

Тест,Вы увидите новую панель под разделом развертывания.,Перечислите ваш контракт и его функции. Если вы выберете контракт «HelloWorld» выше,Вы можете увидеть функцию «sayHello». Нажмите на эту функцию,«Привет, мир!» должно отображаться в консоли ниже.

test

Выше описан процесс написания, компиляции, развертывания и тестирования простого смарт-контракта Solidity с использованием Remix IDE. Однако стоит отметить, что, хотя это базовая демонстрация, процесс может усложниться при разработке более сложных смарт-контрактов.

Отказ от ответственности: эта работа распространяется под лицензией Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)[1]. Пожалуйста, укажите источник при ее использовании. Автор: мэнбин[2] блог: мэнбин[3] Гитхаб: mengbin92[4] cnblogs: Непреднамеренно полюбила воду[5] Сообщество разработчиков облачных технологий Tencent: Мюнстер[6]

References

[1] С указанием авторства-Некоммерческая-ShareAlike 4.0 интернациональность (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh [2] mengbin: mengbin1992@outlook.com [3] mengbin: https://mengbin.top [4] mengbin92: https://mengbin92.github.io/ [5] Влюбляюсь в воду нечаянно: https://www.cnblogs.com/lianshuiwuyi/ [6] Мюнстер: https://cloud.tencent.com/developer/user/6649301

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.