-
Notifications
You must be signed in to change notification settings - Fork 220
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
[testnet-reset] Merge tari-script branch into development #3064
Merged
stringhandler
merged 219 commits into
tari-project:development
from
delta1:tari-script-merge
Jul 7, 2021
Merged
[testnet-reset] Merge tari-script branch into development #3064
stringhandler
merged 219 commits into
tari-project:development
from
delta1:tari-script-merge
Jul 7, 2021
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Added tari script transaction data structures as per RFC-0201 <https://rfc.tari.com/RFC-0201_TariScript.html>, used default tari script values everywhere. Also updated comms wire mode to keep this network seperate. TODO: - Fix all unit tests - Migrate tari script into all transaction protocols wip
…ructures Add tari script transaction data structures Updated `/// Sum of script offsets for all kernels in this block.`
…sactions This PR includes the work of @SWvheerden, @hansieodendaal and myself to implement the foundations of TariScript support in the Tari base node and wallets. The goal of this PR is to add all the data required for TariScripts while building transactions and also to validate the TariScripts by base nodes. On the wallet side of things this PR updates the wallet Sql database to store all the elements that the wallet needs to remember to spend an output with a script and updates the Transaction Negotiation Protocols to work with TariScripts. The updates are able to support general TariScripts but in the Wallet the current assumption is that all outputs will have the “Default” Nop script for now. This PR also adds the fields to the headers required for script validation and the base node validation has been updated to also check the script elements for individual transactions and the accumulated offset for constructed blocks and the blockchain. One last feature that is included in this PR as it was easy to add in during the Transaction Protocol refactor is that the Coin Split function in the Wallet now produces outputs that are rewindable and thus can be recovered by a wallet recovery.
…dation and default scripts in transactions Implement TariScript base node validation and default scripts in transactions
Added tari script transaction data structures as per RFC-0201 <https://rfc.tari.com/RFC-0201_TariScript.html>, used default tari script values everywhere. Also updated comms wire mode to keep this network seperate. TODO: - Fix all unit tests - Migrate tari script into all transaction protocols wip
Implement TariScript base node validation and default scripts in transactions This PR includes the work of @SWvheerden, @hansieodendaal and myself to implement the foundations of TariScript support in the Tari base node and wallets. The goal of this PR is to add all the data required for TariScripts while building transactions and also to validate the TariScripts by base nodes. On the wallet side of things this PR updates the wallet Sql database to store all the elements that the wallet needs to remember to spend an output with a script and updates the Transaction Negotiation Protocols to work with TariScripts. The updates are able to support general TariScripts but in the Wallet the current assumption is that all outputs will have the “Default” Nop script for now. This PR also adds the fields to the headers required for script validation and the base node validation has been updated to also check the script elements for individual transactions and the accumulated offset for constructed blocks and the blockchain. One last feature that is included in this PR as it was easy to add in during the Transaction Protocol refactor is that the Coin Split function in the Wallet now produces outputs that are rewindable and thus can be recovered by a wallet recovery. fix unit tests Some code review comments
- Fixed error "Cannot add a NOT NULL column with default value NULL" with `outputs` table; cannot add a `NOT NULL` column after the table has been created. - Date integrity: Changed `commitment` and `hash` default `NULL` columns in `outputs` table to `NOT NULL`. - Superfluous constraints: Changed all `NULL DEFAULT NULL` coulmns to `NULL` because `NULL` columns are `NULL` by default.
Fix compile errors
… tari-script Fix sqlite3 database migrations for tari-script
fix build of wallet_ffi Update integration_tests/features/Propagation.feature Co-authored-by: Mike the Tike <[email protected]> update name fix naming
… miner fix cucumber tests to use standalone miner
Added one-sided to other payment transaction to the transaction sending protocols. Consecutive PRs must extend the wiring into the user interfaces. Added unit tests.
Add one-sided payment send transaction
Added one sided transaction sending to the command line interface.
This PR adds an enum to the PaymentRecipient Protocol struct that is used with the Transfer method to allow the user to specify if a payment is made using the traditional Mimblewimble method or as a One-sided payment. This was tested manually as the Cucumber tests seem broken in the TariScript branch currently.
libwallet-0.16.25 [Wallet] Persist transaction confirmations for complete transaction and expose via FFI [base-node] Add rpc sessions to base node status line [tests] Attempt to replicate sync issue in integration tests Add wallet recovery cucumber test, seed words to file Add reorg tests .GT. `orphan_storage_capacity` Improve wallet recovery resiliency Fix console wallet menu spacing [base-node] Always output message when base node exits with an error Add database concurrency check Fix README installation artefacts path Fixed cucumber tests v0.8.8 [comms] Use grace period on client side handshake Reduce checklist on PR template [common] Fix key manager panic [wallet] Leverage streaming for UTXO recovery [Wallet] Fix wallet service API loop blocking [chore] Fix clippy errors sw_squash tari_script
Added the one-sided payment transaction sending functionality to the console wallet TUI. TODO: Receiver wallet scanning the blockchain for one-sided transactions.
…llet TUI Add send one-sided tx to console wallet TUI
…ne-sided payments the commit.
This PR aims to fix the broken cucumber tests in the TariScript branch. The PR contains the following: - Implement the TariScript logic for producing coin bases and transactions in the cucumber support javascript. The updates add a no_op script to UTXO’s. - Removed the `height` from TariScript signatures and validation - Update tari_crypto’s WASM interface to allow for clients to do private key arithmetic - Update the grpc client used by the cucumber tests to support the new fields in the transaction protobuf - Fixed a bug that causes panics when displaying an TransactionOutput with a malformed range proof - Remove a number of duplicate Cucumber step file entries from a bad merge.
This PR merges Development into the TariScript branch. The PR includes a few fixes to get the unit tests to pass.
…branch Fix Cucumber tests in `TariScript` branch
…cript` branch Merge `Development` into the `TariScript` branch
BREAKING CHANGE!: This is a DB and network breaking change.
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
Co-Authored-By: Hansie Odendaal <[email protected]> Co-authored-by: Stan Bondi <[email protected]>
- 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 <[email protected]>
- Update crates `digest` `rand` and `sha3` to fix compilation errors (Ref tari-project/tari-crypto#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
hansieodendaal
approved these changes
Jul 7, 2021
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.
LGTM
- All unit tests succeed locally after actual time surpassed the genesis time stamp
- System-level tests working properly
- Hybrid mining with two base nodes
- Normal transaction send (console wallet)
- One-sided transaction send (console wallet)
All critical and not critical cucumber tests passed locally:
|
stringhandler
approved these changes
Jul 7, 2021
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Merges the
tari-script
branch into thedevelopment
branch to build new releases for the newWeatherwax
network.Includes #3062
Generated new faucet utxos
Reset genesis block timestamp
still todo:
development
into a newstibbons
branch for posterityMotivation and Context
#testnetreset
How Has This Been Tested?
In progress:
Checklist:
development
branch.