Releases: tari-project/tari
Releases · tari-project/tari
v0.21.0
BREAKING CHANGES
- remove outdated wallet_ffi balance methods (#3528)
- rpc: read from substream while streaming to check for interruptions (#3548)
Features
- add ffi get mnemonic wordlist (#3538) (d8e0ced)
- optimize transaction validation for wallet (#3537) (9064b83)
Bug Fixes
- add check for old db encryption and provide warning (#3549) (69bbbdf)
- add decision step between header sync and pruned/archival (#3546) (23e868a)
- check for previously cancelled completed txn before accepting a repeat message (#3542) (911b83b)
- prevent race condition between block propagation and sync (#3536) (6bbb654)
- remove dns resolver config from cucumber tests, use default (#3547) (e17ee64)
- rpc: read from substream while streaming to check for interruptions (#3548) (9194501)
- update the seed words used in the Daily tests (#3545) (7696840)
- use tcp tls backend for peer seed DNS resolution (#3544) (5b38909)
- remove outdated wallet_ffi balance methods (#3528) (413757b)
v0.12.0
BREAKING CHANGES --- * **wallet_ffi:** add get_balance callback to wallet ffi (#3475) * apps should not depend on other app configs (#3469) Features --- * add decay_params method ([#3454](https://github.com/tari-project/tari/issues/3454)) ([a027f32](https://github.com/tari-project/tari/commit/a027f32edb2910528f65b500f032b143a487dad2)) * add sql query to obtain balance ([#3446](https://github.com/tari-project/tari/issues/3446)) ([e23ceec](https://github.com/tari-project/tari/commit/e23ceecfa441f6739412dafc02e1d5fcc95ff9ab)) * apps should not depend on other app configs ([#3469](https://github.com/tari-project/tari/issues/3469)) ([b33e8b5](https://github.com/tari-project/tari/commit/b33e8b564732a41f4216f38f4c5f92c459a0c623)) * improve logging for tari_mining_node ([#3449](https://github.com/tari-project/tari/issues/3449)) ([db9eb96](https://github.com/tari-project/tari/commit/db9eb9641836f6bf3e878a3065c08661a4c57254)) * optimize get transactions query ([#3496](https://github.com/tari-project/tari/issues/3496)) ([e651a60](https://github.com/tari-project/tari/commit/e651a60f0f18289968fd38dcb382b4d804d0cd2f)) * optimize pending transactions inbound query ([#3500](https://github.com/tari-project/tari/issues/3500)) ([4ea02e7](https://github.com/tari-project/tari/commit/4ea02e7a04d411748f45a8b35b863d2ba2cc3111)) * revalidate all outputs ([#3471](https://github.com/tari-project/tari/issues/3471)) ([9bd4760](https://github.com/tari-project/tari/commit/9bd476099b18cf3d10a11ec789cd1450c5d5f011)) * tx weight takes tariscript and output features into account [igor] ([#3411](https://github.com/tari-project/tari/issues/3411)) ([5bef3fd](https://github.com/tari-project/tari/commit/5bef3fdf6c3771620b5286605faeb83f9b2152e7)) * **wallet_ffi:** add get_balance callback to wallet ffi ([#3475](https://github.com/tari-project/tari/issues/3475)) ([930860d](https://github.com/tari-project/tari/commit/930860dfc0386f9eb8e578501c2c0e0477c4a638)) Bug Fixes --- * add details to UnknownError ([#3429](https://github.com/tari-project/tari/issues/3429)) ([dddc18f](https://github.com/tari-project/tari/commit/dddc18fb4d24b4b8ff0069594a54eb699d560e56)) * add display_currency_decimal method ([#3445](https://github.com/tari-project/tari/issues/3445)) ([1f52ffc](https://github.com/tari-project/tari/commit/1f52ffc0836699872e1f8266bd5821d0d9805eba)) * add sanity checks to prepare_new_block ([#3448](https://github.com/tari-project/tari/issues/3448)) ([76bc1f0](https://github.com/tari-project/tari/commit/76bc1f0177098fdf1e6af5ae44f4972935d5a221)) * ban peer that advertises higher PoW than able to provide ([#3478](https://github.com/tari-project/tari/issues/3478)) ([c04fca5](https://github.com/tari-project/tari/commit/c04fca5a4c027ae7331b4d1637a7d73c4013ef0f)) * check SAF message inflight and check stored_at is in past ([#3444](https://github.com/tari-project/tari/issues/3444)) ([fbf8eb8](https://github.com/tari-project/tari/commit/fbf8eb83353392b977b34bf3d1870ca25320414e)) * correct panic in tracing for comms ([#3499](https://github.com/tari-project/tari/issues/3499)) ([af15fcc](https://github.com/tari-project/tari/commit/af15fcc2bb863cc4d1ba4a4951456c64aba91a1c)) * **dht:** discard encrypted message with no destination ([#3472](https://github.com/tari-project/tari/issues/3472)) ([6ca3424](https://github.com/tari-project/tari/commit/6ca3424de306235088d598f741dcb7952efc73f8)) * ensure that accumulated orphan chain data is committed before header validation ([#3462](https://github.com/tari-project/tari/issues/3462)) ([80f7c78](https://github.com/tari-project/tari/commit/80f7c78b296a48eda3d3e69d266396482679f35a)) * fix config file whitespace issue when auto generated in windows ([#3491](https://github.com/tari-project/tari/issues/3491)) ([996c047](https://github.com/tari-project/tari/commit/996c0476105665bb32a3f2b13417624c808e8e49)) * fix confusing names in get_balance functions ([#3447](https://github.com/tari-project/tari/issues/3447)) ([6cd9228](https://github.com/tari-project/tari/commit/6cd9228d61a4b827c4062267074d40b1908773a6)) * fix flakey rust tests ([#3435](https://github.com/tari-project/tari/issues/3435)) ([7384201](https://github.com/tari-project/tari/commit/73842016db9cfa4cc5abaa3984a5ff3d9f90d7cd)) * fix recovery test reporting message ([#3479](https://github.com/tari-project/tari/issues/3479)) ([335b626](https://github.com/tari-project/tari/commit/335b62604b577ea7ef19b4b9d637993a0732e559)) * improve responsiveness of wallet base node switching ([#3488](https://github.com/tari-project/tari/issues/3488)) ([762cb9a](https://github.com/tari-project/tari/commit/762cb9abe5a20c798d72636c83e6e844fc5629be)) * improve test Wallet should display transactions made ([#3501](https://github.com/tari-project/tari/issues/3501)) ([6b3bac8](https://github.com/tari-project/tari/commit/6b3bac8daaddc01cfbf7208b999ae63d4af67ca9)) * prevent tari_mining_node from being able to start without a valid address for pool mining ([#3440](https://github.com/tari-project/tari/issues/3440)) ([92dee77](https://github.com/tari-project/tari/commit/92dee77feccc79b9c76bfb98d4cba64027ee3799)) * remove consensus breaking change in transaction input ([#3474](https://github.com/tari-project/tari/issues/3474)) ([d1b3523](https://github.com/tari-project/tari/commit/d1b3523d981b7ff797ee205d4e349b5116bbd06f)) * remove is_synced check for transaction validation ([#3459](https://github.com/tari-project/tari/issues/3459)) ([53989f4](https://github.com/tari-project/tari/commit/53989f40b0ab03a9a894f3489452f94efae94bc1)) * remove unbounded vec allocations from base node grpc/p2p messaging ([#3467](https://github.com/tari-project/tari/issues/3467)) ([5d7fb20](https://github.com/tari-project/tari/commit/5d7fb207c9994ea7f0cd6a0d7c05786d8da60792)) * remove unnecessary wallet dependency ([#3438](https://github.com/tari-project/tari/issues/3438)) ([07c2c69](https://github.com/tari-project/tari/commit/07c2c693c7ee155deafd94171a8a346d7c3706ba)) * sha256sum isn't available on all *nix platforms ([#3466](https://github.com/tari-project/tari/issues/3466)) ([6f61582](https://github.com/tari-project/tari/commit/6f6158231eac4b4aefec7499d1a1a551a4350911)) * typo in console wallet ([#3465](https://github.com/tari-project/tari/issues/3465)) ([401aff9](https://github.com/tari-project/tari/commit/401aff9f89f4064dfbe19845730b3530353980b0)) * u64->i64->u64 conversion; chain split height as u64 ([#3442](https://github.com/tari-project/tari/issues/3442)) ([43b2033](https://github.com/tari-project/tari/commit/43b20334151b2872b0969bf3fd56e7c5c2af62bd)) * upgrade rustyline dependencies ([#3476](https://github.com/tari-project/tari/issues/3476)) ([a05ac5e](https://github.com/tari-project/tari/commit/a05ac5e1924987d96e217188bea00a809f5cf57f)) * validate dht header before dedup cache ([#3468](https://github.com/tari-project/tari/issues/3468)) ([81f01d2](https://github.com/tari-project/tari/commit/81f01d228cc425fb859fd07e08dfb34f03e1bd22))
v0.11.0
⚠ BREAKING CHANGES
- new transaction and output validation protocol (#3421)
Features
- allow tor proxy to be bypassed for outbound tcp connections (#3424) (6a5982e)
- new transaction and output validation protocol (#3421) (6578d1e), closes #3191 #3352 #3383 #3391 #3394 #3400 #3417
- update coinbase handling for new tx and output validation (#3383) (8b546c9)
Bug Fixes
- allow env override of mining node pool settings (#3428) (423dbe1)
- auto update cucumber tests, reduced timeout (#3418) (ce17627)
- don't display an error when there is no message to be read in tari_mining_node (#3409) (eb4b560)
- handle recovering a duplicate output (#3426) (f9c9201)
- network switching (#3413) (9a369a0)
- only allow one session per peer for block/header sync (#3402) (06da165)
- reduce console wallet tui memory usage (#3389) (ca1e9fd)
- update default sha3 pool address in readme and config (#3405) (dae656a)
- update message on finding a valid share in tari_mining_node (#3408) (7c13fde)
- updates to daily recovery test (#3433) (8ac27be)
- use intermediate u64 to calculate average (#3432) (ff6bc38)
v0.10.0
Features
- add base installer stubs (#3281) (074034b), closes #3102
- add get-db-stats command (#3274) (d785f4f)
- add logging of Monero PoW data to debug merge mining (#3276) (b0bf982)
- ping-peer command (#3295) (a04a2a6)
- rpc response message chunking (#3336) (496ff14)
- show status avx2 feature and randomx count and flags (#3261) (e2d8d1f)
- update+notifications for console wallet (#3284) (faa27fc)
Bug Fixes
- always grow database when asked to resize (#3313) (603bcb3)
- ban header sync peer if no headers provided (#3297) (570e222)
- block sync validation (#3236) (fd081c8)
- ci: add quotes to pr title ci (29247c2), closes #3254
- dead_code lint error when base_node_feature is not set (#3354) (7fa0572)
- dedup sql error when deleting many entries (#3300) (7e58845)
- disable P2P transaction negotiation while recovery is in progress (#3248) (844e6cf)
- disconnected node was never ready (#3312) (dfc6fd2)
- fix median timestamp index (#3349) (0757e9b)
- fix regression in cucumber tests for wallet ffi step (#3356) (481f3c9)
- handle stream read error case by explicitly closing the substream (#3321) (336f4d6)
- invalid forced sync peer now returns configerror (#3350) (8163ef8)
- prevent immediate run of wallet recovery on cron script (#3260) (969b306)
- randomx memory usage (#3301) (52e409d), closes #3104 #3103
- reduce overly-eager connection reaping for slow connections (#3308) (9a0c999)
- remove explicit panic from rpc handshake on io error (#3341) (c2ebfc8)
- remove sqlite from windows installer and scripts (#3362) (b2b6912)
- resolved design flaw in wallet_ffi library (#3285) (2e6638c)
- stop MTP attack (#3357) (a82638a)
- update balance after pending transaction is created (#3320) (47bafbf)
- update block explorer to use local grpc (#3348) (fc1e120)
- update cucumber tests for walletffi.feature (#3275) (38191d3)
- wait couple rounds for no pings to send an event (#3315) (2dcc0ea)
Network upgrade release
Major features since v0.3.0
- Propagate block hashes instead of full blocks (network breaking) (#1986)
- Wallet backup support
- Automatically build Android FFI libraries in Github actions
- Added methods to expose current emoji set via FFI (#1978)
- Resolve peer DNS addresses with Tor if it is available
- Remove Liveness and add a Low Power mode to the Wallet (#1964)
- Add FFI functions to get and read a wallets Seed Words (#1962)
- New Emoji set!
- gRPC support for Block Explorer
- Add Github action for building and deploying Android FFI libraries (#1948)
- Initial Mempool sync (#2007) Nodes can request to sync up mempools with peers on startup
Windows-specific
Minor improvements and bug fixes
- Add format specifier to get-block command (#2012)
- Refactor UXTO Validation in Output Manager into async protocol (#2006)
- Made messaging pipeline optional in CommsBuilder (#2001)
- Have the Wallet backend persist the Comms Secret Key (Wallet backup)
- Remove deprecated ConfigExtractor
- Fix unexpected error with wallet power updates (#1994)
- Updated dockerfile for new nightly image
- Input and output previous STXO block validation check (#1974)
- Checking is_stxo using MMR (#1970)
- Simplified outbound message interface (#1961)
- Use async RwLock for WaitingRequests (#1966)
- Add revalidation check to Output Manager service (#1953)
- Use async RwLock for WaitingRequests
- Fix forward sync index out of bounds (#1956) Merge pull request #1956
- Switched to tokio broadcast for inbound pubsub
- Update Output Manager UTXO query to split into multiple queries
- Migrate Comms/DHT to thiserror (#1951)
- Reinitialize pools if node transitions to offline (#1941)
- Refactor the Receive Transaction Protocol into the Protocol pattern (#1930)
- Framed substream default maximum frame size (#1940)
- flaky test fixes
- Don't delete existing files in S3 when uploading libraries (#2003)
- Cargo.lock is now checked in to maintain dependency consistency
- Horizon state syncing for pruned nodes (#2004)
- Correctly hook up protocols from tari_base_node to comms (#2015)
v0.4.2 - Network upgrade release
Major features since v0.3.0
- Propagate block hashes instead of full blocks (network breaking) (#1986)
- Wallet backup support
- Automatically build Android FFI libraries in Github actions
- Added methods to expose current emoji set via FFI (#1978)
- Resolve peer DNS addresses with Tor if it is available
- Remove Liveness and add a Low Power mode to the Wallet (#1964)
- Add FFI functions to get and read a wallets Seed Words (#1962)
- New Emoji set!
- gRPC support for Block Explorer
- Add Github action for building and deploying Android FFI libraries (#1948)
- Initial Mempool sync (#2007) Nodes can request to sync up mempools with peers on startup
Minor improvements and bug fixes
- Add format specifier to get-block command (#2012)
- Refactor UXTO Validation in Output Manager into async protocol (#2006)
- Made messaging pipeline optional in CommsBuilder (#2001)
- Have the Wallet backend persist the Comms Secret Key (Wallet backup)
- Remove deprecated ConfigExtractor
- Fix unexpected error with wallet power updates (#1994)
- Updated dockerfile for new nightly image
- Input and output previous STXO block validation check (#1974)
- Checking is_stxo using MMR (#1970)
- Simplified outbound message interface (#1961)
- Use async RwLock for WaitingRequests (#1966)
- Add revalidation check to Output Manager service (#1953)
- Use async RwLock for WaitingRequests
- Fix forward sync index out of bounds (#1956) Merge pull request #1956
- Switched to tokio broadcast for inbound pubsub
- Update Output Manager UTXO query to split into multiple queries
- Migrate Comms/DHT to thiserror (#1951)
- Reinitialize pools if node transitions to offline (#1941)
- Refactor the Receive Transaction Protocol into the Protocol pattern (#1930)
- Framed substream default maximum frame size (#1940)
- flaky test fixes
- Don't delete existing files in S3 when uploading libraries (#2003)
- Cargo.lock is now checked in to maintain dependency consistency
- Horizon state syncing for pruned nodes (#2004)
- Correctly hook up protocols from tari_base_node to comms (#2015)
v0.3.0 - Network upgrade release
Note: This release includes a breaking change to the blockchain DB. A node
upgrading to this version will need to delete its existing db and resync
the blockchain.
Important: You do not need to delete your wallet. Fake funds are SAFU.
To reset your database, follow these steps:
- Stop your node.
- Locate your Tari data folder. The default locations are
~/.tari
on Mac or Linux and%USERPROFILE%\.tari-testnet
under Windows. - Delete the
rincewind/db
andrincewind/peer_db
folders in their entirety. You can leavedht.db
, and thewallet
directory intact. - Restart your node. Resyncing takes an hour or more right now.
New Features in this release
- Several of back-end changes (hence the need to reset the db) to accommodate pruned mode nodes.
- Several new gRPC endpoints for use by the block explorer (and future wallets) (#1922)
- Increase redundancy for Store and Forward messages (#1929). This PR increases the number of nodes
that will see and store a SAF message when it reaches the neighbourhood of the destination. - Have Messaging protocol substreams close after a period of inactivity (#1913)
Bug fixes
v0.2.5
v0.2.5 focuses on node stability and network performance
Features
- Added
get-state-info
command to display current base node state (#1880) - Message tracking for testnet troubleshooting (#1881)
- Added OSX section to README.md (#1888)
- Add the version command to base node CLI
- Add
get_cancelled_transaction_by_id
to FFI & update cancel callback - Adding GetCalcTiming function to grpc service (#1872)
Performance improvements and bug fixes
- Refactor the validators to ensure that each validation step only completes once (#1873).
- Add local pub key to the source and dest fields for cancelled txs in FFI (#1893)
- Switched the BlockEvent stream to Tokio broadcast (#1889). Reduce the memory footprint for block event broadcast
channel by using a tokio broadcast channel. - Chain metadata service not updating metadata on reorgs (#1890)
- Update sending of Tx Reply & Finalise msgs to send SAF if Direct fails (#1876)
- Limit unnecessary storage of messages with duplicate content. (#1862)
- Fixed block_forward sync to add blocks via local interface to ensure that events trigger correctly.
- Fixed a typo in mobile build script (#1875)
- Replace deprecated bigint with uint (#1874)
v0.2.4
Improvements
Most improvements in this release are centred around removing redundant network traffic and improving peer-to-peer connectivity.
Some of the changes that have come in since the last release include:
- Introduce temporary short term ban for peers that are providing chain metadata but do not respond to header and block requests.
- The chain synchronisation mechanism is simpler and more robust. Previously it was possible that a node would unfairly ban a peer after an initial chain sync.
- The
check_db
CLI command does more through checks, including block validation. Previously it was only checking the header chain. - Old store and forward messages are now removed from the DB after they have been queued to be sent to the destination node.
- Connections are now closed earlier if a peer is banned.
- Deprecated tables and code have been removed from wallet codebase.
- The Store and Forward cache size now has a hard limit.
- Add node version info to PingPong messages. This will help identify if network issues are related to peers running older software.
- Introduce Hamming distance as distance metric. The XOR metric seems to cause clustering of nodes that are not able to communicate. Hamming distance seems to improve the clustering issue. The XOR metric is still the default, though will likely be replaced by the Hamming distance in an upcoming release following further testing.
The Transaction send logic in the wallet has been substantially streamlined:
- First a Direct send is attempted (previously the direct and SAF were both sent at the same time).
- A SAF message is only sent if a Discovery needs to be done or the Direct messages fails.
- A record is made in the DB if a direct send occurs because then we know the recipient DEFINITELY got the message and no repeat or SAF should be sent.
- If only a SAF message was sent then the Recipient is registered for monitoring by the Liveness service.
- If a PONG is received then only a Direct send is attempted as a repeat sending of the transaction (so SAF is sent on repeats).
- As soon as a Direct send is successful no further repeats will be sent.
- Multiplex substream counts have been added - allows the connectivity manager to kill
dormant connections.
Bug fixes
- Temporarily removed randomx-rs (which was causing illegal instruction crashes on some chipsets).
- Log rollovers were writing to the wrong directory in some cases.
- Don't panic if the logger is initialized twice in the Wallet FFI (#1863)
- A few flaky tests were fixed.
Stability release
This release focuses on network reliability and stability
- Hamming distance calculation added to DHT (XOR metric is still used as
of now) - Added helpful message if tor is not started
- Don't require a network for
--create-id
and--init
flags - Temporary banning of non-responsive nodes
- Dedup cache optimisations
- Cleaner shutdown (stops deluge of error messages we see sometimes)
- Logging improvements