Разработка смарт-контракта для регистрации документов в блокчейне.

Под капотом
Вы когда-нибудь задумывались, почему я начинаю каждую историю со слов «под капотом» в качестве первого абзаца 🤔. Ну, причина проста, ни одна история в мире не начинается без причины/причины/мотивации/ярости или любого другого слова, которое приходит вам на ум.

Итак, сегодняшняя история начинается и поощряется процессом изучения разработки блокчейна. На самом деле, последние 10–12 историй больше о разработке блокчейна, потому что я делюсь ими во время обучения.

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

Начиная
Начнем рассказ, идея заключается в создании смарт-контракта для хранения и работы с документами.

Данные блокчейна неизменны, непротиворечивы, открыты для всех, постоянны и, что наиболее важно, защищены. Из-за этого блокчейна, безусловно, будет будущее приложений.

И одним из вариантов использования блокчейна является хранение непротиворечивых данных, например, документов, удостоверяющих личность граждан, таких как Aadhar Card (для Индии). В настоящее время данные хранятся на централизованных серверах, которыми управляет правительство/центральный орган, что делает их уязвимыми для злоумышленников и многих других нежелательных действий.

Хранение всех необходимых документов в блокчейне имеет свои преимущества и, что более важно, оно будет защищено.

Написание смарт-контрактов
2 с 2 переменными, и наш смарт-контракт готов к использованию. Конечно, вам может потребоваться внести дополнительные изменения и добавить дополнительные контрольные точки и проверки.

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

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

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

mapping(string => uint256) documents;
Войти в полноэкранный режим

Выйти из полноэкранного режима

Другая переменная будет хранить адрес владельца, это важно для целей проверки.

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

address ownerAddres = msg.sender;
Войти в полноэкранный режим

Выйти из полноэкранного режима

переменная msg — это глобальная переменная в Solidity или EVM. Так же, как окно в javascript, div в HTML.

Способ хранения документа
Теперь мы напишем метод для сохранения документа в блокчейне и возврата временной метки во время создания блока.

Добавить документ

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

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

Проверить документ

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

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

Документ реестра

До следующего раза, хорошего дня, люди.
Продолжайте развиваться
iHateReading