7 "github.com/tendermint/abci/server"
8 "github.com/tendermint/abci/types"
9 cmn "github.com/tendermint/tmlibs/common"
10 "github.com/tendermint/tmlibs/log"
15 addrPtr := flag.String("addr", "tcp://0.0.0.0:46658", "Listen address")
16 abciPtr := flag.String("abci", "socket", "socket | grpc")
19 logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout))
22 srv, err := server.NewServer(*addrPtr, *abciPtr, NewChainAwareApplication())
24 logger.Error(err.Error())
27 srv.SetLogger(logger.With("module", "abci-server"))
28 if _, err := srv.Start(); err != nil {
29 logger.Error(err.Error())
34 cmn.TrapSignal(func() {
41 type ChainAwareApplication struct {
48 func NewChainAwareApplication() *ChainAwareApplication {
49 return &ChainAwareApplication{}
52 func (app *ChainAwareApplication) Query(reqQuery types.RequestQuery) (resQuery types.ResponseQuery) {
53 return types.ResponseQuery{
54 Value: []byte(cmn.Fmt("%d,%d", app.beginCount, app.endCount)),
58 func (app *ChainAwareApplication) BeginBlock(reqBeginBlock types.RequestBeginBlock) {
62 func (app *ChainAwareApplication) EndBlock(height uint64) (resEndBlock types.ResponseEndBlock) {