w3f / polkadot-spec

The Polkadot Protocol Specification
https://spec.polkadot.network
Creative Commons Attribution Share Alike 4.0 International
179 stars 70 forks source link

The section about light clients should be completely removed #660

Open tomaka opened 1 year ago

tomaka commented 1 year ago

It is not the role of the specification to define what a light client is. Anyone reading the spec can decide how they want to interact with the network, provided they meet the requirements found in the spec. In other words, if you don't want your node to store the storage of the blocks, then just write the code that doesn't store the storage of the blocks. There's no need for the specification to explain that you're allowed to not do so.

Furthermore, these paragraphs are completely off-topic:

The client MUST support the following RPC methods: rpc_methods, chainHead_unstable_follow, chainHead_unstable_unfollow, chainHead_unstable_unpin, chainHead_unstable_storage, chainHead_unstable_call chainHead_unstable_stopCall. transaction_unstable_submitAndWatch, and transaction_unstable_unwatch

The client MUST support the @substrate/connect connection extension protocol: ToApplicationError, ToApplicationChainReady, ToApplicationRpc, ToExtensionAddChain, ToExtensionAddWellKnownChain, ToExtensionRpc, ToExtensionRemoveChain.

This specification is specifically about the interaction between peer-to-peer nodes.

And when it comes to section 7.4 about networking messages, it should be moved to the section about the networking. These messages are just as important for full nodes as they are for light clients, given that full nodes have to implement the code that answers these messages.