Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何判断一笔交易已经上链 #46

Open
chaunsin opened this issue Dec 29, 2021 · 3 comments
Open

如何判断一笔交易已经上链 #46

chaunsin opened this issue Dec 29, 2021 · 3 comments

Comments

@chaunsin
Copy link

SDK版本

v2.0.0

问题描述

我想通过TxId查询判断当前这一笔交易有没有上链,但QueryTxByID()没有返回相关状态值。看下代码,貌似是有实现的但是并没有暴露出来。
x1
QueryTx方法返回的是TxStatus结构体对象
x2
对应的枚举值
x3

不知道我的猜想是否正确,有没有什么方案?感谢!

@superlitian
Copy link
Contributor

你上述所说的 TracsactionStatus ,意思是当前这笔交易是否被打包到区块中。
如果要判断交易是否上链,与使用的共识有关系,共识机制可以看下这个文档:https://xuper.baidu.com/n/xuperdoc/design_documents/consensus.html#id3

举例:
XPoS 共识算法,三个区块之后是不可回滚的
此时要确认当前交易是否上链,需要做以下操作:

  1. QueryTxByID() , 返回值中包含 Blockid
  2. QueryBlockByID(),返回值的block 中 有 Height
  3. QueryBlockChainStatus(),此方法会返回链的最新状态,返回的Block中包含Height,与上面获取到的Height做比较
  4. 如果两个Height相减得到的绝对值大于3,说明该笔交易已上链且不会回滚。

@chaunsin
Copy link
Author

谢谢解答!后续有支持该接口的打算吗?

你上述所说的 TracsactionStatus ,意思是当前这笔交易是否被打包到区块中。 如果要判断交易是否上链,与使用的共识有关系,共识机制可以看下这个文档:https://xuper.baidu.com/n/xuperdoc/design_documents/consensus.html#id3

举例: XPoS 共识算法,三个区块之后是不可回滚的 此时要确认当前交易是否上链,需要做以下操作:

  1. QueryTxByID() , 返回值中包含 Blockid
  2. QueryBlockByID(),返回值的block 中 有 Height
  3. QueryBlockChainStatus(),此方法会返回链的最新状态,返回的Block中包含Height,与上面获取到的Height做比较
  4. 如果两个Height相减得到的绝对值大于3,说明该笔交易已上链且不会回滚。

你上述所说的 TracsactionStatus ,意思是当前这笔交易是否被打包到区块中。 如果要判断交易是否上链,与使用的共识有关系,共识机制可以看下这个文档:https://xuper.baidu.com/n/xuperdoc/design_documents/consensus.html#id3

举例: XPoS 共识算法,三个区块之后是不可回滚的 此时要确认当前交易是否上链,需要做以下操作:

  1. QueryTxByID() , 返回值中包含 Blockid
  2. QueryBlockByID(),返回值的block 中 有 Height
  3. QueryBlockChainStatus(),此方法会返回链的最新状态,返回的Block中包含Height,与上面获取到的Height做比较
  4. 如果两个Height相减得到的绝对值大于3,说明该笔交易已上链且不会回滚。

谢谢解答!未来有支持该功能的接口的打算么?

@superlitian
Copy link
Contributor

暂时还没有,你感兴趣的话也可以自己实现一下,然后可以提交pr

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants