package main import ( . "github.com/tendermint/go-common" "github.com/tendermint/go-merkle" "github.com/tendermint/go-wire" "github.com/tendermint/tmsp/server" "github.com/tendermint/tmsp/types" ) func main() { // Start the listener _, err := server.StartListener("tcp://127.0.0.1:8080", NewDummyApplication()) if err != nil { Exit(err.Error()) } // Wait forever TrapSignal(func() { // Cleanup }) } //-------------------------------------------------------------------------------- type DummyApplication struct { state merkle.Tree lastCommitState merkle.Tree } func NewDummyApplication() *DummyApplication { state := merkle.NewIAVLTree( wire.BasicCodec, wire.BasicCodec, 0, nil, ) return &DummyApplication{ state: state, lastCommitState: state, } } func (dapp *DummyApplication) Echo(message string) string { return message } func (dapp *DummyApplication) Info() []string { return []string{Fmt("size:%v", dapp.state.Size())} } func (dapp *DummyApplication) SetOption(key string, value string) types.RetCode { return 0 } func (dapp *DummyApplication) AppendTx(tx []byte) ([]types.Event, types.RetCode) { dapp.state.Set(tx, tx) return nil, 0 } func (dapp *DummyApplication) GetHash() ([]byte, types.RetCode) { hash := dapp.state.Hash() return hash, 0 } func (dapp *DummyApplication) Commit() types.RetCode { dapp.lastCommitState = dapp.state.Copy() return 0 } func (dapp *DummyApplication) Rollback() types.RetCode { dapp.state = dapp.lastCommitState.Copy() return 0 } func (dapp *DummyApplication) AddListener(key string) types.RetCode { return 0 } func (dapp *DummyApplication) RemListener(key string) types.RetCode { return 0 }