Releases: Chia-Network/chia-blockchain
1.6.1-b1
This is the 1.6.1-b1
pre-release
.
This is the first pre-release
that will produce the first beta
(-b1
) builds for an upcoming 1.6.1
release.
Should the testing of this pre-release
surface issues that need to be fixed prior to a full release
, changes can be merged to main
, and another pre-release
will be created, which will be tagged as 1.6.1-b2
.
The tag 1.6.1-b1
conforms to PyPi, NPM, and all other file extensions for various packages we build.
What's Changed
- rpc: Improve RPC server start/stop by @xdustinface in #12768
- util: Drop partially implemented BIP39 passphrase support by @xdustinface in #12748
- fix a few instances of coin name logging by @arvidn in #12818
- nft wallet reorg fix by @trepca in #12828
- tests: Drop redundant
RpcServer
instances by @xdustinface in #12769 - increased timeouts for less NFT test flakiness by @trepca in #12847
- Swap intel installer to 10.14 runners by @cmmarslender in #12735
- Update the arm64 deb installer to also use the 1804 builder container by @cmmarslender in #12864
- checkpoint: into main from release/1.5.1 @ 76b173e by @wallentx in #12868
- Few additional sets of test SSL certs/keys for CI by @paninaro in #12702
- util: Simplify key deletion in
Keychain
by @xdustinface in #12750 - pre-commit: Reorder hooks by runtime by @xdustinface in #12775
- pre-commit: Fix a venv activation issue on linux by @xdustinface in #12822
- Adding Chia-Network/required-reviewers as CODEOWNERS by @wallentx in #12812
- add benchmark for MempoolManager.add_spendbundle by @arvidn in #12780
- util: Simplify public key getters in
Keychain
by @xdustinface in #12751 - util: Raise in
Keychain.add_private_key
if the key already exists by @xdustinface in #12747 - wallet code reuse by @almogdepaz in #12310
- server|tests: Delay the harvester -> farmer connection in some tests by @xdustinface in #12862
- rpc: Recover
_set_state_changed_callback
call instart_rpc_server
by @xdustinface in #12872 - skip setproctitle test by @altendky in #12886
- Early return from olivernyc by @mariano54 in #12877
- checkpoint: into main from release/1.5.1 @ c39d7ac by @AmineKhaldi in #12881
- cmds: Drop unused
chia_minor_release_number
by @xdustinface in #12357 - Add REMARK to
ConditionOpcodes
by @Quexington in #12771 - Bump parse-url from 6.0.0 to 6.0.5 in /build_scripts/npm_linux_deb by @dependabot in #12807
- just raise, not raise e when reraising by @altendky in #12825
- Combine m1 and intel mac installers to a single workflow by @cmmarslender in #12890
- checkpoint: into main from release/1.5.1 @ 51e8c8b by @AmineKhaldi in #12899
- Ms.wlt node unsynced by @mariano54 in #12875
- Decrease default number of public keys from 750 to 425 by @mariano54 in #12913
- return to use awaitable in WP by @almogdepaz in #12910
- Ms.peer required + sync speedup by @mariano54 in #12889
- Fix chia farm summary if using a remote full node by @yan74 in #12901
- checkpoint: into main from release/1.5.1 @ 9225236 by @AmineKhaldi in #12914
- checkpoint: into main from release/1.5.1 @ e311bf4 by @AmineKhaldi in #12929
- Bring-in Mariano's Remove accidentally added debugging logs by @AmineKhaldi in #12928
- checkpoint: into main from release/1.5.1 @ bcec9e2 by @AmineKhaldi in #12936
- checkpoint: into main from release/1.5.1 @ 5e36274 by @AmineKhaldi in #12938
- optimize simple_solution_generator() by @arvidn in #12798
- checkpoint: into main from release/1.5.1 @ 50af8df by @AmineKhaldi in #12947
- add catch for 100% royalties as the offers for them are broken by @jack60612 in #12951
- checkpoint: into main from release/1.5.1 @ a041576 by @AmineKhaldi in #12955
- Bump chia_rs dependency by @arvidn in #12919
- checkpoint: into main from release/1.5.1 @ c1a9d6c by @AmineKhaldi in #12964
- no traceback for unknown wallet id request to nft_get_nfts by @altendky in #12961
- rust tree_hash() by @arvidn in #12923
- plotters: Move
install_plotter
intoplotters
by @xdustinface in #12403 - streamable: More custom exceptions by @xdustinface in #12316
- tests: Drop redundant
expected_state
parameter ofrun_sync_step
by @xdustinface in #12398 - upgrade installer build dependencies by @jack60612 in #12994
- checkpoint: into main from release/1.5.1 @ af60a81 by @AmineKhaldi in #12974
- Update the version for flake8 in the pre-commit-config.yaml by @pmaslana in #12895
- Move DB test to new directory by @aqk in #12831
- Update the version of pre-commit-hooks in the pre-commit-config.yaml … by @pmaslana in #12896
- revert change to change OR REPLACE -> OR FAIL in wallet_coin_store by @arvidn in #12924
- minor fixes by @arvidn in #12762
- Update package for installer by @jack60612 in #13008
- checkpoint: into main from release/1.5.1 @ 87e1ade by @AmineKhaldi in #13002
- Fix the DBWrapper test by @arvidn in #13000
- make web socket timeout a warning without a traceback by @altendky in #12824
- checkpoint: into main from release/1.5.1 @ b5cff3b by @AmineKhaldi in #13012
- util: Simplify
unlocks_keyring
and move it withobtain_current_passphrase
intocmds
by @xdustinface in #12850 - Change the pattern for running pre-commit. Previously, this was using… by @pmaslana in #12891
- streamable: Fix the message of
ParameterMissingError
+ Test custom error messages by @xdustinface in #12988 - cat_wallet mypy fixes by @arvidn in #12998
- Remove unnecessary split when starting daemon, by @jack60612 in #13007
- Allow developers to easily use standard chia clvm puzzles and libraries by @jack60612 in #13010
- No traceback for OSError 113 in WSChiaConnection.outbound_handler() by @altendky in #13016
- Adds handling for daemon not sending
initial_target_state
(#10058) by @bolshoytoster in #10087 - fix slight issue with simulator loading, this only really could affect tests by @jack60612 in https://github.com/Chia-Network/chia-bl...
1.6.1-a1
Alpha builds = internal CI testing
This is the 1.6.1-a1
pre-release
.
This is the first pre-release
that will produce the first alpha
(-a1
) builds to verify workflow functionality.
The testing of this pre-release
should surface issues that result in fixes made to main
.
If needed, the next subsequent build made to verify the functionality of a workflow should tagged as 1.6.1-a2
.
The tag 1.6.1-a1
conforms to PyPi versioning, NPM versioning, and all other file extensions for various packages we build.
1.6.0
1.6.0 is now available for download. This release is largely focused on providing a new primitive called DataLayer for developers. We also have added a new feature enabling dust filtering when syncing a wallet.
Key features of DataLayer include:
Key Value Store
- Tabular data can be stored as key/value pairs
- Keys and values of each row are stored as binary and can be any data type, including for example JSON
- The hash of the table (“root”) is stored in a singleton on chain
Data Propagation
- Datalayer data can be hosted by most/any HTTP server, including cloud providers like AWS, Azure, GCP
- Support for multiple URL mirrors of the data. Mirror URLs are announced on-chain to enable automatic discovery
- Includes a basic HTTP server with Chia
- Anyone can participate in ensuring the durability of blockchain data by hosting a mirror
Proof Of Inclusion
- The Chia DataLayer singleton can be spent by its owner in a way that cryptographically proves the inclusion of a particular row (or multiple rows), specified by the hash of the data in that row
Two-Party Commit
- Using DataLayer offer files and proofs of inclusion, two people can coordinate a simultaneous (“atomic”) update of their respective data
For end users:
Dust filtering
This is a new feature for end users that enables a wallet sync to ignore dust when calculating wallet balances. This benefits dusted wallets by further improving wallet sync speed through trusted or untrusted sync. After the first 200 transactions, the wallet will ignore coins below the dust size of 1 million mojos. Both the dust size threshold and the number of transactions are configurable in config.yaml. When dust is filtered the coin values do not show up in any transaction list and will also result in balances being calculated without the value of the dust being filtered. See our FAQ for more details.
Added
- DataLayer
- GUI Settings section for
DataLayer
Enable DataLayer
toggleEnable File Propagation Server
toggle
- XCH Dust Filter
- GUI Settings
Auto-Login
toggle (GUI only)
Changed
- Delayed pool config update until after sync
- Minor change to handling sync height to avoid race condition with blockchain DB
- Ignore
FileNotFoundError
when checking SSL file permissions if the file doesn’t exist
Fixed
- Fixed missing wallet
state_changed
events for GUI - Fixed several bugs related to wallet sync status
- Fixed GUI issue for CAT offers where the CAT Tail would not show in the tooltip for
Unknown CAT
s (Chia-Network/chia-blockchain-gui#950)
Known Issues
- The CLI command
chia configure --enable-data-server
, and theconfig.yaml
parameter atdata_layer.run_server
have no effect, and will be removed in the future - DataLayer offers cannot be accepted (
take_offer
) if the offer has inclusions for the exact same key/value data for both maker and taker inclusions.
1.5.1
Version 1.5.1 of the Chia reference client is now available to download. This release includes some under the hood improvements and fun new features.
Performance optimizations:
- Wallet sync performance improvements when connected to a fully synced local trusted node or while in wallet only mode syncing to get much better speed and accuracy when syncing wallets with many coins and transactions. Wallet users will only see the full benefit if connected to a 1.5.1 node.
- Full node sync performance improvements to decrease full node sync times as well as reduce system resources required to run a node and farm efficiently
- Wallet syncing for the last used wallet key will begin as soon as the wallet service is started
NFT related updates:
- NFT for CAT trading support in the GUI - create or take offers trading CATs for NFTs in the graphical user interface
- Show/hide NFTs - Hide NFTs in your wallet so you don’t have to look at the NFT spam that is sent to you, or if you want to show off your collection without revealing everything
- Send NFT to burn address - Send unwanted NFTs to an unspendable address
- Handling wallet reorgs gracefully when dealing with NFTs
Other wallet updates
- View the peers that you are connected to when clicking on the Wallet status indicator
- GUI preferences are now stored in the mainnet directory to make them easier to find and if you wanted to keep different preferences for different GUI sessions
Deprecating legacy keyring support
- All users starting this version will be required to migrate to the new keyring support using
keyring.yaml
in preparation for a future release that will fully deprecate legacy keyring support - The new keyring support was introduced in 1.3 and most users will have gone through the migration when generating a new key or when importing an existing key
Added
- Add Source and Changelog to project_urls (Thanks @strayer!)
- Add condition code constant for REMARK, an always true Chialisp condition
- Add several wallet optimizations
- Add
chia db backup --backup_file <backup_file_destination>
(Thanks @neurosis69!) - Add debug option to log all SQL commands for wallet db (Thanks @neurosis69!)
- Additional data for
get_wallet_balance
andget_wallets
endpoints - Add
change_data
to_state_changed
since the later calls expect it - Add
Program.replace
- Add
new_transaction()
toDBWrapper2
- Add RPCs for getting/extending the current derivation path index
- Add symlinks to the UI RPM to mirror the .deb UI and the CLI installers
- Add support for excluding coins in
create_signed_transaction
wallet RPC (Thanks @felixbrucker!) - Add small coin selection improvements
- Add bulk cancel API
- Introduce
streamable.Field
- Introduce
Streamable.__post_init__
processing cache - Added minimum coin amount to various RPC calls
- Added new full_node RPC called
get_block_spends
- Get spends for block using transaction generator - Support for remembering the last used wallet key
- Documented deserialization length limitations (8191 bytes) in CLVM ROM. We recommend using a local version of the chialisp code when necessary
Changed
- Huge speedup in trusted wallet sync
- Previous time to sync 1000 tx: 90 seconds
- New time: 2 seconds
- Force keyring migration / Deprecate legacy keyring support
- Renaming series -> editions (full deprecation) (Thanks @DrakoPensulo!)
- Made various additions to the cache, and changes to validation to reduce CPU usage significantly
- Log full errors when
run_as_generator()
throws error - Sort
plot_paths
before splitting it into batches - Skip
plot_sync_callback
ifdelta
isNone
- Validate the path in
add_plot_directory
- Cache convert functions from
dataclass_from_dict
- Big thanks to @neurosis69 for the following:
- Allow bigger chunks of bind variables per SQL statement
- Execute SQL updates as chunks in
_set_spent function
fortx_removals
- Optimized column selection in various tables to use specific columns rather than all columns
- Write blockchain DB full node startup progress to debug.log
- Clean up and Refactor
chia show
command - Increment the dirty counter when setting
height-to-hash
map entries plotting.cache.DiskCache
->util.misc.VersionedBlob
- Improve
chia farm summary
- Optimize
std_hash
incoin.py
- Improved many tests
- Remove
big_ints
list - Improved UX for
plotnft claim
- Upgrade
chia-rs
to streamable support - Allow switching keys during sync
- Optimize
get_hash
by not double converting - Don't re-hash the same objects
- Drop redundant
PlotPathRequestData
conversion - Make
PlotsRefreshParameter
streamable + usefrom_json_dict
- Make
Plot{Info|Path}RequestData
streamable + usefrom_json_dict
- Optimize request additions
- Stop and join watchdog observer
- Remove chia.util.path.mkdir()
- Remove the constants_json field
- Don't convert
ConsensusConstants
to/from JSON - Move some class methods out of
Streamable
- Request header blocks, and new rate limits
- Replaced the python implementation of
Coin
with the Rust nativeCoin
fromchia_rs
- Watchdog==2.1.9 for bad file descriptor avoidance
- Be specific about
*args
inRpcServer
state changed methods - Make WalletUserStore.create_wallet() raise on failure, and return non-optional
- Switch back to official dnspython for v2.2.0
- Not optional -
WalletNode.wallet_state_manager
,.server
,.keychain_proxy
- More
uint64()
for NFT coin amount - Delay
WalletNode._new_peak_queue
instantiation to avoid errors - Remove unused
WalletCoinStore.get_unspent_coins_at_height
NFTInfo.royalty_puzzle_hash
isOptional
but notNone
here- Handle
KeychainProxyConnectionFailure
inFarmer.setup_keys
- Made simplifications to the
WalletCoinStore
class - Removed wallet transaction store cache
- Removed double
bytes32
conversion - Turn
dataclass_from_dict
intostreamable_from_dict
- Replace service
running_new_process=
parameter by.setup_process_global_state()
method - Changed wallet peer selection to prefer nodes in the following order
- trusted & synced
- untrusted & synced
- trusted & unsynced
- untrusted & unsynced
- Simplified pool cache
- Remove unused finished_sync_up_to (Thanks @olivernyc!)
- Expand
Field
and introduceStreamable._streamable_fields
- Removing
logging.basicConfig()
fromChiaServer.__init__()
- Use coin selection algorithm for DID wallets
- Simplify service start configuration loading
- Wallet network messages now have higher priority than Node network messages
- Wallet now checks the mempool before adding new transactions to the queue
- Implemented new context manager for DB access (DBWrapper2) that supports nested transactions, improved support for concurrency, and simplified exception handling
- Upgraded
clvm-tools-rs
to0.1.19
- Upgraded
clvm_tools
to0.4.5
- Simplify wallet transaction store
- Remove unused
_clear_database()
functions - Optimized wallet DB queries using
execute_fetchall
- Optimize wallet
set_spent()
- Added support for minimum coin amount and excluding coins in
select_coin
RPC - Log
chia_full_version_str
in daemon and all services - On failure to get keys, log and return exception
- Update certificate store as of July 19, 2022
- Optimize puzzlehash generation (~65% faster)
- Deprecated the ability to disable the keyring passphrase feature
- Minor simplifications to derivation records
- Update protocol message checks
- Changed
initial_num_public_keys
default to 425 - Minor optimizations for block store
- Optimize get_coins_to_check()
- Minor wallet optimizations when determining coin type
- Avoid redundant printing of puzzle program in NFT uncurry attempt
- Substantially reduced overall size of Chia packages
- Log the plot refresh parameter on start
- Log blockchain database file used along with schema version on startup
- Removed redundant request for SubEpochData
Fixed
- Log error for failed service start
- Improve logging in
plot_sync.{receiver|delta}
- Fix default value assignments for
dataclass_from_dict
for streamable - Fix
change_payout_instructions
for invalid addresses - Fix SQL error when only config file is deleted
- Fix issue with wallet not handling rejection from unsynced local node properly
- Fix for transfer NFT with DID
- Fix misleading argument name (Thanks @olivernyc!)
- Fix knapsack coin selection
- Old performance with 200k coins: 60 seconds
- New: 0.78 seconds.
- Fix trusted_peer example in initial-config.yaml by (Thanks @ojura!)
- Replace existing simulator config & Fix simulator
- Fix attribute error on
FullNode.simulator_transaction_callback
- Fix passphrase hint
- Bump clvm_tools_rs for bug fix
- Fix NFT > CAT Royalty splitting bug
- Fixed
mint_nft
- Fix no keys loaded error by making KeychainProxy automatically reconnect when a connection is lost
- Fix a migration bug of NFT table change
- NFT wallet reorg fix
- Fix NFT wallet naming issue
- Can't shadow
info
which isNFTInfo
in the first place - Initialize logging before Service instantiation
- Make sure chia commands output help when no args are given (#11013) (Thanks @noneus!)
- Fixed bugs in fork point calculation, and reduced number of times weight-proofs are validated
- Fixed bug in starting the crawler (set service name to
full_node
) - NFT transfer/minting commands now validate the specified addresses
- Block summaries of CAT1 offers in the RPC and CLI
1.5.0
For those who have been collecting or trading CAT tokens, it’s time to upgrade to CAT2s. For more details on why we are upgrading the CAT standard, see our blog post here. If you have questions about this release and how it affects you, please start with our FAQ here.
CAT2 related updates:
- Support for new CAT2 tokens fixing vulnerability, dropped support for CAT1 tokens
- New wallet database is created and synced after upgrading to 1.5. This will help ensure a static copy of the previous database is available for reviewing previous transactions or offer history. Depending on the number of transactions in your wallet, please remember that the initial wallet sync may take a bit longer than normal.
- Info tooltip next to tokens to help users understand why they won’t see their CAT1 tokens anymore
- Link in tooltip that takes the user to cat1 balance website that also passes through the active wallet pub key
- Link in tooltip to the blog post
- Added display of current derivation index height
- Allow user to manually update the derivation index to help ensure all coins are found and totaled up
CAT1 offers will now show as an invalid offer. A link is provided to docs page that explains all the different reasons why an offer could be invalid including due to the offer including a CAT1.
Other related updates:
- Updated NFT content to say “Editions” instead of “Series” in the user interface as well as in the command line
- Updated CLI flags to deprecate flags for “series” and replace them with flags for “editions”
- Show DIDs when viewing an offer for NFT to help users more easily identify and check offers for scam projects
- Show “Chia Network” explicitly for the Chia DID that minted the Chia Friends collection
- NFT with DID wallets are automatically created now when a new DID (aka “Profile”) is created
- Fixed issue when viewing an offer for an NFT to show the NFT value plus the royalties as the total amount deducted when the offer is accepted
- Updated DID wallet to use the new coin selection algorithm based on the knapsack protocol
- Fixed some edge case handling with the new coin selection algorithm that made it difficult to create change for yourself
Added
- Added derivation index information to the Wallet UI to show the current derivation index height
- Added section in Settings to allow the user to manually update the derivation index height in order to ensure the wallet finds all the coins
- Added a tooltip for users to understand why their CAT balance has changed as new CAT2 tokens get re-issued
- There is now a
blockchain_wallet_v2_r1_*.sqlite
DB that will be created, which will sync from 0 to look for CAT2 tokens. This preserves a copy of your previous wallet DB so that you are able to look up previous transactions by using an older wallet client - Extended
min_coin
to RPC calls, and CLI for coin selection - Show DID in the offer preview for NFTs
- Added wallet RPCs (
get_derivation_index
,update_derivation_index
) to enable the GUI, and CLI to report what the current derivation index is for scanning wallet addresses, and also allows a user to move that index forward to broaden the set of addresses to scan for coins
Changed
- Changed the DID Wallet to use the new coin selection algorithm that the Standard Wallet, and the CAT Wallet already use
- Changed returning the result of send_transaction to happen after the transaction has been added to the queue, rather than it just being added to the mempool.
- Increased the priority of wallet transactions vs full node broadcasted transactions, so we don't have to wait in line as a wallet user
- Deprecated the
-st, --series-total
and-sn, --series-number
RPC and CLI NFT minting options in favor of-ec, --edition-count
and-en, --edition-number
to align with NFT industry terms - When creating a DID profile, a DID-linked NFT wallet is automatically created
- Update
chia wallet take_offer
to show NFT royalties that will be paid out when an offer is taken - Added a parameter to indicate how many additional puzzle hashes
create_more_puzzle_hashes
should create
Fixed
- Fixed [CVE-2022-36447] where in tokens previously minted on the Chia blockchain using the
CAT1
standard can be inflated in arbitrary amounts by any holder of the token. Total amount of the token can be increased as high as the malicious actor pleases. This is true for everyCAT1
on the Chia blockchain, regardless of issuance rules. This attack is auditable on-chain, so maliciously altered coins can potentially be "marked" by off-chain observers as malicious. - Fixed issue that prevented websockets from being attempted if an earlier websocket failed
- Fixed issue where
test_smallest_coin_over_amount
did not work properly when all coins were smaller than the amount - Fixed a performance issue with knapsack that caused it to keep searching for more coins than could actually be selected. Performance with 200k coins:
- Old: 60 seconds
- New: 0.78 seconds
- Fixed offer compression backwards compatibility
- Fixed royalty percentage check for NFT0 NFTs, and made the check for an offer containing an NFT more generalized
- Fixed timing with asyncio context switching that could prevent networking layer from responding to ping
1.4.0
Artists and developers (and everyone else) rejoice! The time has finally arrived as this is the much anticipated release for NFTs.
We took a comprehensive and empathy-first approach to understand the ecosystem, the technology’s benefits (both realized and unrealized), the challenges and the pain points. We built our NFT1 standard to offer novel and expanded functionality we believe addresses the friction NFT creators and collectors experience, as well as serve as the foundation to scale the technology into new use cases.
The changelog list below is long, but here’s the TLDR:
For creators:
- Mint an NFT from the command line or through RPCs
- Supports on-chain and off-chain metadata with cryptographic hashes at the time of minting
- Add/update additional links to the NFT content to ensure permanence to the NFT
- Upon minting, set a permanent royalty percentage and royalty wallet address to get paid on each sale that is enforced on-chain and independent of any marketplace
- Mint an NFT and transfer to your profile (aka DID) to create the first step in provenance to your NFT
- Add an off-chain license document that details the rules for others to use your NFT, along with an on-chain sha-256 hash of that document
- New developer documentation to help you get started with NFTs
For everyday users:
- Chia’s wallet now supports the following features:
- View a gallery of your NFT images
- Send an NFT to your IRL friends, family, and web3 frens
- Receive an NFT at your XCH wallet address
- Use Offers to buy or sell NFTs for XCH
- Share NFT offers to dexie.space (with more integrations to come!)
- Create and label a profile (aka DID) that links your identifier to the NFT and help build out provenance
- Download the NFT content so you can have a copy of it to use anywhere
Download the latest update and start creating and building out your collections!
Known Issues
- You can only mint one NFT per block if you’re using Chia’s CLI or RPC. We are currently working on a bulk minting tool that will address this. If you attempt to mint more than one NFT in a single block, you’ll receive
“{'error': 'ALREADY_INCLUDING_TRANSACTION'}”
as aWARNING
in your log file. The CLI will indicate a successful transaction; it will not show this warning. The reason for this is because the mempool is rejecting your transaction, which happens after the wallet submits it. The transaction will be stuck in the Pending state.- Workaround: After minting an NFT, wait for the transaction to clear (approximately 1 minute) before attempting to mint another NFT. If you do see a Pending transaction in your wallet that doesn’t clear after several minutes, then you can remove it by doing the following:
- GUI - Click the “Actions” dropdown and click “Delete Unconfirmed Transaction”
- CLI - Run
chia wallet delete_unconfirmed_transactions
- Workaround: After minting an NFT, wait for the transaction to clear (approximately 1 minute) before attempting to mint another NFT. If you do see a Pending transaction in your wallet that doesn’t clear after several minutes, then you can remove it by doing the following:
- When creating a new Profile (aka DID), the GUI will immediately show the availability of the new Profile, but any actions taken on the new profile, like transferring an NFT will result in an error until the Profile has been written and confirmed on chain.
- Workaround: Wait for the Profile to be written on-chain and be sure add fees when creating a Profile to help speed up the process
- When transferring an NFT to a Profile (aka DID), doing more than one in quick succession will result in 2nd, 3rd, etc., NFTs to get stuck in “update pending” state.
- Workaround is to use the “Cancel Unconfirmed Transaction” on any of the NFTs that get stuck to unlock the NFTs
- When on testnet, the offer history screen may show “Unknown” instead of “TXCH”.
- Workaround is to restart the app
Added
- Added support for NFTs!!! :party:
- Added
chia wallet nft
command (see https://docs.chia.net/docs/13cli/nft_cli) - Added RPCs for NFT (see https://docs.chia.net/docs/12rpcs/nft_rpcs)
- Added
chia wallet did
command (see https://docs.chia.net/docs/13cli/did_cli) - Added RPCs for DID (see https://docs.chia.net/docs/12rpcs/did_rpcs)
- Enable stricter mempool rule when dealing with multiple extra arguments
- Added a retry when loading pool info from a pool at 2 minute intervals
- Added CLI options
--sort-by-height
and –sort-by-relevanceto
chia wallet get_transactions` - Harvester: Introduce
recursive_plot_scan
- Add libgmp-dev to Bladebit installation - thanks to @TheLastCicada
- Add support for multiple of the same CAT in aggregate offers - Thanks to @roseiliend
Changed
- New coin selection algorithm based on bitcoin knapsack. Previously chia selected the largest coin
- Updated chiapos to 1.0.10
- Updated chiavdf to 1.0.6
- Updated blspy to 1.0.13
- Updated setproctitle to 1.2.3
- Updated PyYAML to 6.0
- Updated pyinstaller to 5.0
- Bump clvm_tools_rs version to 0.1.9 for clvm stepper and add a test
- Modest speedup of syncing by batching coin lookups
- Cmds: Use the new
plot_count
ofget_pool_state
inplotnft show
- Set mempool size back to the original size at launch
- Plotting|tests|setup: Improve
PlotManager
cache - Wallet: Drop unused
WalletStateManager.get_derivation_index
- Harvester: Tweak
get_plots
RPC - Remove explicit multidict version from setup.py
- Simplify install.sh ubuntu version tracking
- Optimize BLS verification when public key is repeated
- Use Install.ps1 in build_windows.ps1
- Updated warning about
CHIA_ROOT
being set when running init - Cmds: Adjust stop daemon output
- Remove unused functions on MerkleSet
- Optimize hash_coin_list()
- Update CONTRIBUTING.md
- Remove outdated 3.8 upgrade comment
- Hint refactor
- Replace MerkleSet with the rust implementation
- Simplify SizedBytes and StructStream
- Allow services to set a non-default max request body size limit
- Reduce the redundant computations of coin_ids in block_body_validation
- Uses the new
from_bytes_unchecked
method in blspy, to improve perfo… - Remove the cache from CoinStore
- Keep daemon websocket alive during keyring unlock
- Support searching derived addresses on testnet.
- Optimize code to not perform useless subgroup checks
- Restore missing hints being stored as None (instead of 0-length bytes)
- Coin simplification
- Harvester: Use a set instead of a list to speed up availability checks
- Improved performance of debug log output
- Update plotters installation to include an
apt update
- thanks to @TheLastCicada - Early return from
_set_spent function
- Thanks @neurosis69 - Remove redundant condition in
get_coin_records
- Thanks @neurosis69 - Write python version error to stderr - thanks to @LuaKT
Fixed
- Fixed issues with harvesters not reconnecting properly - fixes #11466
- Return not synced if there are no connections - fixes #12090
- Fix issues with wallet resending transactions on various mempool and node errors - fixes #10873
- Fix some issues with
plotnft show
(#11897) - Handle ephemeral ports and dual stack (ipv4 & ipv6)
- Fix issues when wallet syncing and rolling back too far in the past
- Fixes issues with the Farmer Reward dialog incorrectly reporting there is no private key (#11036)
- Fix race condition, blockchain can change between two calls to get_peak
- Wallet: Fix
CATLineageStore
creation increate_new_cat_wallet
- Fix incorrect return in "rollback_to_block"
- Wallet: Some rollback fixes
- Fix issue with missing coins
- Fix Newer block issue
- Fix jsonify bool
- Fix wallet introducers for testnet
- Correct wallet CLI sent/received indication
- Correct "Older block not found" error message
- Print MempoolInclusionStatus as string
- Optimize Program.curry()
- Improve detection of disconnected websocket between services
- Correct install.sh usage short options list
- Make sure we set the sync to height correctly when we roll back
Thanks
- Thanks to @antouhou for his assistance with publishing
bls-signatures
to npm - Special thanks to our Community Developers Alpha Group who helped us in testing
- Thanks to @greimela for their contribution to the NFT project
- Thanks to all of our NFT partners
Full Changelog: 1.3.5...1.4.0
1.3.5
We've just released 1.3.5!
1.3.5 includes Python 3.10 support, fixes several bugs, and contains some quality of life improvements for small and large scale farmers.
Added
- Added Support for Python 3.10
- Performance improvements in harvesters during plot refresh. Large farmers likely no longer need to specify a very high plot refresh interval in config.yaml
- Added CLI only
.rpm
and.deb
packages to official release channels - Fixed an issue where some coins would be missing after a full sync
- Enabled paginated plot loading and improved plot state reporting
- Updated the farming GUI tab to fix several bugs
- Fix infinite loop with timelord closing
- Simplified install.sh ubuntu version tracking
- Fixed memory leak on the farm page
- Fixed list of plot files "in progress"
- Various farmer rpc improvements
- Improvements to the harvester
get_plots
RPC
Known Issues
There is a known issue where harvesters will not reconnect to the farmer automatically unless you restart the harvester. This bug was introduced in 1.3.4 and we plan to patch it in a coming release.
1.3.4
We've just released 1.3.4!
There's a bit of remodeling work on the GUI with this release, so we've added some context (and gifs!) to help you familiarize yourself with the changes. Check them out at our blog post - https://www.chia.net/2022/04/19/1.3.4-Improved-Token-Management.en.html
As always, we welcome your feedback.
Added
- Creating an offer now allows you to edit the exchange between two tokens that will auto calculate either the sending token amount or the receiving token amount
- When making an offer, makers can now create an offer including a fee to help get the transaction into the mempool when an offer is accepted
- Implemented
chia rpc
command - New RPC
get_coin_records_by_hint
- Get coins for a given hint (Thanks @freddiecoleman) - Add maker fee to remaining offer RPCs
- Add healthcheck endpoint to rpc services
- Optional wallet type parameter for
get_wallets
andwallet show
- Add
select_coins
RPC method by (Thanks @ftruzzi) - Added
-n
/--new-address
option tochia wallet get_address
- New DBWrapper supporting concurrent readers
- Added
config.yaml
option to run thefull_node
in single-threaded mode - Build CLI only version of the Ubuntu packaged installer (.deb files)
- Added new Ubuntu/Debian
apt
repo - https://github.com/Chia-Network/chia-blockchain/wiki/INSTALL#install-using-the-repository - Add
/get_stray_cats
API for accessing unknown CATs
Changed
- Significant harvester protocol update: You will need to update your farmer and all your harvesters as this is a breaking change in the harvester protocol. The new protocol solves many scaling issues. In particular, the protocol supports sending delta changes to the farmer - so for example, adding plots to a farm results in only the new plots being reported. We recommend you update your farmer first
- Left navigation bar in the GUI has been reorganized and icons have been updated
- Settings has been moved to the new left hand nav bar
- Token selection has been changed to a permanent column in the GUI instead of the drop down list along
- Manage token option has been added at the bottom of the Token column to all users to show/hide token wallets
- Users can show/hide token wallets. If you have
automatically_add_unknown_cats
inconfig.yaml
set tofalse
, new tokens will still show up there, but those wallets won’t get created until the token has been toggled on for the first time - CATs now have a link to Taildatabase.com to look up the Asset ID
- Ongoing improvements to the internal test framework for speed and reliability
- Updated clvm_tools to 0.4.4
- Updated clvm_tools_rs to 0.1.7
- Changed code to use by default the Rust implementation of clvm_tools (clvm_tools_rs)
- Consolidated socket library to aiohttp and removed websockets dependency
- During node startup, missing blocks in the DB will throw an exception
- Updated cryptography to 36.0.2
- The rust implementation of CLVM is now called
chia_rs
instead ofclvm_rs
- Updated code to use improved rust interface
run_generator2
- Code improvements to prefer connecting to a local trusted node over untrusted nodes
Fixed
- Fixed issues with claiming self-pool rewards with and without a fee
- Fixed wallet creation in edge cases around chain reorgs
- Harvester: Reuse legacy refresh interval if new params aren't available
- Fixed typos
lastest
>latest
(Thanks @daverof) - Fixed typo in command line argument parsing for
chia db validate
- Improved backwards compatibility for node RPC calls
get_blockchain_state
andget_additions_and_removals
- Fixed issue where
--root_path
option was not honored bychia configure
CLI command - Fixed cases where node DB was not created initially using v2 format
- Improved error messages from
chia db upgrade
- Capitalized display of
Rpc
->RPC
inchia show -s
by (Thanks @hugepants) - Improved handling of chain reorgs with atomic rollback for the wallet
- Handled cases where one node doesn't have the coin we are looking for
- Fixed timelord installation for Debian
- Checked for requesting items when creating an offer
- Minor output formatting/enhancements for
chia wallet show
- Fixed typo and index issues in wallet database
- Used the rust clvm version instead of python in more places
- Fixed trailing bytes shown in CAT asset ID row when using
chia wallet show
- Maintain all chain state during reorg until the new fork has been fully validated
- Improved performance of
get_coin_records_by_names
by using proper index (Thanks @roseiliend) - Improved handling of unknown pending balances
- Improved plot load times
Known Issues
- You cannot install and run chia blockchain using the macOS packaged DMG on macOS Mojave (10.14)
- Pending transactions are not retried correctly and so can be stuck in the pending state unless manually removed and re-submitted
1.3.3
It has come to our attention that our attempt to keep the patch of our fix on Windows for OpenSSL CVE-2022-0778 limited, was too narrow, and did not in fact fix the Windows installers. This emergency release remedies that, and handles some other smaller edge cases.
Fixed
- In version 1.3.2, our patch for the OpenSSL vulnerability was not complete for the Windows installer. (Thank you @xsmolasses of Core-Pool!)
- MacOS would not update OpenSSL when installing via
install.sh
- Some debugging information remained in
install.sh
1.3.2
Recently, a vulnerability surfaced in OpenSSL. Leveraging this particular vulnerability against a Chia node would allow a bad actor to force it offline.
To protect your systems and maintain the network’s security, we have released version 1.3.2, specifically focused on addressing these vulnerabilities.
We strongly recommend that all users running a node (which should be most of you) update to version 1.3.2. As a note, this update will require restarting your node.
FAQ
Why is the updated version being released today?
We were notified about the vulnerability when it was made public, but at that time, there was no mitigation available and an unknown ETA on the fix. We did miss the follow-up fix announcement and will be reviewing our internal processes to ensure our quick response in the future.
Is my data/computer/identity safe?
There is no identified vulnerability to these items at this time.
Is my XCH safe?
Yep! (Even if you do not make this update, your XCH should still be safe as well). Though if you are not on 1.3.1 already, moving to 1.3.2 will have some of the same balance display caveats in releases 1.X to 1.3.0, of which you'll need to be mindful.
What are the actual changes in version 1.3.2?
The version 1.3.2 update is focused specifically on addressing the OpenSSL vulnerability by using OpenSSL version 1.1.1n. All documentation for changes can be found in these release notes.
What will be done in the future to ensure something like this doesn’t happen again?
Vulnerabilities are found all the time in software, and the organizations who rely on those libraries always need to be diligent to roll those updates into their software once known fixes are available and stable. We will continue to monitor for and incorporate those changes when required.
Is it safe to remain in a pool?
This update, and the related vulnerability, should have no impact on your Pooling efforts.
Fixed
- Fixed OpenSSL vulnerability CVE-2022-0778 (Thank you for the nudge @skweee!!)