-
Notifications
You must be signed in to change notification settings - Fork 219
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Network separation and protocol versioning #3030
Network separation and protocol versioning #3030
Conversation
89f088a
to
01fc712
Compare
Looking good, just watching CI |
ab317c8
to
8277a83
Compare
2c5827f
to
1d3913e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTTM, just one small nit thou
1d3913e
to
77f7368
Compare
/// should never be changed once released. | ||
#[repr(u8)] | ||
#[derive(Clone, Debug, PartialEq, Eq, Copy)] | ||
pub enum Network { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These bytes don't have the spacing between mainnet and testnets we discussed in the RFC.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, I'll update that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated, though not sure exactly if this is what @mikethetike had in mind
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's fine.
- Changes `WireMode::Comms` variant to contain a single byte. - Allows the `WireMode::Comms` byte to be set from domain layer (tari_p2p). - [partially network breaking] Removes redundant network specifier from messaging protocol. - Removes DHT Network enum. - Updates Network configuration enum to be representable as a byte. - Network configuration enum is now the only Network specifier. - Changes consensus Network enum to a struct (NetworkConsensus) that wraps the common Network enum. - [network breaking] Use byte representation of multiaddr in identity message, rather than string. This reduces the bytes exchanged when establishing a new peer connection. - [network breaking] Shave a few bytes off of identity and messaging protocol IDs to match the format of other protocols. - [network breaking] Add major and minor versions to messaging protocol - [network breaking] Add major version check when establishing a connection - [network breaking] Remove NodeId from PeerIdentityMsg as this can be derived from the public key obtained from the noise handshake
77f7368
to
89769b2
Compare
/// should never be changed once released. | ||
#[repr(u8)] | ||
#[derive(Clone, Debug, PartialEq, Eq, Copy)] | ||
pub enum Network { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's fine.
Co-authored-by: Byron Hambly <bizzle@tari.com> Co-authored-by: Cayle Sharrock <CjS77@users.noreply.github.com> Co-authored-By: Hansie Odendaal <pluto@tari.com> Co-authored-by: Martin Stefcek <35243812+Cifko@users.noreply.github.com> Co-authored-by: Mike the Tike <mikethetike@tari.com> Co-authored-by: Philip Robinson <simian@tari.com> Co-authored-by: Stan Bondi <sdbondi@users.noreply.github.com> Co-authored-By: SW van Heerden <swvheerden@gmail.com> Squashed commit of the following: commit b95d558f318d045da9e1172cb802555ae3eb5a47 Merge: 62a03237 862be046 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jul 6 18:18:48 2021 +0200 fix: fix db update error (#3063) commit 62a03237ee4c6103b468a07bbf97f665eb391b4a Merge: 8ecbb1f2 e089af22 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jul 6 18:14:24 2021 +0200 chore: update digest, rand and sha3 (#3059) commit e089af2260b19fecc35c69fa053451f9bf649b80 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue Jul 6 14:28:27 2021 +0400 [chore] Update digest, rand and sha3 - Update crates `digest` `rand` and `sha3` to fix compilation errors (Ref https://github.com/tari-project/tari-crypto/pull/49) - NodeId::from_key is infallible - This in turn meant that NodeIdentity::new and NodeIdentity::randoma are infallible - This in turn meant that NodeIdentityError is unused, so it was removed - Remove multiple copies of the random string test utility (all of which needed `rand` crate updates) in favour of using the one provided in tari_test_utils commit 862be046102266ec368c950e5a5736ac0df3f6e0 Author: Hansie Odendaal <pluto@tari.com> Date: Tue Jul 6 18:05:01 2021 +0200 Fix db update error commit 8ecbb1f231da38f2e838c8acc79165b5b0a27136 Merge: 868a064e 4a3d7ccf Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jul 6 17:47:04 2021 +0200 feat: implement metadata comsig on txn output (#3057) commit 4a3d7ccf239457762552f75d1b7604dee312b9bd Author: Hansie Odendaal <pluto@tari.com> Date: Wed Jun 30 16:21:16 2021 +0200 Implement metadata comsig on txn output - Implemented metadata comsig for the txn output - Created new faucet - Updated genesis block timestamp as this is a breakng change - Added unit test Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit 868a064e361f34028ee1b70e8a120ec99766b7a1 Merge: 6b6842fd 87c2ad4a Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jul 6 11:39:53 2021 +0200 tests: fix broken cucumber tests (#3058) commit 87c2ad4abd081de5c96c0e8810ab5f51c323d5bd Author: SW van Heerden <swvheerden@gmail.com> Date: Tue Jul 6 11:32:57 2021 +0200 fix broken cucumber tests commit 6b6842fdf372607848e92ea3ea341f9d81d84259 Merge: cc225b83 63c0b6f5 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 16:52:42 2021 +0200 chore: update example with new peer seeds for weatherwax (#3054) commit cc225b83ccfc34480a6423cf211c14b7a7844659 Merge: cf33cdb5 88ce1d02 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 16:51:20 2021 +0200 chore: merge development commit cf33cdb5403736f67ea71f958e3ac06413c3f8e7 Merge: 742dd9e6 dd49c991 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 16:50:20 2021 +0200 feat: software auto updates for base node (#3039) commit 742dd9e6c9fc8c85bb6969e19489a4120d9cc9d1 Merge: 10ea7e38 ed70ecfc Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 16:49:14 2021 +0200 feat: add zero conf tx (#3043) commit 10ea7e387834edea1c8b65e7180c1493068fdab7 Merge: 4a1f74f3 9e614444 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 15:44:39 2021 +0200 chore: update monerod stagenet url (#3050) commit ed70ecfccb2a9407af35e17856987fdf40d9b05c Author: SW van Heerden <swvheerden@gmail.com> Date: Mon Jul 5 14:17:08 2021 +0200 add zero conf tx Co-Authored-By: Hansie Odendaal <pluto@tari.com> Co-authored-by: Stan Bondi <sdbondi@users.noreply.github.com> commit 63c0b6f53703561c131d36a819179127816a35e8 Author: Byron Hambly <bizzle@tari.com> Date: Mon Jul 5 11:13:08 2021 +0200 [config] Update example with new peer seeds for weatherwax commit 88ce1d02d005c69c8f1e296ac4fd511f81e6090c Merge: 4a1f74f3 f512982a Author: Byron Hambly <bizzle@tari.com> Date: Mon Jul 5 09:48:30 2021 +0200 merge development into tari-script commit dd49c991d06bcc578b2dbe0b180c262032a7e0e7 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Thu Jun 24 17:43:15 2021 +0400 Software auto updates for base node Implements software updates for base node - Add general-purpose module for software update notifications, consisting of: - DNS Update checker - checks the configured hosts TXT record for software updates - Download SHA hash file (shasum) of the updates and validate that a known maintainer signed it (future improvements would require > 1 maintainer) - Actor/Service that periodically checks for updates and notifies any listeners, as well as providing a "handle" interface to the software updater. - Base node uses this module to implement `check-for-updates` command and to display update notifications. - Cucumber tests for valid and invalid update - Extracted the DNS code from peer seeds so that it can be used for reading TXT records here - Add autoupdate configuration commit 4a1f74f34f9b312d3a3bbcdd0e97ab0ad47bfb9d Merge: 347973e3 6d6a11bb Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 17:05:56 2021 +0200 tests: fix wallet cucumber tests (#3049) commit 347973e3e8fdd39bb74d978d14ff414c04a39212 Merge: 5116bdeb 65b91c08 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 17:03:33 2021 +0200 fix: remove unimplemented Blake pow algo variant (#3047) BREAKING CHANGE!: This is a DB and network breaking change. commit 5116bdebc5bf8d0a1b358a02a143b07df52026df Merge: 2c9f6999 d76768d3 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 17:00:52 2021 +0200 refactor: clean up the db calls to make them safer (#3040) commit d76768d3efb4b0147a6f3e1e03327397921131e5 Merge: e738b3b1 2c9f6999 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 17:00:33 2021 +0200 Merge branch 'tari-script' into sw_refactorr_utxo_scanner_db commit 2c9f69991f7cfcbda113a55ceeacdf2c13d90da3 Merge: bc98c322 89769b27 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 16:58:51 2021 +0200 feat: network separation and protocol versioning implementation (#3030) commit bc98c322b9580f644dc0147f66369388499abf0a Merge: 9b281cec 85dea958 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 16:42:35 2021 +0200 refactor: remove `height` field from outputs (#3027) commit 65b91c08ce8e0e3b79a863612cdec37969442e33 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Thu Jul 1 16:15:56 2021 +0400 [chore, testnet-reset] Remove unimplemented Blake pow algo variant Remove unimplemented PowAlgo::Blake variant. This is a DB and network breaking change. commit 9e61444456c77e3fc1e7f531e46d1b5e21f53191 Author: Byron Hambly <bizzle@tari.com> Date: Fri Jul 2 13:44:01 2021 +0200 Update host header in proxied request commit 89769b27e4a41dc27a3e2543479534ac851add61 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue Jun 22 17:30:32 2021 +0400 Network separation and protocol versioning implementation - Changes `WireMode::Comms` variant to contain a single byte. - Allows the `WireMode::Comms` byte to be set from domain layer (tari_p2p). - [partially network breaking] Removes redundant network specifier from messaging protocol. - Removes DHT Network enum. - Updates Network configuration enum to be representable as a byte. - Network configuration enum is now the only Network specifier. - Changes consensus Network enum to a struct (NetworkConsensus) that wraps the common Network enum. - [network breaking] Use byte representation of multiaddr in identity message, rather than string. This reduces the bytes exchanged when establishing a new peer connection. - [network breaking] Shave a few bytes off of identity and messaging protocol IDs to match the format of other protocols. - [network breaking] Add major and minor versions to messaging protocol - [network breaking] Add major version check when establishing a connection - [network breaking] Remove NodeId from PeerIdentityMsg as this can be derived from the public key obtained from the noise handshake commit 85dea958016bd383b2648aca907d490c5fe6b309 Author: Philip Robinson <simian@tari.com> Date: Fri Jul 2 11:32:46 2021 +0200 Remove `height` field from outputs In the discussion around [RFC-0201](https://rfc.tari.com/RFC-0201_TariScript.html) it was decided that the `height` field is not actually required to prevent replay attacks with the introduction of TariScript. We rely on the enforcement of unique commitments in the mempool and blockchain to prevent this. As such this PR removes the height field from the TransactionInput and UnblindedOutput structs. commit 38278f0bb416ca00398667c3443fee1bd892eb81 Author: Byron Hambly <bizzle@tari.com> Date: Thu Jul 1 20:30:08 2021 +0200 [chore] update monerod stagenet url in readme commit 1d4176cc72d319bbadb7788465e878e734354194 Author: Byron Hambly <bizzle@tari.com> Date: Thu Jul 1 20:29:26 2021 +0200 [chore] update monerod stagenet url commit 6d6a11bbe9c7c460eeed59b0f06d11984d4ec685 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Thu Jul 1 19:59:23 2021 +0400 Fix wallet cucumber tests Output hash generation in `the UTXO {} has been mined according to {}` needed to be updated from https://github.com/tari-project/tari/pull/3041 commit 9b281cec339fea5cad48ca84cb5698302792373f Merge: fb1a692a 2cd35c59 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jul 1 11:18:31 2021 +0200 feat(wallet): add maturity to transaction detail (#3042) commit 2cd35c593ba66ba4f3de1df06e7487d0844732bb Author: Byron Hambly <bizzle@tari.com> Date: Tue Jun 29 13:29:45 2021 +0200 [console-wallet] Add maturity to transaction detail commit fb1a692aeb92af585a83b1c84948896db1cbcf1b Merge: da1d7579 5c79bf25 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jul 1 09:37:36 2021 +0200 refactor: remove type alias impl trait unstable feature requirement from DHT (#3037) commit da1d75790fcb4eb9a71b7822c3ede3d9ba598241 Merge: ef94134b ec5390f7 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jul 1 09:31:25 2021 +0200 fix: fix small issues related to #3020 (#3026) commit ec5390f74656eecdc439c379e2faf8ea6a679964 Merge: ca897079 ef94134b Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jul 1 09:30:47 2021 +0200 Merge branch 'tari-script' into ho_small_fixes commit 5c79bf25eab08b762a16dbbf14011d350e6e4a69 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Sun Jun 27 12:36:26 2021 +0400 Remove type alias impl trait unstable feature requirement from DHT Replaces the `type_alias_impl_trait` feature requirement with boxed Futures on all services. Removes/simplifies some redundant trait bounds. SAF handler task had to be implemented to be a less concurrent because of the additional trait bounds required for boxing. commit ef94134b4f60af1b907ff7d220a7b3f1ac446ac0 Merge: f2239418 5f5a9c7c Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 16:44:38 2021 +0200 chore: fix build (#3044) commit 5f5a9c7c5dc4bd8918ffe0800a914cdf2038f88f Author: SW van Heerden <swvheerden@gmail.com> Date: Wed Jun 30 16:18:33 2021 +0200 fix build commit f223941859903bdd3becd914ac84e630adb1e7c1 Merge: ae15fd9c 054b45aa Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:06:04 2021 +0200 refactor: start refactoring `min_type_alias_impl_trait` to `async_trait` (#3034) commit 054b45aa6314cd98e38997b67d7b973c89395761 Merge: cdb4f547 ae15fd9c Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:05:46 2021 +0200 Merge branch 'tari-script' into async-trait commit ae15fd9c6203f8a6fe40be411fe3e4e590270ef7 Merge: 229830e5 91af2872 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:04:13 2021 +0200 feat: add filtering of abandoned coinbase txs to console wallet (#3032) commit 229830e595c6b3c97011547d18885e2c0a3e3f19 Merge: 574ff8bb b89a67db Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:03:12 2021 +0200 fix: Update connectivity manager defaults (#3031) commit 574ff8bb7357fc3a5edcb60c564af0a7e038f6a7 Merge: 0ffaedec 35b35333 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:01:24 2021 +0200 docs: clarify Tari Script nomenclature (#3029) commit 0ffaedec4683748e452cfdee20464022dfbd4367 Merge: 65552cbd b0b57612 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:00:17 2021 +0200 tests: let the test pass if 1% of nodes will fail. The number of nodes that need to succeed is rounded down. Change from promise.all to a custom wait for N promises. (#3028) commit 65552cbd7b826e76a63ca50e53c41e8986eb9860 Merge: adb4a640 59f9675c Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 14:57:04 2021 +0200 feat: add input_mr and witness_mr to header (#3041) commit 59f9675c5f2bac76bd2c88151b44d2f9a761db3a Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue Jun 29 15:09:22 2021 +0400 Add input_mr and witness_mr to header As per updated RFC 120 (ref #3025): - Add `input_mr` to header, commits to all inputs in a block - Add input merkle root validation check - Commit to all transaction input fields - Add `TransactionInput::output_hash` that produces the hash of the output that was spent in the input - Remove range proof MR in favour of witness MR - Witness MR commits to all rangeproofs and sender metadata - Add witness_hash function that produces `Hash(RangeProof || sender_metadata_signature)` - Updated weatherwax genesis timestamp because this change is a hard fork - Updated header format in proto messages (network breaking) - Commit to `input_mr` in sha3 and monero mining hashes - Add some missing fields (`output_mmr_size`, `kernel_mmr_size` and `total_script_offset`) to sha3 miner hash (w/ minor code clean up) commit adb4a64000f991df06454e86c303728af881241d Merge: 04f826db 57ce1ac8 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 14:48:36 2021 +0200 feat: Change script_signature type to ComSig (#3016) commit cdb4f54724d73dd3085ae81beffa4f29a8a27471 Author: Byron Hambly <bizzle@tari.com> Date: Wed Jun 30 14:47:03 2021 +0200 [tests] Fix test compilation error commit 57ce1ac8732efeadca52b0f58d3ec482be6b1863 Author: SW van Heerden <swvheerden@gmail.com> Date: Fri Jun 25 18:21:12 2021 +0200 Change script_signature type to ComSig Fix cucumber test for comsig fix spelling Co-Authored-By: Hansie Odendaal <pluto@tari.com> commit b0b5761231cf3a8a34ed23bb256dfaef483e6eb8 Merge: 15b6d6c3 04f826db Author: Martin Stefcek <35243812+Cifko@users.noreply.github.com> Date: Wed Jun 30 07:55:03 2021 +0200 Merge branch 'tari-project:tari-script' into tari-script commit e738b3b148f2e3de73bf7669806242457ff60291 Author: SW van Heerden <swvheerden@gmail.com> Date: Tue Jun 29 07:51:18 2021 +0200 clean up the db calls to make them safer commit 04f826db140042248797e1377ee665b809146fe5 Merge: 4a499564 08dfc00c Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jun 28 11:21:06 2021 +0200 docs: update rfc to add witness_mr to header (#3025) commit 08dfc00c4c8176d06b57eadb9d1992b47430c5d3 Author: SW van Heerden <swvheerden@gmail.com> Date: Fri Jun 25 18:55:17 2021 +0200 Add input_mr Change rangeproof_mr to be a witness_mr commit f70d5ab83dd5224f4ab47f7dd77323a7f9e0c184 Author: Byron Hambly <bizzle@tari.com> Date: Thu Jun 24 18:58:22 2021 +0200 [common] Start refactoring `min_type_alias_impl_trait` to `async_trait` commit 4a499564d59162db25693f194f00eb4bd91f0700 Merge: ea15e9c1 cd0445fe Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 14:29:45 2021 +0200 feat: update app state when base node is set by command/script mode (#3019) [console-wallet] Update app state when base node is set by command/script mode [console-wallet] Add command mode auto exit arg [console-wallet] Allow amount field to parse Tari commit ea15e9c186f1ca09de5190a4de22e9e9c774ced1 Merge: 19ed0013 5d79c627 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 14:25:35 2021 +0200 docs: add RFC-0173 - Versioning to the RFCs (#3013) commit 19ed001335f23bbf10a28557a03037edc71beaea Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 12:14:50 2021 +0200 chore: fmt commit f8dae4dacb6ba0f1add9674d2d0f93c2538f359a Merge: 05674a3d 6ab28f23 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 12:13:40 2021 +0200 refactor: remove MemoryDBs from the wallet (#3017) commit 6ab28f239cb4156ecf6f1424970647c288d6eff6 Merge: b5fef024 05674a3d Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 12:13:06 2021 +0200 Merge branch 'tari-script' into philip-remove-memory-db commit 91af2872dee0148647f1e22587a2cf64346a9248 Author: Philip Robinson <simian@tari.com> Date: Wed Jun 23 20:33:46 2021 +0200 Add filtering of abandoned coinbase txs to console wallet This PR adds the ability to filter abandoned coinbase transactions in the completed transaction list of the console wallet. The filter is on by default and can be toggled with the A key. Transactions that have the Coinbase status and are also cancelled are filtered out and when displayed have the status of `Abandoned`. A TransactionFilter bitfield has been added to the AppState which currently only includes the AbandonedCoinbase flag but will allow for more filters to be added and combined. The filtering is done when the UI draw requests the vector of references to the current list of transactions. If no filter is applied the full vector of references is returned, otherwise a iterator filtered version is returned applying the conditions of the filter. commit 15b6d6c3617f2cbfd2b6071ea8c161872cbcd585 Author: Cifko <gcifko@gmail.com> Date: Tue Jun 22 16:58:04 2021 +0200 Let the test pass if 1% of nodes will fail. The number of nodes that need to succeed is rounded down. Change from promise.all to a custom wait for N promises. commit 05674a3dd1590fe1c96b11e628bb1a5156f3932c Merge: d2049ffe 1bc3efb3 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 23 11:56:22 2021 +0200 refactor: refactor utxo scanner class (#3005) commit 1bc3efb3b69f233b29dc33b70bfba4d110d6275d Author: SW van Heerden <swvheerden@gmail.com> Date: Wed Jun 23 11:51:16 2021 +0200 refactor utxo scanner class commit 5d79c627e01645c64b98a44425934457745a0867 Author: Philip Robinson <simian@tari.com> Date: Wed Jun 23 10:42:24 2021 +0200 Add RFC-0173 - Versioning to the RFCs This PR contains a new RFC with a proposal of how we will handle versioning of the wire format, P2P messaging and consensus rules on the Tari network. commit b89a67db21cdac0a32f97ab44e82826e6ac65599 Author: Philip Robinson <simian@tari.com> Date: Wed Jun 23 10:16:33 2021 +0200 Update connectivity manager defaults This PR tweaks the `offline_peer_cooldown` and `max_failures_mark_offline` default values to better cope with intermittent disconnections. `offline_peer_cooldown` is reduced from 24 hours to 2 hours so that the peer will become eligible for a reconnection in less time. `max_failures_mark_offline` is changed from 1 to 2 to allow for one more round of connection retries before giving up on the node until the above cool down expires. commit 35b35333a9eec146a904c1c69ba33aa919bab2d1 Author: Hansie Odendaal <pluto@tari.com> Date: Mon Jun 21 17:56:07 2021 +0200 Clarify Tari Script nomenclature Picked less confusing script related names and updated the glossary: - script offset => script offset - script offset private key => sender offset private key [updated!] - script offset public key => sender offset public key [updated!] - script private key => script private key - script public key => script public key - script signature => script signature - sender metadata signature => sender metadata signature Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit a7601d4e5b2e9b2fc46df3c82b2939cff4da5360 Author: SW van Heerden <swvheerden@gmail.com> Date: Tue Jun 22 15:31:46 2021 +0200 update rfc to add witness_mr to header Co-Authored-By: Hansie Odendaal <pluto@tari.com> commit ca897079678163df37682aedc9c8b329e5e0dfa9 Author: Hansie Odendaal <pluto@tari.com> Date: Tue Jun 22 11:38:18 2021 +0200 Fix small issues related to #3020 - As per reviewer comments Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit d2049ffec3000f01eb555042d24d55fab7818c6b Merge: b3e3d38d b14f0342 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 22 11:33:11 2021 +0200 docs: update RFC-0111 - Base Node architecture (#3014) commit b3e3d38d2a742882e4e7fec7bad0a126efba5ab3 Author: Philip Robinson <simian@tari.com> Date: Tue Jun 22 11:17:46 2021 +0200 Review of RFC-0001 (#3007) * Review of RFC-0001 This PR contains a revision of RFC-0001 to better reflect the current state of play in Tari’s design. * Update RFC/src/RFC-0001_overview.md Co-authored-by: Cayle Sharrock <CjS77@users.noreply.github.com> Co-authored-by: Mike the Tike <stringhandler@gmail.com> Co-authored-by: Cayle Sharrock <CjS77@users.noreply.github.com> commit 7901b3ca2a6096e0f9148181b7a07ed16209d168 Merge: 4b4af991 f3d3c3af Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 22 10:56:35 2021 +0200 feat: add sender signature to txn output (#3020) commit f3d3c3af7eb9e247a8f0d01978cdfcebbbcacd35 Author: Hansie Odendaal <pluto@tari.com> Date: Fri Jun 11 16:01:58 2021 +0200 Add sender signature to txn output - Added sender signature to the transaction output and unblinded output. - Added sender signature validation to the transaction consistency check. - Added unit test to verify sender signature. - Added sender signature to cucumber (transaction builder). - Simplified test code making use of unblinded outputs. - Updated genesis block time stamp due to breaking changes. Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit cd0445fe55951bf1ee006869bd5326d39dd35227 Author: Byron Hambly <bizzle@tari.com> Date: Fri Jun 18 14:45:41 2021 +0200 [console-wallet] Allow amount field to parse Tari commit 3998844b5a7856c4528ad7378c17879c21a19669 Author: Byron Hambly <bizzle@tari.com> Date: Fri Jun 18 14:10:23 2021 +0200 [console-wallet] Add command mode auto exit arg commit 754d71ab5d06bfc9a704e7a0530d5fe91fe5b620 Author: Byron Hambly <bizzle@tari.com> Date: Fri Jun 18 11:00:31 2021 +0200 [console-wallet] Update app state when base node is set by command/script mode commit b5fef0244fbbf9fb5149ffd0e83911dc248ac460 Author: Philip Robinson <simian@tari.com> Date: Thu Jun 17 16:58:31 2021 +0200 Remove MemoryDBs from the wallet In the past all the wallet services has a Sqlite and Memory based db backend to use in testing. However maintaining the memory DB’s became a chore. This PR removes the Output Manager and Contacts Service memory databases and updates the tests that use those databases to use a temporary Sqlite database instead. commit 4b4af99121be5b6f612b7d71bfeba8a8ff9490a8 Merge: b174390e 568788cf Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 16 11:19:22 2021 +0200 test: fix integration tests (#3015) commit 568788cf03a56c220b442352afc12857cbe273ed Author: Byron Hambly <bizzle@tari.com> Date: Mon Jun 14 10:17:11 2021 +0200 [tests] Fix integration tests commit b14f0342006fc0788ef47ef5d32015a75761d4cd Author: Philip Robinson <simian@tari.com> Date: Tue Jun 15 16:01:29 2021 +0200 Update RFC-0111 - Base Node architecture This PR updates RFC-0111 to reflect the current architecture of the Base Node binary. commit b174390e1ac6f748cf64b1787f6648e5cc6b1fb0 Author: Philip Robinson <simian@tari.com> Date: Tue Jun 15 12:00:56 2021 +0200 Review of RFC-0100 (#3008) This PR contains a small update to RFC-0100 to reflect the current state of the project commit 0bc81ef426cc7627cd6f0b759db26140cab0f3f0 Merge: b3522027 86374505 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 16:20:57 2021 +0200 test: fix double spend test. (#3012) commit 8637450511a5112594697626c7c0bef5bca612e5 Author: Cifko <gcifko@gmail.com> Date: Thu Jun 10 19:28:40 2021 +0200 Fix double spend test. commit b3522027b824dd8bb50a7183397adba082fdf28e Merge: 537db06f 5b6d7c42 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 13:27:20 2021 +0200 fix: check minimum number of headers for calc-timing (#3009) commit 537db06f33c49942d42e83fd6838f4fd405028d0 Merge: b3760202 d7db26b3 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 13:23:49 2021 +0200 fix: fix `Unique Constraint` bug when requesting a coinbase output at same height (#3004) commit b3760202992676b8874a155775472820e6a22932 Merge: ac062e57 f2876a13 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 12:14:26 2021 +0200 feat: display local time instead of UTC. Add new wallet commands. (#2994) commit ac062e57903d493e09bff0ccee36660f7c088782 Merge: c88d789e 635b1969 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 12:11:03 2021 +0200 feat: mininal merkle proof for monero pow data (#2996) commit c88d789e0e8ee2180279debb59f0d53e15db3b66 Merge: b19789d1 f972d837 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 11:28:08 2021 +0200 feat: modify gamma calculation for TariScript commit b19789d1607d8c104c3cc0c902a8af75724ef828 Merge: 330e7b7d c8491bdc Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 10:54:23 2021 +0200 test: add logs to cucumber ci artefacts (#3011) commit c8491bdc58b8e820abe07594bed03c7607db8632 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 09:37:48 2021 +0200 add logs to cucumber ci artefacts commit 635b196927b5f4baed035394468ce6cc03cf74c0 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Mon Jun 7 15:02:53 2021 +0400 Mininal merkle proof for monero pow data - Adds a port of Monero's `tree_branch` that returns a merkle proof - Extensive unit tests for create_merkle_proof - Uses a merkle proof of the transaction hash set instead of the full transaction hash set. - Adds more extensive unit tests for tree_hash - tree_hash now has at worst one allocation - RandomX seed is represented in a fixed size array instead fo a unbounded String - Use monero's consensus de/encoding for MoneroPowData commit 5b6d7c42fe6903c35ed26883ec6beffb24661ca7 Author: Byron Hambly <bizzle@tari.com> Date: Thu Jun 10 10:09:43 2021 +0200 [base-node] Check minimum number of headers for calc-timing commit d7db26b3f286b68a5e905d8e814cd18c0cf61552 Author: Philip Robinson <simian@tari.com> Date: Thu Jun 10 08:57:19 2021 +0200 Fix `Unique Constraint` bug when requesting a coinbase output at same height If a miner requested a Coinbase Transaction at the same height as one that was requested previously and that output had the exact same commitment the Output Manager database would return a Unique Constraint error due to the existing output in the database. This would happen rarely when a miner is experiencing many reorgs while mining. To fix this issue logic is added to the Output Manager service to clear any existing coinbase outputs with the same commitment at the same block height as the one that was just requested before adding it to the database. I decided this presents no danger of losing funds because the newly added coinbase will have the exact same commitment as the one being removed. commit f2876a132ff6551f67c89b166561e616bbb9c110 Author: Byron Hambly <bizzle@tari.com> Date: Tue Jun 8 13:40:05 2021 +0200 [ui] Display local time instead of UTC. Add new wallet commands. - [base-node] Use local time in status line - [base-node] Show version number in status line - [console-wallet] Use local time in transaction list and detail view - [console-wallet] Add `set-base-node` command - [console-wallet] Add `set-custom-base-node` command - [console-wallet] Add `clear-custom-base-node` command commit f972d8376c5fe88a73769e4132c95fa92c0920dc Author: Hansie Odendaal <pluto@tari.com> Date: Thu Jun 3 15:12:11 2021 +0200 Modify gamma calculation for Tari script - Modified gamma calculation for Tari script according to the latest RFC-0201. - Fixed private keys re-use issue in `transactions/helpers.rs fn craete_tx`. - Clarified use of test params in `transactions/helpers.rs fn spend_utxos`. - Ensured `consensus_validation_large_tx` will fail if the txn internal consistency is not ok (gamma is calculated here as well). Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit 330e7b7d51e4ab8af50b8bbf12a8487ece23a07f Merge: 70c21294 a6835585 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 16:17:17 2021 +0200 test: fix reorg difficulty unit tests (#2995) commit 70c21294fa87da8198e8b79f8b49d61bd6bee721 Merge: a2c6b17d c601199a Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 15:01:53 2021 +0200 feat(wallet): ensure recovery will not overwrite existing wallet (#2992) commit a2c6b17de6fd8ac14a5379b0c44d34c1e1e71e2d Merge: 472c3086 98dfed73 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 14:28:40 2021 +0200 feat(ffi): `wallet_create` takes seed words for recovery (#2986) BREAKING CHANGE: FFI function wallet_create now takes an optional seed words arg, if provided this sets the wallet master recovery key from which the comms public key and spending keys are derived from commit 472c30865cfa5a3cc648bffe22f6ec6e7aa22572 Merge: 5174de0d 4626c4cb Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 14:25:52 2021 +0200 fix: cancel faux transaction when imported UTXO is invalidated (#2984) commit 5174de0d562b3ff444bceebeacbf3917b74dce85 Author: SW van Heerden <swvheerden@gmail.com> Date: Wed Jun 9 13:52:04 2021 +0200 feat: Fix birthday attack vulnerability in tari script offset (#2956) Co-Authored-By: Hansie Odendaal <pluto@tari.com> Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit 4626c4cbb7af9a3a285a5af4598af03b015cdeb9 Author: Philip Robinson <simian@tari.com> Date: Wed Jun 9 12:39:10 2021 +0200 Cancel faux transaction when imported UTXO is invalidated When a UTXO is imported into the wallet a faux transaction is added to the transaction service to represent the event that impacted the wallets balance. If the imported output turns out to be invalid, i.e. it was an already spent output or it was an orphan output then the output validation will invalidate it. However, the faux transaction would not be invalidated and would still appear in wallet transaction lists. This was found to be confusing. So this PR links the imported output to the faux transaction and if the output is invalidated the transaction is invalidated. Cucumber tests are added to test this functionality. commit 98dfed73a4ae6660fbe3c5e7420ea3e06e8f3fec Author: Byron Hambly <bizzle@tari.com> Date: Tue Jun 1 11:59:32 2021 +0200 [wallet-ffi] `wallet_create` takes seed words for recovery Breaking change in wallet FFI, new argument in `wallet_create` to specify optional seed words for recovery. Also starts alpha quality NodeJS FFI wallet client for testing purposes. commit c9fdeb3da90a297a75a53ddbea6823f3e6520b8d Merge: ded45e9e 97e128b3 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 09:49:19 2021 +0200 fix(wallet): increment wallet key manager index during recovery (#2973) commit 97e128b3bd869e0bc28c41f973d22d7977a0d046 Author: Philip Robinson <simian@tari.com> Date: Tue Jun 8 15:05:35 2021 +0200 Increment wallet key manager index during recovery Currently, when recovery is performed the key manager index is not incremented as outputs are found. This means that when new transactions are performed the key manager produces previously used spending keys for the new outputs, reusing private keys. We also did not apply the correct script private key to the recovered output. This wasn’t a problem because we are using `Nop` scripts but for any script that requires this key to be correct we would have had a problem. This PR adds the logic that when an output is rewound during recovery that we find the key manager index for the recovered spending key, update the key manager index to one more than the highest index found during recovery and also use this index to apply the correct script private key to the recovered output. This PR also contains a but of neatness refactoring in the Output Manager Service. commit a6835585f9ee3361e53fd4ba4f47c1e0a652ceb6 Author: Philip Robinson <simian@tari.com> Date: Tue Jun 8 14:21:37 2021 +0200 Fix reorg difficulty unit tests The changes in PR 2960 changed the LWMA difficulty calculation to be integer based. This changed the nature of the calculation for small values. The two broken tests affected by this change were: `test_handle_possible_reorg_target_difficulty_is_correct_case_1` `test_handle_possible_reorg_target_difficulty_is_correct_case_2` These tests relied on assumptions about the difficulty calculated by LWMA based on the block times specified in the tests. Just updating the test to use much higher difficulties would have meant the change to integer math would not have had such a breaking effect but the way the unit tests have to mine for new hashes based on the difficulties meant that the difficulties needed to be kept as low as possible. This PR tweaks the block times in these tests in order to produce varying difficulties but keeping them low enough for the unit test environment. commit ded45e9e8e1eb309cf84efc186eb0904fa1ea8a4 Merge: b520037e 39a56fd0 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jun 7 11:21:34 2021 +0200 chore: Update wallet-grpc-client to use https instedad of git for npm ci to work (#2976) commit 39a56fd0e59fd4bc138229cc36f94a5507dad577 Author: Byron Hambly <bizzle@tari.com> Date: Fri May 28 14:53:41 2021 +0200 [ci] Update wallet-grpc-client to use https instedad of git for npm ci to work commit c601199a910bcf540f41336db431aef069e41eb2 Author: Byron Hambly <bizzle@tari.com> Date: Sun Jun 6 20:43:18 2021 +0200 [wallet] Ensure recovery will not overwrite existing wallet commit b520037e4e054b27eb65b004a0e52d87d2c64086 Merge: 7172a021 1af7a759 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 4 11:37:37 2021 +0200 feat!: remove beta from range-proof calculation (#i2987) BREAKING CHANGE: Nodes will need to resync from scratch Co-Authored-By: Hansie Odendaal <pluto@tari.com> commit 7172a021f8ae8c500ce59b5514667f2be6d241d4 Merge: f45cdc46 5218365b Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 4 11:31:47 2021 +0200 test: add cucumber test to verify hybrid mined coinbases (#2977) commit f45cdc46f8485ea8978dd05edafa26d374c98fdc Merge: f7dc3a44 5c13deb3 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 4 11:05:50 2021 +0200 fix: update console wallet on one sided payment import (#2983) commit f7dc3a44d2f57102024605cc6f4c93bb326b292a Merge: b6e74bbd 6204d5d2 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 4 09:57:19 2021 +0200 fix: fix prune mode (#2952) commit 1af7a759461e609bfda4da43a82846039e14b983 Author: SW van Heerden <swvheerden@gmail.com> Date: Thu Jun 3 15:29:04 2021 +0200 remove beta-hash fix cucumber tests commit 5218365b831b662ee80cc53418aa63ad66d6785d Author: Hansie Odendaal <pluto@tari.com> Date: Wed May 26 18:50:35 2021 +0200 Add cucumber test to verify hybrid mined coinbases - Added cucumber test as above - Added cucumber methods to do hybrid mining till specified blockchain height - Updated the mining node to accept a new `--mine-till-height`command line parameter - Fixed mining node to acknowledge environment variables for `num_mining_threads` and `validate_tip_timeout_sec`; this only worked via the config file - Added number of mining threads for the SHA3 mining node to use as an option - Cleaned up the `log4rs_sample_mining_node.yml` config file - Added custom `mining_node.yml` as an input file for cucumber tests - Fixed flaky test `tx_broadcast_protocol_submit_mined_then_not_mined_resubmit_success` commit 5c13deb3baf80f9e0a599a060acef44863895e3d Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 20:03:55 2021 +0200 Update console wallet on one sided payment import commit 6204d5d28a88fb631980e94e3926df34f9ae951c Author: SW van Heerden <swvheerden@gmail.com> Date: Thu May 20 23:01:41 2021 +0200 fix prune mode fix fmt commit b6e74bbdd2e7886044ca8f6aa2707f1b0131680a Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 15:19:12 2021 +0200 test:fix nop script name commit 5dab4de212b86fe09c602e1c4baf9dc30b9c27be Merge: 7e99ea59 f7cb03a0 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 15:14:37 2021 +0200 test: fix cucumber error introduced by full script in transaction output (#2979) commit f7cb03a04dd6148834b7788d3a16cc327415ed97 Merge: 61233b0f 7e99ea59 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 15:14:12 2021 +0200 Merge branch 'tari-script' into philip-cucumber-full-script-fix commit 7e99ea59ec11f19ba47e62729c3ee8b500d16c2e Merge: a14599e2 68320ea4 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 13:49:48 2021 +0200 fix: fix ChainStorageError after a reorg with new block (#2915) commit 68320ea4d8979cedd6399b55c30e5a82ec774c30 Author: Hansie Odendaal <pluto@tari.com> Date: Thu May 20 15:02:11 2021 +0200 Fix ChainStorageError after a reorg with new block - Fixed a ChainStorageError that occurs due to invalid transactions remaining in the mempool when the 1st block is requested for mining via GRPC directly after a chain reorg. - Added a failing cucumber test for the above condition. - Minor cucumber improvements. - Updated the `tari-crypto` version number dependency. commit 61233b0fdd8c75a7f5c5f58f2c3eeec23905cfed Author: Philip Robinson <simian@tari.com> Date: Tue Jun 1 12:00:44 2021 +0200 Fix cucumber error introduced by full script in transaction output This PR updates the transaction builder in the Cucumber helpers to calculate the Beta hash and the Transaction Output hash correctly now that the whole script is included in the output. Implement including full script in transaction outputs commit a14599e254802d9f168940e62a4a5fe6091a5ae4 Merge: e04c884e 1bcbfc01 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 10:46:32 2021 +0200 test: make pruned mode cucumber reorg tests predictable (#2969) commit e04c884eb4c7aaf124fa5da5d80ecfc4b00817e1 Merge: db303e8c 786f404c Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 10:40:42 2021 +0200 fix: improve error messages in tari applications (#2951) commit db303e8ca9632c6a6634e52cbfb6a79cd3e43a29 Merge: 5901be8d 6693019b Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 10:29:41 2021 +0200 feat: improve LWMA (#2960) commit 786f404cb07bd83763253aa4cf57af8c47512c19 Author: SW van Heerden <swvheerden@gmail.com> Date: Thu May 20 23:06:23 2021 +0200 update error messages commit 5901be8d2a5256a7a77323840e350b912163e073 Merge: 94ffd185 eeb8acbf Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 31 15:15:55 2021 +0200 refactor!: including full script in transaction outputs (#2978) @Co-Authored-By: Philip Robinson <philip.robinson.za@gmail.com> commit eeb8acbfe938ab5e53cb2ed82ee6ca805f846c8c Author: Philip Robinson <simian@tari.com> Date: Mon May 31 15:04:23 2021 +0200 Implement including full script in transaction outputs This PR replaces the script hash in a transaction output with a full script. This has been done to make on-chain script detection and analysis possible. This makes features like detecting your own scripts based on included pubkeys during a seed phrase recovery possible. This PR updates the TransactionOutput struct to hold a script and not script hash and updates the code base to reflect this change. RFC-201 is updated to reflect the change to the calculation of Beta commit 1bcbfc01bcb3c42d9577771bd81325218f96fd9a Author: Hansie Odendaal <pluto@tari.com> Date: Wed May 26 10:07:32 2021 +0200 Make pruned mode cucumber reorg tests predictable - Ensured the different chains that are constructed have predictable accumulated difficulties for tests `Pruned mode reorg simple` and `Pruned mode reorg past horizon`. - Marked the 10,000 case `Ramped Stress Test` stress test as `@broken`. - Updated the `tari-crypto` package version. commit 6693019b81fefc8d4730ebac16beb4e21bbec70c Author: SW van Heerden <swvheerden@gmail.com> Date: Thu May 20 14:42:16 2021 +0200 Improve LWMA to be more stable overflow test review comments about u128 declarations remove extra cast commit 94ffd185ff4ee9ce5575f28ae28e73464342b657 Merge: b55d99fe 89ceb418 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 28 12:21:58 2021 +0200 fix: merge dev, update peer seeds (#2974) commit 89ceb418599851f555d992f55ef09f10e9b009e2 Author: Byron Hambly <bizzle@tari.com> Date: Fri May 28 11:05:26 2021 +0200 [base-node] update peer seeds temporarily for tari-script branch commit 76c787a46b42927d77eadc6962f667f6ef3e8986 Merge: b55d99fe bef1829b Author: Byron Hambly <bizzle@tari.com> Date: Fri May 28 10:28:44 2021 +0200 Merge remote-tracking branch 'tari/development' into merge commit b55d99fe3b08b34485bf1a9429cfad32a3fac84f Merge: 83eca218 be6f3c5b Author: Mike the Tike <mikethetike@tari.com> Date: Wed May 26 16:25:11 2021 +0200 fix: implement cucumber tests for one-sided recovery and scanning (#2955) commit be6f3c5b8d0844c13a993e0b72742b9b838a52cf Author: Mike the Tike <stringhandler@gmail.com> Date: Wed May 26 16:23:06 2021 +0200 Apply suggestions from code review Co-authored-by: Hansie Odendaal <39146854+hansieodendaal@users.noreply.github.com> commit 2a48e2167e6e4265eece11572ae0c03ecc438f96 Author: Philip Robinson <simian@tari.com> Date: Wed May 26 15:06:49 2021 +0200 Implement cucumber tests for one-sided recovery and scanning This PR implements cucumber tests for recovering one-sided payments, scanning for them under normal wallet operation and also adds to the existing standard recovery test to spend the output after it has been recovered which revealed a few bugs. The PR also contains a number of bug fixes to make these tests possible. - Console wallet will not enter TUI mode after recovery if its started in daemon mode, this crashes cucumber - Persist “Known one-sided scripts” when a Comms Private/Public key is derived to be scanned for - Fix the UTXO scanner when started as a service. - Add Cucumber helpers to support the tests. commit 83eca2182a32f0043ea85e7a6f1520c218c5a811 Merge: 812a1611 79271a84 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 25 15:35:56 2021 +0200 test: fix cucumber tests on `tari-script` branch (#2968) commit 79271a84a7e02cb68475ee5d9cb12abe3d43324f Author: Hansie Odendaal <pluto@tari.com> Date: Thu May 20 15:02:11 2021 +0200 Fix cucumber tests on `tari-script` branch - Fixed cucumber tests on `tari-script` branch after merging `development` into `tari-script`. - Fixed a number of flaky tests. commit 812a1611a924b977a79bd5e7fe16eb986649adce Merge: ed17fee3 c4767501 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 25 12:43:55 2021 +0200 fix: update rust nightly toolchain (#2957) Update rust nightly toolchain commit ed17fee3e34d3985794af621ba131e066849abec Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 15:12:44 2021 +0200 fix: Update failing rust tests (#2961) commit 19a1bd660bc36eea91c3936e464e57d582d1bcff Merge: 92e9a2e5 c4c28b9c Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 14:39:06 2021 +0200 chore: Fix clippy warnings in tests (#2965) commit c4c28b9c479fba859e4d94212e7e88d4d0f5d544 Author: Hansie Odendaal <pluto@tari.com> Date: Fri May 21 14:13:04 2021 +0200 Fix clippy warnings in tests commit 92e9a2e5918a590f68293f2ea0f950e724f1925a Merge: 05e34edc 90706bd3 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 14:10:32 2021 +0200 Merge #2899: [tests] update flaky unit tests update flaky unit tests commit 05e34edc7c1cdb893af454c886fc5904d42016a7 Merge: e6267851 5ae2b4db Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 14:03:05 2021 +0200 Merge #2964: [chore] Merge dev v0.8.11 into tari-script [MMProxy] Connection Limiting Fix target difficulty v0.8.11 Changes since v0.8.10 Merge dev commit 5ae2b4dbfaafdc966d0e7c4616b50b52d1a44535 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 13:46:36 2021 +0200 Merge dev commit a92882d6f69a556196d3f77713f87b5825a55936 Merge: e6267851 e64b1ffc Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 12:19:27 2021 +0200 Merge branch 'development' into tari-script # Conflicts: # Cargo.lock # applications/tari_app_utilities/Cargo.toml # applications/tari_base_node/src/recovery.rs # applications/tari_merge_mining_proxy/src/main.rs # applications/tari_merge_mining_proxy/src/test.rs # base_layer/core/src/base_node/comms_interface/inbound_handlers.rs # base_layer/core/src/chain_storage/blockchain_database.rs # base_layer/core/src/test_helpers/blockchain.rs # base_layer/core/src/test_helpers/mod.rs # base_layer/core/src/validation/header_validator.rs # base_layer/core/tests/block_validation.rs # base_layer/core/tests/helpers/block_builders.rs commit 90706bd3fb7997a580fe5357655a2455bc30f197 Author: SW van Heerden <swvheerden@gmail.com> Date: Fri May 7 12:57:14 2021 +0200 update flaky unit tests Add tx event to help with awaits commit c47675017abf2a7f55e7c361db221a7b4ebfef38 Author: Hansie Odendaal <pluto@tari.com> Date: Thu May 20 08:57:37 2021 +0200 Update rust nightly toolchain commit e6267851f2cb97d33fbcdaf5823671590e512aa8 Merge: 266ad172 af32d49f Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 18 15:02:19 2021 +0200 Merge #2916: [common] Merge dev into tari-script Add clippy warnings for cognitive complexity libwallet-0.16.27 Fix re-org test [base-node] Optimise pruned UTXO sync streaming protocol [Wallet] Add mined height to display of mined transactions in Console Wallet clarify one sided payment [base-node] Fixes and tidies up prune mode cleanup update tests to use sha3 add note Add option to write unblinded UTXOs to CSV file fmt Test to reproduce target difficulty problem fix case of cucumber Insert pruned output audit Fix incorrect boolean condition v0.8.9 Fix potential overflow and improve performance of n_leaves Add transaction washer util script [base-node] Refactor chain storage and rule out some target diff bugs [wallet] Update connectivity status when base node changes Emission math audit Consolidate config files into one [wallet] Fixes possible duration overflow in crossterm loop fix wallet recovery of coinbase Fix cucumber test Update Base Node Service monitor to shutdown correctly [tests] eslint config and husky pre-commit hook v0.8.10 Let wallet display pretty error for tor offline Re-implemented methods for block explorer [tests] Repair some integration tests Verified massive multiple reorg cucumber Bump timeouts Remove unused search stxo Remove unused search stxo Fix tests and add results to CI Fix compiler warnings Merge Dev into TariScript Merge Dev into TariScript Fix clippy commit af32d49ff74411ec53508a8ee98db59dc0491c6a Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 18 11:56:29 2021 +0200 Fix clippy commit b81ea4173daa3412a61d6993ca1996c299e230aa Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 17 20:16:42 2021 +0200 Merge Dev into TariScript commit eb4bac6bae83cfc622e39921a7aa98f2a68a6299 Merge: f30608a9 266ad172 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 17 19:44:09 2021 +0200 Merge branch 'tari-script' into mb-fix-tari-script-branch # Conflicts: # base_layer/wallet/src/transaction_service/service.rs # base_layer/wallet/src/wallet.rs # base_layer/wallet/tests/wallet/mod.rs # base_layer/wallet_ffi/src/lib.rs commit 266ad172eb03cff4a83754f5d96bc4fd444dee2d Merge: be04658c 47fe06d2 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 17 16:54:27 2021 +0200 Merge #2901:[wallet] Update and fix import utxo functions Import utxo fn use defaults down the line, this will cause any UTXO that's inserted into the wallet to be invalidated due to mismatched scripts, features, etc. Requires #2872 commit 47fe06d25487550ba117d36766faf4f8d7dd6f29 Author: SW van Heerden <swvheerden@gmail.com> Date: Mon May 17 15:20:33 2021 +0200 rename to maturity commit 556694705773f814594c67427d461b17c3e59efa Author: SW van Heerden <swvheerden@gmail.com> Date: Mon May 17 15:14:59 2021 +0200 Update and fix Import utxo functions code review commit f30608a9562295f9d5bcecdd5dab539ea0639851 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 14 15:25:22 2021 +0200 Merge Dev into TariScript commit b48c18ce68d06cb889df674a69ffc8038299e412 Merge: 6c8b7a3a f27cc244 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 14 12:26:59 2021 +0200 Merge branch 'development' into mb-fix-tari-script-branch # Conflicts: # Cargo.lock # RFC/src/RFC-0201_TariScript.md # applications/tari_app_grpc/Cargo.toml # applications/tari_app_utilities/Cargo.toml # applications/tari_base_node/Cargo.toml # applications/tari_base_node/src/command_handler.rs # applications/tari_console_wallet/Cargo.toml # applications/tari_console_wallet/src/automation/commands.rs # applications/tari_console_wallet/src/main.rs # applications/tari_console_wallet/src/ui/components/send_tab.rs # applications/tari_console_wallet/src/wallet_modes.rs # applications/tari_merge_mining_proxy/Cargo.toml # applications/tari_mining_node/Cargo.toml # applications/test_faucet/Cargo.toml # base_layer/common_types/Cargo.toml # base_layer/core/Cargo.toml # base_layer/core/src/base_node/comms_interface/local_interface.rs # base_layer/core/src/base_node/state_machine_service/states/horizon_state_sync/horizon_state_synchronization.rs # base_layer/core/src/base_node/sync/rpc/service.rs # base_layer/core/src/blocks/genesis_block.rs # base_layer/core/src/chain_storage/accumulated_data.rs # base_layer/core/src/chain_storage/block_add_result.rs # base_layer/core/src/chain_storage/blockchain_database.rs # base_layer/core/src/chain_storage/historical_block.rs # base_layer/core/src/chain_storage/lmdb_db/lmdb_db.rs # base_layer/core/src/consensus/consensus_manager.rs # base_layer/core/src/consensus/emission.rs # base_layer/core/src/lib.rs # base_layer/core/src/mempool/service/inbound_handlers.rs # base_layer/core/src/test_helpers/blockchain.rs # base_layer/core/src/test_helpers/mod.rs # base_layer/core/src/validation/header_validator.rs # base_layer/core/src/validation/helpers.rs # base_layer/core/src/validation/mocks.rs # base_layer/core/tests/chain_storage_tests/chain_storage.rs # base_layer/core/tests/helpers/block_builders.rs # base_layer/key_manager/Cargo.toml # base_layer/mmr/Cargo.toml # base_layer/p2p/Cargo.toml # base_layer/service_framework/Cargo.toml # base_layer/wallet/Cargo.toml # base_layer/wallet/src/base_node_service/service.rs # base_layer/wallet/src/output_manager_service/service.rs # base_layer/wallet/src/storage/sqlite_db.rs # base_layer/wallet/src/tasks/wallet_recovery.rs # base_layer/wallet/src/transaction_service/service.rs # base_layer/wallet/src/transaction_service/storage/database.rs # base_layer/wallet/src/transaction_service/storage/sqlite_db.rs # base_layer/wallet/src/wallet.rs # base_layer/wallet/tests/wallet/mod.rs # base_layer/wallet_ffi/src/lib.rs # common/Cargo.toml # common/config/presets/tari_config_example.toml # comms/Cargo.toml # comms/dht/Cargo.toml # comms/rpc_macros/Cargo.toml # infrastructure/derive/Cargo.toml # infrastructure/shutdown/Cargo.toml # infrastructure/storage/Cargo.toml # infrastructure/test_utils/Cargo.toml # integration_tests/features/Reorgs.feature # integration_tests/features/WalletTransfer.feature # integration_tests/features/support/steps.js # integration_tests/helpers/transactionBuilder.js # integration_tests/helpers/util.js # integration_tests/package-lock.json commit 6c8b7a3a68bbdceef9dc947336186d77aaa94e47 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 14 11:43:31 2021 +0200 Fix compiler warnings commit be04658c366d8975f6ac73eb1b39060d9d8b519d Merge: 770feb2b 069be999 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 14 10:31:54 2021 +0200 Merge #2897: [common] Replace custom ChaCha20 cipher Replace custom ChaCha20 cipher with RustCrypto ChaCha20 implementation Fuzzing revealed that the custom ChaCha20 implementation in tari_utilities was not correct so this PR migrates the DHT encryption to use the audited RustCrypto ChaCha20 encryption. Had to bump the toolchain version for this update so updated to the most current version of nightly. The only update needed was adding a new feature flag #![feature(min_type_alias_impl_trait)] which is a new flag for the same issue we already use (i.e. #![feature(type_alias_impl_trait)]) The new nightly toolchain contained an update to the linting used by rustfmt so I have included a second commit that is just new formatting to make this easier to review. commit 069be9994cd82d827ac14171344a04ab704bf91b Author: Philip Robinson <simian@tari.com> Date: Fri May 14 09:39:01 2021 +0200 Replace custom ChaCha20 cipher with RustCrypto ChaCha20 implementation Fuzzing revealed that the custom ChaCha20 implementation in `tari_utilities` was not correct so this PR migrates the DHT encryption to use the audited RustCrypto ChaCha20 encryption. Had to bump the toolchain version for this update so updated to the most current version of nightly. The only update needed was adding a new feature flag #![feature(min_type_alias_impl_trait)] which is a new flag for the same issue we already use (i.e. #![feature(type_alias_impl_trait)]) commit 770feb2b142cf4e20ae07e2e874dcb9c9695b270 Merge: 2dd0fc2c 270d9b5e Author: Mike the Tike <mikethetike@tari.com> Date: Wed May 12 18:40:13 2021 +0200 Merge #2913: [ci] Switch to ssh urls for tari-crypto dep For whatever reason circle ci was failing to checkout the tari-crypto git repo, switching these urls to use the ssh:// version is working commit 270d9b5eea2a017f0a9aac95cc10c82ba5668c93 Author: Byron Hambly <bizzle@tari.com> Date: Tue May 11 19:42:35 2021 +0200 [ci] Switch to ssh urls for tari-crypto dep commit 2dd0fc2c327f1f3fcb82fddd7a4f90828e5a3ef3 Merge: 3077769d 6f8cb87f Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 18:31:35 2021 +0200 Merge #2908: [base-node] Fix `header-stats` command Tari-script network reset omitted changing this stibbons reference. commit 3077769d63919b1abed6f613412c7c6e0448fc56 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 18:14:55 2021 +0200 fmt and clippy commit 4d72659561777098e3b28bc5c05915f07105670f Merge: 2999cb93 223f006c Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 18:01:30 2021 +0200 Merge #2910: [chore] Fix build error in console wallet Fix build error in console wallet commit 223f006c96a31d8a7f9806e69e89faec5cf0b32a Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue May 11 19:56:06 2021 +0400 Fix build error in console wallet commit 2999cb93ca8698087003a05cf3f66695055048ef Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 17:28:07 2021 +0200 Fix compile error commit 23024d0fdb0b273ea834895b9662c7d616a30f0a Merge: 89bf622a ad65bb2d Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 17:02:48 2021 +0200 Merge #2894: [wallet] Derive Comms Secret Key from the Master Seed key This PR implements the derivation of the Comms private key in the wallet from the Master Seed Key that is used as the seed for the key managers used for the UTXO’s on the wall. Previously the Comms Secret Key was generated by the client applications and it was stored in the Wallet Database. This key was also used to determine if the database was encrypted and if the provided passphrase is correct or not by storing the public key in the database and seeing if the stored private key corresponds to the permitted public key after decryption. This PR removes the Comms Secret and Public keys from the wallet database and replaces them with the Master Seed Key which becomes the single secret key from which the Comms Secret Key, UTXO Spending Keys and Rewind keys are derived. The Comms Secret key is now derived when the wallet is started based on the persisted Master Secret Key. On the first run the wallet will generate the Master Secret Key and store it. The Output Manager Service used to generate and store this key but now it will accept it from the Wallet and use it to initialise its Key Managers. The Console Wallet and Wallet FFI is updated to account for this change. commit ad65bb2d7aeb5cf4b73139af9dc9ccdc7164f83c Merge: 84e2f08a 89bf622a Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 17:02:12 2021 +0200 Merge branch 'tari-script' into philip-derive-comms-private-key commit 6f8cb87fef2b864403174f8cf02370c66cfffebf Author: Hansie Odendaal <pluto@tari.com> Date: Tue May 11 16:43:58 2021 +0200 Fix `header-stats` command Tari-script network reset omitted changing this stibbons reference. commit 89bf622aecf87bb5df244b0e6a57f28f4970b7a1 Merge: b6ba3133 21537dca Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 15:11:45 2021 +0200 Merge #2890: [common] Consolidate config files into one Consolidate config files into one commit b6ba31339d3b2ac974488d0ee4285eebd831b8ab Merge: 94344960 19bdbf62 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 15:08:43 2021 +0200 Merge #2895: [docs] Add Bulletproofs Rewinding RFC Add Bulletproofs Rewinding RFC commit 943449609e24301b1634fb1da11295f7734b20c2 Merge: ecac873a ba40a311 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 15:03:27 2021 +0200 Merge #2906: [tests] Verified massive multiple reorg cucumber (#2906) Verified massive multiple reorg cucumber commit 21537dcae4be61db0e2cd9d6ee682c5de156d3d3 Author: Hansie Odendaal <pluto@tari.com> Date: Tue May 4 14:38:54 2021 +0200 Consolidate config files into one - Consolidated all the three configuration files that were in the code base into one file, usable by all operating systems. - Removed some deprecated entries in the config file. - Updated the installation files/installers to use the new config file. - Clippy fixes. commit ecac873a86c75e7d60d1a499e5081b52e6b6705d Merge: 42220c34 4e5b3e04 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 10 13:45:47 2021 +0200 Merge #2889: [common] Adds version and commmit string to all application logs (#2889) Adds version and commmit string to all application logs commit 4e5b3e040133db75c4d9f7678702ad6f328a168b Merge: 09db76fe 42220c34 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 10 13:45:27 2021 +0200 Merge branch 'tari-script' into general-app-version-in-logs commit 42220c34cdb596a4040179f5efc1749559a3dca2 Merge: b2020dce 8c3d10d2 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 10 13:39:42 2021 +0200 Merge #2886: [common] Remove "end of time" panic in emission (#2886) Remove "end of time" panic in emission commit b2020dce319f6edc7bbae1b350ac1c59ce1ca391 Merge: 610b3159 c8b66ad7 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 10 12:00:20 2021 +0200 Merge #2872: [wallet] Add one sided payment scanning and recovering Add one sided payment scanning and recovering commit ba40a3113bcf374f105982b45eb50844f25dbde3 Author: Hansie Odendaal <pluto@tari.com> Date: Sun May 9 12:45:37 2021 +0200 Verified massive multiple reorg cucumber commit 84e2f08a96ad68cc8578a32cd4c08f393b1fa8d0 Author: Philip Robinson <simian@tari.com> Date: Fri May 7 14:19:27 2021 +0200 FFI method removal and Test Fixes Second commit contains a number of test fixes and some updates based on feedback from @kukabi about how the clients managed the Comms Secret Key. Because this is now completely handled in the backed we can remove the `comms_config_set_secret_key` function. It was also confirmed that the backend is fully responsible for managing the TorID so the old code that provided some migration support for the client to manage the TorID in the past has been removed. commit 610b3159fb09ca5fd88177a25c777880335de0a2 Merge: c3daa5aa 5c418649 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 7 11:25:45 2021 +0200 Merge #2887: [common] New gen block for tari_script New gen block for tari_script commit 19bdbf62ef9e1ae094c50341a86935be548dd449 Author: Hansie Odendaal <pluto@tari.com> Date: Tue May 4 17:31:58 2021 +0200 Add Bulletproofs Rewinding RFC commit c8b66ad7d53925a7cf4f1071f5e2d038fab41f1a Author: SW van Heerden <swvheerden@gmail.com> Date: Wed May 5 14:57:18 2021 +0200 Add one sided payment scanning and recovering Refactor recovery task into service change to hash based last scanned height remove clippy errors commit 09db76fe0113039a23d144b7d31e31fbe397ba46 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue May 4 16:53:32 2021 +0400 Adds version and commmit string to all application logs - Adds the application name, version obtained form the manifest and commit sha to the logs on application startup - Updates all log configs to route tari::application messages to all logs - Moves all `tari_common` build-time dependencies and code behind `build` feature flag commit 50ed6bf79e8c2379b83e39f00e6846e7a8e5cea4 Author: Philip Robinson <simian@tari.com> Date: Tue May 4 22:35:15 2021 +0200 [Wallet] Derive Comms Secret Key from the Master Seed key This PR implements the derivation of the Comms private key in the wallet from the Master Seed Key that is used as the seed for the key managers used for the UTXO’s on the wall. Previously the Comms Secret Key was generated by the client applications and it was stored in the Wallet Database. This key was also used to determine if the database was encrypted and if the provided passphrase is correct or not by storing the public key in the database and seeing if the stored private key corresponds to the permitted public key after decryption. This PR removes the Comms Secret and Public keys from the wallet database and replaces them with the Master Seed Key which becomes the single secret key from which the Comms Secret Key, UTXO Spending Keys and Rewind keys are derived. The Comms Secret key is now derived when the wallet is started based on the persisted Master Secret Key. On the first run the wallet will generate the Master Secret Key and store it. The Output Manager Service used to generate and store this key but now it will accept it from the Wallet and use it to initialise its Key Managers. The Console Wallet and Wallet FFI is updated to account for this change. commit 5c418649556814836cbf44707c269e1204b0a12e Author: SW van Heerden <swvheerden@gmail.com> Date: Tue May 4 11:26:28 2021 +0200 New gen block for tari_script commit 8c3d10d2d429b0d04018088944b5cd7b5bec2690 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Mo…
Squashed commit of the following: commit b95d558f318d045da9e1172cb802555ae3eb5a47 Merge: 62a03237 862be046 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jul 6 18:18:48 2021 +0200 fix: fix db update error (#3063) commit 62a03237ee4c6103b468a07bbf97f665eb391b4a Merge: 8ecbb1f2 e089af22 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jul 6 18:14:24 2021 +0200 chore: update digest, rand and sha3 (#3059) commit e089af2260b19fecc35c69fa053451f9bf649b80 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue Jul 6 14:28:27 2021 +0400 [chore] Update digest, rand and sha3 - Update crates `digest` `rand` and `sha3` to fix compilation errors (Ref https://github.com/tari-project/tari-crypto/pull/49) - NodeId::from_key is infallible - This in turn meant that NodeIdentity::new and NodeIdentity::randoma are infallible - This in turn meant that NodeIdentityError is unused, so it was removed - Remove multiple copies of the random string test utility (all of which needed `rand` crate updates) in favour of using the one provided in tari_test_utils commit 862be046102266ec368c950e5a5736ac0df3f6e0 Author: Hansie Odendaal <pluto@tari.com> Date: Tue Jul 6 18:05:01 2021 +0200 Fix db update error commit 8ecbb1f231da38f2e838c8acc79165b5b0a27136 Merge: 868a064e 4a3d7ccf Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jul 6 17:47:04 2021 +0200 feat: implement metadata comsig on txn output (#3057) commit 4a3d7ccf239457762552f75d1b7604dee312b9bd Author: Hansie Odendaal <pluto@tari.com> Date: Wed Jun 30 16:21:16 2021 +0200 Implement metadata comsig on txn output - Implemented metadata comsig for the txn output - Created new faucet - Updated genesis block timestamp as this is a breakng change - Added unit test Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit 868a064e361f34028ee1b70e8a120ec99766b7a1 Merge: 6b6842fd 87c2ad4a Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jul 6 11:39:53 2021 +0200 tests: fix broken cucumber tests (#3058) commit 87c2ad4abd081de5c96c0e8810ab5f51c323d5bd Author: SW van Heerden <swvheerden@gmail.com> Date: Tue Jul 6 11:32:57 2021 +0200 fix broken cucumber tests commit 6b6842fdf372607848e92ea3ea341f9d81d84259 Merge: cc225b83 63c0b6f5 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 16:52:42 2021 +0200 chore: update example with new peer seeds for weatherwax (#3054) commit cc225b83ccfc34480a6423cf211c14b7a7844659 Merge: cf33cdb5 88ce1d02 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 16:51:20 2021 +0200 chore: merge development commit cf33cdb5403736f67ea71f958e3ac06413c3f8e7 Merge: 742dd9e6 dd49c991 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 16:50:20 2021 +0200 feat: software auto updates for base node (#3039) commit 742dd9e6c9fc8c85bb6969e19489a4120d9cc9d1 Merge: 10ea7e38 ed70ecfc Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 16:49:14 2021 +0200 feat: add zero conf tx (#3043) commit 10ea7e387834edea1c8b65e7180c1493068fdab7 Merge: 4a1f74f3 9e614444 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 15:44:39 2021 +0200 chore: update monerod stagenet url (#3050) commit ed70ecfccb2a9407af35e17856987fdf40d9b05c Author: SW van Heerden <swvheerden@gmail.com> Date: Mon Jul 5 14:17:08 2021 +0200 add zero conf tx Co-Authored-By: Hansie Odendaal <pluto@tari.com> Co-authored-by: Stan Bondi <sdbondi@users.noreply.github.com> commit 63c0b6f53703561c131d36a819179127816a35e8 Author: Byron Hambly <bizzle@tari.com> Date: Mon Jul 5 11:13:08 2021 +0200 [config] Update example with new peer seeds for weatherwax commit 88ce1d02d005c69c8f1e296ac4fd511f81e6090c Merge: 4a1f74f3 f512982a Author: Byron Hambly <bizzle@tari.com> Date: Mon Jul 5 09:48:30 2021 +0200 merge development into tari-script commit dd49c991d06bcc578b2dbe0b180c262032a7e0e7 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Thu Jun 24 17:43:15 2021 +0400 Software auto updates for base node Implements software updates for base node - Add general-purpose module for software update notifications, consisting of: - DNS Update checker - checks the configured hosts TXT record for software updates - Download SHA hash file (shasum) of the updates and validate that a known maintainer signed it (future improvements would require > 1 maintainer) - Actor/Service that periodically checks for updates and notifies any listeners, as well as providing a "handle" interface to the software updater. - Base node uses this module to implement `check-for-updates` command and to display update notifications. - Cucumber tests for valid and invalid update - Extracted the DNS code from peer seeds so that it can be used for reading TXT records here - Add autoupdate configuration commit 4a1f74f34f9b312d3a3bbcdd0e97ab0ad47bfb9d Merge: 347973e3 6d6a11bb Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 17:05:56 2021 +0200 tests: fix wallet cucumber tests (#3049) commit 347973e3e8fdd39bb74d978d14ff414c04a39212 Merge: 5116bdeb 65b91c08 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 17:03:33 2021 +0200 fix: remove unimplemented Blake pow algo variant (#3047) BREAKING CHANGE!: This is a DB and network breaking change. commit 5116bdebc5bf8d0a1b358a02a143b07df52026df Merge: 2c9f6999 d76768d3 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 17:00:52 2021 +0200 refactor: clean up the db calls to make them safer (#3040) commit d76768d3efb4b0147a6f3e1e03327397921131e5 Merge: e738b3b1 2c9f6999 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 17:00:33 2021 +0200 Merge branch 'tari-script' into sw_refactorr_utxo_scanner_db commit 2c9f69991f7cfcbda113a55ceeacdf2c13d90da3 Merge: bc98c322 89769b27 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 16:58:51 2021 +0200 feat: network separation and protocol versioning implementation (#3030) commit bc98c322b9580f644dc0147f66369388499abf0a Merge: 9b281cec 85dea958 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 16:42:35 2021 +0200 refactor: remove `height` field from outputs (#3027) commit 65b91c08ce8e0e3b79a863612cdec37969442e33 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Thu Jul 1 16:15:56 2021 +0400 [chore, testnet-reset] Remove unimplemented Blake pow algo variant Remove unimplemented PowAlgo::Blake variant. This is a DB and network breaking change. commit 9e61444456c77e3fc1e7f531e46d1b5e21f53191 Author: Byron Hambly <bizzle@tari.com> Date: Fri Jul 2 13:44:01 2021 +0200 Update host header in proxied request commit 89769b27e4a41dc27a3e2543479534ac851add61 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue Jun 22 17:30:32 2021 +0400 Network separation and protocol versioning implementation - Changes `WireMode::Comms` variant to contain a single byte. - Allows the `WireMode::Comms` byte to be set from domain layer (tari_p2p). - [partially network breaking] Removes redundant network specifier from messaging protocol. - Removes DHT Network enum. - Updates Network configuration enum to be representable as a byte. - Network configuration enum is now the only Network specifier. - Changes consensus Network enum to a struct (NetworkConsensus) that wraps the common Network enum. - [network breaking] Use byte representation of multiaddr in identity message, rather than string. This reduces the bytes exchanged when establishing a new peer connection. - [network breaking] Shave a few bytes off of identity and messaging protocol IDs to match the format of other protocols. - [network breaking] Add major and minor versions to messaging protocol - [network breaking] Add major version check when establishing a connection - [network breaking] Remove NodeId from PeerIdentityMsg as this can be derived from the public key obtained from the noise handshake commit 85dea958016bd383b2648aca907d490c5fe6b309 Author: Philip Robinson <simian@tari.com> Date: Fri Jul 2 11:32:46 2021 +0200 Remove `height` field from outputs In the discussion around [RFC-0201](https://rfc.tari.com/RFC-0201_TariScript.html) it was decided that the `height` field is not actually required to prevent replay attacks with the introduction of TariScript. We rely on the enforcement of unique commitments in the mempool and blockchain to prevent this. As such this PR removes the height field from the TransactionInput and UnblindedOutput structs. commit 38278f0bb416ca00398667c3443fee1bd892eb81 Author: Byron Hambly <bizzle@tari.com> Date: Thu Jul 1 20:30:08 2021 +0200 [chore] update monerod stagenet url in readme commit 1d4176cc72d319bbadb7788465e878e734354194 Author: Byron Hambly <bizzle@tari.com> Date: Thu Jul 1 20:29:26 2021 +0200 [chore] update monerod stagenet url commit 6d6a11bbe9c7c460eeed59b0f06d11984d4ec685 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Thu Jul 1 19:59:23 2021 +0400 Fix wallet cucumber tests Output hash generation in `the UTXO {} has been mined according to {}` needed to be updated from https://github.com/tari-project/tari/pull/3041 commit 9b281cec339fea5cad48ca84cb5698302792373f Merge: fb1a692a 2cd35c59 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jul 1 11:18:31 2021 +0200 feat(wallet): add maturity to transaction detail (#3042) commit 2cd35c593ba66ba4f3de1df06e7487d0844732bb Author: Byron Hambly <bizzle@tari.com> Date: Tue Jun 29 13:29:45 2021 +0200 [console-wallet] Add maturity to transaction detail commit fb1a692aeb92af585a83b1c84948896db1cbcf1b Merge: da1d7579 5c79bf25 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jul 1 09:37:36 2021 +0200 refactor: remove type alias impl trait unstable feature requirement from DHT (#3037) commit da1d75790fcb4eb9a71b7822c3ede3d9ba598241 Merge: ef94134b ec5390f7 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jul 1 09:31:25 2021 +0200 fix: fix small issues related to #3020 (#3026) commit ec5390f74656eecdc439c379e2faf8ea6a679964 Merge: ca897079 ef94134b Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jul 1 09:30:47 2021 +0200 Merge branch 'tari-script' into ho_small_fixes commit 5c79bf25eab08b762a16dbbf14011d350e6e4a69 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Sun Jun 27 12:36:26 2021 +0400 Remove type alias impl trait unstable feature requirement from DHT Replaces the `type_alias_impl_trait` feature requirement with boxed Futures on all services. Removes/simplifies some redundant trait bounds. SAF handler task had to be implemented to be a less concurrent because of the additional trait bounds required for boxing. commit ef94134b4f60af1b907ff7d220a7b3f1ac446ac0 Merge: f2239418 5f5a9c7c Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 16:44:38 2021 +0200 chore: fix build (#3044) commit 5f5a9c7c5dc4bd8918ffe0800a914cdf2038f88f Author: SW van Heerden <swvheerden@gmail.com> Date: Wed Jun 30 16:18:33 2021 +0200 fix build commit f223941859903bdd3becd914ac84e630adb1e7c1 Merge: ae15fd9c 054b45aa Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:06:04 2021 +0200 refactor: start refactoring `min_type_alias_impl_trait` to `async_trait` (#3034) commit 054b45aa6314cd98e38997b67d7b973c89395761 Merge: cdb4f547 ae15fd9c Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:05:46 2021 +0200 Merge branch 'tari-script' into async-trait commit ae15fd9c6203f8a6fe40be411fe3e4e590270ef7 Merge: 229830e5 91af2872 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:04:13 2021 +0200 feat: add filtering of abandoned coinbase txs to console wallet (#3032) commit 229830e595c6b3c97011547d18885e2c0a3e3f19 Merge: 574ff8bb b89a67db Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:03:12 2021 +0200 fix: Update connectivity manager defaults (#3031) commit 574ff8bb7357fc3a5edcb60c564af0a7e038f6a7 Merge: 0ffaedec 35b35333 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:01:24 2021 +0200 docs: clarify Tari Script nomenclature (#3029) commit 0ffaedec4683748e452cfdee20464022dfbd4367 Merge: 65552cbd b0b57612 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:00:17 2021 +0200 tests: let the test pass if 1% of nodes will fail. The number of nodes that need to succeed is rounded down. Change from promise.all to a custom wait for N promises. (#3028) commit 65552cbd7b826e76a63ca50e53c41e8986eb9860 Merge: adb4a640 59f9675c Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 14:57:04 2021 +0200 feat: add input_mr and witness_mr to header (#3041) commit 59f9675c5f2bac76bd2c88151b44d2f9a761db3a Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue Jun 29 15:09:22 2021 +0400 Add input_mr and witness_mr to header As per updated RFC 120 (ref #3025): - Add `input_mr` to header, commits to all inputs in a block - Add input merkle root validation check - Commit to all transaction input fields - Add `TransactionInput::output_hash` that produces the hash of the output that was spent in the input - Remove range proof MR in favour of witness MR - Witness MR commits to all rangeproofs and sender metadata - Add witness_hash function that produces `Hash(RangeProof || sender_metadata_signature)` - Updated weatherwax genesis timestamp because this change is a hard fork - Updated header format in proto messages (network breaking) - Commit to `input_mr` in sha3 and monero mining hashes - Add some missing fields (`output_mmr_size`, `kernel_mmr_size` and `total_script_offset`) to sha3 miner hash (w/ minor code clean up) commit adb4a64000f991df06454e86c303728af881241d Merge: 04f826db 57ce1ac8 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 14:48:36 2021 +0200 feat: Change script_signature type to ComSig (#3016) commit cdb4f54724d73dd3085ae81beffa4f29a8a27471 Author: Byron Hambly <bizzle@tari.com> Date: Wed Jun 30 14:47:03 2021 +0200 [tests] Fix test compilation error commit 57ce1ac8732efeadca52b0f58d3ec482be6b1863 Author: SW van Heerden <swvheerden@gmail.com> Date: Fri Jun 25 18:21:12 2021 +0200 Change script_signature type to ComSig Fix cucumber test for comsig fix spelling Co-Authored-By: Hansie Odendaal <pluto@tari.com> commit b0b5761231cf3a8a34ed23bb256dfaef483e6eb8 Merge: 15b6d6c3 04f826db Author: Martin Stefcek <35243812+Cifko@users.noreply.github.com> Date: Wed Jun 30 07:55:03 2021 +0200 Merge branch 'tari-project:tari-script' into tari-script commit e738b3b148f2e3de73bf7669806242457ff60291 Author: SW van Heerden <swvheerden@gmail.com> Date: Tue Jun 29 07:51:18 2021 +0200 clean up the db calls to make them safer commit 04f826db140042248797e1377ee665b809146fe5 Merge: 4a499564 08dfc00c Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jun 28 11:21:06 2021 +0200 docs: update rfc to add witness_mr to header (#3025) commit 08dfc00c4c8176d06b57eadb9d1992b47430c5d3 Author: SW van Heerden <swvheerden@gmail.com> Date: Fri Jun 25 18:55:17 2021 +0200 Add input_mr Change rangeproof_mr to be a witness_mr commit f70d5ab83dd5224f4ab47f7dd77323a7f9e0c184 Author: Byron Hambly <bizzle@tari.com> Date: Thu Jun 24 18:58:22 2021 +0200 [common] Start refactoring `min_type_alias_impl_trait` to `async_trait` commit 4a499564d59162db25693f194f00eb4bd91f0700 Merge: ea15e9c1 cd0445fe Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 14:29:45 2021 +0200 feat: update app state when base node is set by command/script mode (#3019) [console-wallet] Update app state when base node is set by command/script mode [console-wallet] Add command mode auto exit arg [console-wallet] Allow amount field to parse Tari commit ea15e9c186f1ca09de5190a4de22e9e9c774ced1 Merge: 19ed0013 5d79c627 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 14:25:35 2021 +0200 docs: add RFC-0173 - Versioning to the RFCs (#3013) commit 19ed001335f23bbf10a28557a03037edc71beaea Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 12:14:50 2021 +0200 chore: fmt commit f8dae4dacb6ba0f1add9674d2d0f93c2538f359a Merge: 05674a3d 6ab28f23 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 12:13:40 2021 +0200 refactor: remove MemoryDBs from the wallet (#3017) commit 6ab28f239cb4156ecf6f1424970647c288d6eff6 Merge: b5fef024 05674a3d Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 12:13:06 2021 +0200 Merge branch 'tari-script' into philip-remove-memory-db commit 91af2872dee0148647f1e22587a2cf64346a9248 Author: Philip Robinson <simian@tari.com> Date: Wed Jun 23 20:33:46 2021 +0200 Add filtering of abandoned coinbase txs to console wallet This PR adds the ability to filter abandoned coinbase transactions in the completed transaction list of the console wallet. The filter is on by default and can be toggled with the A key. Transactions that have the Coinbase status and are also cancelled are filtered out and when displayed have the status of `Abandoned`. A TransactionFilter bitfield has been added to the AppState which currently only includes the AbandonedCoinbase flag but will allow for more filters to be added and combined. The filtering is done when the UI draw requests the vector of references to the current list of transactions. If no filter is applied the full vector of references is returned, otherwise a iterator filtered version is returned applying the conditions of the filter. commit 15b6d6c3617f2cbfd2b6071ea8c161872cbcd585 Author: Cifko <gcifko@gmail.com> Date: Tue Jun 22 16:58:04 2021 +0200 Let the test pass if 1% of nodes will fail. The number of nodes that need to succeed is rounded down. Change from promise.all to a custom wait for N promises. commit 05674a3dd1590fe1c96b11e628bb1a5156f3932c Merge: d2049ffe 1bc3efb3 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 23 11:56:22 2021 +0200 refactor: refactor utxo scanner class (#3005) commit 1bc3efb3b69f233b29dc33b70bfba4d110d6275d Author: SW van Heerden <swvheerden@gmail.com> Date: Wed Jun 23 11:51:16 2021 +0200 refactor utxo scanner class commit 5d79c627e01645c64b98a44425934457745a0867 Author: Philip Robinson <simian@tari.com> Date: Wed Jun 23 10:42:24 2021 +0200 Add RFC-0173 - Versioning to the RFCs This PR contains a new RFC with a proposal of how we will handle versioning of the wire format, P2P messaging and consensus rules on the Tari network. commit b89a67db21cdac0a32f97ab44e82826e6ac65599 Author: Philip Robinson <simian@tari.com> Date: Wed Jun 23 10:16:33 2021 +0200 Update connectivity manager defaults This PR tweaks the `offline_peer_cooldown` and `max_failures_mark_offline` default values to better cope with intermittent disconnections. `offline_peer_cooldown` is reduced from 24 hours to 2 hours so that the peer will become eligible for a reconnection in less time. `max_failures_mark_offline` is changed from 1 to 2 to allow for one more round of connection retries before giving up on the node until the above cool down expires. commit 35b35333a9eec146a904c1c69ba33aa919bab2d1 Author: Hansie Odendaal <pluto@tari.com> Date: Mon Jun 21 17:56:07 2021 +0200 Clarify Tari Script nomenclature Picked less confusing script related names and updated the glossary: - script offset => script offset - script offset private key => sender offset private key [updated!] - script offset public key => sender offset public key [updated!] - script private key => script private key - script public key => script public key - script signature => script signature - sender metadata signature => sender metadata signature Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit a7601d4e5b2e9b2fc46df3c82b2939cff4da5360 Author: SW van Heerden <swvheerden@gmail.com> Date: Tue Jun 22 15:31:46 2021 +0200 update rfc to add witness_mr to header Co-Authored-By: Hansie Odendaal <pluto@tari.com> commit ca897079678163df37682aedc9c8b329e5e0dfa9 Author: Hansie Odendaal <pluto@tari.com> Date: Tue Jun 22 11:38:18 2021 +0200 Fix small issues related to #3020 - As per reviewer comments Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit d2049ffec3000f01eb555042d24d55fab7818c6b Merge: b3e3d38d b14f0342 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 22 11:33:11 2021 +0200 docs: update RFC-0111 - Base Node architecture (#3014) commit b3e3d38d2a742882e4e7fec7bad0a126efba5ab3 Author: Philip Robinson <simian@tari.com> Date: Tue Jun 22 11:17:46 2021 +0200 Review of RFC-0001 (#3007) * Review of RFC-0001 This PR contains a revision of RFC-0001 to better reflect the current state of play in Tari’s design. * Update RFC/src/RFC-0001_overview.md Co-authored-by: Cayle Sharrock <CjS77@users.noreply.github.com> Co-authored-by: Mike the Tike <stringhandler@gmail.com> Co-authored-by: Cayle Sharrock <CjS77@users.noreply.github.com> commit 7901b3ca2a6096e0f9148181b7a07ed16209d168 Merge: 4b4af991 f3d3c3af Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 22 10:56:35 2021 +0200 feat: add sender signature to txn output (#3020) commit f3d3c3af7eb9e247a8f0d01978cdfcebbbcacd35 Author: Hansie Odendaal <pluto@tari.com> Date: Fri Jun 11 16:01:58 2021 +0200 Add sender signature to txn output - Added sender signature to the transaction output and unblinded output. - Added sender signature validation to the transaction consistency check. - Added unit test to verify sender signature. - Added sender signature to cucumber (transaction builder). - Simplified test code making use of unblinded outputs. - Updated genesis block time stamp due to breaking changes. Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit cd0445fe55951bf1ee006869bd5326d39dd35227 Author: Byron Hambly <bizzle@tari.com> Date: Fri Jun 18 14:45:41 2021 +0200 [console-wallet] Allow amount field to parse Tari commit 3998844b5a7856c4528ad7378c17879c21a19669 Author: Byron Hambly <bizzle@tari.com> Date: Fri Jun 18 14:10:23 2021 +0200 [console-wallet] Add command mode auto exit arg commit 754d71ab5d06bfc9a704e7a0530d5fe91fe5b620 Author: Byron Hambly <bizzle@tari.com> Date: Fri Jun 18 11:00:31 2021 +0200 [console-wallet] Update app state when base node is set by command/script mode commit b5fef0244fbbf9fb5149ffd0e83911dc248ac460 Author: Philip Robinson <simian@tari.com> Date: Thu Jun 17 16:58:31 2021 +0200 Remove MemoryDBs from the wallet In the past all the wallet services has a Sqlite and Memory based db backend to use in testing. However maintaining the memory DB’s became a chore. This PR removes the Output Manager and Contacts Service memory databases and updates the tests that use those databases to use a temporary Sqlite database instead. commit 4b4af99121be5b6f612b7d71bfeba8a8ff9490a8 Merge: b174390e 568788cf Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 16 11:19:22 2021 +0200 test: fix integration tests (#3015) commit 568788cf03a56c220b442352afc12857cbe273ed Author: Byron Hambly <bizzle@tari.com> Date: Mon Jun 14 10:17:11 2021 +0200 [tests] Fix integration tests commit b14f0342006fc0788ef47ef5d32015a75761d4cd Author: Philip Robinson <simian@tari.com> Date: Tue Jun 15 16:01:29 2021 +0200 Update RFC-0111 - Base Node architecture This PR updates RFC-0111 to reflect the current architecture of the Base Node binary. commit b174390e1ac6f748cf64b1787f6648e5cc6b1fb0 Author: Philip Robinson <simian@tari.com> Date: Tue Jun 15 12:00:56 2021 +0200 Review of RFC-0100 (#3008) This PR contains a small update to RFC-0100 to reflect the current state of the project commit 0bc81ef426cc7627cd6f0b759db26140cab0f3f0 Merge: b3522027 86374505 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 16:20:57 2021 +0200 test: fix double spend test. (#3012) commit 8637450511a5112594697626c7c0bef5bca612e5 Author: Cifko <gcifko@gmail.com> Date: Thu Jun 10 19:28:40 2021 +0200 Fix double spend test. commit b3522027b824dd8bb50a7183397adba082fdf28e Merge: 537db06f 5b6d7c42 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 13:27:20 2021 +0200 fix: check minimum number of headers for calc-timing (#3009) commit 537db06f33c49942d42e83fd6838f4fd405028d0 Merge: b3760202 d7db26b3 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 13:23:49 2021 +0200 fix: fix `Unique Constraint` bug when requesting a coinbase output at same height (#3004) commit b3760202992676b8874a155775472820e6a22932 Merge: ac062e57 f2876a13 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 12:14:26 2021 +0200 feat: display local time instead of UTC. Add new wallet commands. (#2994) commit ac062e57903d493e09bff0ccee36660f7c088782 Merge: c88d789e 635b1969 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 12:11:03 2021 +0200 feat: mininal merkle proof for monero pow data (#2996) commit c88d789e0e8ee2180279debb59f0d53e15db3b66 Merge: b19789d1 f972d837 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 11:28:08 2021 +0200 feat: modify gamma calculation for TariScript commit b19789d1607d8c104c3cc0c902a8af75724ef828 Merge: 330e7b7d c8491bdc Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 10:54:23 2021 +0200 test: add logs to cucumber ci artefacts (#3011) commit c8491bdc58b8e820abe07594bed03c7607db8632 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 09:37:48 2021 +0200 add logs to cucumber ci artefacts commit 635b196927b5f4baed035394468ce6cc03cf74c0 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Mon Jun 7 15:02:53 2021 +0400 Mininal merkle proof for monero pow data - Adds a port of Monero's `tree_branch` that returns a merkle proof - Extensive unit tests for create_merkle_proof - Uses a merkle proof of the transaction hash set instead of the full transaction hash set. - Adds more extensive unit tests for tree_hash - tree_hash now has at worst one allocation - RandomX seed is represented in a fixed size array instead fo a unbounded String - Use monero's consensus de/encoding for MoneroPowData commit 5b6d7c42fe6903c35ed26883ec6beffb24661ca7 Author: Byron Hambly <bizzle@tari.com> Date: Thu Jun 10 10:09:43 2021 +0200 [base-node] Check minimum number of headers for calc-timing commit d7db26b3f286b68a5e905d8e814cd18c0cf61552 Author: Philip Robinson <simian@tari.com> Date: Thu Jun 10 08:57:19 2021 +0200 Fix `Unique Constraint` bug when requesting a coinbase output at same height If a miner requested a Coinbase Transaction at the same height as one that was requested previously and that output had the exact same commitment the Output Manager database would return a Unique Constraint error due to the existing output in the database. This would happen rarely when a miner is experiencing many reorgs while mining. To fix this issue logic is added to the Output Manager service to clear any existing coinbase outputs with the same commitment at the same block height as the one that was just requested before adding it to the database. I decided this presents no danger of losing funds because the newly added coinbase will have the exact same commitment as the one being removed. commit f2876a132ff6551f67c89b166561e616bbb9c110 Author: Byron Hambly <bizzle@tari.com> Date: Tue Jun 8 13:40:05 2021 +0200 [ui] Display local time instead of UTC. Add new wallet commands. - [base-node] Use local time in status line - [base-node] Show version number in status line - [console-wallet] Use local time in transaction list and detail view - [console-wallet] Add `set-base-node` command - [console-wallet] Add `set-custom-base-node` command - [console-wallet] Add `clear-custom-base-node` command commit f972d8376c5fe88a73769e4132c95fa92c0920dc Author: Hansie Odendaal <pluto@tari.com> Date: Thu Jun 3 15:12:11 2021 +0200 Modify gamma calculation for Tari script - Modified gamma calculation for Tari script according to the latest RFC-0201. - Fixed private keys re-use issue in `transactions/helpers.rs fn craete_tx`. - Clarified use of test params in `transactions/helpers.rs fn spend_utxos`. - Ensured `consensus_validation_large_tx` will fail if the txn internal consistency is not ok (gamma is calculated here as well). Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit 330e7b7d51e4ab8af50b8bbf12a8487ece23a07f Merge: 70c21294 a6835585 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 16:17:17 2021 +0200 test: fix reorg difficulty unit tests (#2995) commit 70c21294fa87da8198e8b79f8b49d61bd6bee721 Merge: a2c6b17d c601199a Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 15:01:53 2021 +0200 feat(wallet): ensure recovery will not overwrite existing wallet (#2992) commit a2c6b17de6fd8ac14a5379b0c44d34c1e1e71e2d Merge: 472c3086 98dfed73 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 14:28:40 2021 +0200 feat(ffi): `wallet_create` takes seed words for recovery (#2986) BREAKING CHANGE: FFI function wallet_create now takes an optional seed words arg, if provided this sets the wallet master recovery key from which the comms public key and spending keys are derived from commit 472c30865cfa5a3cc648bffe22f6ec6e7aa22572 Merge: 5174de0d 4626c4cb Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 14:25:52 2021 +0200 fix: cancel faux transaction when imported UTXO is invalidated (#2984) commit 5174de0d562b3ff444bceebeacbf3917b74dce85 Author: SW van Heerden <swvheerden@gmail.com> Date: Wed Jun 9 13:52:04 2021 +0200 feat: Fix birthday attack vulnerability in tari script offset (#2956) Co-Authored-By: Hansie Odendaal <pluto@tari.com> Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit 4626c4cbb7af9a3a285a5af4598af03b015cdeb9 Author: Philip Robinson <simian@tari.com> Date: Wed Jun 9 12:39:10 2021 +0200 Cancel faux transaction when imported UTXO is invalidated When a UTXO is imported into the wallet a faux transaction is added to the transaction service to represent the event that impacted the wallets balance. If the imported output turns out to be invalid, i.e. it was an already spent output or it was an orphan output then the output validation will invalidate it. However, the faux transaction would not be invalidated and would still appear in wallet transaction lists. This was found to be confusing. So this PR links the imported output to the faux transaction and if the output is invalidated the transaction is invalidated. Cucumber tests are added to test this functionality. commit 98dfed73a4ae6660fbe3c5e7420ea3e06e8f3fec Author: Byron Hambly <bizzle@tari.com> Date: Tue Jun 1 11:59:32 2021 +0200 [wallet-ffi] `wallet_create` takes seed words for recovery Breaking change in wallet FFI, new argument in `wallet_create` to specify optional seed words for recovery. Also starts alpha quality NodeJS FFI wallet client for testing purposes. commit c9fdeb3da90a297a75a53ddbea6823f3e6520b8d Merge: ded45e9e 97e128b3 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 09:49:19 2021 +0200 fix(wallet): increment wallet key manager index during recovery (#2973) commit 97e128b3bd869e0bc28c41f973d22d7977a0d046 Author: Philip Robinson <simian@tari.com> Date: Tue Jun 8 15:05:35 2021 +0200 Increment wallet key manager index during recovery Currently, when recovery is performed the key manager index is not incremented as outputs are found. This means that when new transactions are performed the key manager produces previously used spending keys for the new outputs, reusing private keys. We also did not apply the correct script private key to the recovered output. This wasn’t a problem because we are using `Nop` scripts but for any script that requires this key to be correct we would have had a problem. This PR adds the logic that when an output is rewound during recovery that we find the key manager index for the recovered spending key, update the key manager index to one more than the highest index found during recovery and also use this index to apply the correct script private key to the recovered output. This PR also contains a but of neatness refactoring in the Output Manager Service. commit a6835585f9ee3361e53fd4ba4f47c1e0a652ceb6 Author: Philip Robinson <simian@tari.com> Date: Tue Jun 8 14:21:37 2021 +0200 Fix reorg difficulty unit tests The changes in PR 2960 changed the LWMA difficulty calculation to be integer based. This changed the nature of the calculation for small values. The two broken tests affected by this change were: `test_handle_possible_reorg_target_difficulty_is_correct_case_1` `test_handle_possible_reorg_target_difficulty_is_correct_case_2` These tests relied on assumptions about the difficulty calculated by LWMA based on the block times specified in the tests. Just updating the test to use much higher difficulties would have meant the change to integer math would not have had such a breaking effect but the way the unit tests have to mine for new hashes based on the difficulties meant that the difficulties needed to be kept as low as possible. This PR tweaks the block times in these tests in order to produce varying difficulties but keeping them low enough for the unit test environment. commit ded45e9e8e1eb309cf84efc186eb0904fa1ea8a4 Merge: b520037e 39a56fd0 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jun 7 11:21:34 2021 +0200 chore: Update wallet-grpc-client to use https instedad of git for npm ci to work (#2976) commit 39a56fd0e59fd4bc138229cc36f94a5507dad577 Author: Byron Hambly <bizzle@tari.com> Date: Fri May 28 14:53:41 2021 +0200 [ci] Update wallet-grpc-client to use https instedad of git for npm ci to work commit c601199a910bcf540f41336db431aef069e41eb2 Author: Byron Hambly <bizzle@tari.com> Date: Sun Jun 6 20:43:18 2021 +0200 [wallet] Ensure recovery will not overwrite existing wallet commit b520037e4e054b27eb65b004a0e52d87d2c64086 Merge: 7172a021 1af7a759 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 4 11:37:37 2021 +0200 feat!: remove beta from range-proof calculation (#i2987) BREAKING CHANGE: Nodes will need to resync from scratch Co-Authored-By: Hansie Odendaal <pluto@tari.com> commit 7172a021f8ae8c500ce59b5514667f2be6d241d4 Merge: f45cdc46 5218365b Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 4 11:31:47 2021 +0200 test: add cucumber test to verify hybrid mined coinbases (#2977) commit f45cdc46f8485ea8978dd05edafa26d374c98fdc Merge: f7dc3a44 5c13deb3 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 4 11:05:50 2021 +0200 fix: update console wallet on one sided payment import (#2983) commit f7dc3a44d2f57102024605cc6f4c93bb326b292a Merge: b6e74bbd 6204d5d2 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 4 09:57:19 2021 +0200 fix: fix prune mode (#2952) commit 1af7a759461e609bfda4da43a82846039e14b983 Author: SW van Heerden <swvheerden@gmail.com> Date: Thu Jun 3 15:29:04 2021 +0200 remove beta-hash fix cucumber tests commit 5218365b831b662ee80cc53418aa63ad66d6785d Author: Hansie Odendaal <pluto@tari.com> Date: Wed May 26 18:50:35 2021 +0200 Add cucumber test to verify hybrid mined coinbases - Added cucumber test as above - Added cucumber methods to do hybrid mining till specified blockchain height - Updated the mining node to accept a new `--mine-till-height`command line parameter - Fixed mining node to acknowledge environment variables for `num_mining_threads` and `validate_tip_timeout_sec`; this only worked via the config file - Added number of mining threads for the SHA3 mining node to use as an option - Cleaned up the `log4rs_sample_mining_node.yml` config file - Added custom `mining_node.yml` as an input file for cucumber tests - Fixed flaky test `tx_broadcast_protocol_submit_mined_then_not_mined_resubmit_success` commit 5c13deb3baf80f9e0a599a060acef44863895e3d Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 20:03:55 2021 +0200 Update console wallet on one sided payment import commit 6204d5d28a88fb631980e94e3926df34f9ae951c Author: SW van Heerden <swvheerden@gmail.com> Date: Thu May 20 23:01:41 2021 +0200 fix prune mode fix fmt commit b6e74bbdd2e7886044ca8f6aa2707f1b0131680a Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 15:19:12 2021 +0200 test:fix nop script name commit 5dab4de212b86fe09c602e1c4baf9dc30b9c27be Merge: 7e99ea59 f7cb03a0 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 15:14:37 2021 +0200 test: fix cucumber error introduced by full script in transaction output (#2979) commit f7cb03a04dd6148834b7788d3a16cc327415ed97 Merge: 61233b0f 7e99ea59 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 15:14:12 2021 +0200 Merge branch 'tari-script' into philip-cucumber-full-script-fix commit 7e99ea59ec11f19ba47e62729c3ee8b500d16c2e Merge: a14599e2 68320ea4 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 13:49:48 2021 +0200 fix: fix ChainStorageError after a reorg with new block (#2915) commit 68320ea4d8979cedd6399b55c30e5a82ec774c30 Author: Hansie Odendaal <pluto@tari.com> Date: Thu May 20 15:02:11 2021 +0200 Fix ChainStorageError after a reorg with new block - Fixed a ChainStorageError that occurs due to invalid transactions remaining in the mempool when the 1st block is requested for mining via GRPC directly after a chain reorg. - Added a failing cucumber test for the above condition. - Minor cucumber improvements. - Updated the `tari-crypto` version number dependency. commit 61233b0fdd8c75a7f5c5f58f2c3eeec23905cfed Author: Philip Robinson <simian@tari.com> Date: Tue Jun 1 12:00:44 2021 +0200 Fix cucumber error introduced by full script in transaction output This PR updates the transaction builder in the Cucumber helpers to calculate the Beta hash and the Transaction Output hash correctly now that the whole script is included in the output. Implement including full script in transaction outputs commit a14599e254802d9f168940e62a4a5fe6091a5ae4 Merge: e04c884e 1bcbfc01 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 10:46:32 2021 +0200 test: make pruned mode cucumber reorg tests predictable (#2969) commit e04c884eb4c7aaf124fa5da5d80ecfc4b00817e1 Merge: db303e8c 786f404c Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 10:40:42 2021 +0200 fix: improve error messages in tari applications (#2951) commit db303e8ca9632c6a6634e52cbfb6a79cd3e43a29 Merge: 5901be8d 6693019b Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 10:29:41 2021 +0200 feat: improve LWMA (#2960) commit 786f404cb07bd83763253aa4cf57af8c47512c19 Author: SW van Heerden <swvheerden@gmail.com> Date: Thu May 20 23:06:23 2021 +0200 update error messages commit 5901be8d2a5256a7a77323840e350b912163e073 Merge: 94ffd185 eeb8acbf Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 31 15:15:55 2021 +0200 refactor!: including full script in transaction outputs (#2978) @Co-Authored-By: Philip Robinson <philip.robinson.za@gmail.com> commit eeb8acbfe938ab5e53cb2ed82ee6ca805f846c8c Author: Philip Robinson <simian@tari.com> Date: Mon May 31 15:04:23 2021 +0200 Implement including full script in transaction outputs This PR replaces the script hash in a transaction output with a full script. This has been done to make on-chain script detection and analysis possible. This makes features like detecting your own scripts based on included pubkeys during a seed phrase recovery possible. This PR updates the TransactionOutput struct to hold a script and not script hash and updates the code base to reflect this change. RFC-201 is updated to reflect the change to the calculation of Beta commit 1bcbfc01bcb3c42d9577771bd81325218f96fd9a Author: Hansie Odendaal <pluto@tari.com> Date: Wed May 26 10:07:32 2021 +0200 Make pruned mode cucumber reorg tests predictable - Ensured the different chains that are constructed have predictable accumulated difficulties for tests `Pruned mode reorg simple` and `Pruned mode reorg past horizon`. - Marked the 10,000 case `Ramped Stress Test` stress test as `@broken`. - Updated the `tari-crypto` package version. commit 6693019b81fefc8d4730ebac16beb4e21bbec70c Author: SW van Heerden <swvheerden@gmail.com> Date: Thu May 20 14:42:16 2021 +0200 Improve LWMA to be more stable overflow test review comments about u128 declarations remove extra cast commit 94ffd185ff4ee9ce5575f28ae28e73464342b657 Merge: b55d99fe 89ceb418 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 28 12:21:58 2021 +0200 fix: merge dev, update peer seeds (#2974) commit 89ceb418599851f555d992f55ef09f10e9b009e2 Author: Byron Hambly <bizzle@tari.com> Date: Fri May 28 11:05:26 2021 +0200 [base-node] update peer seeds temporarily for tari-script branch commit 76c787a46b42927d77eadc6962f667f6ef3e8986 Merge: b55d99fe bef1829b Author: Byron Hambly <bizzle@tari.com> Date: Fri May 28 10:28:44 2021 +0200 Merge remote-tracking branch 'tari/development' into merge commit b55d99fe3b08b34485bf1a9429cfad32a3fac84f Merge: 83eca218 be6f3c5b Author: Mike the Tike <mikethetike@tari.com> Date: Wed May 26 16:25:11 2021 +0200 fix: implement cucumber tests for one-sided recovery and scanning (#2955) commit be6f3c5b8d0844c13a993e0b72742b9b838a52cf Author: Mike the Tike <stringhandler@gmail.com> Date: Wed May 26 16:23:06 2021 +0200 Apply suggestions from code review Co-authored-by: Hansie Odendaal <39146854+hansieodendaal@users.noreply.github.com> commit 2a48e2167e6e4265eece11572ae0c03ecc438f96 Author: Philip Robinson <simian@tari.com> Date: Wed May 26 15:06:49 2021 +0200 Implement cucumber tests for one-sided recovery and scanning This PR implements cucumber tests for recovering one-sided payments, scanning for them under normal wallet operation and also adds to the existing standard recovery test to spend the output after it has been recovered which revealed a few bugs. The PR also contains a number of bug fixes to make these tests possible. - Console wallet will not enter TUI mode after recovery if its started in daemon mode, this crashes cucumber - Persist “Known one-sided scripts” when a Comms Private/Public key is derived to be scanned for - Fix the UTXO scanner when started as a service. - Add Cucumber helpers to support the tests. commit 83eca2182a32f0043ea85e7a6f1520c218c5a811 Merge: 812a1611 79271a84 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 25 15:35:56 2021 +0200 test: fix cucumber tests on `tari-script` branch (#2968) commit 79271a84a7e02cb68475ee5d9cb12abe3d43324f Author: Hansie Odendaal <pluto@tari.com> Date: Thu May 20 15:02:11 2021 +0200 Fix cucumber tests on `tari-script` branch - Fixed cucumber tests on `tari-script` branch after merging `development` into `tari-script`. - Fixed a number of flaky tests. commit 812a1611a924b977a79bd5e7fe16eb986649adce Merge: ed17fee3 c4767501 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 25 12:43:55 2021 +0200 fix: update rust nightly toolchain (#2957) Update rust nightly toolchain commit ed17fee3e34d3985794af621ba131e066849abec Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 15:12:44 2021 +0200 fix: Update failing rust tests (#2961) commit 19a1bd660bc36eea91c3936e464e57d582d1bcff Merge: 92e9a2e5 c4c28b9c Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 14:39:06 2021 +0200 chore: Fix clippy warnings in tests (#2965) commit c4c28b9c479fba859e4d94212e7e88d4d0f5d544 Author: Hansie Odendaal <pluto@tari.com> Date: Fri May 21 14:13:04 2021 +0200 Fix clippy warnings in tests commit 92e9a2e5918a590f68293f2ea0f950e724f1925a Merge: 05e34edc 90706bd3 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 14:10:32 2021 +0200 Merge #2899: [tests] update flaky unit tests update flaky unit tests commit 05e34edc7c1cdb893af454c886fc5904d42016a7 Merge: e6267851 5ae2b4db Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 14:03:05 2021 +0200 Merge #2964: [chore] Merge dev v0.8.11 into tari-script [MMProxy] Connection Limiting Fix target difficulty v0.8.11 Changes since v0.8.10 Merge dev commit 5ae2b4dbfaafdc966d0e7c4616b50b52d1a44535 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 13:46:36 2021 +0200 Merge dev commit a92882d6f69a556196d3f77713f87b5825a55936 Merge: e6267851 e64b1ffc Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 12:19:27 2021 +0200 Merge branch 'development' into tari-script # Conflicts: # Cargo.lock # applications/tari_app_utilities/Cargo.toml # applications/tari_base_node/src/recovery.rs # applications/tari_merge_mining_proxy/src/main.rs # applications/tari_merge_mining_proxy/src/test.rs # base_layer/core/src/base_node/comms_interface/inbound_handlers.rs # base_layer/core/src/chain_storage/blockchain_database.rs # base_layer/core/src/test_helpers/blockchain.rs # base_layer/core/src/test_helpers/mod.rs # base_layer/core/src/validation/header_validator.rs # base_layer/core/tests/block_validation.rs # base_layer/core/tests/helpers/block_builders.rs commit 90706bd3fb7997a580fe5357655a2455bc30f197 Author: SW van Heerden <swvheerden@gmail.com> Date: Fri May 7 12:57:14 2021 +0200 update flaky unit tests Add tx event to help with awaits commit c47675017abf2a7f55e7c361db221a7b4ebfef38 Author: Hansie Odendaal <pluto@tari.com> Date: Thu May 20 08:57:37 2021 +0200 Update rust nightly toolchain commit e6267851f2cb97d33fbcdaf5823671590e512aa8 Merge: 266ad172 af32d49f Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 18 15:02:19 2021 +0200 Merge #2916: [common] Merge dev into tari-script Add clippy warnings for cognitive complexity libwallet-0.16.27 Fix re-org test [base-node] Optimise pruned UTXO sync streaming protocol [Wallet] Add mined height to display of mined transactions in Console Wallet clarify one sided payment [base-node] Fixes and tidies up prune mode cleanup update tests to use sha3 add note Add option to write unblinded UTXOs to CSV file fmt Test to reproduce target difficulty problem fix case of cucumber Insert pruned output audit Fix incorrect boolean condition v0.8.9 Fix potential overflow and improve performance of n_leaves Add transaction washer util script [base-node] Refactor chain storage and rule out some target diff bugs [wallet] Update connectivity status when base node changes Emission math audit Consolidate config files into one [wallet] Fixes possible duration overflow in crossterm loop fix wallet recovery of coinbase Fix cucumber test Update Base Node Service monitor to shutdown correctly [tests] eslint config and husky pre-commit hook v0.8.10 Let wallet display pretty error for tor offline Re-implemented methods for block explorer [tests] Repair some integration tests Verified massive multiple reorg cucumber Bump timeouts Remove unused search stxo Remove unused search stxo Fix tests and add results to CI Fix compiler warnings Merge Dev into TariScript Merge Dev into TariScript Fix clippy commit af32d49ff74411ec53508a8ee98db59dc0491c6a Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 18 11:56:29 2021 +0200 Fix clippy commit b81ea4173daa3412a61d6993ca1996c299e230aa Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 17 20:16:42 2021 +0200 Merge Dev into TariScript commit eb4bac6bae83cfc622e39921a7aa98f2a68a6299 Merge: f30608a9 266ad172 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 17 19:44:09 2021 +0200 Merge branch 'tari-script' into mb-fix-tari-script-branch # Conflicts: # base_layer/wallet/src/transaction_service/service.rs # base_layer/wallet/src/wallet.rs # base_layer/wallet/tests/wallet/mod.rs # base_layer/wallet_ffi/src/lib.rs commit 266ad172eb03cff4a83754f5d96bc4fd444dee2d Merge: be04658c 47fe06d2 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 17 16:54:27 2021 +0200 Merge #2901:[wallet] Update and fix import utxo functions Import utxo fn use defaults down the line, this will cause any UTXO that's inserted into the wallet to be invalidated due to mismatched scripts, features, etc. Requires #2872 commit 47fe06d25487550ba117d36766faf4f8d7dd6f29 Author: SW van Heerden <swvheerden@gmail.com> Date: Mon May 17 15:20:33 2021 +0200 rename to maturity commit 556694705773f814594c67427d461b17c3e59efa Author: SW van Heerden <swvheerden@gmail.com> Date: Mon May 17 15:14:59 2021 +0200 Update and fix Import utxo functions code review commit f30608a9562295f9d5bcecdd5dab539ea0639851 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 14 15:25:22 2021 +0200 Merge Dev into TariScript commit b48c18ce68d06cb889df674a69ffc8038299e412 Merge: 6c8b7a3a f27cc244 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 14 12:26:59 2021 +0200 Merge branch 'development' into mb-fix-tari-script-branch # Conflicts: # Cargo.lock # RFC/src/RFC-0201_TariScript.md # applications/tari_app_grpc/Cargo.toml # applications/tari_app_utilities/Cargo.toml # applications/tari_base_node/Cargo.toml # applications/tari_base_node/src/command_handler.rs # applications/tari_console_wallet/Cargo.toml # applications/tari_console_wallet/src/automation/commands.rs # applications/tari_console_wallet/src/main.rs # applications/tari_console_wallet/src/ui/components/send_tab.rs # applications/tari_console_wallet/src/wallet_modes.rs # applications/tari_merge_mining_proxy/Cargo.toml # applications/tari_mining_node/Cargo.toml # applications/test_faucet/Cargo.toml # base_layer/common_types/Cargo.toml # base_layer/core/Cargo.toml # base_layer/core/src/base_node/comms_interface/local_interface.rs # base_layer/core/src/base_node/state_machine_service/states/horizon_state_sync/horizon_state_synchronization.rs # base_layer/core/src/base_node/sync/rpc/service.rs # base_layer/core/src/blocks/genesis_block.rs # base_layer/core/src/chain_storage/accumulated_data.rs # base_layer/core/src/chain_storage/block_add_result.rs # base_layer/core/src/chain_storage/blockchain_database.rs # base_layer/core/src/chain_storage/historical_block.rs # base_layer/core/src/chain_storage/lmdb_db/lmdb_db.rs # base_layer/core/src/consensus/consensus_manager.rs # base_layer/core/src/consensus/emission.rs # base_layer/core/src/lib.rs # base_layer/core/src/mempool/service/inbound_handlers.rs # base_layer/core/src/test_helpers/blockchain.rs # base_layer/core/src/test_helpers/mod.rs # base_layer/core/src/validation/header_validator.rs # base_layer/core/src/validation/helpers.rs # base_layer/core/src/validation/mocks.rs # base_layer/core/tests/chain_storage_tests/chain_storage.rs # base_layer/core/tests/helpers/block_builders.rs # base_layer/key_manager/Cargo.toml # base_layer/mmr/Cargo.toml # base_layer/p2p/Cargo.toml # base_layer/service_framework/Cargo.toml # base_layer/wallet/Cargo.toml # base_layer/wallet/src/base_node_service/service.rs # base_layer/wallet/src/output_manager_service/service.rs # base_layer/wallet/src/storage/sqlite_db.rs # base_layer/wallet/src/tasks/wallet_recovery.rs # base_layer/wallet/src/transaction_service/service.rs # base_layer/wallet/src/transaction_service/storage/database.rs # base_layer/wallet/src/transaction_service/storage/sqlite_db.rs # base_layer/wallet/src/wallet.rs # base_layer/wallet/tests/wallet/mod.rs # base_layer/wallet_ffi/src/lib.rs # common/Cargo.toml # common/config/presets/tari_config_example.toml # comms/Cargo.toml # comms/dht/Cargo.toml # comms/rpc_macros/Cargo.toml # infrastructure/derive/Cargo.toml # infrastructure/shutdown/Cargo.toml # infrastructure/storage/Cargo.toml # infrastructure/test_utils/Cargo.toml # integration_tests/features/Reorgs.feature # integration_tests/features/WalletTransfer.feature # integration_tests/features/support/steps.js # integration_tests/helpers/transactionBuilder.js # integration_tests/helpers/util.js # integration_tests/package-lock.json commit 6c8b7a3a68bbdceef9dc947336186d77aaa94e47 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 14 11:43:31 2021 +0200 Fix compiler warnings commit be04658c366d8975f6ac73eb1b39060d9d8b519d Merge: 770feb2b 069be999 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 14 10:31:54 2021 +0200 Merge #2897: [common] Replace custom ChaCha20 cipher Replace custom ChaCha20 cipher with RustCrypto ChaCha20 implementation Fuzzing revealed that the custom ChaCha20 implementation in tari_utilities was not correct so this PR migrates the DHT encryption to use the audited RustCrypto ChaCha20 encryption. Had to bump the toolchain version for this update so updated to the most current version of nightly. The only update needed was adding a new feature flag #![feature(min_type_alias_impl_trait)] which is a new flag for the same issue we already use (i.e. #![feature(type_alias_impl_trait)]) The new nightly toolchain contained an update to the linting used by rustfmt so I have included a second commit that is just new formatting to make this easier to review. commit 069be9994cd82d827ac14171344a04ab704bf91b Author: Philip Robinson <simian@tari.com> Date: Fri May 14 09:39:01 2021 +0200 Replace custom ChaCha20 cipher with RustCrypto ChaCha20 implementation Fuzzing revealed that the custom ChaCha20 implementation in `tari_utilities` was not correct so this PR migrates the DHT encryption to use the audited RustCrypto ChaCha20 encryption. Had to bump the toolchain version for this update so updated to the most current version of nightly. The only update needed was adding a new feature flag #![feature(min_type_alias_impl_trait)] which is a new flag for the same issue we already use (i.e. #![feature(type_alias_impl_trait)]) commit 770feb2b142cf4e20ae07e2e874dcb9c9695b270 Merge: 2dd0fc2c 270d9b5e Author: Mike the Tike <mikethetike@tari.com> Date: Wed May 12 18:40:13 2021 +0200 Merge #2913: [ci] Switch to ssh urls for tari-crypto dep For whatever reason circle ci was failing to checkout the tari-crypto git repo, switching these urls to use the ssh:// version is working commit 270d9b5eea2a017f0a9aac95cc10c82ba5668c93 Author: Byron Hambly <bizzle@tari.com> Date: Tue May 11 19:42:35 2021 +0200 [ci] Switch to ssh urls for tari-crypto dep commit 2dd0fc2c327f1f3fcb82fddd7a4f90828e5a3ef3 Merge: 3077769d 6f8cb87f Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 18:31:35 2021 +0200 Merge #2908: [base-node] Fix `header-stats` command Tari-script network reset omitted changing this stibbons reference. commit 3077769d63919b1abed6f613412c7c6e0448fc56 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 18:14:55 2021 +0200 fmt and clippy commit 4d72659561777098e3b28bc5c05915f07105670f Merge: 2999cb93 223f006c Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 18:01:30 2021 +0200 Merge #2910: [chore] Fix build error in console wallet Fix build error in console wallet commit 223f006c96a31d8a7f9806e69e89faec5cf0b32a Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue May 11 19:56:06 2021 +0400 Fix build error in console wallet commit 2999cb93ca8698087003a05cf3f66695055048ef Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 17:28:07 2021 +0200 Fix compile error commit 23024d0fdb0b273ea834895b9662c7d616a30f0a Merge: 89bf622a ad65bb2d Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 17:02:48 2021 +0200 Merge #2894: [wallet] Derive Comms Secret Key from the Master Seed key This PR implements the derivation of the Comms private key in the wallet from the Master Seed Key that is used as the seed for the key managers used for the UTXO’s on the wall. Previously the Comms Secret Key was generated by the client applications and it was stored in the Wallet Database. This key was also used to determine if the database was encrypted and if the provided passphrase is correct or not by storing the public key in the database and seeing if the stored private key corresponds to the permitted public key after decryption. This PR removes the Comms Secret and Public keys from the wallet database and replaces them with the Master Seed Key which becomes the single secret key from which the Comms Secret Key, UTXO Spending Keys and Rewind keys are derived. The Comms Secret key is now derived when the wallet is started based on the persisted Master Secret Key. On the first run the wallet will generate the Master Secret Key and store it. The Output Manager Service used to generate and store this key but now it will accept it from the Wallet and use it to initialise its Key Managers. The Console Wallet and Wallet FFI is updated to account for this change. commit ad65bb2d7aeb5cf4b73139af9dc9ccdc7164f83c Merge: 84e2f08a 89bf622a Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 17:02:12 2021 +0200 Merge branch 'tari-script' into philip-derive-comms-private-key commit 6f8cb87fef2b864403174f8cf02370c66cfffebf Author: Hansie Odendaal <pluto@tari.com> Date: Tue May 11 16:43:58 2021 +0200 Fix `header-stats` command Tari-script network reset omitted changing this stibbons reference. commit 89bf622aecf87bb5df244b0e6a57f28f4970b7a1 Merge: b6ba3133 21537dca Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 15:11:45 2021 +0200 Merge #2890: [common] Consolidate config files into one Consolidate config files into one commit b6ba31339d3b2ac974488d0ee4285eebd831b8ab Merge: 94344960 19bdbf62 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 15:08:43 2021 +0200 Merge #2895: [docs] Add Bulletproofs Rewinding RFC Add Bulletproofs Rewinding RFC commit 943449609e24301b1634fb1da11295f7734b20c2 Merge: ecac873a ba40a311 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 15:03:27 2021 +0200 Merge #2906: [tests] Verified massive multiple reorg cucumber (#2906) Verified massive multiple reorg cucumber commit 21537dcae4be61db0e2cd9d6ee682c5de156d3d3 Author: Hansie Odendaal <pluto@tari.com> Date: Tue May 4 14:38:54 2021 +0200 Consolidate config files into one - Consolidated all the three configuration files that were in the code base into one file, usable by all operating systems. - Removed some deprecated entries in the config file. - Updated the installation files/installers to use the new config file. - Clippy fixes. commit ecac873a86c75e7d60d1a499e5081b52e6b6705d Merge: 42220c34 4e5b3e04 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 10 13:45:47 2021 +0200 Merge #2889: [common] Adds version and commmit string to all application logs (#2889) Adds version and commmit string to all application logs commit 4e5b3e040133db75c4d9f7678702ad6f328a168b Merge: 09db76fe 42220c34 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 10 13:45:27 2021 +0200 Merge branch 'tari-script' into general-app-version-in-logs commit 42220c34cdb596a4040179f5efc1749559a3dca2 Merge: b2020dce 8c3d10d2 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 10 13:39:42 2021 +0200 Merge #2886: [common] Remove "end of time" panic in emission (#2886) Remove "end of time" panic in emission commit b2020dce319f6edc7bbae1b350ac1c59ce1ca391 Merge: 610b3159 c8b66ad7 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 10 12:00:20 2021 +0200 Merge #2872: [wallet] Add one sided payment scanning and recovering Add one sided payment scanning and recovering commit ba40a3113bcf374f105982b45eb50844f25dbde3 Author: Hansie Odendaal <pluto@tari.com> Date: Sun May 9 12:45:37 2021 +0200 Verified massive multiple reorg cucumber commit 84e2f08a96ad68cc8578a32cd4c08f393b1fa8d0 Author: Philip Robinson <simian@tari.com> Date: Fri May 7 14:19:27 2021 +0200 FFI method removal and Test Fixes Second commit contains a number of test fixes and some updates based on feedback from @kukabi about how the clients managed the Comms Secret Key. Because this is now completely handled in the backed we can remove the `comms_config_set_secret_key` function. It was also confirmed that the backend is fully responsible for managing the TorID so the old code that provided some migration support for the client to manage the TorID in the past has been removed. commit 610b3159fb09ca5fd88177a25c777880335de0a2 Merge: c3daa5aa 5c418649 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 7 11:25:45 2021 +0200 Merge #2887: [common] New gen block for tari_script New gen block for tari_script commit 19bdbf62ef9e1ae094c50341a86935be548dd449 Author: Hansie Odendaal <pluto@tari.com> Date: Tue May 4 17:31:58 2021 +0200 Add Bulletproofs Rewinding RFC commit c8b66ad7d53925a7cf4f1071f5e2d038fab41f1a Author: SW van Heerden <swvheerden@gmail.com> Date: Wed May 5 14:57:18 2021 +0200 Add one sided payment scanning and recovering Refactor recovery task into service change to hash based last scanned height remove clippy errors commit 09db76fe0113039a23d144b7d31e31fbe397ba46 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue May 4 16:53:32 2021 +0400 Adds version and commmit string to all application logs - Adds the application name, version obtained form the manifest and commit sha to the logs on application startup - Updates all log configs to route tari::application messages to all logs - Moves all `tari_common` build-time dependencies and code behind `build` feature flag commit 50ed6bf79e8c2379b83e39f00e6846e7a8e5cea4 Author: Philip Robinson <simian@tari.com> Date: Tue May 4 22:35:15 2021 +0200 [Wallet] Derive Comms Secret Key from the Master Seed key This PR implements the derivation of the Comms private key in the wallet from the Master Seed Key that is used as the seed for the key managers used for the UTXO’s on the wall. Previously the Comms Secret Key was generated by the client applications and it was stored in the Wallet Database. This key was also used to determine if the database was encrypted and if the provided passphrase is correct or not by storing the public key in the database and seeing if the stored private key corresponds to the permitted public key after decryption. This PR removes the Comms Secret and Public keys from the wallet database and replaces them with the Master Seed Key which becomes the single secret key from which the Comms Secret Key, UTXO Spending Keys and Rewind keys are derived. The Comms Secret key is now derived when the wallet is started based on the persisted Master Secret Key. On the first run the wallet will generate the Master Secret Key and store it. The Output Manager Service used to generate and store this key but now it will accept it from the Wallet and use it to initialise its Key Managers. The Console Wallet and Wallet FFI is updated to account for this change. commit 5c418649556814836cbf44707c269e1204b0a12e Author: SW van Heerden <swvheerden@gmail.com> Date: Tue May 4 11:26:28 2021 +0200 New gen block for tari_script commit 8c3d10d2d429b0d04018088944b5cd7b5bec2690 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Mon May 3 16:15:13 2021 +0400 Remove "end of time" panic in emission Removed `Option::expect` when total supply overflows `u64`. In this case, the `EmissionRate` iterator considers itself "finished" and so returns None as per the Iterator contract. Removes the `Emission` trait, although nothing incorrect about using a trait in this case, it did not provide much of an advantage (decoupling) over using the concrete type. I…
Squashed commit of the following: commit b95d558f318d045da9e1172cb802555ae3eb5a47 Merge: 62a03237 862be046 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jul 6 18:18:48 2021 +0200 fix: fix db update error (#3063) commit 62a03237ee4c6103b468a07bbf97f665eb391b4a Merge: 8ecbb1f2 e089af22 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jul 6 18:14:24 2021 +0200 chore: update digest, rand and sha3 (#3059) commit e089af2260b19fecc35c69fa053451f9bf649b80 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue Jul 6 14:28:27 2021 +0400 [chore] Update digest, rand and sha3 - Update crates `digest` `rand` and `sha3` to fix compilation errors (Ref https://github.com/tari-project/tari-crypto/pull/49) - NodeId::from_key is infallible - This in turn meant that NodeIdentity::new and NodeIdentity::randoma are infallible - This in turn meant that NodeIdentityError is unused, so it was removed - Remove multiple copies of the random string test utility (all of which needed `rand` crate updates) in favour of using the one provided in tari_test_utils commit 862be046102266ec368c950e5a5736ac0df3f6e0 Author: Hansie Odendaal <pluto@tari.com> Date: Tue Jul 6 18:05:01 2021 +0200 Fix db update error commit 8ecbb1f231da38f2e838c8acc79165b5b0a27136 Merge: 868a064e 4a3d7ccf Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jul 6 17:47:04 2021 +0200 feat: implement metadata comsig on txn output (#3057) commit 4a3d7ccf239457762552f75d1b7604dee312b9bd Author: Hansie Odendaal <pluto@tari.com> Date: Wed Jun 30 16:21:16 2021 +0200 Implement metadata comsig on txn output - Implemented metadata comsig for the txn output - Created new faucet - Updated genesis block timestamp as this is a breakng change - Added unit test Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit 868a064e361f34028ee1b70e8a120ec99766b7a1 Merge: 6b6842fd 87c2ad4a Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jul 6 11:39:53 2021 +0200 tests: fix broken cucumber tests (#3058) commit 87c2ad4abd081de5c96c0e8810ab5f51c323d5bd Author: SW van Heerden <swvheerden@gmail.com> Date: Tue Jul 6 11:32:57 2021 +0200 fix broken cucumber tests commit 6b6842fdf372607848e92ea3ea341f9d81d84259 Merge: cc225b83 63c0b6f5 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 16:52:42 2021 +0200 chore: update example with new peer seeds for weatherwax (#3054) commit cc225b83ccfc34480a6423cf211c14b7a7844659 Merge: cf33cdb5 88ce1d02 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 16:51:20 2021 +0200 chore: merge development commit cf33cdb5403736f67ea71f958e3ac06413c3f8e7 Merge: 742dd9e6 dd49c991 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 16:50:20 2021 +0200 feat: software auto updates for base node (#3039) commit 742dd9e6c9fc8c85bb6969e19489a4120d9cc9d1 Merge: 10ea7e38 ed70ecfc Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 16:49:14 2021 +0200 feat: add zero conf tx (#3043) commit 10ea7e387834edea1c8b65e7180c1493068fdab7 Merge: 4a1f74f3 9e614444 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jul 5 15:44:39 2021 +0200 chore: update monerod stagenet url (#3050) commit ed70ecfccb2a9407af35e17856987fdf40d9b05c Author: SW van Heerden <swvheerden@gmail.com> Date: Mon Jul 5 14:17:08 2021 +0200 add zero conf tx Co-Authored-By: Hansie Odendaal <pluto@tari.com> Co-authored-by: Stan Bondi <sdbondi@users.noreply.github.com> commit 63c0b6f53703561c131d36a819179127816a35e8 Author: Byron Hambly <bizzle@tari.com> Date: Mon Jul 5 11:13:08 2021 +0200 [config] Update example with new peer seeds for weatherwax commit 88ce1d02d005c69c8f1e296ac4fd511f81e6090c Merge: 4a1f74f3 f512982a Author: Byron Hambly <bizzle@tari.com> Date: Mon Jul 5 09:48:30 2021 +0200 merge development into tari-script commit dd49c991d06bcc578b2dbe0b180c262032a7e0e7 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Thu Jun 24 17:43:15 2021 +0400 Software auto updates for base node Implements software updates for base node - Add general-purpose module for software update notifications, consisting of: - DNS Update checker - checks the configured hosts TXT record for software updates - Download SHA hash file (shasum) of the updates and validate that a known maintainer signed it (future improvements would require > 1 maintainer) - Actor/Service that periodically checks for updates and notifies any listeners, as well as providing a "handle" interface to the software updater. - Base node uses this module to implement `check-for-updates` command and to display update notifications. - Cucumber tests for valid and invalid update - Extracted the DNS code from peer seeds so that it can be used for reading TXT records here - Add autoupdate configuration commit 4a1f74f34f9b312d3a3bbcdd0e97ab0ad47bfb9d Merge: 347973e3 6d6a11bb Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 17:05:56 2021 +0200 tests: fix wallet cucumber tests (#3049) commit 347973e3e8fdd39bb74d978d14ff414c04a39212 Merge: 5116bdeb 65b91c08 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 17:03:33 2021 +0200 fix: remove unimplemented Blake pow algo variant (#3047) BREAKING CHANGE!: This is a DB and network breaking change. commit 5116bdebc5bf8d0a1b358a02a143b07df52026df Merge: 2c9f6999 d76768d3 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 17:00:52 2021 +0200 refactor: clean up the db calls to make them safer (#3040) commit d76768d3efb4b0147a6f3e1e03327397921131e5 Merge: e738b3b1 2c9f6999 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 17:00:33 2021 +0200 Merge branch 'tari-script' into sw_refactorr_utxo_scanner_db commit 2c9f69991f7cfcbda113a55ceeacdf2c13d90da3 Merge: bc98c322 89769b27 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 16:58:51 2021 +0200 feat: network separation and protocol versioning implementation (#3030) commit bc98c322b9580f644dc0147f66369388499abf0a Merge: 9b281cec 85dea958 Author: Mike the Tike <mikethetike@tari.com> Date: Sun Jul 4 16:42:35 2021 +0200 refactor: remove `height` field from outputs (#3027) commit 65b91c08ce8e0e3b79a863612cdec37969442e33 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Thu Jul 1 16:15:56 2021 +0400 [chore, testnet-reset] Remove unimplemented Blake pow algo variant Remove unimplemented PowAlgo::Blake variant. This is a DB and network breaking change. commit 9e61444456c77e3fc1e7f531e46d1b5e21f53191 Author: Byron Hambly <bizzle@tari.com> Date: Fri Jul 2 13:44:01 2021 +0200 Update host header in proxied request commit 89769b27e4a41dc27a3e2543479534ac851add61 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue Jun 22 17:30:32 2021 +0400 Network separation and protocol versioning implementation - Changes `WireMode::Comms` variant to contain a single byte. - Allows the `WireMode::Comms` byte to be set from domain layer (tari_p2p). - [partially network breaking] Removes redundant network specifier from messaging protocol. - Removes DHT Network enum. - Updates Network configuration enum to be representable as a byte. - Network configuration enum is now the only Network specifier. - Changes consensus Network enum to a struct (NetworkConsensus) that wraps the common Network enum. - [network breaking] Use byte representation of multiaddr in identity message, rather than string. This reduces the bytes exchanged when establishing a new peer connection. - [network breaking] Shave a few bytes off of identity and messaging protocol IDs to match the format of other protocols. - [network breaking] Add major and minor versions to messaging protocol - [network breaking] Add major version check when establishing a connection - [network breaking] Remove NodeId from PeerIdentityMsg as this can be derived from the public key obtained from the noise handshake commit 85dea958016bd383b2648aca907d490c5fe6b309 Author: Philip Robinson <simian@tari.com> Date: Fri Jul 2 11:32:46 2021 +0200 Remove `height` field from outputs In the discussion around [RFC-0201](https://rfc.tari.com/RFC-0201_TariScript.html) it was decided that the `height` field is not actually required to prevent replay attacks with the introduction of TariScript. We rely on the enforcement of unique commitments in the mempool and blockchain to prevent this. As such this PR removes the height field from the TransactionInput and UnblindedOutput structs. commit 38278f0bb416ca00398667c3443fee1bd892eb81 Author: Byron Hambly <bizzle@tari.com> Date: Thu Jul 1 20:30:08 2021 +0200 [chore] update monerod stagenet url in readme commit 1d4176cc72d319bbadb7788465e878e734354194 Author: Byron Hambly <bizzle@tari.com> Date: Thu Jul 1 20:29:26 2021 +0200 [chore] update monerod stagenet url commit 6d6a11bbe9c7c460eeed59b0f06d11984d4ec685 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Thu Jul 1 19:59:23 2021 +0400 Fix wallet cucumber tests Output hash generation in `the UTXO {} has been mined according to {}` needed to be updated from https://github.com/tari-project/tari/pull/3041 commit 9b281cec339fea5cad48ca84cb5698302792373f Merge: fb1a692a 2cd35c59 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jul 1 11:18:31 2021 +0200 feat(wallet): add maturity to transaction detail (#3042) commit 2cd35c593ba66ba4f3de1df06e7487d0844732bb Author: Byron Hambly <bizzle@tari.com> Date: Tue Jun 29 13:29:45 2021 +0200 [console-wallet] Add maturity to transaction detail commit fb1a692aeb92af585a83b1c84948896db1cbcf1b Merge: da1d7579 5c79bf25 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jul 1 09:37:36 2021 +0200 refactor: remove type alias impl trait unstable feature requirement from DHT (#3037) commit da1d75790fcb4eb9a71b7822c3ede3d9ba598241 Merge: ef94134b ec5390f7 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jul 1 09:31:25 2021 +0200 fix: fix small issues related to #3020 (#3026) commit ec5390f74656eecdc439c379e2faf8ea6a679964 Merge: ca897079 ef94134b Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jul 1 09:30:47 2021 +0200 Merge branch 'tari-script' into ho_small_fixes commit 5c79bf25eab08b762a16dbbf14011d350e6e4a69 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Sun Jun 27 12:36:26 2021 +0400 Remove type alias impl trait unstable feature requirement from DHT Replaces the `type_alias_impl_trait` feature requirement with boxed Futures on all services. Removes/simplifies some redundant trait bounds. SAF handler task had to be implemented to be a less concurrent because of the additional trait bounds required for boxing. commit ef94134b4f60af1b907ff7d220a7b3f1ac446ac0 Merge: f2239418 5f5a9c7c Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 16:44:38 2021 +0200 chore: fix build (#3044) commit 5f5a9c7c5dc4bd8918ffe0800a914cdf2038f88f Author: SW van Heerden <swvheerden@gmail.com> Date: Wed Jun 30 16:18:33 2021 +0200 fix build commit f223941859903bdd3becd914ac84e630adb1e7c1 Merge: ae15fd9c 054b45aa Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:06:04 2021 +0200 refactor: start refactoring `min_type_alias_impl_trait` to `async_trait` (#3034) commit 054b45aa6314cd98e38997b67d7b973c89395761 Merge: cdb4f547 ae15fd9c Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:05:46 2021 +0200 Merge branch 'tari-script' into async-trait commit ae15fd9c6203f8a6fe40be411fe3e4e590270ef7 Merge: 229830e5 91af2872 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:04:13 2021 +0200 feat: add filtering of abandoned coinbase txs to console wallet (#3032) commit 229830e595c6b3c97011547d18885e2c0a3e3f19 Merge: 574ff8bb b89a67db Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:03:12 2021 +0200 fix: Update connectivity manager defaults (#3031) commit 574ff8bb7357fc3a5edcb60c564af0a7e038f6a7 Merge: 0ffaedec 35b35333 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:01:24 2021 +0200 docs: clarify Tari Script nomenclature (#3029) commit 0ffaedec4683748e452cfdee20464022dfbd4367 Merge: 65552cbd b0b57612 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 15:00:17 2021 +0200 tests: let the test pass if 1% of nodes will fail. The number of nodes that need to succeed is rounded down. Change from promise.all to a custom wait for N promises. (#3028) commit 65552cbd7b826e76a63ca50e53c41e8986eb9860 Merge: adb4a640 59f9675c Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 14:57:04 2021 +0200 feat: add input_mr and witness_mr to header (#3041) commit 59f9675c5f2bac76bd2c88151b44d2f9a761db3a Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue Jun 29 15:09:22 2021 +0400 Add input_mr and witness_mr to header As per updated RFC 120 (ref #3025): - Add `input_mr` to header, commits to all inputs in a block - Add input merkle root validation check - Commit to all transaction input fields - Add `TransactionInput::output_hash` that produces the hash of the output that was spent in the input - Remove range proof MR in favour of witness MR - Witness MR commits to all rangeproofs and sender metadata - Add witness_hash function that produces `Hash(RangeProof || sender_metadata_signature)` - Updated weatherwax genesis timestamp because this change is a hard fork - Updated header format in proto messages (network breaking) - Commit to `input_mr` in sha3 and monero mining hashes - Add some missing fields (`output_mmr_size`, `kernel_mmr_size` and `total_script_offset`) to sha3 miner hash (w/ minor code clean up) commit adb4a64000f991df06454e86c303728af881241d Merge: 04f826db 57ce1ac8 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 30 14:48:36 2021 +0200 feat: Change script_signature type to ComSig (#3016) commit cdb4f54724d73dd3085ae81beffa4f29a8a27471 Author: Byron Hambly <bizzle@tari.com> Date: Wed Jun 30 14:47:03 2021 +0200 [tests] Fix test compilation error commit 57ce1ac8732efeadca52b0f58d3ec482be6b1863 Author: SW van Heerden <swvheerden@gmail.com> Date: Fri Jun 25 18:21:12 2021 +0200 Change script_signature type to ComSig Fix cucumber test for comsig fix spelling Co-Authored-By: Hansie Odendaal <pluto@tari.com> commit b0b5761231cf3a8a34ed23bb256dfaef483e6eb8 Merge: 15b6d6c3 04f826db Author: Martin Stefcek <35243812+Cifko@users.noreply.github.com> Date: Wed Jun 30 07:55:03 2021 +0200 Merge branch 'tari-project:tari-script' into tari-script commit e738b3b148f2e3de73bf7669806242457ff60291 Author: SW van Heerden <swvheerden@gmail.com> Date: Tue Jun 29 07:51:18 2021 +0200 clean up the db calls to make them safer commit 04f826db140042248797e1377ee665b809146fe5 Merge: 4a499564 08dfc00c Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jun 28 11:21:06 2021 +0200 docs: update rfc to add witness_mr to header (#3025) commit 08dfc00c4c8176d06b57eadb9d1992b47430c5d3 Author: SW van Heerden <swvheerden@gmail.com> Date: Fri Jun 25 18:55:17 2021 +0200 Add input_mr Change rangeproof_mr to be a witness_mr commit f70d5ab83dd5224f4ab47f7dd77323a7f9e0c184 Author: Byron Hambly <bizzle@tari.com> Date: Thu Jun 24 18:58:22 2021 +0200 [common] Start refactoring `min_type_alias_impl_trait` to `async_trait` commit 4a499564d59162db25693f194f00eb4bd91f0700 Merge: ea15e9c1 cd0445fe Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 14:29:45 2021 +0200 feat: update app state when base node is set by command/script mode (#3019) [console-wallet] Update app state when base node is set by command/script mode [console-wallet] Add command mode auto exit arg [console-wallet] Allow amount field to parse Tari commit ea15e9c186f1ca09de5190a4de22e9e9c774ced1 Merge: 19ed0013 5d79c627 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 14:25:35 2021 +0200 docs: add RFC-0173 - Versioning to the RFCs (#3013) commit 19ed001335f23bbf10a28557a03037edc71beaea Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 12:14:50 2021 +0200 chore: fmt commit f8dae4dacb6ba0f1add9674d2d0f93c2538f359a Merge: 05674a3d 6ab28f23 Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 12:13:40 2021 +0200 refactor: remove MemoryDBs from the wallet (#3017) commit 6ab28f239cb4156ecf6f1424970647c288d6eff6 Merge: b5fef024 05674a3d Author: Mike the Tike <mikethetike@tari.com> Date: Thu Jun 24 12:13:06 2021 +0200 Merge branch 'tari-script' into philip-remove-memory-db commit 91af2872dee0148647f1e22587a2cf64346a9248 Author: Philip Robinson <simian@tari.com> Date: Wed Jun 23 20:33:46 2021 +0200 Add filtering of abandoned coinbase txs to console wallet This PR adds the ability to filter abandoned coinbase transactions in the completed transaction list of the console wallet. The filter is on by default and can be toggled with the A key. Transactions that have the Coinbase status and are also cancelled are filtered out and when displayed have the status of `Abandoned`. A TransactionFilter bitfield has been added to the AppState which currently only includes the AbandonedCoinbase flag but will allow for more filters to be added and combined. The filtering is done when the UI draw requests the vector of references to the current list of transactions. If no filter is applied the full vector of references is returned, otherwise a iterator filtered version is returned applying the conditions of the filter. commit 15b6d6c3617f2cbfd2b6071ea8c161872cbcd585 Author: Cifko <gcifko@gmail.com> Date: Tue Jun 22 16:58:04 2021 +0200 Let the test pass if 1% of nodes will fail. The number of nodes that need to succeed is rounded down. Change from promise.all to a custom wait for N promises. commit 05674a3dd1590fe1c96b11e628bb1a5156f3932c Merge: d2049ffe 1bc3efb3 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 23 11:56:22 2021 +0200 refactor: refactor utxo scanner class (#3005) commit 1bc3efb3b69f233b29dc33b70bfba4d110d6275d Author: SW van Heerden <swvheerden@gmail.com> Date: Wed Jun 23 11:51:16 2021 +0200 refactor utxo scanner class commit 5d79c627e01645c64b98a44425934457745a0867 Author: Philip Robinson <simian@tari.com> Date: Wed Jun 23 10:42:24 2021 +0200 Add RFC-0173 - Versioning to the RFCs This PR contains a new RFC with a proposal of how we will handle versioning of the wire format, P2P messaging and consensus rules on the Tari network. commit b89a67db21cdac0a32f97ab44e82826e6ac65599 Author: Philip Robinson <simian@tari.com> Date: Wed Jun 23 10:16:33 2021 +0200 Update connectivity manager defaults This PR tweaks the `offline_peer_cooldown` and `max_failures_mark_offline` default values to better cope with intermittent disconnections. `offline_peer_cooldown` is reduced from 24 hours to 2 hours so that the peer will become eligible for a reconnection in less time. `max_failures_mark_offline` is changed from 1 to 2 to allow for one more round of connection retries before giving up on the node until the above cool down expires. commit 35b35333a9eec146a904c1c69ba33aa919bab2d1 Author: Hansie Odendaal <pluto@tari.com> Date: Mon Jun 21 17:56:07 2021 +0200 Clarify Tari Script nomenclature Picked less confusing script related names and updated the glossary: - script offset => script offset - script offset private key => sender offset private key [updated!] - script offset public key => sender offset public key [updated!] - script private key => script private key - script public key => script public key - script signature => script signature - sender metadata signature => sender metadata signature Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit a7601d4e5b2e9b2fc46df3c82b2939cff4da5360 Author: SW van Heerden <swvheerden@gmail.com> Date: Tue Jun 22 15:31:46 2021 +0200 update rfc to add witness_mr to header Co-Authored-By: Hansie Odendaal <pluto@tari.com> commit ca897079678163df37682aedc9c8b329e5e0dfa9 Author: Hansie Odendaal <pluto@tari.com> Date: Tue Jun 22 11:38:18 2021 +0200 Fix small issues related to #3020 - As per reviewer comments Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit d2049ffec3000f01eb555042d24d55fab7818c6b Merge: b3e3d38d b14f0342 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 22 11:33:11 2021 +0200 docs: update RFC-0111 - Base Node architecture (#3014) commit b3e3d38d2a742882e4e7fec7bad0a126efba5ab3 Author: Philip Robinson <simian@tari.com> Date: Tue Jun 22 11:17:46 2021 +0200 Review of RFC-0001 (#3007) * Review of RFC-0001 This PR contains a revision of RFC-0001 to better reflect the current state of play in Tari’s design. * Update RFC/src/RFC-0001_overview.md Co-authored-by: Cayle Sharrock <CjS77@users.noreply.github.com> Co-authored-by: Mike the Tike <stringhandler@gmail.com> Co-authored-by: Cayle Sharrock <CjS77@users.noreply.github.com> commit 7901b3ca2a6096e0f9148181b7a07ed16209d168 Merge: 4b4af991 f3d3c3af Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 22 10:56:35 2021 +0200 feat: add sender signature to txn output (#3020) commit f3d3c3af7eb9e247a8f0d01978cdfcebbbcacd35 Author: Hansie Odendaal <pluto@tari.com> Date: Fri Jun 11 16:01:58 2021 +0200 Add sender signature to txn output - Added sender signature to the transaction output and unblinded output. - Added sender signature validation to the transaction consistency check. - Added unit test to verify sender signature. - Added sender signature to cucumber (transaction builder). - Simplified test code making use of unblinded outputs. - Updated genesis block time stamp due to breaking changes. Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit cd0445fe55951bf1ee006869bd5326d39dd35227 Author: Byron Hambly <bizzle@tari.com> Date: Fri Jun 18 14:45:41 2021 +0200 [console-wallet] Allow amount field to parse Tari commit 3998844b5a7856c4528ad7378c17879c21a19669 Author: Byron Hambly <bizzle@tari.com> Date: Fri Jun 18 14:10:23 2021 +0200 [console-wallet] Add command mode auto exit arg commit 754d71ab5d06bfc9a704e7a0530d5fe91fe5b620 Author: Byron Hambly <bizzle@tari.com> Date: Fri Jun 18 11:00:31 2021 +0200 [console-wallet] Update app state when base node is set by command/script mode commit b5fef0244fbbf9fb5149ffd0e83911dc248ac460 Author: Philip Robinson <simian@tari.com> Date: Thu Jun 17 16:58:31 2021 +0200 Remove MemoryDBs from the wallet In the past all the wallet services has a Sqlite and Memory based db backend to use in testing. However maintaining the memory DB’s became a chore. This PR removes the Output Manager and Contacts Service memory databases and updates the tests that use those databases to use a temporary Sqlite database instead. commit 4b4af99121be5b6f612b7d71bfeba8a8ff9490a8 Merge: b174390e 568788cf Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 16 11:19:22 2021 +0200 test: fix integration tests (#3015) commit 568788cf03a56c220b442352afc12857cbe273ed Author: Byron Hambly <bizzle@tari.com> Date: Mon Jun 14 10:17:11 2021 +0200 [tests] Fix integration tests commit b14f0342006fc0788ef47ef5d32015a75761d4cd Author: Philip Robinson <simian@tari.com> Date: Tue Jun 15 16:01:29 2021 +0200 Update RFC-0111 - Base Node architecture This PR updates RFC-0111 to reflect the current architecture of the Base Node binary. commit b174390e1ac6f748cf64b1787f6648e5cc6b1fb0 Author: Philip Robinson <simian@tari.com> Date: Tue Jun 15 12:00:56 2021 +0200 Review of RFC-0100 (#3008) This PR contains a small update to RFC-0100 to reflect the current state of the project commit 0bc81ef426cc7627cd6f0b759db26140cab0f3f0 Merge: b3522027 86374505 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 16:20:57 2021 +0200 test: fix double spend test. (#3012) commit 8637450511a5112594697626c7c0bef5bca612e5 Author: Cifko <gcifko@gmail.com> Date: Thu Jun 10 19:28:40 2021 +0200 Fix double spend test. commit b3522027b824dd8bb50a7183397adba082fdf28e Merge: 537db06f 5b6d7c42 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 13:27:20 2021 +0200 fix: check minimum number of headers for calc-timing (#3009) commit 537db06f33c49942d42e83fd6838f4fd405028d0 Merge: b3760202 d7db26b3 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 13:23:49 2021 +0200 fix: fix `Unique Constraint` bug when requesting a coinbase output at same height (#3004) commit b3760202992676b8874a155775472820e6a22932 Merge: ac062e57 f2876a13 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 12:14:26 2021 +0200 feat: display local time instead of UTC. Add new wallet commands. (#2994) commit ac062e57903d493e09bff0ccee36660f7c088782 Merge: c88d789e 635b1969 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 12:11:03 2021 +0200 feat: mininal merkle proof for monero pow data (#2996) commit c88d789e0e8ee2180279debb59f0d53e15db3b66 Merge: b19789d1 f972d837 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 11:28:08 2021 +0200 feat: modify gamma calculation for TariScript commit b19789d1607d8c104c3cc0c902a8af75724ef828 Merge: 330e7b7d c8491bdc Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 10:54:23 2021 +0200 test: add logs to cucumber ci artefacts (#3011) commit c8491bdc58b8e820abe07594bed03c7607db8632 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 11 09:37:48 2021 +0200 add logs to cucumber ci artefacts commit 635b196927b5f4baed035394468ce6cc03cf74c0 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Mon Jun 7 15:02:53 2021 +0400 Mininal merkle proof for monero pow data - Adds a port of Monero's `tree_branch` that returns a merkle proof - Extensive unit tests for create_merkle_proof - Uses a merkle proof of the transaction hash set instead of the full transaction hash set. - Adds more extensive unit tests for tree_hash - tree_hash now has at worst one allocation - RandomX seed is represented in a fixed size array instead fo a unbounded String - Use monero's consensus de/encoding for MoneroPowData commit 5b6d7c42fe6903c35ed26883ec6beffb24661ca7 Author: Byron Hambly <bizzle@tari.com> Date: Thu Jun 10 10:09:43 2021 +0200 [base-node] Check minimum number of headers for calc-timing commit d7db26b3f286b68a5e905d8e814cd18c0cf61552 Author: Philip Robinson <simian@tari.com> Date: Thu Jun 10 08:57:19 2021 +0200 Fix `Unique Constraint` bug when requesting a coinbase output at same height If a miner requested a Coinbase Transaction at the same height as one that was requested previously and that output had the exact same commitment the Output Manager database would return a Unique Constraint error due to the existing output in the database. This would happen rarely when a miner is experiencing many reorgs while mining. To fix this issue logic is added to the Output Manager service to clear any existing coinbase outputs with the same commitment at the same block height as the one that was just requested before adding it to the database. I decided this presents no danger of losing funds because the newly added coinbase will have the exact same commitment as the one being removed. commit f2876a132ff6551f67c89b166561e616bbb9c110 Author: Byron Hambly <bizzle@tari.com> Date: Tue Jun 8 13:40:05 2021 +0200 [ui] Display local time instead of UTC. Add new wallet commands. - [base-node] Use local time in status line - [base-node] Show version number in status line - [console-wallet] Use local time in transaction list and detail view - [console-wallet] Add `set-base-node` command - [console-wallet] Add `set-custom-base-node` command - [console-wallet] Add `clear-custom-base-node` command commit f972d8376c5fe88a73769e4132c95fa92c0920dc Author: Hansie Odendaal <pluto@tari.com> Date: Thu Jun 3 15:12:11 2021 +0200 Modify gamma calculation for Tari script - Modified gamma calculation for Tari script according to the latest RFC-0201. - Fixed private keys re-use issue in `transactions/helpers.rs fn craete_tx`. - Clarified use of test params in `transactions/helpers.rs fn spend_utxos`. - Ensured `consensus_validation_large_tx` will fail if the txn internal consistency is not ok (gamma is calculated here as well). Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit 330e7b7d51e4ab8af50b8bbf12a8487ece23a07f Merge: 70c21294 a6835585 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 16:17:17 2021 +0200 test: fix reorg difficulty unit tests (#2995) commit 70c21294fa87da8198e8b79f8b49d61bd6bee721 Merge: a2c6b17d c601199a Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 15:01:53 2021 +0200 feat(wallet): ensure recovery will not overwrite existing wallet (#2992) commit a2c6b17de6fd8ac14a5379b0c44d34c1e1e71e2d Merge: 472c3086 98dfed73 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 14:28:40 2021 +0200 feat(ffi): `wallet_create` takes seed words for recovery (#2986) BREAKING CHANGE: FFI function wallet_create now takes an optional seed words arg, if provided this sets the wallet master recovery key from which the comms public key and spending keys are derived from commit 472c30865cfa5a3cc648bffe22f6ec6e7aa22572 Merge: 5174de0d 4626c4cb Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 14:25:52 2021 +0200 fix: cancel faux transaction when imported UTXO is invalidated (#2984) commit 5174de0d562b3ff444bceebeacbf3917b74dce85 Author: SW van Heerden <swvheerden@gmail.com> Date: Wed Jun 9 13:52:04 2021 +0200 feat: Fix birthday attack vulnerability in tari script offset (#2956) Co-Authored-By: Hansie Odendaal <pluto@tari.com> Co-Authored-By: SW van Heerden <swvheerden@gmail.com> commit 4626c4cbb7af9a3a285a5af4598af03b015cdeb9 Author: Philip Robinson <simian@tari.com> Date: Wed Jun 9 12:39:10 2021 +0200 Cancel faux transaction when imported UTXO is invalidated When a UTXO is imported into the wallet a faux transaction is added to the transaction service to represent the event that impacted the wallets balance. If the imported output turns out to be invalid, i.e. it was an already spent output or it was an orphan output then the output validation will invalidate it. However, the faux transaction would not be invalidated and would still appear in wallet transaction lists. This was found to be confusing. So this PR links the imported output to the faux transaction and if the output is invalidated the transaction is invalidated. Cucumber tests are added to test this functionality. commit 98dfed73a4ae6660fbe3c5e7420ea3e06e8f3fec Author: Byron Hambly <bizzle@tari.com> Date: Tue Jun 1 11:59:32 2021 +0200 [wallet-ffi] `wallet_create` takes seed words for recovery Breaking change in wallet FFI, new argument in `wallet_create` to specify optional seed words for recovery. Also starts alpha quality NodeJS FFI wallet client for testing purposes. commit c9fdeb3da90a297a75a53ddbea6823f3e6520b8d Merge: ded45e9e 97e128b3 Author: Mike the Tike <mikethetike@tari.com> Date: Wed Jun 9 09:49:19 2021 +0200 fix(wallet): increment wallet key manager index during recovery (#2973) commit 97e128b3bd869e0bc28c41f973d22d7977a0d046 Author: Philip Robinson <simian@tari.com> Date: Tue Jun 8 15:05:35 2021 +0200 Increment wallet key manager index during recovery Currently, when recovery is performed the key manager index is not incremented as outputs are found. This means that when new transactions are performed the key manager produces previously used spending keys for the new outputs, reusing private keys. We also did not apply the correct script private key to the recovered output. This wasn’t a problem because we are using `Nop` scripts but for any script that requires this key to be correct we would have had a problem. This PR adds the logic that when an output is rewound during recovery that we find the key manager index for the recovered spending key, update the key manager index to one more than the highest index found during recovery and also use this index to apply the correct script private key to the recovered output. This PR also contains a but of neatness refactoring in the Output Manager Service. commit a6835585f9ee3361e53fd4ba4f47c1e0a652ceb6 Author: Philip Robinson <simian@tari.com> Date: Tue Jun 8 14:21:37 2021 +0200 Fix reorg difficulty unit tests The changes in PR 2960 changed the LWMA difficulty calculation to be integer based. This changed the nature of the calculation for small values. The two broken tests affected by this change were: `test_handle_possible_reorg_target_difficulty_is_correct_case_1` `test_handle_possible_reorg_target_difficulty_is_correct_case_2` These tests relied on assumptions about the difficulty calculated by LWMA based on the block times specified in the tests. Just updating the test to use much higher difficulties would have meant the change to integer math would not have had such a breaking effect but the way the unit tests have to mine for new hashes based on the difficulties meant that the difficulties needed to be kept as low as possible. This PR tweaks the block times in these tests in order to produce varying difficulties but keeping them low enough for the unit test environment. commit ded45e9e8e1eb309cf84efc186eb0904fa1ea8a4 Merge: b520037e 39a56fd0 Author: Mike the Tike <mikethetike@tari.com> Date: Mon Jun 7 11:21:34 2021 +0200 chore: Update wallet-grpc-client to use https instedad of git for npm ci to work (#2976) commit 39a56fd0e59fd4bc138229cc36f94a5507dad577 Author: Byron Hambly <bizzle@tari.com> Date: Fri May 28 14:53:41 2021 +0200 [ci] Update wallet-grpc-client to use https instedad of git for npm ci to work commit c601199a910bcf540f41336db431aef069e41eb2 Author: Byron Hambly <bizzle@tari.com> Date: Sun Jun 6 20:43:18 2021 +0200 [wallet] Ensure recovery will not overwrite existing wallet commit b520037e4e054b27eb65b004a0e52d87d2c64086 Merge: 7172a021 1af7a759 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 4 11:37:37 2021 +0200 feat!: remove beta from range-proof calculation (#i2987) BREAKING CHANGE: Nodes will need to resync from scratch Co-Authored-By: Hansie Odendaal <pluto@tari.com> commit 7172a021f8ae8c500ce59b5514667f2be6d241d4 Merge: f45cdc46 5218365b Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 4 11:31:47 2021 +0200 test: add cucumber test to verify hybrid mined coinbases (#2977) commit f45cdc46f8485ea8978dd05edafa26d374c98fdc Merge: f7dc3a44 5c13deb3 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 4 11:05:50 2021 +0200 fix: update console wallet on one sided payment import (#2983) commit f7dc3a44d2f57102024605cc6f4c93bb326b292a Merge: b6e74bbd 6204d5d2 Author: Mike the Tike <mikethetike@tari.com> Date: Fri Jun 4 09:57:19 2021 +0200 fix: fix prune mode (#2952) commit 1af7a759461e609bfda4da43a82846039e14b983 Author: SW van Heerden <swvheerden@gmail.com> Date: Thu Jun 3 15:29:04 2021 +0200 remove beta-hash fix cucumber tests commit 5218365b831b662ee80cc53418aa63ad66d6785d Author: Hansie Odendaal <pluto@tari.com> Date: Wed May 26 18:50:35 2021 +0200 Add cucumber test to verify hybrid mined coinbases - Added cucumber test as above - Added cucumber methods to do hybrid mining till specified blockchain height - Updated the mining node to accept a new `--mine-till-height`command line parameter - Fixed mining node to acknowledge environment variables for `num_mining_threads` and `validate_tip_timeout_sec`; this only worked via the config file - Added number of mining threads for the SHA3 mining node to use as an option - Cleaned up the `log4rs_sample_mining_node.yml` config file - Added custom `mining_node.yml` as an input file for cucumber tests - Fixed flaky test `tx_broadcast_protocol_submit_mined_then_not_mined_resubmit_success` commit 5c13deb3baf80f9e0a599a060acef44863895e3d Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 20:03:55 2021 +0200 Update console wallet on one sided payment import commit 6204d5d28a88fb631980e94e3926df34f9ae951c Author: SW van Heerden <swvheerden@gmail.com> Date: Thu May 20 23:01:41 2021 +0200 fix prune mode fix fmt commit b6e74bbdd2e7886044ca8f6aa2707f1b0131680a Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 15:19:12 2021 +0200 test:fix nop script name commit 5dab4de212b86fe09c602e1c4baf9dc30b9c27be Merge: 7e99ea59 f7cb03a0 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 15:14:37 2021 +0200 test: fix cucumber error introduced by full script in transaction output (#2979) commit f7cb03a04dd6148834b7788d3a16cc327415ed97 Merge: 61233b0f 7e99ea59 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 15:14:12 2021 +0200 Merge branch 'tari-script' into philip-cucumber-full-script-fix commit 7e99ea59ec11f19ba47e62729c3ee8b500d16c2e Merge: a14599e2 68320ea4 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 13:49:48 2021 +0200 fix: fix ChainStorageError after a reorg with new block (#2915) commit 68320ea4d8979cedd6399b55c30e5a82ec774c30 Author: Hansie Odendaal <pluto@tari.com> Date: Thu May 20 15:02:11 2021 +0200 Fix ChainStorageError after a reorg with new block - Fixed a ChainStorageError that occurs due to invalid transactions remaining in the mempool when the 1st block is requested for mining via GRPC directly after a chain reorg. - Added a failing cucumber test for the above condition. - Minor cucumber improvements. - Updated the `tari-crypto` version number dependency. commit 61233b0fdd8c75a7f5c5f58f2c3eeec23905cfed Author: Philip Robinson <simian@tari.com> Date: Tue Jun 1 12:00:44 2021 +0200 Fix cucumber error introduced by full script in transaction output This PR updates the transaction builder in the Cucumber helpers to calculate the Beta hash and the Transaction Output hash correctly now that the whole script is included in the output. Implement including full script in transaction outputs commit a14599e254802d9f168940e62a4a5fe6091a5ae4 Merge: e04c884e 1bcbfc01 Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 10:46:32 2021 +0200 test: make pruned mode cucumber reorg tests predictable (#2969) commit e04c884eb4c7aaf124fa5da5d80ecfc4b00817e1 Merge: db303e8c 786f404c Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 10:40:42 2021 +0200 fix: improve error messages in tari applications (#2951) commit db303e8ca9632c6a6634e52cbfb6a79cd3e43a29 Merge: 5901be8d 6693019b Author: Mike the Tike <mikethetike@tari.com> Date: Tue Jun 1 10:29:41 2021 +0200 feat: improve LWMA (#2960) commit 786f404cb07bd83763253aa4cf57af8c47512c19 Author: SW van Heerden <swvheerden@gmail.com> Date: Thu May 20 23:06:23 2021 +0200 update error messages commit 5901be8d2a5256a7a77323840e350b912163e073 Merge: 94ffd185 eeb8acbf Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 31 15:15:55 2021 +0200 refactor!: including full script in transaction outputs (#2978) @Co-Authored-By: Philip Robinson <philip.robinson.za@gmail.com> commit eeb8acbfe938ab5e53cb2ed82ee6ca805f846c8c Author: Philip Robinson <simian@tari.com> Date: Mon May 31 15:04:23 2021 +0200 Implement including full script in transaction outputs This PR replaces the script hash in a transaction output with a full script. This has been done to make on-chain script detection and analysis possible. This makes features like detecting your own scripts based on included pubkeys during a seed phrase recovery possible. This PR updates the TransactionOutput struct to hold a script and not script hash and updates the code base to reflect this change. RFC-201 is updated to reflect the change to the calculation of Beta commit 1bcbfc01bcb3c42d9577771bd81325218f96fd9a Author: Hansie Odendaal <pluto@tari.com> Date: Wed May 26 10:07:32 2021 +0200 Make pruned mode cucumber reorg tests predictable - Ensured the different chains that are constructed have predictable accumulated difficulties for tests `Pruned mode reorg simple` and `Pruned mode reorg past horizon`. - Marked the 10,000 case `Ramped Stress Test` stress test as `@broken`. - Updated the `tari-crypto` package version. commit 6693019b81fefc8d4730ebac16beb4e21bbec70c Author: SW van Heerden <swvheerden@gmail.com> Date: Thu May 20 14:42:16 2021 +0200 Improve LWMA to be more stable overflow test review comments about u128 declarations remove extra cast commit 94ffd185ff4ee9ce5575f28ae28e73464342b657 Merge: b55d99fe 89ceb418 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 28 12:21:58 2021 +0200 fix: merge dev, update peer seeds (#2974) commit 89ceb418599851f555d992f55ef09f10e9b009e2 Author: Byron Hambly <bizzle@tari.com> Date: Fri May 28 11:05:26 2021 +0200 [base-node] update peer seeds temporarily for tari-script branch commit 76c787a46b42927d77eadc6962f667f6ef3e8986 Merge: b55d99fe bef1829b Author: Byron Hambly <bizzle@tari.com> Date: Fri May 28 10:28:44 2021 +0200 Merge remote-tracking branch 'tari/development' into merge commit b55d99fe3b08b34485bf1a9429cfad32a3fac84f Merge: 83eca218 be6f3c5b Author: Mike the Tike <mikethetike@tari.com> Date: Wed May 26 16:25:11 2021 +0200 fix: implement cucumber tests for one-sided recovery and scanning (#2955) commit be6f3c5b8d0844c13a993e0b72742b9b838a52cf Author: Mike the Tike <stringhandler@gmail.com> Date: Wed May 26 16:23:06 2021 +0200 Apply suggestions from code review Co-authored-by: Hansie Odendaal <39146854+hansieodendaal@users.noreply.github.com> commit 2a48e2167e6e4265eece11572ae0c03ecc438f96 Author: Philip Robinson <simian@tari.com> Date: Wed May 26 15:06:49 2021 +0200 Implement cucumber tests for one-sided recovery and scanning This PR implements cucumber tests for recovering one-sided payments, scanning for them under normal wallet operation and also adds to the existing standard recovery test to spend the output after it has been recovered which revealed a few bugs. The PR also contains a number of bug fixes to make these tests possible. - Console wallet will not enter TUI mode after recovery if its started in daemon mode, this crashes cucumber - Persist “Known one-sided scripts” when a Comms Private/Public key is derived to be scanned for - Fix the UTXO scanner when started as a service. - Add Cucumber helpers to support the tests. commit 83eca2182a32f0043ea85e7a6f1520c218c5a811 Merge: 812a1611 79271a84 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 25 15:35:56 2021 +0200 test: fix cucumber tests on `tari-script` branch (#2968) commit 79271a84a7e02cb68475ee5d9cb12abe3d43324f Author: Hansie Odendaal <pluto@tari.com> Date: Thu May 20 15:02:11 2021 +0200 Fix cucumber tests on `tari-script` branch - Fixed cucumber tests on `tari-script` branch after merging `development` into `tari-script`. - Fixed a number of flaky tests. commit 812a1611a924b977a79bd5e7fe16eb986649adce Merge: ed17fee3 c4767501 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 25 12:43:55 2021 +0200 fix: update rust nightly toolchain (#2957) Update rust nightly toolchain commit ed17fee3e34d3985794af621ba131e066849abec Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 15:12:44 2021 +0200 fix: Update failing rust tests (#2961) commit 19a1bd660bc36eea91c3936e464e57d582d1bcff Merge: 92e9a2e5 c4c28b9c Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 14:39:06 2021 +0200 chore: Fix clippy warnings in tests (#2965) commit c4c28b9c479fba859e4d94212e7e88d4d0f5d544 Author: Hansie Odendaal <pluto@tari.com> Date: Fri May 21 14:13:04 2021 +0200 Fix clippy warnings in tests commit 92e9a2e5918a590f68293f2ea0f950e724f1925a Merge: 05e34edc 90706bd3 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 14:10:32 2021 +0200 Merge #2899: [tests] update flaky unit tests update flaky unit tests commit 05e34edc7c1cdb893af454c886fc5904d42016a7 Merge: e6267851 5ae2b4db Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 14:03:05 2021 +0200 Merge #2964: [chore] Merge dev v0.8.11 into tari-script [MMProxy] Connection Limiting Fix target difficulty v0.8.11 Changes since v0.8.10 Merge dev commit 5ae2b4dbfaafdc966d0e7c4616b50b52d1a44535 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 13:46:36 2021 +0200 Merge dev commit a92882d6f69a556196d3f77713f87b5825a55936 Merge: e6267851 e64b1ffc Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 21 12:19:27 2021 +0200 Merge branch 'development' into tari-script # Conflicts: # Cargo.lock # applications/tari_app_utilities/Cargo.toml # applications/tari_base_node/src/recovery.rs # applications/tari_merge_mining_proxy/src/main.rs # applications/tari_merge_mining_proxy/src/test.rs # base_layer/core/src/base_node/comms_interface/inbound_handlers.rs # base_layer/core/src/chain_storage/blockchain_database.rs # base_layer/core/src/test_helpers/blockchain.rs # base_layer/core/src/test_helpers/mod.rs # base_layer/core/src/validation/header_validator.rs # base_layer/core/tests/block_validation.rs # base_layer/core/tests/helpers/block_builders.rs commit 90706bd3fb7997a580fe5357655a2455bc30f197 Author: SW van Heerden <swvheerden@gmail.com> Date: Fri May 7 12:57:14 2021 +0200 update flaky unit tests Add tx event to help with awaits commit c47675017abf2a7f55e7c361db221a7b4ebfef38 Author: Hansie Odendaal <pluto@tari.com> Date: Thu May 20 08:57:37 2021 +0200 Update rust nightly toolchain commit e6267851f2cb97d33fbcdaf5823671590e512aa8 Merge: 266ad172 af32d49f Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 18 15:02:19 2021 +0200 Merge #2916: [common] Merge dev into tari-script Add clippy warnings for cognitive complexity libwallet-0.16.27 Fix re-org test [base-node] Optimise pruned UTXO sync streaming protocol [Wallet] Add mined height to display of mined transactions in Console Wallet clarify one sided payment [base-node] Fixes and tidies up prune mode cleanup update tests to use sha3 add note Add option to write unblinded UTXOs to CSV file fmt Test to reproduce target difficulty problem fix case of cucumber Insert pruned output audit Fix incorrect boolean condition v0.8.9 Fix potential overflow and improve performance of n_leaves Add transaction washer util script [base-node] Refactor chain storage and rule out some target diff bugs [wallet] Update connectivity status when base node changes Emission math audit Consolidate config files into one [wallet] Fixes possible duration overflow in crossterm loop fix wallet recovery of coinbase Fix cucumber test Update Base Node Service monitor to shutdown correctly [tests] eslint config and husky pre-commit hook v0.8.10 Let wallet display pretty error for tor offline Re-implemented methods for block explorer [tests] Repair some integration tests Verified massive multiple reorg cucumber Bump timeouts Remove unused search stxo Remove unused search stxo Fix tests and add results to CI Fix compiler warnings Merge Dev into TariScript Merge Dev into TariScript Fix clippy commit af32d49ff74411ec53508a8ee98db59dc0491c6a Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 18 11:56:29 2021 +0200 Fix clippy commit b81ea4173daa3412a61d6993ca1996c299e230aa Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 17 20:16:42 2021 +0200 Merge Dev into TariScript commit eb4bac6bae83cfc622e39921a7aa98f2a68a6299 Merge: f30608a9 266ad172 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 17 19:44:09 2021 +0200 Merge branch 'tari-script' into mb-fix-tari-script-branch # Conflicts: # base_layer/wallet/src/transaction_service/service.rs # base_layer/wallet/src/wallet.rs # base_layer/wallet/tests/wallet/mod.rs # base_layer/wallet_ffi/src/lib.rs commit 266ad172eb03cff4a83754f5d96bc4fd444dee2d Merge: be04658c 47fe06d2 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 17 16:54:27 2021 +0200 Merge #2901:[wallet] Update and fix import utxo functions Import utxo fn use defaults down the line, this will cause any UTXO that's inserted into the wallet to be invalidated due to mismatched scripts, features, etc. Requires #2872 commit 47fe06d25487550ba117d36766faf4f8d7dd6f29 Author: SW van Heerden <swvheerden@gmail.com> Date: Mon May 17 15:20:33 2021 +0200 rename to maturity commit 556694705773f814594c67427d461b17c3e59efa Author: SW van Heerden <swvheerden@gmail.com> Date: Mon May 17 15:14:59 2021 +0200 Update and fix Import utxo functions code review commit f30608a9562295f9d5bcecdd5dab539ea0639851 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 14 15:25:22 2021 +0200 Merge Dev into TariScript commit b48c18ce68d06cb889df674a69ffc8038299e412 Merge: 6c8b7a3a f27cc244 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 14 12:26:59 2021 +0200 Merge branch 'development' into mb-fix-tari-script-branch # Conflicts: # Cargo.lock # RFC/src/RFC-0201_TariScript.md # applications/tari_app_grpc/Cargo.toml # applications/tari_app_utilities/Cargo.toml # applications/tari_base_node/Cargo.toml # applications/tari_base_node/src/command_handler.rs # applications/tari_console_wallet/Cargo.toml # applications/tari_console_wallet/src/automation/commands.rs # applications/tari_console_wallet/src/main.rs # applications/tari_console_wallet/src/ui/components/send_tab.rs # applications/tari_console_wallet/src/wallet_modes.rs # applications/tari_merge_mining_proxy/Cargo.toml # applications/tari_mining_node/Cargo.toml # applications/test_faucet/Cargo.toml # base_layer/common_types/Cargo.toml # base_layer/core/Cargo.toml # base_layer/core/src/base_node/comms_interface/local_interface.rs # base_layer/core/src/base_node/state_machine_service/states/horizon_state_sync/horizon_state_synchronization.rs # base_layer/core/src/base_node/sync/rpc/service.rs # base_layer/core/src/blocks/genesis_block.rs # base_layer/core/src/chain_storage/accumulated_data.rs # base_layer/core/src/chain_storage/block_add_result.rs # base_layer/core/src/chain_storage/blockchain_database.rs # base_layer/core/src/chain_storage/historical_block.rs # base_layer/core/src/chain_storage/lmdb_db/lmdb_db.rs # base_layer/core/src/consensus/consensus_manager.rs # base_layer/core/src/consensus/emission.rs # base_layer/core/src/lib.rs # base_layer/core/src/mempool/service/inbound_handlers.rs # base_layer/core/src/test_helpers/blockchain.rs # base_layer/core/src/test_helpers/mod.rs # base_layer/core/src/validation/header_validator.rs # base_layer/core/src/validation/helpers.rs # base_layer/core/src/validation/mocks.rs # base_layer/core/tests/chain_storage_tests/chain_storage.rs # base_layer/core/tests/helpers/block_builders.rs # base_layer/key_manager/Cargo.toml # base_layer/mmr/Cargo.toml # base_layer/p2p/Cargo.toml # base_layer/service_framework/Cargo.toml # base_layer/wallet/Cargo.toml # base_layer/wallet/src/base_node_service/service.rs # base_layer/wallet/src/output_manager_service/service.rs # base_layer/wallet/src/storage/sqlite_db.rs # base_layer/wallet/src/tasks/wallet_recovery.rs # base_layer/wallet/src/transaction_service/service.rs # base_layer/wallet/src/transaction_service/storage/database.rs # base_layer/wallet/src/transaction_service/storage/sqlite_db.rs # base_layer/wallet/src/wallet.rs # base_layer/wallet/tests/wallet/mod.rs # base_layer/wallet_ffi/src/lib.rs # common/Cargo.toml # common/config/presets/tari_config_example.toml # comms/Cargo.toml # comms/dht/Cargo.toml # comms/rpc_macros/Cargo.toml # infrastructure/derive/Cargo.toml # infrastructure/shutdown/Cargo.toml # infrastructure/storage/Cargo.toml # infrastructure/test_utils/Cargo.toml # integration_tests/features/Reorgs.feature # integration_tests/features/WalletTransfer.feature # integration_tests/features/support/steps.js # integration_tests/helpers/transactionBuilder.js # integration_tests/helpers/util.js # integration_tests/package-lock.json commit 6c8b7a3a68bbdceef9dc947336186d77aaa94e47 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 14 11:43:31 2021 +0200 Fix compiler warnings commit be04658c366d8975f6ac73eb1b39060d9d8b519d Merge: 770feb2b 069be999 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 14 10:31:54 2021 +0200 Merge #2897: [common] Replace custom ChaCha20 cipher Replace custom ChaCha20 cipher with RustCrypto ChaCha20 implementation Fuzzing revealed that the custom ChaCha20 implementation in tari_utilities was not correct so this PR migrates the DHT encryption to use the audited RustCrypto ChaCha20 encryption. Had to bump the toolchain version for this update so updated to the most current version of nightly. The only update needed was adding a new feature flag #![feature(min_type_alias_impl_trait)] which is a new flag for the same issue we already use (i.e. #![feature(type_alias_impl_trait)]) The new nightly toolchain contained an update to the linting used by rustfmt so I have included a second commit that is just new formatting to make this easier to review. commit 069be9994cd82d827ac14171344a04ab704bf91b Author: Philip Robinson <simian@tari.com> Date: Fri May 14 09:39:01 2021 +0200 Replace custom ChaCha20 cipher with RustCrypto ChaCha20 implementation Fuzzing revealed that the custom ChaCha20 implementation in `tari_utilities` was not correct so this PR migrates the DHT encryption to use the audited RustCrypto ChaCha20 encryption. Had to bump the toolchain version for this update so updated to the most current version of nightly. The only update needed was adding a new feature flag #![feature(min_type_alias_impl_trait)] which is a new flag for the same issue we already use (i.e. #![feature(type_alias_impl_trait)]) commit 770feb2b142cf4e20ae07e2e874dcb9c9695b270 Merge: 2dd0fc2c 270d9b5e Author: Mike the Tike <mikethetike@tari.com> Date: Wed May 12 18:40:13 2021 +0200 Merge #2913: [ci] Switch to ssh urls for tari-crypto dep For whatever reason circle ci was failing to checkout the tari-crypto git repo, switching these urls to use the ssh:// version is working commit 270d9b5eea2a017f0a9aac95cc10c82ba5668c93 Author: Byron Hambly <bizzle@tari.com> Date: Tue May 11 19:42:35 2021 +0200 [ci] Switch to ssh urls for tari-crypto dep commit 2dd0fc2c327f1f3fcb82fddd7a4f90828e5a3ef3 Merge: 3077769d 6f8cb87f Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 18:31:35 2021 +0200 Merge #2908: [base-node] Fix `header-stats` command Tari-script network reset omitted changing this stibbons reference. commit 3077769d63919b1abed6f613412c7c6e0448fc56 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 18:14:55 2021 +0200 fmt and clippy commit 4d72659561777098e3b28bc5c05915f07105670f Merge: 2999cb93 223f006c Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 18:01:30 2021 +0200 Merge #2910: [chore] Fix build error in console wallet Fix build error in console wallet commit 223f006c96a31d8a7f9806e69e89faec5cf0b32a Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue May 11 19:56:06 2021 +0400 Fix build error in console wallet commit 2999cb93ca8698087003a05cf3f66695055048ef Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 17:28:07 2021 +0200 Fix compile error commit 23024d0fdb0b273ea834895b9662c7d616a30f0a Merge: 89bf622a ad65bb2d Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 17:02:48 2021 +0200 Merge #2894: [wallet] Derive Comms Secret Key from the Master Seed key This PR implements the derivation of the Comms private key in the wallet from the Master Seed Key that is used as the seed for the key managers used for the UTXO’s on the wall. Previously the Comms Secret Key was generated by the client applications and it was stored in the Wallet Database. This key was also used to determine if the database was encrypted and if the provided passphrase is correct or not by storing the public key in the database and seeing if the stored private key corresponds to the permitted public key after decryption. This PR removes the Comms Secret and Public keys from the wallet database and replaces them with the Master Seed Key which becomes the single secret key from which the Comms Secret Key, UTXO Spending Keys and Rewind keys are derived. The Comms Secret key is now derived when the wallet is started based on the persisted Master Secret Key. On the first run the wallet will generate the Master Secret Key and store it. The Output Manager Service used to generate and store this key but now it will accept it from the Wallet and use it to initialise its Key Managers. The Console Wallet and Wallet FFI is updated to account for this change. commit ad65bb2d7aeb5cf4b73139af9dc9ccdc7164f83c Merge: 84e2f08a 89bf622a Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 17:02:12 2021 +0200 Merge branch 'tari-script' into philip-derive-comms-private-key commit 6f8cb87fef2b864403174f8cf02370c66cfffebf Author: Hansie Odendaal <pluto@tari.com> Date: Tue May 11 16:43:58 2021 +0200 Fix `header-stats` command Tari-script network reset omitted changing this stibbons reference. commit 89bf622aecf87bb5df244b0e6a57f28f4970b7a1 Merge: b6ba3133 21537dca Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 15:11:45 2021 +0200 Merge #2890: [common] Consolidate config files into one Consolidate config files into one commit b6ba31339d3b2ac974488d0ee4285eebd831b8ab Merge: 94344960 19bdbf62 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 15:08:43 2021 +0200 Merge #2895: [docs] Add Bulletproofs Rewinding RFC Add Bulletproofs Rewinding RFC commit 943449609e24301b1634fb1da11295f7734b20c2 Merge: ecac873a ba40a311 Author: Mike the Tike <mikethetike@tari.com> Date: Tue May 11 15:03:27 2021 +0200 Merge #2906: [tests] Verified massive multiple reorg cucumber (#2906) Verified massive multiple reorg cucumber commit 21537dcae4be61db0e2cd9d6ee682c5de156d3d3 Author: Hansie Odendaal <pluto@tari.com> Date: Tue May 4 14:38:54 2021 +0200 Consolidate config files into one - Consolidated all the three configuration files that were in the code base into one file, usable by all operating systems. - Removed some deprecated entries in the config file. - Updated the installation files/installers to use the new config file. - Clippy fixes. commit ecac873a86c75e7d60d1a499e5081b52e6b6705d Merge: 42220c34 4e5b3e04 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 10 13:45:47 2021 +0200 Merge #2889: [common] Adds version and commmit string to all application logs (#2889) Adds version and commmit string to all application logs commit 4e5b3e040133db75c4d9f7678702ad6f328a168b Merge: 09db76fe 42220c34 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 10 13:45:27 2021 +0200 Merge branch 'tari-script' into general-app-version-in-logs commit 42220c34cdb596a4040179f5efc1749559a3dca2 Merge: b2020dce 8c3d10d2 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 10 13:39:42 2021 +0200 Merge #2886: [common] Remove "end of time" panic in emission (#2886) Remove "end of time" panic in emission commit b2020dce319f6edc7bbae1b350ac1c59ce1ca391 Merge: 610b3159 c8b66ad7 Author: Mike the Tike <mikethetike@tari.com> Date: Mon May 10 12:00:20 2021 +0200 Merge #2872: [wallet] Add one sided payment scanning and recovering Add one sided payment scanning and recovering commit ba40a3113bcf374f105982b45eb50844f25dbde3 Author: Hansie Odendaal <pluto@tari.com> Date: Sun May 9 12:45:37 2021 +0200 Verified massive multiple reorg cucumber commit 84e2f08a96ad68cc8578a32cd4c08f393b1fa8d0 Author: Philip Robinson <simian@tari.com> Date: Fri May 7 14:19:27 2021 +0200 FFI method removal and Test Fixes Second commit contains a number of test fixes and some updates based on feedback from @kukabi about how the clients managed the Comms Secret Key. Because this is now completely handled in the backed we can remove the `comms_config_set_secret_key` function. It was also confirmed that the backend is fully responsible for managing the TorID so the old code that provided some migration support for the client to manage the TorID in the past has been removed. commit 610b3159fb09ca5fd88177a25c777880335de0a2 Merge: c3daa5aa 5c418649 Author: Mike the Tike <mikethetike@tari.com> Date: Fri May 7 11:25:45 2021 +0200 Merge #2887: [common] New gen block for tari_script New gen block for tari_script commit 19bdbf62ef9e1ae094c50341a86935be548dd449 Author: Hansie Odendaal <pluto@tari.com> Date: Tue May 4 17:31:58 2021 +0200 Add Bulletproofs Rewinding RFC commit c8b66ad7d53925a7cf4f1071f5e2d038fab41f1a Author: SW van Heerden <swvheerden@gmail.com> Date: Wed May 5 14:57:18 2021 +0200 Add one sided payment scanning and recovering Refactor recovery task into service change to hash based last scanned height remove clippy errors commit 09db76fe0113039a23d144b7d31e31fbe397ba46 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Tue May 4 16:53:32 2021 +0400 Adds version and commmit string to all application logs - Adds the application name, version obtained form the manifest and commit sha to the logs on application startup - Updates all log configs to route tari::application messages to all logs - Moves all `tari_common` build-time dependencies and code behind `build` feature flag commit 50ed6bf79e8c2379b83e39f00e6846e7a8e5cea4 Author: Philip Robinson <simian@tari.com> Date: Tue May 4 22:35:15 2021 +0200 [Wallet] Derive Comms Secret Key from the Master Seed key This PR implements the derivation of the Comms private key in the wallet from the Master Seed Key that is used as the seed for the key managers used for the UTXO’s on the wall. Previously the Comms Secret Key was generated by the client applications and it was stored in the Wallet Database. This key was also used to determine if the database was encrypted and if the provided passphrase is correct or not by storing the public key in the database and seeing if the stored private key corresponds to the permitted public key after decryption. This PR removes the Comms Secret and Public keys from the wallet database and replaces them with the Master Seed Key which becomes the single secret key from which the Comms Secret Key, UTXO Spending Keys and Rewind keys are derived. The Comms Secret key is now derived when the wallet is started based on the persisted Master Secret Key. On the first run the wallet will generate the Master Secret Key and store it. The Output Manager Service used to generate and store this key but now it will accept it from the Wallet and use it to initialise its Key Managers. The Console Wallet and Wallet FFI is updated to account for this change. commit 5c418649556814836cbf44707c269e1204b0a12e Author: SW van Heerden <swvheerden@gmail.com> Date: Tue May 4 11:26:28 2021 +0200 New gen block for tari_script commit 8c3d10d2d429b0d04018088944b5cd7b5bec2690 Author: Stanimal <sdbondi@users.noreply.github.com> Date: Mon May 3 16:15:13 2021 +0400 Remove "end of time" panic in emission Removed `Option::expect` when total supply overflows `u64`. In this case, the `EmissionRate` iterator considers itself "finished" and so returns None as per the Iterator contract. Removes the `Emission` trait, although nothing incorrect about using a trait in this case, it did not provide much of an advantage (decoupling) over using the concrete type. I…
Description
WireMode::Comms
variant to contain a single byte.WireMode::Comms
byte to be set from domain layer (tari_p2p).protocol.
the common Network enum.
message, rather than string. This reduces the bytes exchanged when
establishing a new peer connection.
connection
public key obtained from the noise handshake
Motivation and Context
This PR prevents networks from "cross-talk" at the peer connection protocol level.
In addition, previously there were a number (3) of Network enums causing maintenance issues, this PR uses a single enum to enumerate the types of networks. This point accounts for most of the LOC in this PR.
As part of the above, the DHT network enum was removed and so removed from the DHT-level message header, this is a network breaking change.
This PR also slightly reduces the number of bytes exchanged when establishing connections. This is a network breaking change that has been on my list for ages.
How Has This Been Tested?
Added a few unit tests.
Existing tests pass.
Basic test on private network. Nodes could only communicate with each other.
Checklist:
development
branch.