Где я должен хранить GPS (или другие часто меняющиеся данные, доступные для поиска по контенту в Ethereum)? Блокчейн — не лучшее место для такого рода данных, потому что это дорого, но рой не доступен для поиска (насколько я знаю). Итак, если я хочу написать сервис, подобный Uber, на Ethereum, где мне нужно найти ближайшие точки почти в реальном времени, какой вариант хранения будет лучшим?
Хм... вам следует серьезно изучить 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.
Скорее всего, вы захотите использовать журналы. Затраты на хранение информации журнала намного дешевле.
С той небольшой информацией, что у меня есть, я бы сказал, что лучшим местом для хранения таких данных будет офчейн. Зачем вам нужно хранить каждое чтение для каждого пользователя в блокчейне?
Вам нужно хранить все исторические данные? Возможно, вы могли бы просто хранить последнее чтение для каждого пользователя и регистрировать каждое чтение через события для более легкого доступа.
Возможно, вы могли бы воздержаться от хранения каждого чтения в сети. Как насчет того, чтобы просто хранить, скажем, одно чтение в час в сети и использовать «обычный db» для хранения каждого чтения.
В сценарии Uber вы можете хранить координаты посадки и высадки в сети, а затем остальные показания вне сети.
жезнаг