integrated hybrid solution from codablock

This commit is contained in:
UdjinM6 2018-10-19 14:47:24 +03:00 committed by GitHub
parent 0f1ce92f94
commit e17602f9f9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -56,7 +56,7 @@ The previous system also made certain desirable features infeasible. The integra
## New On-Chain System ## 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: 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) ## 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: 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: A ProRegTx is invalid if any of these conditions are true:
1. collateralOutpoint can't be found in UTXO 1. collateralOutpoint `hash` is empty but no output with 1000 DASH can be found on position `n` in outputs of ProRegTx
2. collateralOutpoint amount isn't equal 1000 DASH 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) 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 4. KeyIdOwner or KeyIdOperator was already used by any entry in the registered masternodes set
5. scriptPayout is not a P2PKH or P2SH script 5. scriptPayout is not a P2PKH or P2SH script