Skip to content

Conversation

@SomberNight
Copy link
Member

@SomberNight SomberNight commented Oct 23, 2025

@f321x
Copy link
Member

f321x commented Oct 24, 2025

lgtm, just noticed that we don't seem to flush pending messages when disconnecting due to an ReplyAndDisconnect exception in SessionBase.handle_request(), but might be fixed independently of this PR.

@SomberNight
Copy link
Member Author

we don't seem to flush pending messages when disconnecting due to an ReplyAndDisconnect exception in SessionBase.handle_request()

see #322

@SomberNight SomberNight force-pushed the 202510_protocol_1_6 branch 2 times, most recently from 32b1c5c to b6d1d86 Compare October 31, 2025 14:51
@SomberNight SomberNight changed the title impl missing parts of protocol 1.6: "server.version", order mempool txs, headers list impl missing parts of protocol 1.6: order mempool txs, headers list Oct 31, 2025
SomberNight and others added 4 commits November 7, 2025 16:26
Note that this is a soft fork: the server can apply it even for past
protocol versions.

Previously, with the order being undefined, if an address had multiple
mempool transactions touching it, switching between different servers
could result in a change in address status simply as a result of these
servers ordering mempool txs differently. This would result in the client
re-requesting the whole history of the address.

-----

D/i | interface.[electrum.blockstream.info:60002] | <-- ('blockchain.scripthash.subscribe', ['660b44502503064f9d5feee48726287c0973e25bc531b4b8a072f57f143d5cd0']) {} (id: 12)
D/i | interface.[electrum.blockstream.info:60002] | --> 9da27f9df91e3f860212f65b736fa20a539ba6e3d509f6370367ee7f10a4d5b0 (id: 12)
D/i | interface.[electrum.blockstream.info:60002] | <-- ('blockchain.scripthash.get_history', ['660b44502503064f9d5feee48726287c0973e25bc531b4b8a072f57f143d5cd0']) {} (id: 13)
D/i | interface.[electrum.blockstream.info:60002] | --> [
{'fee': 200, 'height': 0, 'tx_hash': '3ee6d6e26291ce360127fe039b816470fce6eeea19b5c9d10829a1e4efc2d0c7'},
{'fee': 239, 'height': 0, 'tx_hash': '9e050f09b676b9b0ee26aa02ccee623fae585a85d6a5e24ecedd6f8d6d2d3b1d'},
{'fee': 178, 'height': 0, 'tx_hash': 'fb80adbf8274190418cb3fb0385d82fe9d47a844d9913684fa5fb3d48094b35a'},
{'fee': 200, 'height': 0, 'tx_hash': '713933c50b7c43f606dad5749ea46e3bc6622657e9b13ace9d639697da266e8b'}
] (id: 13)

D/i | interface.[testnet.hsmiths.com:53012] | <-- ('blockchain.scripthash.subscribe', ['660b44502503064f9d5feee48726287c0973e25bc531b4b8a072f57f143d5cd0']) {} (id: 12)
D/i | interface.[testnet.hsmiths.com:53012] | --> f7ef7237d2d62a3280acae05616200b96ad9dd85fd0473c29152a4a41e05686c (id: 12)
D/i | interface.[testnet.hsmiths.com:53012] | <-- ('blockchain.scripthash.get_history', ['660b44502503064f9d5feee48726287c0973e25bc531b4b8a072f57f143d5cd0']) {} (id: 13)
D/i | interface.[testnet.hsmiths.com:53012] | --> [
{'tx_hash': '9e050f09b676b9b0ee26aa02ccee623fae585a85d6a5e24ecedd6f8d6d2d3b1d', 'height': 0, 'fee': 239},
{'tx_hash': 'fb80adbf8274190418cb3fb0385d82fe9d47a844d9913684fa5fb3d48094b35a', 'height': 0, 'fee': 178},
{'tx_hash': '3ee6d6e26291ce360127fe039b816470fce6eeea19b5c9d10829a1e4efc2d0c7', 'height': 0, 'fee': 200},
{'tx_hash': '713933c50b7c43f606dad5749ea46e3bc6622657e9b13ace9d639697da266e8b', 'height': 0, 'fee': 200}
] (id: 13)
…ed hex string

Array headers: fix type error

Array headers: move variable initialization
@SomberNight SomberNight merged commit 7f8f82f into spesmilo:master Nov 7, 2025
3 checks passed
SomberNight added a commit that referenced this pull request Nov 7, 2025
This implements the remainder of the protocol 1.6 changes,
and it bumps PROTOCOL_MAX to "1.6".

Some of protocol 1.6 was merged previously, see e.g.:
- #288
- #302
- kyuupichan/electrumx#1001
- #325

ref spesmilo/electrum-protocol#6
ref #317
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

Successfully merging this pull request may close these issues.

4 participants