# State-tracker ## Blueprint [Github Link](https://github.com/bhakiyakalimuthu/state-tracker) ### Server * Server implementation acts as a proxy server to a destination server. * The gRPC Server is listening requests from the client and forward those request to destination server. Currently requests are forwarded to Osmosis public RPC endpoint [osmosis endpoint](https://docs.osmosis.zone/developing/network/public-endpoints.html#officialendpoints). > Replace osmosis endpoint to any other destination server, this should work. * Any clients can communicate with server via grpc protocol,one exmaple could be grpcurl [grpcurl](https://github.com/fullstorydev/grpcurl) ### client * Client is implemented as a state tracker machine which will query the proxy server for the latest block information. * **cosmos.base.tendermint.v1beta1.Service.GetLatestBlock** API is used to query the latest block information. * Client has a logic to extract and parse the latest block information. * Extracted datas are stored in the json file as mentioned in the below format. * Information for a duration of 5 blocks, for each block that passes datas are stored into a json file with following structure. ``` { "test_result": [ {"height": X, "hash" Y}, {"height": X+1, "hash" Z}, etc... ] } ```