massa icon indicating copy to clipboard operation
massa copied to clipboard

jsonRPC get_addresses big response

Open hicaru opened this issue 2 years ago • 8 comments

Redundant information in the response.

Separate get_addresses to some different methods, and add pagination like:

The main problem, get_addresses returns too much information, if we will request in batch mode, the node should respond too many unusable information, which also load network stack of server.

example:

{
    "address": "A12ip1LnkwAPc68muCTkcaPMysCZpTuC1H8s4jUpW9jjaF9daEex",
    "block_draws": [
        {
            "period": 19,
            "thread": 16
        },
        {
            "period": 17,
            "thread": 8
        },
        {
            "period": 17,
            "thread": 27
        },
        {
            "period": 14,
            "thread": 22
        },
        {
            "period": 24,
            "thread": 0
        },
        {
            "period": 17,
            "thread": 31
        },
        {
            "period": 19,
            "thread": 31
        },
        {
            "period": 15,
            "thread": 9
        },
        {
            "period": 23,
            "thread": 18
        },
        {
            "period": 18,
            "thread": 7
        },
        {
            "period": 22,
            "thread": 6
        }
    ],
    "blocks_created": [
        "2WyCUMRNS51CAMJc9SSjy5zd3sV5BbDJhbpzXagLBdaDdQuEws",
        "XjXfqnNeTdcQmReSrJP99fPx3Sn8n1MyfkLN4cGfKE6hBLWoq",
        "2kLrxahe97SWHuLzEqw7Rm7EXq9UE46TvtrmtgFkAocLYDFw6d",
        "YSXrj9EqZUVSYfZE64DYE2NGWVwudCNFpqL3VzCXK1Lsq8nKN",
        "rKcCdcHCivLDzixkHhcTCyrTxUHDV9zh5twkgLh634rXeGBP",
        "9nD6VQWPdhVcwTQ5RWwd83tPj1J53s1E4R5QkkZWpdka4nds3",
        "2DMac7NsszyqSKMMFwGnbQxCcmStyuXhJ6X6RLUnwhUVEBpu4F",
        "2Er1tVFdkPY52U7XHcxXvjL27XDwSo2yXFAxwyNedH4gJLCKwg",
        "RBkvPuhZqy7virrYAwrjQWCZbdvoub2VHvj57JzPTen9LN7Pm",
        "cRZhuieZhp7K7XGh9khzfyU8Ceq1cg3QDutBW5Kfr9gMV1LAv",
        "2AZG5GPjb72jTXkLQvoVXiWk1xA8pgwYcLFe6ktuoUiMYitEvB",
        "2WcqJDHkHSwVtwfbnW4fMeFGCPKXZyvv7uDrX4rTjFCDwcKjb1"
    ],
    "candidate_balance_info": null,
    "candidate_datastore_keys": [],
    "endorsement_draws": [
        {
            "index": 8,
            "slot": {
                "period": 15,
                "thread": 6
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 18,
                "thread": 11
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 19,
                "thread": 29
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 24,
                "thread": 16
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 16,
                "thread": 0
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 23,
                "thread": 14
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 19,
                "thread": 10
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 15,
                "thread": 19
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 23,
                "thread": 28
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 15,
                "thread": 14
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 21,
                "thread": 9
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 17,
                "thread": 2
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 17,
                "thread": 2
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 20,
                "thread": 22
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 20,
                "thread": 27
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 17,
                "thread": 10
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 19,
                "thread": 7
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 22,
                "thread": 21
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 18,
                "thread": 1
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 17,
                "thread": 3
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 17,
                "thread": 5
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 21,
                "thread": 7
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 23,
                "thread": 11
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 24,
                "thread": 8
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 23,
                "thread": 19
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 17,
                "thread": 20
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 21,
                "thread": 27
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 23,
                "thread": 15
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 19,
                "thread": 29
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 18,
                "thread": 8
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 21,
                "thread": 19
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 16,
                "thread": 10
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 21,
                "thread": 27
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 16,
                "thread": 22
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 19,
                "thread": 26
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 21,
                "thread": 16
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 15,
                "thread": 10
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 17,
                "thread": 11
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 18,
                "thread": 0
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 14,
                "thread": 19
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 20,
                "thread": 4
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 22,
                "thread": 27
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 23,
                "thread": 6
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 23,
                "thread": 25
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 15,
                "thread": 29
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 21,
                "thread": 17
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 22,
                "thread": 20
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 15,
                "thread": 5
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 17,
                "thread": 6
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 22,
                "thread": 23
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 17,
                "thread": 11
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 22,
                "thread": 14
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 16,
                "thread": 0
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 16,
                "thread": 29
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 18,
                "thread": 1
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 15,
                "thread": 6
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 16,
                "thread": 24
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 19,
                "thread": 24
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 20,
                "thread": 6
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 22,
                "thread": 21
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 22,
                "thread": 27
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 14,
                "thread": 18
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 22,
                "thread": 10
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 17,
                "thread": 22
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 16,
                "thread": 14
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 17,
                "thread": 19
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 19,
                "thread": 8
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 21,
                "thread": 15
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 23,
                "thread": 25
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 15,
                "thread": 19
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 18,
                "thread": 2
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 19,
                "thread": 27
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 20,
                "thread": 30
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 19,
                "thread": 14
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 19,
                "thread": 29
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 20,
                "thread": 15
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 18,
                "thread": 20
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 22,
                "thread": 19
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 15,
                "thread": 28
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 20,
                "thread": 29
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 23,
                "thread": 10
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 15,
                "thread": 22
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 22,
                "thread": 3
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 18,
                "thread": 19
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 22,
                "thread": 11
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 17,
                "thread": 27
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 20,
                "thread": 4
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 15,
                "thread": 17
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 21,
                "thread": 0
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 17,
                "thread": 22
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 18,
                "thread": 28
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 20,
                "thread": 13
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 24,
                "thread": 11
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 19,
                "thread": 3
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 20,
                "thread": 21
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 18,
                "thread": 13
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 23,
                "thread": 10
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 21,
                "thread": 16
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 17,
                "thread": 24
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 24,
                "thread": 13
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 15,
                "thread": 17
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 15,
                "thread": 8
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 19,
                "thread": 1
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 18,
                "thread": 19
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 17,
                "thread": 3
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 19,
                "thread": 2
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 19,
                "thread": 13
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 22,
                "thread": 19
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 21,
                "thread": 23
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 20,
                "thread": 8
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 21,
                "thread": 4
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 17,
                "thread": 17
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 21,
                "thread": 8
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 14,
                "thread": 31
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 17,
                "thread": 3
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 21,
                "thread": 24
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 23,
                "thread": 12
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 21,
                "thread": 25
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 21,
                "thread": 8
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 15,
                "thread": 7
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 16,
                "thread": 27
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 18,
                "thread": 3
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 21,
                "thread": 14
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 19,
                "thread": 22
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 18,
                "thread": 13
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 14,
                "thread": 25
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 23,
                "thread": 7
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 18,
                "thread": 8
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 18,
                "thread": 29
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 19,
                "thread": 0
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 16,
                "thread": 16
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 17,
                "thread": 25
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 15,
                "thread": 1
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 17,
                "thread": 3
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 17,
                "thread": 20
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 17,
                "thread": 17
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 17,
                "thread": 31
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 18,
                "thread": 19
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 21,
                "thread": 25
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 21,
                "thread": 31
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 15,
                "thread": 16
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 21,
                "thread": 3
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 23,
                "thread": 20
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 17,
                "thread": 10
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 17,
                "thread": 23
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 22,
                "thread": 30
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 22,
                "thread": 3
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 20,
                "thread": 19
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 24,
                "thread": 8
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 15,
                "thread": 28
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 21,
                "thread": 6
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 15,
                "thread": 3
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 19,
                "thread": 7
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 20,
                "thread": 21
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 17,
                "thread": 24
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 19,
                "thread": 5
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 23,
                "thread": 2
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 16,
                "thread": 25
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 18,
                "thread": 21
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 15,
                "thread": 13
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 16,
                "thread": 12
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 16,
                "thread": 26
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 15,
                "thread": 13
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 23,
                "thread": 18
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 18,
                "thread": 16
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 16,
                "thread": 15
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 18,
                "thread": 10
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 22,
                "thread": 4
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 21,
                "thread": 6
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 14,
                "thread": 30
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 21,
                "thread": 16
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 19,
                "thread": 20
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 19,
                "thread": 25
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 18,
                "thread": 16
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 21,
                "thread": 9
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 16,
                "thread": 17
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 15,
                "thread": 30
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 19,
                "thread": 22
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 15,
                "thread": 1
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 17,
                "thread": 0
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 21,
                "thread": 15
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 23,
                "thread": 14
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 23,
                "thread": 3
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 19,
                "thread": 30
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 20,
                "thread": 17
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 23,
                "thread": 6
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 20,
                "thread": 25
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 20,
                "thread": 14
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 19,
                "thread": 30
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 20,
                "thread": 27
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 22,
                "thread": 14
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 15,
                "thread": 28
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 21,
                "thread": 0
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 22,
                "thread": 29
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 19,
                "thread": 0
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 24,
                "thread": 12
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 20,
                "thread": 3
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 14,
                "thread": 17
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 22,
                "thread": 1
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 16,
                "thread": 8
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 19,
                "thread": 1
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 16,
                "thread": 9
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 19,
                "thread": 12
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 20,
                "thread": 0
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 23,
                "thread": 16
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 23,
                "thread": 5
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 20,
                "thread": 10
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 17,
                "thread": 7
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 21,
                "thread": 4
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 17,
                "thread": 14
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 22,
                "thread": 19
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 14,
                "thread": 27
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 18,
                "thread": 14
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 24,
                "thread": 2
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 20,
                "thread": 16
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 16,
                "thread": 25
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 15,
                "thread": 29
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 22,
                "thread": 28
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 20,
                "thread": 7
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 24,
                "thread": 7
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 17,
                "thread": 2
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 22,
                "thread": 17
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 22,
                "thread": 28
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 16,
                "thread": 28
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 16,
                "thread": 14
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 21,
                "thread": 16
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 21,
                "thread": 2
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 24,
                "thread": 3
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 18,
                "thread": 21
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 22,
                "thread": 3
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 19,
                "thread": 6
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 21,
                "thread": 25
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 14,
                "thread": 27
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 24,
                "thread": 6
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 16,
                "thread": 30
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 16,
                "thread": 8
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 14,
                "thread": 26
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 17,
                "thread": 17
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 23,
                "thread": 2
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 16,
                "thread": 5
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 23,
                "thread": 5
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 23,
                "thread": 18
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 23,
                "thread": 15
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 18,
                "thread": 9
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 22,
                "thread": 29
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 23,
                "thread": 18
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 24,
                "thread": 8
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 21,
                "thread": 24
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 16,
                "thread": 17
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 21,
                "thread": 17
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 24,
                "thread": 5
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 19,
                "thread": 5
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 17,
                "thread": 8
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 21,
                "thread": 3
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 21,
                "thread": 18
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 24,
                "thread": 12
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 16,
                "thread": 19
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 18,
                "thread": 4
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 15,
                "thread": 10
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 23,
                "thread": 7
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 16,
                "thread": 20
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 17,
                "thread": 20
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 20,
                "thread": 31
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 24,
                "thread": 9
            }
        },
        {
            "index": 8,
            "slot": {
                "period": 15,
                "thread": 5
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 14,
                "thread": 27
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 16,
                "thread": 27
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 16,
                "thread": 28
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 21,
                "thread": 27
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 16,
                "thread": 3
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 22,
                "thread": 5
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 17,
                "thread": 30
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 22,
                "thread": 20
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 22,
                "thread": 30
            }
        },
        {
            "index": 2,
            "slot": {
                "period": 22,
                "thread": 10
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 16,
                "thread": 11
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 16,
                "thread": 15
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 17,
                "thread": 18
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 23,
                "thread": 21
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 16,
                "thread": 15
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 17,
                "thread": 14
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 24,
                "thread": 8
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 19,
                "thread": 17
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 15,
                "thread": 11
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 22,
                "thread": 21
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 18,
                "thread": 15
            }
        },
        {
            "index": 5,
            "slot": {
                "period": 18,
                "thread": 4
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 17,
                "thread": 25
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 15,
                "thread": 16
            }
        },
        {
            "index": 7,
            "slot": {
                "period": 22,
                "thread": 5
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 23,
                "thread": 30
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 16,
                "thread": 23
            }
        },
        {
            "index": 0,
            "slot": {
                "period": 17,
                "thread": 6
            }
        },
        {
            "index": 4,
            "slot": {
                "period": 15,
                "thread": 4
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 18,
                "thread": 4
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 16,
                "thread": 2
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 19,
                "thread": 1
            }
        },
        {
            "index": 1,
            "slot": {
                "period": 21,
                "thread": 19
            }
        },
        {
            "index": 6,
            "slot": {
                "period": 15,
                "thread": 5
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 17,
                "thread": 16
            }
        },
        {
            "index": 3,
            "slot": {
                "period": 19,
                "thread": 22
            }
        }
    ],
    "final_balance_info": null,
    "final_datastore_keys": [],
    "involved_in_endorsements": [
        "2nPBMeodbWve4NhwwgLvGfbAfnkZ9TcumPxVyBD5MeLYHqbhC5",
        "BuWTEsj4cQ8P2xtCqU8Y4zghhpjH1LiCH1brbVEr1TSEJXHxk",
        "cvsJoxxGsXXwF7cdzqPcNbmXT7XQnCEX9rNcisGqaN2vEqfc7",
        "2s2ZsUEFt55jdvWC8vnmYFWHqKvfvpbW6hSXpybGoc4RDdaeZD",
        "5i5tm4jpuGbQSaHFfokeBnJawk9Wm2gGe69KrAvFdFwFHyCjt",
        "2oXjECgvXXHEBcDZ7iFthBKiPC6m9L8GKh3rvawadLWa68iQxc",
        "2N74y9n15fZgTzMzERqUGRCYWhdLQAAfBYNNxKfJiNS6KRaD4E",
        "26icE6nAVkcT8yfzZ7NzEckYa2DXay1Lf83YTGPVr9H3TtdZjz",
        "Qn4JJi9o345ZNoiShNGXfMNBVUTXT5JGsgT1xKVMdJvq5vSL8",
        "2GjmSETFkisJuGiEvq8BtiTxXwiNftp49AMTcSrj2iHvLJSf5E",
        "2PpyvUvFwR4GFGgLiZ4WzMrfS6T7QUKLDYq5MNGnWLYErLGZvV",
        "CEaJHMsDEu3EVxgbxeLxeVDxtKtzx7MRzFby714B8oBUyj9an",
        "2XzBNoNHP4fAvDrjxtfGi4JtNEKBXHR6T8zb9VX627sEtGZr1X",
        "HdCUsRMSjbZRGS169FwCGCTjejyKX37XripA2FwnApVjEmVjF",
        "4XpqoF7bW3c4HuayHhg7h2776U5jfkowbpPMC7QGnjU1K8hEa",
        "ySqTT6boZNYGsgYMishki9mhqgG7sa8AAfXvBFeX6kjGXDhno",
        "2CGnbjdnrm7BNJW7kthAnwMfAgetM7WCwtfYFsb1jke2qkW5gD",
        "2g4yTRquyuxtZtWEwuFZAEEEnF343MF9evvQKmcF6yL2BmYcNi",
        "2uNhpb5ds81JgU88gaqw2i78FNm3HC7fjNRZLqDmqppqhYxV2Z",
        "2HGLYW3CUT1BUAJFQ1U2hmWrS5p2ior3wiLPiLzvDGjdYHDsQW",
        "2kmro2DjdmgtjS35rd2Uy9kcFWi7Kc7N5qeaHzNVDjHNf2hnrx"
    ],
    "involved_in_operations": [
        "WBvQvZiVduvG7RpqK9ei8DFBqYKEUpRLpjonnYPVgoR6x7bps",
        "QYAZKBjDoza3H1PuitxEMttkKTXcibSy4AKY8Qmf4Zh8syAah",
        "2cVAfxLMyPS7RdN9GNiJxisLiei4srTtAspjNwjcNAPEUDykYk",
        "2oCqomPuuxJms9TZjgoiYkY3HSCFoajXnVAyfSKXBFX1sPSvSB"
    ],
    "ledger_info": {
        "candidate_ledger_info": {
            "balance": "9000000104.549999997"
        },
        "final_ledger_info": {
            "balance": "9000000081.569999997"
        },
        "locked_balance": "0"
    },
    "production_stats": [
        {
            "cycle": 0,
            "is_final": false,
            "nok_count": 0,
            "ok_count": 334
        }
    ],
    "rolls": {
        "active_rolls": 1000,
        "candidate_rolls": 1000,
        "final_rolls": 1000
    },
    "thread": 28
}

hicaru avatar Sep 08 '22 10:09 hicaru

Thanks for the feedback, I agree that we should split things. Let's study how.

The main difficulty is that having a single endpoint ensures that all this data is synchronous (from the same point in time). If we split and have multiple calls, there is no guarantee that the various results come from the same point in time (eg. a transaction could have been validated between calls and yield inconsistent results)

damip avatar Sep 08 '22 12:09 damip

Thanks for the feedback, I agree that we should split things. Let's study how.

The main difficulty is that having a single endpoint ensures that all this data is synchronous (from the same point in time). If we split and have multiple calls, there is no guarantee that the various results come from the same point in time (eg. a transaction could have been validated between calls and yield inconsistent results)

If we separate requests we can use batch methods, for sync all response.

hicaru avatar Sep 08 '22 12:09 hicaru

Thanks for the feedback, I agree that we should split things. Let's study how.

The main difficulty is that having a single endpoint ensures that all this data is synchronous (from the same point in time). If we split and have multiple calls, there is no guarantee that the various results come from the same point in time (eg. a transaction could have been validated between calls and yield inconsistent results)

i suggest make a method get_balance:

request body:

{
  "id": 0,
  "jsonrpc": "2.0",
  "method": "get_balance",
  "params":["A111111111111111111111Awmv8x"]
}

This is body of jsonRPC, requesting balance of A111111111111111111111Awmv8x address, if client want to get more then one address it should be batch request.

[
  {
    "id": 0,
    "jsonrpc": "2.0",
    "method": "get_balance",
    "params":["A111111111111111111111Awmv8x"]
  },
  {
    "id": 0,
    "jsonrpc": "2.0",
    "method": "get_balance",
    "params":["A11111111111111111111116iowaD"]
  }
]

Response by jsonRPC standards:

single request

  {
    "candidate": "10000",
    "final": "2000",
    "locked": "0"
  }

batch

[
  {
    "candidate": "10000",
    "final": "2000",
    "locked": "0"
  },
  {
    "candidate": "222",
    "final": "33",
    "locked": "0"
  }
]

hicaru avatar Sep 08 '22 12:09 hicaru

@hicaru Is call batching supported by standard JSON-RPC ?

@aoudiamoncef can you also check ?

damip avatar Sep 08 '22 15:09 damip

https://www.jsonrpc.org/specification#batch

hicaru avatar Sep 08 '22 16:09 hicaru

Hi,

I tried to find batching support on our current JsonRPC library without success.

As we are planning to migrate to JsonRPSEE which have support have for batching calls. It'll be available built in.

See https://github.com/paritytech/jsonrpsee/blob/41b8a2c9de6d674a1ea218e3cc2821d43b98059a/tests/tests/integration_tests.rs#L664

aoudiamoncef avatar Sep 08 '22 17:09 aoudiamoncef

Hi,

I tried to find batching support on our current JsonRPC library without success.

As we are planning to migrate to JsonRPSEE which have support have for batching calls. It'll be available built in.

See https://github.com/paritytech/jsonrpsee/blob/41b8a2c9de6d674a1ea218e3cc2821d43b98059a/tests/tests/integration_tests.rs#L664

Nice ! then it's one more thing in the list of TODOs when transitioning to the new lib

damip avatar Sep 09 '22 06:09 damip

Thanks guys

hicaru avatar Sep 16 '22 08:09 hicaru

I see the migration to jsonRPSEE is done now. If I get it right, the good way to solve this issue would be to split the big get_addresses API (removing it ?) into an API get_address that accepts batch requests, this way people don't have to get all the data to only use a little part of it but can just ask for the pieces they want in batch ?

Please confirm or make a clear explanation of what is the best to solve this issue, and I'll be happy to assign myself to it :-)

litchipi avatar Mar 06 '23 09:03 litchipi

This is blocked while the API is refactored

AurelienFT avatar Mar 06 '23 10:03 AurelienFT

This is now possible using queryState I'm closing this.

AurelienFT avatar Mar 28 '24 13:03 AurelienFT