【问题标题】:How to get historical events with the Tendermint websocket via /subscribe method?如何通过 /subscribe 方法使用 Tendermint websocket 获取历史事件?
【发布时间】:2021-05-24 05:11:21
【问题描述】:

我正在使用以下代码订阅 Tendermint 的事件(如新交易);

query := "tm.event='Tx'"
txs, err := client.Subscribe(ctx, "some-consumer", query)

或从终端作为;

wscat --connect ws://0.0.0.0:26657/websocket
> { "jsonrpc": "2.0", "method": "subscribe", "params": ["tm.event='Tx'"], "id": 1 }

我正在获取事件,但我如何获取历史事件,例如从特定区块开始?

【问题讨论】:

    标签: tendermint cosmos-sdk


    【解决方案1】:

    我认为你应该使用github.com/tendermint/tendermint/rpc/client/http 中的HTTP。然后您可以提出Block(context, height)Tx(context, hash, prove) 等请求!

    【讨论】:

    • 谢谢,我一直在寻找基于推送的解决方案,而不是像定期获取阻塞那样基于拉取的解决方案。如果可能,使用 web socket 或 gRPC
    • 我认为您需要使用 github.com/cosmos/cosmos-sdk/x/bank/types 然后您可以通过 grpcurl 或通过 Go 以编程方式使用 grpc。这是文档中的一个示例:docs.cosmos.network/master/run-node/… 这是 protobuf 文档:docs.cosmos.network/master/core/proto-docs.html
    • 如果要获取历史数据,那我不知道如何通过websocket获取。我不认为这是可以做到的。
    猜你喜欢
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 2014-03-13
    相关资源
    最近更新 更多