Someone showed me that my current SPV implementation (in version 1.2) has a bug, and that it needs to be updated; the client needs to download its transactions in serialized form in order to ensure they have the correct hash. I will try to do this soon, but it might take some time, because it requires a modification in the protocol.
|
|
|
Can anybody tell me in which folder are my private keys stored at the electrum wallet ? And can I make a copy (like the wallet.dat) on the Bitcoin client to secure them ?
the whole point about this client is that private keys are not stored in the wallet. they are derived from your seed.
|
|
|
Seems that I'm getting an error whenever I make a transaction. (The tx goes through anyway)
oh right, that's a small bug. I just fixed it, try the latest git code.
|
|
|
[EDIT] Just a wild guess: Could it be due to ecdsa.org failing to join the #electrum channel?
indeed that's the reason. if the client does cannot get the list from irc, it falls back to a hardcoded list of nodes.
|
|
|
Hi Thomas, congrats on the new release! Just thought I should mention that I get the below error upon starting electrum. type error, using default value [edit] this error only appears the very first time (when the blockchain_headers file doesn't exist yet) I don't think it is related. maybe you used an intermediate (github) version, and I changed the type of a variable you saved. Also, the GUI appears to be hanging during that this initial header validation process - perhaps a little progress dialog or status message would be more user-friendly (as most Windows users never use the console)
if you have lots of transactions, it might hang the gui for a few seconds, because it will redraw the history everytime a transaction is validated. however, the gui should not be slowed down during the headers download & validation phase.
|
|
|
I just released version 1.2 of Electrum. This version includes Simple Payment Verification (SPV). The SPV module will download blockchain headers (16Mb) and check your transactions, as described in Satoshi's original paper. This will prevent a malicious server from showing you fake transactions; only verified transactions have confirmation icons. (note: a malicious server could still hide some of your transactions to you, but that has much less potential for abuse) Please note that the SPV module will only work if you connect to a server that runs recent code. Please also note that this module is new and has not been extensively tested yet. However, since it operates in an independent thread, it is not capable of crashing the rest of the client, so I am adding it to the release. If it goes wrong, you may disable it using the following command: electrum set disable_spv True
Other new feature: Two new commands, 'set' and 'get', allow you to read/write configuration options from the command line. For example, to display your master public key, type: electrum get master_public_key
|
|
|
Hello,
This happened several times to me recently:
Transactions get processed normally, but i'm getting "transaction rejected by network" message.
Classic mode, latest windows version, standard 0.001 fee paid. Server used: electrum.bytesized-hosting.com (TCP)
It might be another instance of the the "cannot spent coins" bug it is a server bug, caused by reorgs, that results in wrong histories being sent. to fix it, use another server AND regenerate your wallet at that server. Edit: if you use the latest git code, you can do:
|
|
|
Today I updated the server source again, with a slight modification of the protocol (spv-related calls) The current version of the protocol is 0.4 (visible in your server's irc "real name") Please upgrade your server if you have not done so.
|
|
|
I updated uncle-enzo.mit.edu to the latest version of the server. I can't connect using TCP/SSL, though. Port 50002 is open, but I still get the "Failed to connect uncle-enzo.mit.edu:50002" message when I try to connect. I'm using a self-signed certificate, would that cause problems?
no, you can use a self-signed certificate
|
|
|
any NFC support?
not for the moment, because I don't have a NFC phone
|
|
|
Thanks for the explanations.
Today I have updated to the latest master, and no longer have the blockchain.subscribe error message
yes, there was a bug there I fixed it this morning but I do get "timeout" messages every 2 minutes or so while connected to ecdsa.org. I guess these are coming from the SPV thread? Can they be ignored? The connection does seem to be stable.
I couldn't do much more testing (no BTC to play around with, currently).
No, the "timeout" thing is a debugging message from the interface. I will not include it in the final release. As I mentioned earlier I did an almost complete rewrite of the interface, so that it can be queried by concurrent threads. This was needed in order to add SPV, because SPV is one of those thread; the other thread interacting with the interface is the wallet synchronizer.
|
|
|
thanks! I spent a lot of effort on the electrum desktop recently, but I did not have time to catch up with the android version. I will do it after the next version
|
|
|
Just gave it a try... I'm getting the below error, as soon as the GUI shows up (using the latest master code): Traceback (most recent call last): File "1.1\C_\Python27\lib\threading.py", line 551, in __bootstrap_inner self.run() File "1.1\C_\ElectrumPY\lib\wallet.py", line 1002, in run self.validate_header(result) File "1.1\C_\ElectrumPY\lib\wallet.py", line 1042, in validate_header assert header.get('merkle_root') == merkle_root AssertionError [edit:] that was connecting to uncle-enzo. If I connect to ecdsa.org, the GUI remains stuck on "Connecting..." and the following message eventually appears on the console: received unexpected notification blockchain.numblocks.subscribe [204503] timeout yes, in normal time the first error will mean that the server is trying to screw you, but since I made a mistake in the first version of the server rpc that returns the merkle path of a transaction, I guess the reason is more likely to be that the server hasn't updated yet. the second error is not important, it was caused because you switched servers within your session.
|
|
|
I just merged my SPV branch with the master branch of the repo. This contains an almost complete rewrite of the interface code.
The interface is now autonomous and separate from the WalletSynchronizer thread. SPV is performed in a new thread called WalletVerifier.
For the moment SPV does not check difficulty, and its results are not saved to disk, which is a bit inefficient, but these issues will be resolved soon.
|
|
|
Two server upgrades this morning:
- the protocol version is now 0.2. this indicates servers that have get_header and get_merkle
- the server now uses 'getrawmempool' (bitcoind 0.7); with this version, you do not need to patch bitcoind anymore in order to run a server.
|
|
|
What's the dillio with electrum-desktop.com?
I don't know. That site is controlled by genjix, and he has been inactive and unreachable for over a month...
|
|
|
Thomas, than you for the release! It's great to see that there's some development. I feel a bit shy that I promised some work on server, but didn't finished it yet :-(.
no problem. we will need to work on the server anyway Btw do you have any plans with BIP 32? Although current deterministic algorithm works great and I don't have any problem with it, standardization is definitely the way to go. You're also one of few Electrum developers who is capable to implement it (safely)...
Changing the deterministic algorithm is a change that affects users heavily, so I want to minimize the number of times when it happens. I think we should wait until BIP32 is finalized and used in the official client, so that we can have a compatible wallet. If we do it before them, there are chances the spec will still evolve.
|
|
|
Today I released version 1.1 of Electrum You can get it from here: http://electrum.ecdsa.org/ (new website) It has been a long time since the last release, and a lot of changes have made it into this new version; I will not list them all. Here are the main changes: * support for TCP/SSL and HTTPS. * icons to display confirmation levels < 6 * new system to store user preferences, with user-defined configuration file (see previous post) * new "merchant" script to process payments (see previous post) * the "qt" gui is now refered to as "classic" gui. ("qt" was confusing because the "lite" gui uses qt too) I started to implement Simple Payment Validation, this is what the new "validate_tx" script is about. However, SPV is not implemented in the wallet for the moment; this will require another upgrade. Thanks to all the developers, and I hope you enjoy this new release.
|
|
|
|