Мини-документы Ethereum

Я пытаюсь найти лучший способ подойти к проблеме.

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

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

Есть ли у кого-нибудь предложения о том, как я могу это решить? Для разработки я использую node.js и web3.js.

Ответы (1)

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

  • Храните документы где-то за пределами блокчейна вместе с их хэшированным значением (sha3 или что-то в этом роде).
  • Сохраните хеш-значения в смарт-контракте вместе со значением эфира и адресом владельца.
  • Разрешить покупку документов (их хешей) внутри контракта. Кто владеет хешем, тот владеет документом
  • При создании нового документа добавьте новую ссылку на него в смарт-контракте
Отлично спасибо! Я планирую хранить документы и хэш в mongo db и определенно могу выполнить пункт № 2. Не могли бы вы подробнее рассказать о пунктах 3 и 4 ... я не уверен, что понимаю это.
Вы знаете, какой хэш из какого реального документа (он находится в вашем mongodb). Поэтому, если кто-то хочет купить документ, он вызывает функцию в контракте, которая выглядит примерно так function buy(string hash) payable {...: если предоставленного им количества эфира достаточно, он помечается как владелец хэша, и ваш бэкенд может проверить, кто владеет хэшем, и распространить документ среди владелец в некотором роде