Prepare 0.5.1
This commit is contained in:
parent
d85034353f
commit
b60eb5ca17
@ -1,3 +1,43 @@
|
|||||||
|
version 0.5.1
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- 0.5 changed some cache defaults, only partially intentionally. For
|
||||||
|
some users, including me, the result was a regression (a 15hr HDD
|
||||||
|
sync became a 20hr sync). Another user reported their fastest sync
|
||||||
|
yet (sub 10hr SSD sync). What changed was memory accounting - all
|
||||||
|
releases until 0.5 were not properly accounting for memory usage of
|
||||||
|
unflushed transaction hashes. In 0.5 they were accounted for in the
|
||||||
|
UTXO cache, which resulted in much earlier flushes. 0.5.1 flushes
|
||||||
|
the hashes at the same time as history so I now account for it
|
||||||
|
towards the history cache limit. To get a reasonable comparison
|
||||||
|
with prior releases your HIST_MB environment variable should be
|
||||||
|
bumped by about 15% from 0.4 and earlier values. This will not
|
||||||
|
result in greater memory consumption - the additional memory
|
||||||
|
consumption was being ignored before but is now being included.
|
||||||
|
- 0.5.1 is the first release where Electrum client requests are queued
|
||||||
|
on a per-session basis. Previously they were in a global queue.
|
||||||
|
This is the beginning of ensuring that expensive / DOS requests
|
||||||
|
mostly affect that user's session and not those of other users. The
|
||||||
|
goal is that each session's requests run asynchronously parallel to
|
||||||
|
every other sessions's requests. The missing part of the puzzle is
|
||||||
|
that Python's asyncio is co-operative, however at the moment
|
||||||
|
ElectrumX does not yield during expensive requests. I intend that a
|
||||||
|
near upcoming release will ensure expensive requests yield the CPU
|
||||||
|
at regular fine-grained intervals. The intended result is that, to
|
||||||
|
some extent, expensive requests mainly delay that and later requests
|
||||||
|
from the same session, and have minimal impact on the legitimate
|
||||||
|
requests of other sessions. The extent to which this goal is
|
||||||
|
achieved will only be verifiable in practice.
|
||||||
|
- more robust tracking and handling of asynchronous tasks. I hope
|
||||||
|
this will reduce asyncio's logging messages, some of which I'm
|
||||||
|
becoming increasingly convinced I have no control over. In
|
||||||
|
particular I learned earlier releases were unintentionally limiting
|
||||||
|
the universe of acceptable SSL protocols, and so I made them the
|
||||||
|
default that had been intended.
|
||||||
|
- I added logging of expensive tasks, though I don't expect much real
|
||||||
|
information from this
|
||||||
|
- various RPC improvements
|
||||||
|
|
||||||
version 0.5
|
version 0.5
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
VERSION = "ElectrumX 0.5"
|
VERSION = "ElectrumX 0.5.1"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user