Каков стандартный способ для Dapp локально хранить неконфиденциальные данные?

Я создаю небольшой Dapp, который структурирован следующим образом:

Каждый пользователь, желающий использовать контракт, развертывает копию кода. Отдельные контракты содержат небольшой объем информации. Пользователи также могут «следить» за контрактами, развернутыми другими людьми, чтобы получать информацию об изменении состояния этих контрактов.

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

Ответы (2)

Лучший способ сделать это — создать Dapp с использованием стека MEAN (MongoDB, Express.js, Angular.js и Node.js: отличная книга здесь . С подходом MVC (модель-представление-контроллер) вы бы структурировали ваше Dapp с файлом сервера, а затем каталоги, содержащие контракты, модели, представления, контроллеры и переменные среды.Вот хороший репозиторий примеров Dapp .

Также Метеор в связке с Монго был бы идеален.

Вы можете создавать схемы Mongo для пользователей (если они есть у вашего Dapp) или любую другую структуру данных, которая вам нужна, для хранения неконфиденциальной информации, а также связывать с контрактом любую функциональность, которую вы хотите реализовать.

Одним из лучших способов было бы хранить ваши данные в каком-либо хранилище, таком как база данных (mysql, mongodb) и т. д., или даже в файловой системе. Но для этого вам нужен сервер, который поможет пройти через него всем вашим запросам и управлять кодом контракта. HTML5 Localstorage здесь не поможет.

Таким образом, ваш поток запросов на выполнение будет выглядеть следующим образом:

Запрос пользователя/браузера=>Сервер=>abi data(контракт) из db=>ответ, полученный браузером, выполняющим код контракта.