On Sun, Mar 24, 2019 at 09:29:10AM -0400, David A. Harding via bitcoin-dev wrote: > Why is this optional and only specified here for some message types > rather than being required by v2 and specified for all message types? Gregory Maxwell discussed this with me on IRC[1]. My summary of our conversation: Although the BIP can easily allocate short-ids to all existing messages, anyone who wants to add an additional protocol message later will need to coordinate their number allocation with all other developers working on protocol extensions. This includes experimental and private extensions. At best this would be annoying, and at worst it'd be another set of bikeshed problems we'd waste time arguing about. Allowing nodes to continue using arbitrary command names eliminates this coordination problem. Yet we can also gain the advantage of saving bandwidth by allowing mapping (with optional negotiation) of short-ids. Now that I understand the motivation, this part of the proposal makes sense to me. -Dave [1] http://www.erisian.com.au/bitcoin-core-dev/log-2019-03-24.html#l-159