Howdy, folks!
We appreciate all of the feedback that we've received from our 1.3.0 release, and are happy to deliver 1.3.1. This point release includes several fixes to issues that were introduced in 1.3.0. While there is still more work to be done, 1.3.1 includes enough important fixes that make it worth delivering to you now.
Added
- Added checks to ensure wallet address prefixes are either
xchortxch. - Added a better TLS1.3 check to handle cases where python is using a non-openssl TLS library.
Changed
- Update the database queries for the
block_count_metricsRPC endpoint to utilize indexes effectively for V2 DBs. - Ongoing improvements to internal test framework for speed and reliability.
Fixed
- Improved config.yaml update concurrency to prevent some cases of the wrong pool being used for a PlotNFT.
- Fixed
chia keys showdisplaying non-observer-derived wallet address. - Fixed
plotnft claimreturning an error. - Fixed invalid DB commit that prevented rollback of coin store changes.
- Fixed locking issue with
PlotManager.plotsthat caused high lookup times on plots. - Fixed exception when
chia keys migrateis run without needing migration. - Fixed farmer rewards dialog (GUI).
- Fixed display of pool payout address (GUI).
- Fixed display of harvesters status when harvesters are restarted (GUI).
- Fixed wallet RPC
get_offers_countreturning an error when there are no trades (Thanks, @dkackman!) - Fixed spelling of "genrated" (Thanks again, @dkackman!)
- Fixed typo "log_maxbytessrotation" in initial-config (@skweee made their first contribution!)
We at Chia have been working hard to bring all of our new features together into one easy-to-use release. Today, we’re proud to announce the release of our 1.3.0 client. There is a lengthy list of added features and changes, as well as a few noteworthy items to be aware of when upgrading. We'd also like to give a very special thanks to our beta testers! Thanks to their efforts, we were able to find, and resolve many bugs during the beta phases of this release.
Added:
- CAT wallet support - add wallets for your favorite CATs.
- Offers - make, take, and share your offers.
- Integrated light wallet sync - to get you synced up faster while your full node syncs.
- Wallet mode - Access just the wallet features to make and receive transactions.
- Farmer mode - All your farming tools, and full node, while getting all the benefits of the upgraded wallet features.
- New v2 DB - improved compression for smaller footprint (the v2 DB is created alongside the v1 DB. Please be sure to have enough disk space before executing the DB upgrade command).
- Key derivation tool via CLI - lets you derive wallet addresses, child keys, and also search your keys for arbitrary wallet addresses/keys.
- Light wallet data migration - CAT wallets you set up and your offer history will be carried over.
- The farmer will report version info in User-Agent field for pool protocol (Thanks @FazendaPool).
- Added new RPC, get_version, to the daemon to return the version of Chia (Thanks @dkackman).
- Added new config.yaml setting, reserved_cores, to specify how many cores Chia will not use when launching process pools. Using 0 will allow Chia to use all cores for process pools. Set the default to 0 to allow Chia to use all cores. This can result in faster syncing and better performance overall especially on lower-end CPUs like the Raspberry Pi4.
- Added new RPC, get_logged_in_fingerprint, to the wallet to return the currently logged in fingerprint.
- Added new CLI option, chia keys derive, to allow deriving any number of keys in various ways. This is particularly useful to do an exhaustive search for a given address using chia keys derive search.
- Div soft fork block height set to 2,300,000.
- Added the ability to add an optional fee for creating and changing plot NFTs.
- Added multiprocessing_start_method: entry in config.yaml that allows setting the python start method for multiprocessing (default is spawn on Windows & MacOS, fork on Unix).
- Added option to "Cancel transaction" accepted offers that are stuck in "pending".
Changed:
- Light wallet client sync updated to only require 3 peers instead of 5.
- Only CATs from the default CAT list will be automatically added, all other unknown CATs will need to be manually added (thanks to @ojura, this behavior can be toggled in config.yaml).
- New sorting pattern for offer history - Open/pending offers sorted on top ordered by creation date > confirmation block height > trade id, and then Confirmed and Cancelled offers sorted by the same order.
- When plotting multiple plots with the GUI, new items are taken from the top of the list instead of the bottom.
- CA certificate store update.
- VDF, chiapos, and blspy workflows updated to support python 3.10 wheels.
- We now store peers and peer information in a serialized format instead of sqlite. The new files are called peers.dat and wallet_peers.dat. New settings peers_file_path and wallet_peers_file_path added to config.yaml.
- CLI option chia show will display the currently selected network (mainnet or testnet).
- CLI option chia plots check will display the Pool Contract Address for Portable (PlotNFT) plots.
- Thanks to @cross for adding the ability to resolve IPv6 from hostnames in config.yaml. Added new config option prefer_ipv6 to toggle whether to resolve to IPv6 or IPv4. Default is false (IPv4).
- The default timeout when syncing the node was increased from 10 seconds to 30 seconds to avoid timing out when syncing from slower peers.
- TLS 1.2 is now the minimum required for all communication including peer-to-peer. The TLS 1.2 allowed cipher list is set to: "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256".
- In a future release the minimum TLS version will be set to TLS 1.3. A warning in the log will be emitted if the version of openssl in use does not support TLS 1.3. If supported, all local connections will be restricted to TLS 1.3.
- The new testnet is testnet10.
- Switch to using npm ci from npm install in the GUI install scripts.
- Improved sync performance of the full node by doing BLS validation in separate processes.
- Default log rotation was changed to 50MiB from 20MiB - added config.yaml setting log_maxbytesrotation to configure this.
- Thanks to @cross for an optimization to chiapos to use rename instead of copy if the tmp2 and final files are on the same filesystem.
- Updated to use chiapos 1.0.9.
- Updated to use blspy 1.0.8.
- Implemented a limit to the number of PlotNFTs a user can create - with the limit set to 20. This is to prevent users from incorrectly creating multiple PlotNFTs. This limit can be overridden for those users who have specific use cases that require more than 20 PlotNFTs.
- Removed the option to display "All" rows per page on the transactions page of the GUI.
- Updated the background image for the MacOS installer.
- Changed the behavior of what info is displayed if the database is still syncing.
- It should not be expected that wallet info, such as payout address, should not reflect what their desired values until everything has completed syncing.
- The payout instructions may not be editable via the GUI until syncing has completed.
Fixed:
- Offer history limit has been fixed to show all offers now instead of limiting to just 49 offers.
- Fixed issues with using madmax CLI options -w, -G, -2, -t and -d (Issue 9163) (thanks @randomisresistance and @lasers8oclockday1).
- Fixed issues with CLI option –passhrase-file (Issue 9032) (thanks @moonlitbugs).
- Fixed issues with displaying IPv6 address in CLI with chia show -c.
- Thanks to @chuwt for fix to looping logic during node synching.
- Fixed the chia-blockchain RPM to set the permission of chrome-sandbox properly.
- Fixed issues where the wallet code would not generate enough addresses when looking for coins, which can result in missed coins due to the address not being checked. Deprecated the config setting initial_num_public_keys_new_wallet. The config setting initial_num_public_keys is now used in all cases.
- Thanks to @risner for fixes related to using colorlog.
- Fixed issues in reading the pool_list from config if set to null.
- Fixed display info in CLI chia show -c when No Info should be displayed.
- Thanks to @madMAx43v3r for fixes in chiapos related to a possible race condition when multiple threads call Verifier::ValidateProof.
- Thanks to @PastaPastaPasta for some compiler warning fixes in bls-signatures.
- Thanks to @random-zebra for fixing a bug in the bls-signature copy assignment operator.
- Thanks to @lourkeur for fixes in blspy related to pybind11 2.8+.
- Thanks to @nioos-ledger with a fix to the python implementation of bls-signatures.
- Thanks to @yan74 for help debugging a race condition writing to config.yaml during beta.
- Fixed issue where the DB could lose the peak of the chain when receiving a compressed block.
- Fixed showing inbound transaction after an offer is cancelled.
- Fixed blockchain fee "Value seems high" message showing up when it shouldn't.
- Bugs in pool farming where auth key was being set incorrectly, leading to invalid signature bugs.
- Memory leak in the full node sync store where peak hashes were stored without being pruned.
- Fixed a timelord issue which could cause a few blocks to not be infused on chain if a certain proof of space signs conflicting blocks.
Known Issues:
- When you are adding plots and you choose the option to “create a Plot NFT”, you will get an error message “Initial_target_state” and the plots will not get created.
- Workaround: Create the Plot NFT first in the “Pool” tab, and then add your plots and choose the created plot NFT in the drop down.
- When you close the Chia app, regardless if you are in farmer mode or wallet, the content on the exit dialog isn’t correct.
- If you start with wallet mode and then switch to farmer mode and back to wallet mode, the full node will continue to sync in the background. To get the full node to stop syncing after switching to wallet mode, you will need to close the Chia and relaunch the Chia app.
- Wallets with large number of transactions or large number of coins will take longer to sync (more than a few minutes), but should take less time than a full node sync. It could fail in some cases.
- Huge numbers cannot be put into amount/fee input for transactions in the GUI.
- Some Linux systems experience excessive memory usage with the value default/python_default/fork configured for multiprocessing_start_method:. Setting this value to spawn may produce better results, but in some uncommon cases, is know to cause crashes.
- Sending a TX with too low of a fee can cause an infinite spinner in the GUI when the mempool is full.
- Workaround: Restart the GUI, or clear unconfirmed TX.
- Claiming rewards when self-pooling using CLI will show an error message, but it will actually create the transaction.
1.2.11 Chia blockchain 2021-11-4
Farmers rejoice: today's release integrates two plotters in broad use in the Chia community: Bladebit, created by @harold-b, and Madmax, created by @madMAx43v3r. Both of these plotters bring significant improvements in plotting time. More plotting info here.
This release also includes several important performance improvements as a result of last weekends "Dust Storm", with two goals in mind: make sure everyone can farm at all times, and improve how many transactions per second each node can accept, especially for low-end hardware. Please know that these optimizations are only the first wave in a series of many over the next few releases to help address this going forward. While the changes we have implemented in this update may not necessarily solve for every possible congestion scenario, they should go a long way towards helping low-end systems perform closer to expectations if this happens again.
Added
- Performance improvements for nodes to support higher transaction volumes, especially for low powered devices like RaspBerry Pi. Full details at #9050.
- Improved multi-core usage through process pools.
- Prioritized block validation.
- Added transaction queues for more efficient handling of incoming transactions.
- Increased BLS pairing cache.
- Integrated the Bladebit plotter to CLI and GUI. Thanks @harold-b for all your hard work on this, and welcome again to the Chia Network team!
- Added the Madmax plotter to CLI and GUI. Thanks @madMAx43v3r for your support!
- Added option to configure your node to testnet using to
chia init --testnet.
Changed
- Improved the wallet GUI's startup loading time by loading the default private key's fingerprint.
- Upgraded from clvm_rs 0.1.14 to 0.1.15.
Fixed
- Minor verbiage and syntax changes in CLI and GUI.
- Partial version to fix launcher name definition.
- Fix harvester plot loading perfomance issues.
- Fixed a packaging failure when passphrase is being used. Thanks @ForkFarmer for reporting this defect.
- Fixed launcher name definition, which resolved an issue for some users in which wallet-node couldn't sync.
- Fixed a bug in the GUI that prevented some users from switching their plotNFT.
Known Issues
- PlotNFT transactions via CLI (e.g.
chia plotnft join) now accept a fee parameter, but it is not yet operable.
1.2.10 Chia blockchain 2021-10-25
We have some great improvements in this release: We launched our migration of keys to a common encrypted keyring.yaml file, and we secure this with an optional passphrase in both GUI and CLI. We've added a passphrase hint in case you forget your passphrase. More info on our wiki. We also launched a new Chialisp compiler in clvm_tools_rs which substantially improves compile time for Chialisp developers. We also addressed a widely reported issue in which a system failure, such as a power outage, would require some farmers to sync their full node from zero. This release also includes several other improvements and fixes.
Added
- Added support for keyring migration from keychain, and the addition of passphrase support. Learn more at our wiki.
- Enabled experimental use of a new Chialisp compiler in clvm_tools_rs in chia-blockchain, which is off by default, and substantially improves compile time.
- Added Windows PowerShell scripts to support installation from source.
- Added a test to check that we don't reorg subslots unless there is a new peak.
- Added harvester info to farmer logging.
- Add 'points found 24h' to CLI reporting.
- Added an alternative to pkm_pairs_for_conditions_dict() which is a bit more straightforward and returns the public keys and messages in the forms we need them to validate them.
- Added ability to see unopenable plots at the end of plots check.
- Added Program.at utility function.
Changed
- Truncate points_[found,acknowledged]_24h to 24 hours at each signage point.
- Improved reliability of test_farmer_harvester_rpc.py, by increasing the interval between harvester checks, which should avoid spamming logs with excessive plot refreshing and cache updates.
- Thanks @cross for change that allows using IPv6 address in config.yaml for remote harvesters and other chia services.
- Change to stop creating unused indexes in block_records and full_blocks tables.
- Removed unnecessary index in CoinStore & add additional benchmarks.
- Changed db_sync setting to default to FULL. In a prior release, this setting caused some users to have to resync their full node from zero if the node went offline, such as in a power outage. Users can change this to OFF in config.yaml.
- Updated the coin_store benchmark to enable synchronous mode when talking to the DB, since that's the default now, and improves the output a bit.
- Updated the old comment on chia/util/streamable.py with newer developer documentation.
- Minor GUI changes based on community feedback.
- Thanks @jack60612 for your help in improving our GUI code, including upgrading to electron 13, migration to electron remote, updating the latest dependencies, and more.
Fixed
- Corrected a super-linter name typo to GitHub
- Thanks @sharjeelaziz for correcting our typo in your name. Our apologies for the error!
- In macOS builds, changed the export value of NOTARIZE to fix some build failures.
- Fix log output for duplicated plots.
- Removed a flaky mtime check for plots that resolved an issue where file_path.stat() shows multiple copies of plots and slows performance of the farmer. Thanks @timporter for the assist on this one.
- Thanks @jcteng for fixing a bug on the Chia DID wallet that showed 'mojo:'' instead of 'mojo'.
1.2.9 Chia blockchain 2021-10-01
This release is a cosmetic fix to replace the incorrect version number under the About section in the client to display the correct release version number.
Changed
- Changed "About" section in client to indicate correct release version.
1.2.8 Chia blockchain 2021-09-30
Happy farming!
Added
- Added RPC updates to support keyring migration and to support adding a passphrase for wallets in an upcoming release.
- Added plot memo caching in PlotManager, speeding initial loading and cached loading, by enabling harvester to save the parsed plot memo on disk on shutdown, then load it back into memory on startup so that it can skip key parsing calculations for all already known plots.
- Added a debug option to log all SQL commands.
- Added support for DID, our decentralized identity solution, as a building block toward Chia's broader set of DID capabilities.
- Thanks @olivernyc for the addition of a query in CoinStore to special case height 0 to avoid querying all unspent coins.
- Starting logging the timing of applying additions and removals to the coin store.
- Made max message size configurable in config.yaml, as a possible workaround for very large farms where reporting plot information exceeds the maximum message size.
- Added a config option for peer_connect_timeout.
- Added support for unhardened key derivations.
- Various CoinStore benchmark and performance improvements.
- Beta builds are built on every merge to main, and are now available from https://chia.net/download/.
- Thanks @Radexito for adding support for Raspberry Pi 4 64Bit to the GUI installation script.
- Added macOS keyring.yaml support, migrating keys from macOS Keychain to keyring.yaml to support an upcoming release in which we'll add an optional passphrase to wallets.
- We have made many full node changes to support our upcoming Chia Asset Token (CAT) standard and our upcoming standalone light wallet, which will use Chia's new electrum-style protocol to enable faster wallet syncing.
- We have many new translations added in this release. Thanks to the following community members for their contributions: Albanian @ATSHOOTER; Arabic @younes.huawei.test; Belarusian @LUXDAD; Catalan @Poliwhirl; Chinese Traditional @MongWu-NeiTherHwoGer-Long, @danielrangel6; Chinese, Simplified @SupperDog; Croatian @vjukopila5 @marko.anti12; Czech @HansCz; Danish @loppefaaret; Dutch @netlob;English @sharjeelazizn @darkflare; English, Australia @nzjake; English, New Zealand @nzjake @sharjeelazizn; Finnish @f00b4r; French @burnt; Hungarian @sirgeoff; Hebrew @Arielzikri; Indonesian @lespau;Lithuanian @Mariusxz; Polish @bartlomiej.tokarzewski; Portuguese @darkflare; Portuguese, Brazilian @fsavaget; Sinhala @HelaBasa;Slovak @atomsymbol; Spanish @needNRG; Spanish, Argentina @juands1644 @gdestribats; Spanish, Mexico @danielrangel6; Swedish @MrDyngrak; Thai @3bb.pintakam.7m1 @taweesak0803650558 @taweesak.25may1993 @3bb.pintakam.7m1; Turkish @baturman @ExtremeSTRAUSSER.
Changed
- Bluebox proofs are now randomized instead of looking at the oldest part of the blockchain first to find uncompacted proofs.
- Bumped sortedcontainers to version 2.4.0.
- Dropped some redundant code in plotting/manager.py
- Updated some hooks: Update
flake8to 3.9.2,pre-commit-hooksto 4.0.1,blackto 21.8b0 - Bump clvm_rs to 0.1.14.
- Added tests for invalid list terminators in conditions.
- Updated blspy to 1.0.6.
- Made a change to allow the host to be configurable for the timelord launcher.
- Thanks @dkackman for adding the ability to collect the IDs of plots as they are queued and return them with the response.
- Made the SpendBundle.debug use the default genesis challenge by default.
- Changes in full node to execute sqlite pragmas only once, at the level where the database is opened, and changed pragma synchronous=FULL to OFF to improve disk I/O performance. Also removed redundant database pragmas in wallet.
- Made a change to remove CoinStore's dependency on FullBlock to just pass in the parts of the block necessary to add the block.
- Improved log formatting.
- A change to logging to only log warnings when more than 10 seconds has passed, to reduce the number of warning logs.
- Improved and fixed some outdated messages in CLI. Thanks @jack60612 for the assist!
- We previously added a Rust condition checker, to replace our existing Python-based condition checker. In this release, we're removing the old Python code.
- Several clvm_rs updates to support our upcoming Chia Asset Token (CAT) standard.
Fixed
- Thanks @mgraczyk for the fix to keyring_path.
- Fixed an issue blocking the Ubuntu installer that required manual installation of Python 3.9 as a workaround.
- Fixed an issue where the config.yaml and keyring.yaml are only partially written out to, if another process is attempting to read the config while it's being written.
- Fixed rmtree call in create_pool_plot.
- Thanks @Knight1 for fixing an issue in which fix-ssl-permissions shows the current 'mode' not the 'updated mode'.
- Fixed Mypy issues on Python 3.9.7 that generated many errors when running mypy.
- Thanks @olivernyc for fixing an edge case with negative inputs to 'truncate_to_significant_bits'.
- Added a fix for Windows installs that were seeing exceptions when writing to the keyring.
Fixed
- Thanks to @jack60612 for fixing a bug that displayed 25 words instead of 24 words in some instances in the GUI.
1.2.6 Chia blockchain 2021-09-09
Today we’re releasing version 1.2.6 to address a resource bug with nodes, and we want to stress the importance of updating to it at the earliest convenience. The fix prevents a node from consuming excessive memory when many Bluebox Timelords are active on the chain.
Changed
- Updated to BLS 1.0.6.
- Updates to the Rust conditions parser.
- Adjusted plot refresh parameter to improve plot loading times.
Fixed
- Fixed memory utilization issue related to how the node handles compact VDFs generated from blueboxes. We recommend everyone update to this version to avoid memory issues that can impact farming and harvesting.
- Fixed issues with reloading plot files detected as bad (this can happen during plot copying).
1.2.4 Chia blockchain 2021-08-26
Added
- Enable the rust condition checker unconditionally in testnet.
- Added support for multiple wallets.
- Added a change to config.yaml to tolerate fields that replace network constants in config.yaml that don't exist, but print warning.
- Improvements to sync full nodes faster by improving the concurrency for downloading and validating blocks.
- Added new call for logging peer_host: get_peer_logging that will use the peer_host value, typically an IP address, when the peername cannot be retrieved.
- Added documentation for treehash params.
- Added a py.typed file that allows other projects that pip install chia-blockchain to type check using our functions with mypy.
- Added an RPC for coin records by multiple coin names.
- Enabled querying AAAA records for DNS Introducer.
- We now set the version for the GUI when doing a manual install using the install-gui.sh script. Uses a python helper to get the version of the chia install and then converts it into proper npm format and puts that into package.json.
- Added some new class methods to the Program objects to improve ease of use.
- Added an option to sign bytes as well as UTF-8 strings, which is particularly helpful if you're writing Chialisp puzzles that require signatures and you want to test them without necessarily writing a whole python script for signing the relevant data.
- Added a first version of .pre-commit-config.yaml and applied the changes required by the following initial hooks in separate commits. To use this you need to install pre-commit, see https://pre-commit.com/#installation/.
- We have added many new translations in this release based on community
submissions. Thanks to @ruizhe for Chinese, Traditional; @HansCz for Czech;
@LUXDAD for English, Australia; @f00b4r for Finnish; @jimkoen, @ruvado for German; @Arielzikri for Hebrew; @A-Caccese for Italian; @Hodokami for Japanese; @LUXDAD for Latvian; @vaexperience for Lithuanian; @LUXDAD for Russian; @juands1644 for Spanish, Argentina; @MrDyngrak, @ordtrogen for Swedish; @richeyphu for Thai; @Ansugo, @baturman for Turkish.
Changed
- Thanks @altendky for Correct * to ** kwargs unpacking in time_out_assert().
- Thanks @altendky for changing the default to paginate to chia wallet get_transactions to address cases such as piping and output redirection to a file where the command previously just hung while waiting for the user to press c for the next page.
- Removed commented-out debug breakpoints.
- Enabled Rust condition checker to add the ability to parse the output conditions from a generator program in Rust. It also validates some of the conditions in Rust.
- Switched IP address lookup to first use Chia's service ip.chia.net.
- Made changes so that when creating SSL certificate and private key files, we ensure that files are written with the proper file permissions.
- Define a new encrypted keyring format to be used to store keys, and which is optionally encrypted to a user-supplied passphrase. GUI for the passphrase will come in an upcoming release.
- Removed initial transaction freeze put in place at mainnet launch as it is no longer necessary.
- Separate locking and non-locking cases for get_confirmed_balance_for_wallet, which will allow calling a few wallet_state_manager methods while already under the wallet_state_manager lock, for example during DID wallet creation.
- Thanks to @Playwo for removing the index on coin_record spent column to speed up querying.
- Made a change to the conditions parser to either ignore or fail when it encounters unknown conditions. It also removes the UNKNOWN enum value from ConditionOpcodes.
- Renamed folder tests/core/types to tests/core/custom_types to address conflicts in debugger in PyCharm.
- Disabled DID wallet tests while DID wallet is under construction.
- Added pairing cache for faster aggregate signature verification.
- Added block height assertions after block farming.
- Added assertions for tx confirmation.
Fixed
- Fix single coin generator.
- Fixed an issue with duplicate plotnft names.
- Fixed an issue during node shutdown in which some AttributeErrors could be thrown if the shutdown happens before the node fully started up.
- Fixed mempool TX cache cost, where the cost of the mempool TX cache (for spend bundles that can't be included in a block yet) would not be reset when the cache was emptied.
- Fixed a failure to create a keychain_proxy for local keychains.
- Thanks to @mgraczyk for fixing type annotation in sync_store.
- Thanks to @darkverbito for fixing an issue on initial creation of a coloured coin where code always falls into default else clause due to lack of type conversion.
- Fixed NPM publish in clvm_rs.
- Thanks to @skweee for his investigation work on fixing mempool TX cache cost, where the cost of the mempool TX cache (for spend bundles that can't be included in a block yet) would not be reset when the cache was emptied.