【问题标题】:How to use an OR condition with the Tendermint websocket /subscribe method?如何在 Tendermint websocket /subscribe 方法中使用 OR 条件?
【发布时间】:2021-04-18 21:32:53
【问题描述】:

在 Tendermint websocket /subscribe 方法的查询中实现 OR 条件的最佳方法是什么? https://docs.tendermint.com/master/rpc/#/Websocket/subscribe

具体想查询message.sender='${address}' OR transfer.recipient='${address}'。 我现在的解决方案是使用相同的 jsonrpc id 执行 2 个/subscribe 请求,但这很丑陋、浪费,而且我必须过滤掉触发两次的事件。

如果我有ANDNOT 然后a OR b = NOT((NOT a) AND (NOT b)),但似乎没有实现NOThttps://godoc.org/github.com/tendermint/tendermint/libs/pubsub/query#Operator

谢谢!

【问题讨论】:

  • tm-core 团队告诉我,他的功能似乎是一个外部贡献者可以相对轻松地实现的功能。他们说这似乎也是不需要大量开销来审查工作的问题类型(这意味着它可以快速合并)。您介意在 [tm repo][1] 上提出问题吗?也许您可以考虑您的团队是否有资源将其作为外部贡献者来实施,以查看是否很快发生?否则,它可能会作为 Tendermint 路线图中的功能请求进行分类。 [1]:github.com/tendermint/tendermint

标签: tendermint cosmos-sdk


【解决方案1】:

上次我在 Tendermint 0.33 上尝试过这个,布尔条件在 /subscribe 中不起作用

【讨论】:

    【解决方案2】:

    目前不支持逻辑OR加入条件。

    查询语言现在非常简单。目前唯一实现连接单独条件的逻辑运算符是AND,根据PEG

    例如:tm.event = 'Tx' AND tx.hash = 'XYZ' AND tx.height = 5

    【讨论】:

      【解决方案3】:

      Tendermint Core 的 Bez 已同意承担此责任!如果您想关注或贡献,这里是the issue。他说在 p2p 反应器重构之后他将能够专注于它。

      【讨论】:

        猜你喜欢
        • 2021-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-18
        • 1970-01-01
        • 2012-06-04
        • 1970-01-01
        • 2013-08-04
        相关资源
        最近更新 更多