* New database table to store headers
* Loading blockchain only loads headers into memory instead of header blocks (header + proofs), speeds up the startup, and reduces normal operation memory usage by 80%
* Fix deadlock issues with store class
* Make memory store access synchronous, to reduce use of locks, this improves performance of block and unfinished block processing
* Remove locks from reads of DB, only lock for writes
* Cleaner configuration system with argparse
* Log to file by default, configurable to stdout
* Proof of space binary and create_plots scripts allow passing in temp and final directories
C PoT improvements, partly using modified code from Flint/Antic
On Mon, Jan 13, 2020 at 11:03 PM Bill Hart <goodwillhart[at sign]googlemail.com> wrote:
Dear Bram Cohen,
I cannot relicense all of Flint and Antic as I don't own the copyright for all files.
However, I wrote the files you mention and therefore you can also use them under BSD 2-Clause. In addition, I hereby license you to use these files under the MIT license for your project. Please ensure that my copyright is retained on the files, as per the MIT license.
Best Wishes,
William Hart.
On Tue, 14 Jan 2020 at 01:10, Bram Cohen <bram[at sign]chia.net> wrote:
Hello Dr. Hart. As you likely already know in Chia's VDF implementation competition Antic and Flint were able to produce meaningful
improvements in how fast our VDF runs. We're now working on integrating those changes and making further improvements which we'd like
to upstream but we're having some licensing issues.
On all of Chia's code we use MIT, Apache2 and public domain. If you're willing to relicense using one of those or even relicense just the
following files that would be very helpful
https://github.com/wbhart/antic/blob/trunk/qfb/nudupl.chttps://github.com/wbhart/antic/commits/trunk/qfb/nucomp.chttps://github.com/wbhart/flint2/blob/trunk/fmpz/xgcd_partial.c
Please let me know what you think.
Thank you,
-Bram
* Switches to sqlite and remove all mongo stuff
* Starts RPC server on port 8555
* UI is in new process, communicates to node through rpc
* JSON serialization for streamables
* Harvester periodically prints its plot names and sizes
* Process names are set to chia_full node, chia_harvester, etc
* CONTRIBUTING.md, and remove docs from git (put in wiki)
* Adds the SmallHeaderBlock type, it's header block without the PoT and PoSpace
* Fix harvester bug (allows two harvesters in the same machine)
Remove database access from blockchain, and handle headers instead of blocks
Avoid processing blocks and unfinished blocks that we have already seen.
Also adds test for load.
Plotting improvements
* Start ping pong
* Basic ping ping and disconnect
* Remove useless changes, increase timeout
* Remove connections on failed handshakes
* Only close full node peers to be safe
* Sync changes
* Add recent peer threshold to full node
* Change farmer to weight instead of height
* Remove asyncio cancel, and add visibility of farming rewards
* Added a new API call GetAllHeaderHashes which returns just the header hashes. This is used for finding fork point.
* Only downloads headers and blocks from fork point
* Remove CancelledError logging
* Short sync should now work properly, it will always ask for previous block. There might be some repeated requests.
* Introducer now only returns peers which it has seen recently, and full node only connects to peers which it has heard from recently.