-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Verbose transactions are currently unsupported with verbose flag of blockchain.transaction.get #7342
Comments
No idea which server implementation this might be coming from.
I don't think it is ElectrumX.
No, the protocol does not really support optional features / feature negotiation.
With current protocol (1.4), you would need to
With protocol 1.5 (spesmilo/electrumx#90), you will be able to just use |
From my tests looks like the server lacking verbose support is Blockstream electrs. It can be reproduced by setting server to |
@SomberNight, I have tried implementing the approach you mentioned, that's what I've got:
Is that secure now? The only thing that concerns me is that it is fetching history for the whole address. Is that a current limitation in 1.4 protocol? But at least that exception is no longer here. Would you accept a PR changing gettransaction or adding new command to receive confirmations for a transaction in an SPV safe way? Something like mentioned here: #5660 (comment) |
Yes, something like that should work.
Yes, there is no neat way to do this with the current protocol. :/
I think we should wait for protocol 1.5 first. After that, yes, we could add a new method that takes a txid, and returns an SPV verified number of confirmations. |
Yes, that is correct, the Blockstream electrs fork does not support the |
Electrum version: 4.0.3 (exact commit)
In our APIs we provide a
get_transaction
RPC call, which works a bit different than usualgettransaction
commandelectrum/electrum/interface.py
Line 933 in 53d6eeb
We do the same, but with
verbose
parameter turned on.Here is how it is implemented in our API
It works perfectly in most cases and returns an additional field:
confirmations
in addition to usual transaction JSON output.But in some cases, more frequently on testnet, and especially often in our CI runs, we get the following error:
aiorpcx.jsonrpc.ProtocolError: (-32600, 'ill-formed response error object: verbose transactions are currently unsupported')
CI Run logs
The failing test
Note: the SDK being tested is just calling that
get_transaction
method on daemon directly, it's still electrumAre those servers with unsupported verbose transactions just running some old version of ElectrumX? Is there a way to filter them out from the list of servers to connect to, or is there a better way to get confirmations for an arbitrary transaction (not always wallet-related)?
The text was updated successfully, but these errors were encountered: