Что мешает мне использовать блокчейн Эфириума в качестве хранилища данных?

Насколько я понимаю, смарт-контракты на данный момент бессмертны по умолчанию. Означает ли это, что я могу создать контракт, который содержит закодированную форму детских фотографий и сохранить ее навсегда? Если нет, то что мешает?

Ответы (4)

Ничто не мешает. 5 месяцев назад я продемонстрировал хранение аудио (очень сильно сжатого mp3-файла) в блокчейне. И сегодня он все еще там и реплицируется каждым полным узлом! Всего 3,5кБ и эфира пришлось заплатить совсем немного, но все равно круто!

Проверьте Самая причудливая вещь на свете - у блокчейна теперь есть голос! тред на Reddit.

Чтобы этот ответ прошел испытание временем (если что-то случится с приведенной выше ссылкой), вот соответствующая команда для запуска в вашем терминале:

geth --exec "eth.getTransaction('0xbb8ee9866ee67277986b6f40775469c7a674810ce99dce3caff0d1117c8dcdac').input" console | xxd -p -r | mpg321 -

Более разумный способ использует хранилище только как хэш, как говорили другие ответы, используйте StorJ, IPFS и т. д., потому что тогда вы можете хранить больше в блокчейне и ссылаться на него.

Это замечательно! Мне потребовалось некоторое время, чтобы получить данные и воспроизвести их, похоже, что geth не думал, что адрес существует, xxd не был установлен, mpg321 не было в официальных репозиториях, поэтому мне пришлось найти его на сайте обозревателя блокчейнов. , установите xxd, а затем используйте ffplay, и все это того стоило XD.
шелваку: Приятно слышать! Рад, что вам было немного весело с ним, я знаю, что я сделал. :) У меня был первый функциональный контракт на блокчейне Ethereum.
Ничто не мешает этому... кроме чрезвычайно высокой стоимости по сравнению с любым другим решением. Пожалуйста, укажите в своем ответе, что люди на самом деле не должны этого делать — как уже упоминалось, IPFS — это гораздо лучший способ хранить некоторые данные навсегда, не раздувая блокчейн Ethereum. И на самом деле, если люди будут ждать завершения таких проектов, как Swarm, они смогут заплатить меньше, чем стоимость метода хранения в блокчейне, в контракт, который обеспечит то же самое.
Сколько вы платите?
@MatíasInsaurralde Я слышал 0,25 доллара на Reddit.

Основными вещами, «останавливающими вас», будут:

  1. Блокировать лимиты газа, за которые в настоящее время «голосуют» майнеры
  2. Количество газа, которое вам нужно будет заплатить за хранение ваших данных

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

Транзакция, отправляющая 46 КБ сжатого текста, потребляла 1 720 210 газа и стоила 0,0860105 эфира (0,074 доллара США) в конце октября 2015 года . С тех пор цена эфира будет продолжать расти/падать, но, не обращая на это внимания, давайте посчитаем:

Хранение изображения размером 600 КБ потребует в 13 раз больше газа для хранения, поэтому будет израсходовано 22 362 821 газа по цене 0,96 доллара США (при ценах с октября 2015 года). Текущий лимит газа в блоке составляет 3 141 592 газа, что намного меньше необходимого количества для обработки изображения за 1 транзакцию.

Таким образом, можно хранить изображения в блокчейне Ethereum, но гораздо более дешевым решением будет хранить ссылку на это изображение (например, URL-адрес) для постоянного хранения там, где хранится изображение, при условии, что это не так полезно, как постоянное хранилище. В будущем IPFS, скорее всего, сможет хранить данные неограниченное время, как только они разработают систему стимулов для хранения данных. Тогда остается только сохранить хэш IPFS, указывающий на изображение.

Это технически возможно, некоторые приложения делают то же самое.

  1. http://storj.io
  2. http://filecoin.io
  3. Масштабирование хранилищ данных на основе блокчейна

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