How to correlate between API output and the ci output
The leader schedule coming from the API is coming as offset
solana@:~$ curl https://api.mainnet-beta.solana.com -X POST -H "Content-Type: application/json" -d '
> {
> "id":1,
> "jsonrpc":"2.0",
> "method":"getLeaderSchedule",
> "params":[
> {
> "identity":"AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb"
> }
> ]
> }
> '
The output
{"jsonrpc":"2.0","result":{"AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb":[48360,48361,48362,48363,49260,49261,49262,49263,75072,75073,75074,75075,112200,112201,112202,112203,114572,114573,114574,114575,140984,140985,140986,140987,158720,158721,158722,158723,166276,166277,166278,166279,185124,185125,185126,185127,226220,226221,226222,226223,249656,249657,249658,249659,252316,252317,252318,252319,258804,258805,258806,258807,259116,259117,259118,259119,259336,259337,259338,259339,277108,277109,277110,277111,289656,289657,289658,289659,313972,313973,313974,313975,327088,327089,327090,327091,377792,377793,377794,377795,424116,424117,424118,424119]},"id":1}
Here is th eleader schedule directly from the cli, as you can see the output is real slot number not the offset
solana@:~$ solana leader-schedule | grep "AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb"
132240360 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132240361 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132240362 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132240363 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132241260 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132241261 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132241262 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132241263 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132267072 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132267073 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132267074 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132267075 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132304200 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132304201 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132304202 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132304203 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132306572 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132306573 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132306574 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132306575 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132332984 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132332985 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132332986 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132332987 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132350720 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132350721 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132350722 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132350723 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132358276 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132358277 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132358278 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132358279 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132377124 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132377125 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132377126 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132377127 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132418220 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
132418221 AAHSdsnRREfdQNzDGRxai8CLXh9EPCoRdwULPqBYd9fb
.....
.......
How to use API to give the solana leader schedule as it shown using the solana cli
It's a bit convoluted, but to do the same thing as the CLI, you'll need to get the current epoch using
getEpochInfo
https://docs.solana.com/developing/clients/jsonrpc-api#getepochinfo, and then the epoch schedule usinggetEpochSchedule
https://docs.solana.com/developing/clients/jsonrpc-api#getepochschedule.With all of these, you can get the first slot in the epoch:
With that, you can add
firstSlotInEpoch
to each of the values in the leader schedule.The full CLI implementation doing this can be found at https://github.com/solana-labs/solana/blob/e1866aacad667073a6fcc3231f2494ef39363928/cli/src/cluster_query.rs#L998-L1044