[bitcoin-dev] Electrum Server Speed Test

2015-07-23 Thread Slurms MacKenzie via bitcoin-dev
Similar to the Bitcoin Node Speed Test, this is a quick quantitative look at 
how the Electrum server software handles under load. The Electrum wallet is 
extremely popular, and the distributed servers which power it are all hosted by 
volunteers without budget. The server requires a fully indexed Bitcoin Core 
daemon running, and produces sizable external index in order to allow SPV 
clients to quickly retrieve their history. 

3.9Gelectrum/utxo
67M electrum/undo
19G electrum/hist
1.4Gelectrum/addr
24G electrum/

Based on my own logs produced by the electrum-server console, it takes this 
server (Xeon, lots of memory, 7200 RPM RAID) approximately 3.7 minutes per 
megabyte of block to process into the index. This seems to hold true through 
the 10 or so blocks I have in my scroll buffer, the contents of blocks seem to 
be of approximately the same processing load. Continuing this trend with the 
current inter-block time of 9.8 minutes, an electrum-server instance running on 
modest-high end dedicated server is able to support up to 2.64 MB block sizes 
before permanently falling behind the chain. 
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Electrum Server Speed Test

2015-07-23 Thread Joseph Gleason ⑈ via bitcoin-dev
I have concerns about the performance of the Electrum server software as
well.  It seems to load data one block at a time (which normally makes
sense) and I think it is even single threaded on transactions inside the
block.

To try to addresses these issues, I made my own implementation of the
electrum server.  It doesn't support UTXO (yet) but happily interacts with
all the clients I've tested.  It is heavily multithreaded, uses mongodb as
a key value store and bitcoinj for block and transaction parsing.

https://github.com/fireduck64/jelectrum

You can hit a running instance at:
b.1209k.com:50002:s
or
b.1209k.com:50001:t

A synced node uses 347G of mongodb storage.

Here are the recent blocks imported, with number of transactions and import
time.
http://pastebin.com/cfW3C2L6
These times are based on having mongodb on SSD.
The CPU is 8 core Intel(R) Xeon(R) CPU E5430  @ 2.66GHz

I'd be happy to help with anything you need to evaluate it.


On Thu, Jul 23, 2015 at 9:01 AM Slurms MacKenzie via bitcoin-dev 
bitcoin-dev@lists.linuxfoundation.org wrote:

 Similar to the Bitcoin Node Speed Test, this is a quick quantitative look
 at how the Electrum server software handles under load. The Electrum wallet
 is extremely popular, and the distributed servers which power it are all
 hosted by volunteers without budget. The server requires a fully indexed
 Bitcoin Core daemon running, and produces sizable external index in order
 to allow SPV clients to quickly retrieve their history.

 3.9Gelectrum/utxo
 67M electrum/undo
 19G electrum/hist
 1.4Gelectrum/addr
 24G electrum/

 Based on my own logs produced by the electrum-server console, it takes
 this server (Xeon, lots of memory, 7200 RPM RAID) approximately 3.7 minutes
 per megabyte of block to process into the index. This seems to hold true
 through the 10 or so blocks I have in my scroll buffer, the contents of
 blocks seem to be of approximately the same processing load. Continuing
 this trend with the current inter-block time of 9.8 minutes, an
 electrum-server instance running on modest-high end dedicated server is
 able to support up to 2.64 MB block sizes before permanently falling behind
 the chain.
 ___
 bitcoin-dev mailing list
 bitcoin-dev@lists.linuxfoundation.org
 https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Electrum Server Speed Test

2015-07-23 Thread Matt Whitlock via bitcoin-dev
Great data points, but isn't this an argument for improving Electrum Server's 
database performance, not for holding Bitcoin back?

(Nice alias, by the way. Whimmy wham wham wozzle!)


On Thursday, 23 July 2015, at 5:56 pm, Slurms MacKenzie via bitcoin-dev wrote:
 Similar to the Bitcoin Node Speed Test, this is a quick quantitative look at 
 how the Electrum server software handles under load. The Electrum wallet is 
 extremely popular, and the distributed servers which power it are all hosted 
 by volunteers without budget. The server requires a fully indexed Bitcoin 
 Core daemon running, and produces sizable external index in order to allow 
 SPV clients to quickly retrieve their history. 
 
 3.9Gelectrum/utxo
 67M electrum/undo
 19G electrum/hist
 1.4Gelectrum/addr
 24G electrum/
 
 Based on my own logs produced by the electrum-server console, it takes this 
 server (Xeon, lots of memory, 7200 RPM RAID) approximately 3.7 minutes per 
 megabyte of block to process into the index. This seems to hold true through 
 the 10 or so blocks I have in my scroll buffer, the contents of blocks seem 
 to be of approximately the same processing load. Continuing this trend with 
 the current inter-block time of 9.8 minutes, an electrum-server instance 
 running on modest-high end dedicated server is able to support up to 2.64 MB 
 block sizes before permanently falling behind the chain. 
 ___
 bitcoin-dev mailing list
 bitcoin-dev@lists.linuxfoundation.org
 https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Electrum Server Speed Test

2015-07-23 Thread Slurms MacKenzie via bitcoin-dev
That's purely the time on the wall for electrum-server, validation in bitcoind 
happens before. As ThomasV has pointed out it is significantly faster with a 
solid state disk (but much more expensive to operate), if we get to that point 
it'll only be expensive servers with lots of SSD space which are able to keep 
up with the current software. 

I was mostly trying to make a point about other software being impacted in ways 
which aren't really discussed, rather than a specific dig about 
electrum-server. I should have made that more clear. 


 Sent: Thursday, July 23, 2015 at 9:21 PM
 From: Eric Voskuil e...@voskuil.org
 To: Slurms MacKenzie slu...@gmx.us, bitcoin-dev@lists.linuxfoundation.org
 Subject: Re: [bitcoin-dev] Electrum Server Speed Test

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Does to process into the index include time for transport and/or
 block validation (presumably by bitcoind) or this this exclusively the
 time for Electrum Server to index a validated block?
 
 e
 
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev


Re: [bitcoin-dev] Electrum Server Speed Test

2015-07-23 Thread Eric Voskuil via bitcoin-dev
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Does to process into the index include time for transport and/or
block validation (presumably by bitcoind) or this this exclusively the
time for Electrum Server to index a validated block?

e

On 07/23/2015 08:56 AM, Slurms MacKenzie via bitcoin-dev wrote:

 Similar to the Bitcoin Node Speed Test, this is a quick
 quantitative
look at how the Electrum server software handles under load. The
Electrum wallet is extremely popular, and the distributed servers
which power it are all hosted by volunteers without budget. The server
requires a fully indexed Bitcoin Core daemon running, and produces
sizable external index in order to allow SPV clients to quickly
retrieve their history.
 
 
 3.9Gelectrum/utxo 67M electrum/undo 19G electrum/hist 
 1.4Gelectrum/addr 24G electrum/
 
 
 Based on my own logs produced by the electrum-server console, it
takes this server (Xeon, lots of memory, 7200 RPM RAID) approximately
3.7 minutes per megabyte of block to process into the index. This
seems to hold true through the 10 or so blocks I have in my scroll
buffer, the contents of blocks seem to be of approximately the same
processing load. Continuing this trend with the current inter-block
time of 9.8 minutes, an electrum-server instance running on
modest-high end dedicated server is able to support up to 2.64 MB
block sizes before permanently falling behind the chain.


-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQEcBAEBAgAGBQJVsTCdAAoJEDzYwH8LXOFOLpgIAIAe5QBTTgpe2kyYrqamUKNI
uasljmNQi3In/rdxNm9Ga+vwTsBg7f4v/xHVrQYAGxdjjZxs0h9bOmAvuc+p2fad
ZeHC/vewrtLxB2aVj5JVbSk5ik57ePyk3SmghTpGMAhgTIWkceIrxR+Fq7TFOlqn
NGnTuBSSsGL9nY57hIFwMJb2CKdPwMVLL/0gjVQ9Llqt+Fu31eSRhDzHOvJnkofO
xwVrVGgST2GE73np3WA0jvzRHjFgsPnQknhjLGQiTgDKsKL0BywE9/Vke2zVNyP7
cAlTQoScEal++9u0h3D475lsxv43V0Rxafc7W0a/OyfXujJ2AlixgV8PlLwhvaY=
=DK5K
-END PGP SIGNATURE-
___
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev