proc decode(_: type Message; buf: seq[byte]): Result[Message, string] {. ...raises: [].}
proc decode(_: type RPCMsg; buf: seq[byte]): Result[RPCMsg, string] {....raises: [].}
proc encode(msg: Message; anonymize: bool): seq[byte] {....raises: [], tags: [RootEffect], forbids: [].}
proc encode(msg: RPCMsg; anonymize: bool): seq[byte] {....raises: [], tags: [RootEffect], forbids: [].}