Мотивация
Контракты сети Ethereum иммутабельны – единожды загруженные в сети (блокчейн), они не могут быть изменены. Специфика бизнеса или разработки могут потребовать обновить код, но при традиционном подходе это становится проблемой.
Популярные причины необходимости обновления
- Ошибки в коде
- Изменение бизнес требований
- Принятие предложений сообщества об изменении работы контракта
Описание технического решения
Реализация требуемого функционала — обновление кода, планируется через разделение кода на составляющие:
- Данные — смарт-контракты без логики и предоставляющие исключительно пространство для хранения данных;
- Бизнес-логика — смарт-контракты описывающие логику извлечения данных из хранилища и их изменения;
- Входные точки — иммутабельные контракты ведут учет обновления бизнес-логики и предоставляют конечному пользователю ссылку на актуальный контракт бизнес-логики