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
SPV multi-server cross-validation #59
SPV multi-server cross-validation #59
Conversation
eba3477
to
8885b10
Compare
9d0d798
to
f91b18d
Compare
I added a new Should this status also be exposed as a global flag of some sort, or is having this on the individual transactions sufficient? The cross-validator reports some information about the chain fork, including how far behind the primary electrum server is compared to the longest chain (both work and height wise). Should this information be made available to the app? |
96d3328
to
e8729bc
Compare
I added a script for updating the Electrum servers list from the latest Electrum release: https://github.com/shesek/gdk/blob/202010-spv-crossvalidation/subprojects/gdk_rust/gdk_electrum/scripts/update-server-list.sh Should this be added to some build process somewhere? |
c22a638
to
a71aae7
Compare
Rebased on master and removed the dependency on my Other standing items/questions:
|
Currently no production app is using SPV verification. The points you raise are reasonable and will need to be addressed. |
both fails with
I guess they need updating |
Please add to
|
b5ff09b
to
d903e0b
Compare
Indeed, fixed in d903e0b. |
Added in 31ebd84. |
70c9c23
to
b709d10
Compare
- Don't use .onion servers (we currently don't support tor) - Add the "noverify" flag to disable SSL certificate validation - Allow non-SSL servers (doesn't matter in practice because Electrum's default server list doesn't have any)
It now has native support for setting the socket timeout, implemented in bitcoindevkit/rust-electrum-client#27
Co-authored-by: LeoComandini <26792912+LeoComandini@users.noreply.github.com>
As expected by rust-electrum-client
The necessary changes have been merged, but still not released.
ed22b2c
to
37925f0
Compare
nit: typo "rust-elemenets" in last commit |
Also, is this still WIP? |
37925f0
to
6d47005
Compare
- Introduced new BEScript, BETxid and BEBlockHash enums to encapsulate rust-elements's new data types. - The new data types will BREAK the existing RawCache database, which will be automatically re-populated from the Electrum server. Care has been taken to retain compatibility with the RawStore database (containing the user's settings and tx labels). - Added support for Signet.
6d47005
to
c73f427
Compare
Thanks @shesek! |
Also includes a bunch of other small changes/fixups.
This PR depends on:
A fix to Blockstream/electrs that isn't yet deployed to the live servers. The GitLab CI was updated to use the updated version of electrs. (8ddc1c8)This was deployed.
A rust-bitcoin fork with serializable uint types. This is needed to store the validation result in the cache. A PR was sent upstream: Make uint types (un)serializable rust-bitcoin/rust-bitcoin#511Merged.A rust-electrum-client fork with support for using customTcpStream
s. This is needed to set timeouts. A PR was sent upstream: Allow to initialize SSL clients with an existing TcpStream bitcoindevkit/rust-electrum-client#25Upgraded to upstream rust-electrum-client v0.4.0 with the necessary changes.