I promised some comparison of leveldb and relational model and have some feature updates:
Performancebootstrap node from scratch (Merkle root and POW check and store until block 210.000 thereafter full validation of scripts)
in Minutes:
until block 210.000 then until most recent block
LevelDB 93 61
Relational 3664 297
That roughly 2.5 hours against 2.5 days.
I run this on:
Linux bitsofproof 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:16:45 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
with 4 2GHz processors 16GB RAM, Derby 10.9.1 with 400MB cache.
New featuresI split the code base into
- supernode - the protocol implementation and storage engine
- supernode-api - a java interface that defines (not yet complete) BCSAPI and basic primitives needed in local code base of clients e.g. Hash, sign.
- supernode-testclient - a small java app that uses the BCSAPI to demonstrate connection and work with running server
The remote calls are accomplished with Java RMI using two way authentication and encryption over SSL.
An example use of securely connecting to remote bitsofproof supernode:
start the server (running on a linux server in a datacenter in Germany):
nohup java -server -Xmx4g -jar target/supernode-0.7-SNAPSHOT.jar production relational &
ask for the balance of the bitsofproof donation account using the test client (running on my MacOS laptop at home in Hungary):
java target/supernode-testclient-0.7-SNAPSHOT.jar -a 13xhxy21to93Lrb7d4ssZVaMnFtQVvRkSk
prints:
13xhxy21to93Lrb7d4ssZVaMnFtQVvRkSk balance: 1400000000
thats 14 BTC, retrieved in a roundtrip of 72 miliseconds.
the same momentary balance for 1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp balance: 67391770
roundtrip time 658 seconds. (ca. 1.5 million transaction outputs retrieved on server side)