Полл> Если разбирать этот тип сообщений будут сами ноды, то это заложен концептуальный вечный бег эксплоитов и апдейтов систем.
Уточни. Кто-то из нас друг друга недопонимает
Полл> Как будет обеспечиваться уникальность данного идентификатора?
Я вижу два основных подхода (могут использоваться одновременно):
— Использование связки «имя ноды» + «тип данных» + «уникальный идентификатор данных», которую использую сейчас. Тут имя ноды целиком на добросовестности ноды-источника, но подразумевается, что мы итак тянем данные не от кого попало, а от доверенной ноды. И система с использованием реверсной доменной структуры прекрасно и массово работает по всему миру в пространствах имён в Java-библиотеках (я, собственно, оттуда вид своих UUID и взял).
— Кому лениво заморачиваться или у кого нет выраженной ноды, могут использовать те же стандартные «настоящие» UUID:
UUID — ВикипедияПолл> Как должна поступать система, если встречаются два разных сообщения с одним идентификатором
То, которое будет получено первым, будет записано в базу. Второе с таким же ID будет игнорироваться, если система не учитывает дату модификации или будет перезаписано вторым, если его дата модификации будет свежее.
Полл> а в распределенной системе коллизии возможны всегда даже при отсутствии злого умысла?
При соглашении именований коллизий при отсутствии злого умысла быть не должно. При наличии злого умысла некорректная нода будет просто выброшена из списка источников данных.
Полл> Не понял, какой смысл это поле несет.
Чтобы понять, если UUID не содержит имя ноды, откуда пришло сообщение. Например, если потребуется запросить дополнительную информацию по объекту, чтобы знать, куда обращаться.
Полл> Кто помешает злоумышленнику подставить чужое имя?
Отсутствие злоумышленника в доверенной системе
Полл> Опять же не понял смысл этого поля.
Автор может писать с разных нод. В этом случае MD5(email) будет идентификатором автора, но не может служить идентификатором автора и ноды. Например, если нам потребуется запросить по автору с ноды дополнительную информацию.
Полл> По чьей версии времени?
Если речь о таймзоне, то она включена в формат даты. Если речь о расхождении часов — то по времени ноды первоисточника.
Полл> ЭЦП для сообщений планируется?
Да, есть такая мысль. Это заодно позволит в каких-то случаях работать и открыто, с недоверенными транзитными нодами. Но это дальняя перспектива.