Мой вопрос на самом деле состоит из трех частей (да, я знаю о предстоящей разработке шардинга):
Пожалуйста, отвечайте на них только в том случае, если вы являетесь продвинутым программистом. Спасибо.
Да, получение данных из блокчейна бесплатно. Вы можете либо самостоятельно синхронизировать полный узел (в настоящее время требуется ~ 50 ГБ, от нескольких часов до дня для синхронизации в зависимости от вашей системы/сети), синхронизировать легкий узел (макс. несколько ГБ и несколько минут для синхронизации) или использовать общедоступные узлы infuras (мгновенно, без необходимости синхронизации, но также доверчиво).
Конечно, вы должны получить сумму, необходимую для хранения в контракте, как можно меньше. Как правило, если вам не нужно обрабатывать/извлекать данные по цепочке, вам следует просто сохранить что-то вроде хэша IPFS и сохранить фактические данные в IPFS. Храните в сети только то, что необходимо . Это означает балансы, разрешения и т. д., но не такие вещи, как пользовательские аватары или комментарии.
Количество данных, которые вы можете хранить, не ограничено. Единственным тормозящим фактором является то, что это дорого. Создание 256-битного слова в хранилище стоит 20 тысяч газа, а его последующее обновление — 5 тысяч газа. При текущих ценах на газ это 4-5 центов и 1 цент. Игнорируя проскальзывание цены на газ и наличие всего 8 миллионов газа на блок, для выделения 1 Гб хранилища в цепочке это будет стоить примерно 500 000 долларов только для выделения, не включая стоимость 21 тыс. Тх и другие необходимые коды операций.
Чтобы добавить к существующему ответу.
- ...где в этом экономическая выгода?
Пара идей:
Вы помогаете обеспечить безопасность сети и, соответственно, вашего ETH. Запуская честный, полный (не майнинговый) узел, вы добавляете в пул узлов, на которых работает честная версия алгоритмов консенсуса. Ваш узел может проверять блоки и транзакции и предотвращать распространение нечестных. Чем надежнее сеть, тем безопаснее ваши инвестиции.
Вы можете запустить свой собственный кошелек. Нет необходимости полагаться на третью сторону, независимо от того, насколько они предположительно заслуживают доверия. Опять же, ваши средства в безопасности.
- ... и это может легко превратиться в ТБ данных в ближайшем будущем.
См . раздел Размер блокчейна Ethereum в ближайшее время не превысит 1 ТБ для описания существующих режимов обрезки и синхронизации. Это без учета шардинга. (Виталик: " Шардинг идет ")
- ... Я понимаю, что базовая база данных бэкэнда - leveldb... LEVELDB... 100GB?
Зависит от реализации клиента. Geth использует LevelDB. Parity использует RocksDB (да, это форк LevelDB). Вы можете написать реализацию, используя любую базу данных, которая вам нравится — спецификация Yellow Paper — поскольку это спецификация — не упоминает лежащую в основе базу данных.
Это не будет практичным хранилищем для IOT.
Возможно, не сейчас. Режимы обрезки и шардинга помогут. Как и закон Крайдера применительно к оборудованию IOT.