tendermint有监听机制吗

tendermint有像以太坊那样的事件监听机制吗,比如当一笔交易成功后,可以通过监听来获取到交易的信息

请先 登录 后评论

1 个回答

曹欢 - 区块链开发

可以的。

下图是官方kvStore中的event模块代码

attachments-2019-09-mW0A1ZAZ5d6ddd9c8e1b9.png订阅代码如下:

func main() {
cli := client.NewHTTP("http://localhost:26657", "/websocket")
err := cli.Start()
if err != nil {
fmt.Println(err)
return
}
defer cli.Stop()
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)
defer cancel()
query := "app.key='author'"
txs, err := cli.Subscribe(ctx, "test-client", query)
if err != nil {
fmt.Println("错误信息", err)
return
}
for tx := range txs {
fmt.Println("接收到消息:\n", tx)
}
}

发送两笔交易:

curl -s localhost:26657/broadcast_tx_commit?tx=\"author=ca1o1h1u1a1n\"

curl -s localhost:26657/broadcast_tx_commit?tx=\"author=caohuan\"

订接收到的消息:

attachments-2019-09-xWw6zbeT5d6ddf6d3c71c.png


循环发送多次也是可以的:

attachments-2019-09-WLFkcXWv5d6e130089945.png

监听到:

attachments-2019-09-B8cCTsDO5d6e0f843521f.png

请先 登录 后评论
  • 1 关注
  • 0 收藏,101 浏览
  • 洛浮云 提出于 2019-08-28 10:49

相似问题