Как я могу хранить большие файлы в блокчейне?

Я с трудом могу создавать транзакции размером более 100 КБ. Мне интересно, можно ли хранить огромные файлы (несколько МиБ или ГиБ) в блокчейне?

Если да, то как?

Ответы (1)

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

Хранение данных в транзакции стоит газа, а блоки имеют динамический лимит газа. Вам придется увеличить лимит газа, отправляя все больше и больше данных, чтобы заставить сеть адаптироваться. Но при каждой транзакции вы будете ограничены фиксированным количеством газа и, следовательно, фиксированным объемом данных. В феврале 2016 года лимит газа составлял около 3 миллионов, то есть блок был ограничен примерно 89 КБ данных. (см. Есть ли ограничение на размер транзакции? ):

ограничение размера транзакции в настоящее время составляет около 89 КБ (3 миллиона газа). Но читайте дальше.

Нет прямого или фиксированного ограничения ни на размер транзакций, ни на размер блока. Это сильная сторона сети Etherem, она действительно масштабируется.

Это не значит, что нет ограничений. В настоящее время существует лимит газа на блок, равный 3 141 592 газа, который можно потратить максимум на блок.

На момент написания статьи лимит газа составляет около 4712388 газа, что должно ограничивать данные примерно до 140 КБ. См. https://ethstats.net/

Вскоре мы ожидаем, что некоторые децентрализованные безопасные хранилища, такие как swarm или IPFS, будут легко использоваться. Посмотрите https://github.com/ethereum/go-ethereum/wiki/Swarm---distributed-preimage-archive , где вы также найдете список альтернатив в конце страницы.

ОП просит is it possible to store huge files, а вы говорите сохранить его где-нибудь еще? Ваш ответ на вопрос будет «Нет», если да, пожалуйста, подтвердите его фактами, источниками и т. д.
Что делать, если мне нужно, чтобы только один или бесплатный
Что, если я хочу разрешить доступ к файлу только одному или нескольким людям?
Зашифруйте файл таким образом, чтобы его могли расшифровать только авторизованные пользователи.