How to understand abci?

why command

tendermint node --proxy_app=kvstore

can start kvstore app? I only see the code in abci->example->kvstore
further more,I want to run my own app to replace kvstore,how to do it exactly?

There a couple ways to do this, first you would have to start with what language you are writing your app in?

IF you are using go, then you can do the same thing that the cosmos-sdk is doing and have it be in process, you can find the code here: https://github.com/cosmos/cosmos-sdk/blob/master/server/start.go#L130

thanks,I am just confused that how tendermint can run with a proxy app,
I think it is cool if I can run my own app with tendermint.
I know a way that tendermint was build in own app,go-built-in
cosmos is next stage I want to figure out
yes I am using go .

If you just run tendermint node it will try to connect to your app over localhost:26658. So you can run your app in a separate process and listen on that port. You can also compile Tendermint in with your app like Marko mentioned. Tendermint comes with some built-in example apps like the kvstore mostly for testing and convenience.

See https://docs.tendermint.com/master/app-dev/getting-started.html for getting started and https://docs.tendermint.com/master/spec/abci/ for much more info.

1 Like