From e17602f9f97e8f6f95f71eaa10ea574d7726586d Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Fri, 19 Oct 2018 14:47:24 +0300 Subject: [PATCH] integrated hybrid solution from codablock --- dip-0003.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dip-0003.md b/dip-0003.md index 3ba7499..07d7741 100644 --- a/dip-0003.md +++ b/dip-0003.md @@ -56,7 +56,7 @@ The previous system also made certain desirable features infeasible. The integra ## New On-Chain System -In the new system, the masternode list is derived entirely from information found on-chain. New masternodes are added by new special transactions called Provider Registration Transactions (abbreviated as ProRegTx). They are only removed by spending the collateral. A ProRegTx is a special transaction which refers to a 1000-Dash collateral payment, along with other payload information (DIP2) described later in this document. +In the new system, the masternode list is derived entirely from information found on-chain. New masternodes are added by new special transactions called Provider Registration Transactions (abbreviated as ProRegTx). They are only removed by spending the collateral. A ProRegTx is a special transaction which includes a 1000-Dash collateral payment or a reference to it, along with other payload information (DIP2) described later in this document. This DIP defines 2 masternode (sub)sets: @@ -67,7 +67,7 @@ Only the valid subset is used in calculations to determine the recipient of the ## Registering a Masternode (ProRegTx) -To join the masternode list, masternode owners must submit a special transaction (DIP2) to the network. This transaction is called a Provider Registration Transaction and is abbreviated to ProRegTx. The ProRegTx must refer to an outpoint with the 1000 Dash collateral. +To join the masternode list, masternode owners must submit a special transaction (DIP2) to the network. This transaction is called a Provider Registration Transaction and is abbreviated to ProRegTx. The ProRegTx must include an output with the 1000 DASH or refer to an already existing unspent output which holds 1000 DASH. The ProRegTx contains 3 public key IDs, which represent 3 different roles in the masternode and define update and voting rights. A "public key ID" refers to the hash160 of an ECDSA public key. These are: @@ -211,8 +211,8 @@ Reorganisations of the chain must also correctly undo changes to the chain-tips A ProRegTx is invalid if any of these conditions are true: - 1. collateralOutpoint can't be found in UTXO - 2. collateralOutpoint amount isn't equal 1000 DASH + 1. collateralOutpoint `hash` is empty but no output with 1000 DASH can be found on position `n` in outputs of ProRegTx + 2. collateralOutpoint `hash` is not empty but no output with 1000 DASH can't be found in UTXO with these `hash` and `n` 3. Any KeyId* field is null (KeyIdOwner, KeyIdOperator or KeyIdVoting) 4. KeyIdOwner or KeyIdOperator was already used by any entry in the registered masternodes set 5. scriptPayout is not a P2PKH or P2SH script