Skip to content

PSP6 is extremely poor, technically speaking #41

@tomaka

Description

@tomaka

PSP6, introduced in #6, specified a list of JSON-RPC functions by simply copy-pasting the ones that are currently in use.

The problem is that nobody (at Parity or outside) has actually really ever worked on polishing these JSON-RPC functions. They were added at will, accepting every Substrate PR that adds or touches a function without really thinking about it.

The consequence is that these JSON-RPC functions have a lot of defects. Rather than copy-paste a list of defects, I'm going to link to the first section of this hackmd that I wrote a long time ago: https://hackmd.io/fvwtpwrVTg-fUScreohOsw
Of course some points regarding documentation do not apply because you did a great job documenting the format of the functions, but documenting the functions doesn't remove most of the core issues in them.

One of the major issues with these JSON-RPC functions is that they can't be properly implemented by a light client. If you build a tool on top of these functions, and connect to a light client, your tool will not work properly. Some tools just can't be built on top of light clients, but most of the time it's just because the tool needs to be able to handle some corner cases that don't happen when connected to full nodes.

Having this list of JSON-RPC functions as some sort of "standard" gives the impression that we're committed to these functions, but it is very much desirable to get rid of them in the future.
Some time ago I've started https://github.com/paritytech/json-rpc-interface-spec/, which has the objective of replacing these JSON-RPC functions with better ones.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions