ИМХО, каждая конкретная функциональность узла (возможно, даже каждый Тип сообщения), Должны иметь свой собственный бит в области услуг.
Я говорю о 64-битном поле, которое в настоящее время всегда устанавливается в 1.
Используя "версия" поданный для указания, поддерживает ли узел таких вещей, как "getheaders", "пинг", "mempool", "отклонять" или поседения фильтры - это ошибка.
В настоящее время вы в основном получаете на выбор между версией 6000x и 7000x, но реальность никогда не просто.
Например: узел я использую не поддерживает фильтры цветения (вероятно, никогда не будет), но он поддерживает такие вещи, как "getheaders" или "пинг",
И я хочу, чтобы мой узел мог быть честным о том, какие команды он будет отвечать или действовать на, и которые он не будет, но с текущим протоколом это просто невозможно быть честным об этом.
Все, что я могу вам сказать, версия 60002, 70001 или 70002 - и ни один из них не будет на самом деле правильно.
Моя точка зрения: если люди, разрабатывающие ядро может получить преимущество области услуг (которые не должны быть хлопот), я считаю, что сам протокол (и, таким образом, сеть в целом) выиграли бы от него.
РЕДАКТИРОВАТЬ:
Кроме того, я хотел бы отметить, что поле службы (в отличие от версии, поданной) отправляется вместе с IP внутри сообщения адр.
Так, например, если у вас есть клиент СВП, то вы можете просто игнорировать все узлы, которые не будут служить фильтрации цветения для вас и никогда не подключаться к ним.