Releases: Chia-Network/chia-blockchain
1.0beta14
[1.0beta14] aka Beta 1.14 - 2020-10-01
Added
- Node peers are now gossiped between nodes with logic to keep connected nodes on disparate internet networks to partially protect from eclipse attacks. This is the second to last step to remove our temporary introducer and migrate to DNS introducers with peer gossip modeled directly off of Bitcoin. This adds a new database of valid peer nodes that will persist across node restarts. This also makes changes to config.yaml's contents.
- For 'git clone' installs there is now a separate install-gui.sh which speeds up running install.sh for those who wish to run headless and makes docker and other automation simpler.
- The rate limited wallet library now supports coin aggregation for adding additional funds after the time of creation.
- Fees are now used in all applicable rate limited wallet calls
- New parameters for plotting: -r (number of threads) -s (stripe size) -u (number of buckets) in cli and GUI
- chiavdf now has full IFMA optimizations for processors that support it.
Changed
- Multithreading support in chiapos, as well as a new algorithm which is faster and does 70% less IO. This is a significant improvement in speed, much lower total writing, and configurability for different hardware environments.
- Default -b changed to 3072 to improve performance
- The correct amount of memory is used for plotting
sh install.sh
was upgraded so that on Ubuntu it will install any needed OS dependencies.- Wallet and puzzlehash generation have been refactored and simplified.
- Wallet has had various sync speed ups added.
- The rpc interfaces of all chia services have been refactored, simplified, and had various additional functionality added.
- Block timestamps are now stored in the wallet database. Both database versions were incremented and databases from previous versions will not work with Beta 14. However, upon re-sync all test chia since Beta 12 should appear in your wallet.
- All vestigial references to plots.yaml have been removed.
Fixed
- Temporary space required for each k size was updated with more accurate estimates.
- Tables in the README.MD were not rendering correctly on Pypi. Thanks again @altendky.
- Chiapos issue where memory was spiking and increasing
- Fixed working space estimates so they are exact
- Log all errors in chiapos
- Fixed a bug that was causing Bluebox vdfs to fail.
1.0beta13
[1.0beta13] aka Beta 1.13 - 2020-09-15
Added
- As noted in Beta 12, this is a new blockchain so test chia from Beta 11 and earlier are not preserved. Plots continue to work fine.
Changed
- Long_description_content_type is now set to improve chia-blockchian's Pypi entry. Thanks to @altendky for this pull request.
- A minor edit was made to clarify that excessive was only related to trolling in the Code of Conduct document.
Fixed
- When starting the GUI from an installer or the command line on Linux, if you had not previously generated a key on your machine, the generate new key GUI would not launch and you would be stuck with a spinner.
- Farmer display now correctly displays balance.
1.0beta12
[1.0beta12] aka Beta 1.12 - 2020-09-14
Added
- Rate limited wallets can now have unspent and un-spendable funds clawed back by the Admin wallet.
- You can now backup your wallet related metadata in an encrypted and signed file to a free service from Chia Network at backup.chia.net. Simply having a backup of your private key will allow you to fully restore the state of your wallet including coloured coins, rate limited wallets, distributed identity wallets and many more. Your private key is used to automatically restore the last backup you saved to the Chia backup cloud service. This service is open source and ultimately you will be able to configure your backups to go to backup.chia.net, your own installation, or a third party's version of it.
- Added a Code of Conduct in CODE_OF_CONDUCT.md.
- Added a bug report template in
.github/ISSUE_TEMPLATE/bug_report.md
.
Changed
- This is a new blockchain as we changed how the default puzzle hashes are generated and previous coins would not be easy to spend. Plots made with Beta 8 and newer continue to work, but all previous test chia are left on the old chain and do not migrate over. Configuration data like plot directories automatically migrate in your
~/.chia
directory. - Proof of Space now requires significantly less temp space to generate a new plot. A k=32 that used to require 524GiB now requires only 313GiB - generally a 40% decrease across all k sizes.
- When plotting, instead of 1 monolithic temp file, there are now 8 files - one for each of the 7 tables and one for sorting plot data. These files are deleted as the
-2
or-d
final file is written so the final file can fit within the footprint of the temporary files on the same filesystem. - We've made various additional CPU optimizations to the Proof of Space plotter that reduces plotting time by an additional 13%. These changes will also reduce CPU utilization in harvesting.
- We have ruled out k=30 for mainnet minimum plot size. k=31 may still make mainnet. k=32 and larger will be viable on mainnet.
- We moved to react-styleguidist to develop reusable components in isolation and better document the UI. Thanks to @embiem for this pull request.
- Coloured coins have been updated to simplify them, remove 'a', and stop using an 'auditor'.
- clvm has been significantly changed to support the new coloured coins implementation.
- Bumped cryptography to 3.1. Cryptography is now publishing ARM64 binary wheels to PyPi so Raspberry Pi installs should be even easier.
chia init
now automatically discovers previous releases in each new release.
Fixed
chia show -w
should now more reliably work. Wallet balances should be more often correct.- View -> Developer -> Developer Tools now correctly opens the developer tools. Thank you to @roxaaams for this pull request!
- Fixed 'Receive Address' typo in Wallet. Thanks @meurtn on Keybase.
- Fixed a typo in
chia show -w
with thanks to @pyl on Keybase. - In Windows the start menu item is now Chia Network and the icon in Add/Remove is updated.
1.0beta11
[1.0beta11] aka Beta 1.11 - 2020-08-24
Added
- The Chia UI now has a proper About menu entry that gives the various component versions and directs people to submit issues on GitHub. Thank you to @freddiecoleman for this pull request!
- Ability to run only the farmer, wallet, or timelord services, for more advanced configurations (chia run farmer-only, wallet-only, timelord-only)
Changed
- To complement the new About menu, we have revamped all Electron menus and made them OS native. There are now direct links to the Wiki, Keybase, and FAQ in the Help menu.
- There are minor improvements to how working space is calculated and displayed by the plotter. The plotter also has additional debugging information in its output.
- Successful plots only have an atomic rename.
Fixed
- kOffsetSize should have been 10 bits and not 9. This was causing plots, especially larger plots, to fail with "Error 0". This bug was introduced in Beta 8 with the new plot file format.
- A bug in aiosqlite was causing tests to hang - especially on the ci. This may also have been causing wallet database corruption.
chia show -w
now correctly outputs all wallet types and balances from the local wallet.
1.0beta10
[1.0beta10] aka Beta 1.10 - 2020-08-18
Added
- Meet our new Rate Limited wallet. You can now fund a wallet from an Admin wallet that will set how many coins can be spent over a given range of blocks for a given User wallet. Once combined with on chain wallet recovery, this makes it much easier to secure your "spending money" wallet so that if it is compromised you have time to get most of the funds back before an attacker can steal them all. This wallet should be considered alpha in this release as additional fixes and functionality will be coming in subsequent releases.
- We've added unhardened HD keys to bls-signatures for the smart wallets that need them. We've added significant cross project testing to our BLS implementation.
- The python implementation of bls-signatures is now current to the new specification.
chia show -b
now returns plot public key and pool public key for each block.- Added cbor2 binary wheels for ARM64 to the Chia simple site. Raspberry Pi should be just a little easier to install.
Changed
- Wallet addresses and other key related elements are now expressed in Chech32 which is the Chia implementation of Bech32. All of your old wallet addresses will be replaced with the new Chech32 addresses. The only thing you can't do is send test chia between 1.8/1.9 and 1.10 software. Anyone who upgrades to 1.10 will keep their transactions and balances of test chia from the earlier two releases however.
- We added a first few enhancements to plotting speed. For a k=30 on a ramdisk with
-b 64 GiB
it results in an 11% speedup in overall plotting speed and a 23% improvement in phase 1 speed. Many more significant increases in plotting speed are in the works. - The proof of space document in chiapos has been updated to the new format and edited for clarity. Additionally GitHub actions now has the on demand ability to create the PDF version.
- Relic has upstreamed our changes required for the IETF BLS standard. We now build directly from the Relic repository for all but Windows and will be migrating Windows in the next release.
- Improvements to coloured coin wallet.
- Minor improvements to the Coloured Coin wallet were integrated in advance of an upcoming re-factor.
- Smart wallet backup was upgraded to encrypt and sign the contents of the backup.
Fixed
- Proof of space plotting now correctly calculates the total working space used in the
-t
directory. chia show -w
now displays a message when balances cannot be displayed instead of throwing an error. Thanks to @freddiecoleman for this fix!- Fix issue with shutting down full node (full node processes remained open, and caused a spinner when launching Chia)
- Various code review alerts for comparing to a wider type in chiapos were fixed. Additionally, unused code was removed from chiapos
- Benchmarking has been re-enabled in bls-signatures.
- Various node security vulnerabilities were addressed.
- Updated keyring, various GitHub actions, colorlog, cbor2, and clvm_tools.
1.0beta9
[1.0beta9] aka Beta 1.9 - 2020-07-27
Added
- See wallet balances in command line:
chia show -w
- Retry opening invalid plots every 20 minutes (so you can copy a large plot into a plot directory.)
- We've added
chia keys sign
andchia keys verify
to allow farmers to certify their ownership of keys. - Windows BLS Signature library now uses libsodium for additional security.
- You can now backup and restore Smart Wallet metadata.
- Binary wheels for ARM64/aarch64 also build for python 3.7.
- See and remove plot directories from the UI and command line.
- You can now specify the memory buffer in UI.
- Optimized MPIR for Sandybridge and Ivybridge CPUs under Windows
Changed
chia start wallet-server
changed tochia start wallet
, for consistency.- All data size units are clarified to displayed in GiB instead of GB (powers of 1024 instead of 1000.)
- Better error messages for restoring wallet from mnemonic.
Fixed
- Fixed open_connection not being cancelled when node exits.
- Increase the robustness of node and wallet shutdown.
- Handle disconnection and reconnection of hard drives properly.
- Addressed pre-Haswell Windows signatures failing.
- MacOS, Linux x64, and Linux aarch64 were not correctly compiling libsodium in
the blspy/bls-signatures library. - Removed outdated "200 plots" language from Plot tab.
- Fixed spelling error for "folder" on Plot tab.
- Various node dependency security vulnerabilities have been fixed.
- Request peers was not returning currently connected peers older than 1 day.
- Fixed timeout exception inheritance changes under python 3.8 (pull 13528)
Deprecated
- Removed legacy scripts such as chia-stop-server, chia-restart-harvester, etc.
1.0beta8
[1.0beta8] aka Beta 1.8 - 2020-07-16
Added
- We have released a new plot file format. We believe that plots made in this
format and with these IETF BLS keys will work without significant changes
on mainnet at launch. - We now use chacha8 and blake3
for proof of space instead of the now deprecated AES methods. This shoul
increase plotting speed and support more processors. - Plot refreshing happens during all new challenges and only new/modified files are read.
- Updated blspy to use the
new IETF standard for BLS signatures. - Added a faster VDF process which generates n-wesolowski proofs quickly
after the VDF result is known. This requires a high number of CPUs. To use it,
set timelord.fast_algorithm = True in the config file. - Added a new type of timelord helper - blue boxes, which generate compact
proofs of time for existing proven blocks. This helps reducing the database
size and speeds up syncing a node for new users joining the network. Full nodes
send 100 random un-compact blocks per hour to blue boxes, and if
timelord.sanitizer_mode = True, the blue box timelord will work on those
challenges. Unlike the main timelord, average machines can run blue boxes
and contribute to the chain. Expect improvements to the install method for
blue boxes in future releases. - From the UI you can add a directory that harvester will always check for
existing and new plots. Harvester will only look in the specific directory you
specify so you'll have to add any subfolders you want to also contain plots. - The UI now asks for confirmation before closing and shows shutdown progress.
- UI now tries to shut down servers gracefully before exiting, and also closes
the daemon before starting. - The various sub repositories (chiapos, chiavdf, etc.) now build ARM64 binary
wheels for Linux with Python 3.8. This makes installing on Ubuntu 20.04 lts on
a Raspberry Pi 3 or 4 easy. - Ci's check to see if they have secret access and attempt to fail cleanly so
that ci runs successfully complete from PRs or forked repositories. - Farmer now sends challenges after a handshake with harvester.
- The bls-signatures binary wheels include libsodium on all but Windows which
we expect to add in future releases. - The chia executable is now available if installing from the Windows or MacOS
Graphical installer. Try./chia -h
from
~\AppData\Local\Chia-Blockchain\app-0.1.8\resources\app.asar.unpacked\daemon\
in Windows or
/Applications/Chia.app/Contents/Resources/app.asar.unpacked/daemon
on MacOS.
Changed
-
Minor changes have been made across the repositories to better support
compiling on OpenBSD. HT @n1000. -
Changed XCH units to TXCH units for testnet.
-
A push to a branch will cancel all ci runs still running for that branch.
-
Ci's now cache pip and npm caches between runs.
-
Improve test speed with smaller discriminants, less blocks, less keys, and
smaller plots. -
RPC servers and clients were refactored.
-
The keychain no longer supports old keys that don't have mnemonics.
-
The keychain uses BIP39 for seed derivation, using the "" passphrase, and
also stores public keys. -
Plots.yaml has been replaced. Plot secret keys are stored in the plots,
and a list of directories that harvester can find plots in are in config.yaml.
You can move plots around to any directory in config.yaml as long as the farmer
has the correct farmer's secret key too. -
Auto scanning of plot directories for .plot files.
-
The block header format was changed (puzzle hashes and pool signature).
-
Coinbase and fees coin are now in merkle set, and bip158 filter.
-
New harvester protocol with 2/2 harvester and farmer signatures, and modified
farmer and full node protocols. -
255/256 filter which allows virtually unlimited plots per harvester or drive.
-
Improved create_plots and check_plots scripts, which are now
"chia plots create" and "chia plots check". -
Add plot directories to config.yaml from the cli with "chia plots add".
-
Use real plot sizes in UI instead of a formula/
-
HD keys now use EIP 2333 format instead of BIP32, for compatibility with
other chains. -
Keys are now derived with the EIP 2334 (m/12381/8444/a/b).
-
Removed the ability to pass in sk_seed to plotting, to increase security.
-
Linux builds of chiavdf and blspy now use a fresh build of gmp 6.2.1.
Fixed
- uPnP now works on Windows.
- Log rotation should now properly rotate every 20MB and keep 7 historical logs.
- Node had a significant memory leak under load due to an extraneous fork
in the network code. - Skylake processors on Windows without AVX would fail to run.
- Harvester no longer runs into 512 maximum file handles open issue on Windows.
- The version generator for new installers incorrectly handled the "dev"
versions after a release tag. - Due to a python bug, ssl connections could randomly fail. Worked around
Python issue 29288 - Removed websocket max message limit, allowing for more plots
- Daemon was crashing when websocket gets improperly closed
Deprecated
- All keys generated before Beta 1.8 are of an old format and no longer useful.
- All plots generated before Beta 1.8 are no longer compatible with testnet and
should be deleted.
Known Issues
- For Windows users on pre Haswell CPUs there is a known issue that causes
"Given G1 element failed g1_is_valid check" when attempting to generate
keys. This is a regression from our previous fix when it was upstreamed into
relic. It can be fixed with this patch: https://github.com/Chia-Network/chia-blockchain/wiki/Windows-pre-Haswell-1.8-workaround
1.0beta7
[1.0beta7]
2020-06-08
Added
- Added ability to add plot from filesystem (you will need pool_pk and sk from plots.yaml.)
- Added ability to import private keys in the UI.
- Added ability to see private keys and mnemonic seeds in the keys menu
- User can specify log level in the config file (defaults to info.)
- The Windows installer is now signed by a Chia Network certificate. It may take some time to develop enough reputation to not warn multiple times during install.
Changed
- Plots are now refreshed in the UI after each plot instead of at the end of plotting.
- We have made performance improvements to plotting speed on all platforms.
- The command line plotter now supports specifying it's memory buffer size.
- Test plots for the simulation and testing harness now go into
~/.chia/test-plots/
- We have completely refactored all networking code towards making each Chia service use the same default networking infrastructure and move to websockets as the default networking wire protocol.
- We added additional improvements and more RPCs to the start daemon and various services to continue to make chia start/stop reliable cross platform.
- The install.sh script now discovers if it's running on Ubuntu less than 20.04 and correctly upgrades node.js to the current stable version.
- For GitHub ci builds of the Windows installer, editbin.exe is more reliably found.
- All installer ci builds now obtain version information automatically from setuptools_scm and convert it to an installer version number that is appropriate for the platform and type of release (dev versus release.)
- We now codesign the Apple .dmg installer with the Chia Network developer ID on both GitHub Actions and Azure Pipelines. We will be notarizing and distributing the Azure Pipelines version as it's built on MacOS Mojave (10.14.6) for stronger cross version support.
Fixed
- Having spaces in the path to a plot or temporary directory caused plotting to fail.
- Changing keys will no longer interrupt plotting log.
- 1.6 introduced a bug where certain very many core machines would sync the blockchain very slowly.
- The plotter log in the UI should scroll more reliably.
- The plotter UI should display the correct log on all platforms
- Starting chia now waits for the full node to be active before contacting the introducer.
Known issues
- Migration of plots from 1.6 to 1.7 is not working, A workaround is to rename ~/.chia/beta1.0b6 to ~/.chia/beta1.0b5 before running the new application, or just copy over the plots.yaml from the ~/.chia/beta1.0b6/config/plots.yaml to ~/.chia/beta1.0b7/config/plots.yaml
- Log rotation is not working properly
1.0beta6
Beta 1.6
2020-06-01
Added
- Windows and MacOS now have one click installers that then send users to a GUI on both platforms to farm or use their wallets. Windows is built on GitHub Actions and MacOS is also built on Azure Pipelines so as to build on Mojave.
- You can see and control your farmer, harvester, and plotter from the GUI on Windows, MacOS, and Linux.
- Create plots and see the plotting log from a GUI on Windows, MacOS, and Linux.
- You can now create or import private keys with a 24 word mnemonic, both in the UI and 'chia keys' command line.
- You can delete and change active keys from the GUI and cli.
- We added a new keychain system that replaces keys.yaml, and migrates existing users from keys.yaml. It utilizes each OS's keychain for slightly more secure key storage.
- We added a
chia keys
command line program, to see, add, and remove private keys. - We added RPC servers and RPC client implementations for Farmer and Harvester. The new UI uses these for additional information and functionality.
- We added total network storage space estimation to the node RPC at the
/get_network_space
endpoint instead of only being available in the cli. The RPC endpoint takes two block header hashes
and estimates space between those header hashes. - Logs now autorotate. Once the debug.log reaches 20MB it is compressed and archived keeping 7 historical 20MB logs.
- We now have a CHANGELOG.md that adheres closely to the Keep a Changelog standard. We merged in the version history and updated some previous release notes to capture items important to the change log. We are modifying our release process to accumulate changes at the top of the change log and then copy those to the release notes at the time of the release.
- We added lgtm source analysis on pull request to the chia-blockchain, chiapos, chiavdf, chiabip158, and bls-library repositories to add some automated security analysis to our ci.
Changed
- Due to an issue with aggsig and aggsig-me, the beta 1.6 blockchain is not compatible with earlier chains.
- We replaced the Electron/JavaScript interface with a React user interface which is cleaner and more responsive.
- We now have a multithreaded harvester to farm more plots concurrently. This is especially faster when there are multiple disks being harvested. The class is also made thread safe with mutex guards. This is achieved by releasing GIL in the python bindings when fetching qualities and proofs. We estimate that the former guidance of only 50 plots per physical drive should be updated to 250-350 plots per physical drive. We will continue to improve the plots per physical drive limit during the beta period.
- Syncing a node is now much faster and uses less memory.
chia netspace
has been refactored to use the/get_network_space
RPC. The command
syntax has changed slightly. By default it calculates the last 24 blocks from the
current LCA. Optionally you can use the-b
flag to start the calculation from a different block
height. Use-d
to specify the delta number of blocks back into history to estimate over from either LCA or your-b
block height.- The Full node RPC response formats have been changed. All API calls now return a dict with success, and an additional value, for example {"success": True, "block": block}.
- chiapos is now easier to compile with MSVC.
- create plots now takes in an optional sk_seed, it is no longer read in from keys.yaml. If not passed in, it is randomly generated. The -i argument can now only be used when you provide an sk_seed.
- Moved to PyYAML 5.3.1 which prevents arbitrary code execution during python/object/new constructor.
- Moved to Python cryptography 2.9.2 which deprecates OpenSSL 1.0.1 and now relies upon OpenSSL 1.1.1g.
- Moved to aiosqlite 0.13.0 which adds official support for Python 3.8 and fixes a possible hung thread if a connection failed.
Fixed
- In beta 1.5 we introduced a bug in aggsig and aggsig-me that we have fixed in this release. That forced a hard fork of the chain so coins and balances are lost from beta 1.5. There is no impact on existing plots.
- Starting and stopping servers now works much more reliably.
- chia-check-plots uses the plot root and checks the plots in the same manner as harvester.
- chia-check-plots now does not override plots.yaml, which means concurrent plots will properly be added to plots.yaml.
- Fixed and issue where Relic and thus blspy would crash on processors older than Haswell as they don't support lzc.
- Some non-critical networking errors are no longer logged.
- Blocks with compact proofs of time are now able to be updated into the node database.
- The install-timelord.sh script now correctly determines which version of python it is running under and correctly builds vdf_client and correctly links to vdf_bench. It also handles upgrading CMake on Ubuntu's older than 20.04LTS do satisfy the new CMake 3.14+ requirement to build Timelord.
- An issue in asyncio was not being caught correctly and that could cause nodes to crash.
- The build status shield layout is fixed in README.md
- Raspberry Pi 3/4 with Ubuntu 20.04LTS 64 bit should compile again.
Known issues
- Plotting does not work on directories with spaces
- Log rotation is not working properly
- On Mac, when migrating from older versions, on the first launch of 1.6, several keys have to be migrated, and each key requires password entry for each process, up to possibly 9 times. Please keep entering your password and click "Always Allow".
- uPnP support on Windows may be broken. However, Windows nodes will be able to connect to other nodes and, once connected, participate fully in the network.
- Currently, there is no way to restore a Coloured Coin Wallet.
1.0beta5
Beta 1.5
-
This release is primarily a maintenance release for Beta 1.4. There was a regression in Chia Proof of Space (chiapos) that came from our efforts to speed up plotting on Windows native. Now k>=32 plots work correctly. We made additional bug fixes and corrected limiting small k size generation.
-
We have implemented a workaround for the
chia start
issues some were having upon crash or reboot. We will be rebuilding start and stop to be robust across platforms. This release re-includeschia-start-harvester
. -
Coloured coins now have a prefix to help identify them. When sending transactions, the new prefix is incompatible with older clients. Additionally, the user interface now refers to chia coins with their correct currency code of XCH.
-
We have made significant changes to the full node database to make it more reliable and quicker to restart. This requires re-syncing the current chain. If you use
chia init
then sync on first start will happen automatically. "$CHIA_ROOT" users will need to delete$CHIA_ROOT/db/*
before starting Beta 1.5. This also fixes the simulation issue in Beta 1.4 where tips could go "back in time." -
We have added an option to
chia-create-plots
to specify the second temporary directory. Creating a plot is a three step process. First a working file ending in.dat.tmp
is created. This file is usually 5 times larger than the final plot file. In the later stages of plotting a second temp file is created ending in.dat.2.tmp
which will grow to the size of the final plot file. In the final step, the.dat.2.tmp
is copied to the final.dat
plot file. You can now optionally set the directory for the.dat.2.tmp
file with the-2
flag. An example use case is plotting on a ramdisk and writing both the second temp file and the final file out to an SSD -chia-create-plots -n 1 -k 30 -t /mnt/ramdisk -2 /mnt/SSD -d /mnt/SSD
. -
There was a bug in Timelord handling that could stop all VDF progress.
-
chia init
properly migrates from previous versions including the k>=32 workaround. Additionally, the farming target key is checked to make sure that it is the valid and correct public key format.
Known issues
-
uPnP support on Windows may be broken. However, Windows nodes will be able to connect to other nodes and, once connected, participate fully in the network.
-
Currently, there is no way to restore a Coloured Coin Wallet.