Browse Source

Update text

master
Neil Booth 8 years ago
parent
commit
50a141fbf4
  1. 5
      HOWTO.rst
  2. 23
      README.rst
  3. 2
      server/version.py

5
HOWTO.rst

@ -6,10 +6,11 @@ successfully on MaxOSX and DragonFlyBSD. It won't run out-of-the-box
on Windows, but the changes required to make it do so should be on Windows, but the changes required to make it do so should be
small - patches welcome. small - patches welcome.
+ Python3: ElectrumX makes heavy use of asyncio so version >=3.5 is required + Python3: ElectrumX uses asyncio. Python version >=3.5 is required.
+ plyvel: Python interface to LevelDB. I am using plyvel-0.9. + plyvel: Python interface to LevelDB. I am using plyvel-0.9.
+ aiohttp: Python library for asynchronous HTTP. ElectrumX uses it for + aiohttp: Python library for asynchronous HTTP. ElectrumX uses it for
communication with the daemon. I am using aiohttp-0.21. communication with the daemon. Version >= 1.0 required; I am
using 1.0.5.
While not requirements for running ElectrumX, it is intended to be run While not requirements for running ElectrumX, it is intended to be run
with supervisor software such as Daniel Bernstein's daemontools, or with supervisor software such as Daniel Bernstein's daemontools, or

23
README.rst

@ -47,33 +47,28 @@ faster?
All of the following likely play a part: All of the following likely play a part:
- aggressive caching and batching of DB writes - aggressive caching and batching of DB writes
- more compact representation of UTXOs, the mp address index, and - more compact representation of UTXOs, the address index, and
history. Electrum server stores full transaction hash and height history. Electrum server stores full transaction hash and height
for all UTXOs. In its pruned history it does the same. ElectrumX for all UTXOs. In its pruned history it does the same. ElectrumX
just stores the transaction number in the linear history of just stores the transaction number in the linear history of
transactions, and it looks like that for at least 5 years that will transactions. For at least another 5 years the transaction number
fit in a 4-byte integer. ElectrumX calculates the height from a will fit in a 4-byte integer. ElectrumX calculates the height from
simple lookup in a linear array which is stored on disk. ElectrumX a simple lookup in a linear array which is stored on disk.
also stores transaction hashes in a linear array on disk. ElectrumX also stores transaction hashes in a linear array on disk.
- storing static append-only metadata which is indexed by position on - storing static append-only metadata which is indexed by position on
disk rather than in levelDB. It would be nice to do this for histories disk rather than in levelDB. It would be nice to do this for histories
but I cannot think how they could be easily indexable on a filesystem. but I cannot think how they could be easily indexable on a filesystem.
- avoiding unnecessary or redundant computations - avoiding unnecessary or redundant computations
- more efficient memory usage - more efficient memory usage
- asyncio and asynchronous prefetch of blocks. With luck ElectrumX - asyncio and asynchronous prefetch of blocks. ElectrumX should not
will have no need of threads or locking primitives have any need of threads.
- because it prunes electrum-server needs to store undo information,
ElectrumX should does not need to store undo information for
blockchain reorganisations (note blockchain reorgs are not yet
implemented in ElectrumX)
Roadmap Roadmap
======= =======
- test a few more performance improvement ideas - test a few more performance improvement ideas
- handle blockchain reorgs - handle client connections (half-implemented but not functional)
- handle client connections
- potentially move some functionality to C or C++ - potentially move some functionality to C or C++
Once I get round to writing the server part, I will add DoS Once I get round to writing the server part, I will add DoS
@ -107,7 +102,7 @@ I'd appreciate it if anyone trying to synchronize could tell me::
- whether their daemon was on the same host or not - whether their daemon was on the same host or not
- whatever stats about sync height vs time they can provide (the - whatever stats about sync height vs time they can provide (the
logs give it all in wall time) logs give it all in wall time)
- the network they synced - the network (e.g. bitcoin mainnet) they synced
Neil Booth Neil Booth

2
server/version.py

@ -1 +1 @@
VERSION = "ElectrumX 0.01" VERSION = "ElectrumX 0.02"

Loading…
Cancel
Save