Где я должен хранить данные GPS на Ethereum?

Где я должен хранить GPS (или другие часто меняющиеся данные, доступные для поиска по контенту в Ethereum)? Блокчейн — не лучшее место для такого рода данных, потому что это дорого, но рой не доступен для поиска (насколько я знаю). Итак, если я хочу написать сервис, подобный Uber, на Ethereum, где мне нужно найти ближайшие точки почти в реальном времени, какой вариант хранения будет лучшим?

Ответы (3)

Хм... вам следует серьезно изучить Ethereum, прежде чем предлагать это. because it is expensiveне начинает описывать, насколько дорого и медленно это будет, если вы запишете все свои данные GPS в Ethereum.

Вот простая строка из 1 данных о местоположении GPS$GPGGA,053855.33,3756.9296,N,12737.8335,E,3,08,0.0,0.0,M,0.0,M,0.0,0000*74

Давайте создадим простой контракт для хранения этого: https://ethfiddle.com/rM9HRNhsF8 .

введите описание изображения здесь

Таким образом, хранение этой единственной строки стоит примерно 0,021 доллара США. И вы хотели делать это часто для тысяч пользователей....?

введите описание изображения здесь

Ненавижу быть парнем, который говорит вам «нет», но то, что вам действительно нужно, — это сайдчейн для конкретного приложения, работающий на Ethereum, а не запускающий ваше DApp на самом Ethereum.

Изменится ли это, когда ETH перейдет на casper?

Скорее всего, вы захотите использовать журналы. Затраты на хранение информации журнала намного дешевле.

Тай. Журнал лучше, чем блокчейн, но подходит ли он для быстро меняющихся данных? Например, 1000 пользователей, чьи GPS-координаты меняются каждую минуту. Если бы все изменения сохранялись, журнал был бы очень большим через несколько недель или месяцев.
Я чувствую, что использование блокчейна для хранения таких огромных объемов данных на самом деле не имеет смысла. Стоимость будет непомерно высокой! Кроме того, блокчейн на самом деле не предназначен для использования в качестве базы данных. Следовательно, может быть лучше использовать IPFS/Swarm для хранения данных и добавить хэш IPFS в смарт-контракт в качестве хранителя записей. Вот отличное руководство github.com/kggp1995/IPFS-Ethereum-Storage , которое поможет вам понять, как использовать IPFS для усиления мощности блокчейна для хранения.

С той небольшой информацией, что у меня есть, я бы сказал, что лучшим местом для хранения таких данных будет офчейн. Зачем вам нужно хранить каждое чтение для каждого пользователя в блокчейне?

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

Возможно, вы могли бы воздержаться от хранения каждого чтения в сети. Как насчет того, чтобы просто хранить, скажем, одно чтение в час в сети и использовать «обычный db» для хранения каждого чтения.

В сценарии Uber вы можете хранить координаты посадки и высадки в сети, а затем остальные показания вне сети.