Skip to content
Merged
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ Number | Layer | Title | Owner | Type | Status
[21](dip-0021.md) | Consensus | LLMQ DKG Data Sharing | dustinface | Standard | Final
[22](dip-0022.md) | Consensus | Making InstantSend Deterministic using Quorum Cycles | Samuel Westrich, UdjinM6 | Standard | Proposed
[23](dip-0023.md) | Consensus | Enhanced Hard Fork Mechanism | Pasta | Standard | Proposed
[24](dip-0024.md) | Consensus | Long-Living Masternode Quorum Distribution and Rotation | Samuel Westrich & Virgile Bartolo | Standard | Proposed
[26](dip-0026.md) | Consensus | Multi-Party Payout | Timothy Munsell, UdjinM6 | Standard | Proposed

## License
Expand Down
19 changes: 19 additions & 0 deletions dip-0006.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,8 @@ In this phase, the members of the new quorum are determined. This process is ful
4. Take the first quorumSize entries from this list and use the corresponding masternodes as members list
5. Check if our masternode is part of this list. If not, we stop participating in the DKG.

Note: This process is modified for [Deterministic InstantSend](dip-0022.md) quorums which use the quorum rotation design specified in [DIP24](dip-0024.md).

After the members list is built, the LLMQ members start to initiate the connections to the deterministic set of quorum connections as described in the “Intra-Quorum Communication” section.

### 2. Contribution phase
Expand Down Expand Up @@ -358,6 +360,23 @@ The internal Dash message name is `qfcommit` and the format of the message is:
| quorumSig | BLSSig | 96 | Recovered threshold signature
| sig | BLSSig | 96 | Aggregated BLS signatures from all included commitments

Starting with version >= 2, the `quorumIndex` field highlighted below is included as described in [DIP24](dip-0024-rotation.md#quorum-composition):

| Field | Type | Size | Description |
|--|--|--|--|
| version | uint16_t | 2 | Version of the final commitment message
| llmqType | uint8_t | 1 | [Type of LLMQ](#current-llmq-types)
| quorumHash | uint256 | 32 | The quorum identifier
| **quorumIndex** | **int16_t** | **2** | **The quorum index** |
| signersSize | compactSize uint | 1-9 | Bit size of the signers bitvector
| signers | byte[] | (signersSize + 7) / 8 | Bitset representing the aggregated signers of this final commitment
| validMembersSize | compactSize uint | 1-9 | Bit size of the validMembers bitvector
| validMembers | byte[] | (validMembersSize + 7) / 8 | Bitset of valid members in this commitment
| quorumPublicKey | BLSPubKey | 48 | The quorum public key
| quorumVvecHash | uint256 | 32 | The SHA256 hash of the quorum verification vector
| quorumSig | BLSSig | 96 | Recovered threshold signature
| sig | BLSSig | 96 | Aggregated BLS signatures from all included commitments

### 7. Mining phase

After final commitments have been propagated in the network, miners should take the best final commitment for a DKG session and mine it into the next block. The best final commitment is simply the one with the most signers.
Expand Down
1 change: 1 addition & 0 deletions dip-0006/llmq-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ in [Parameters/Variables of a LLMQ and DKG](../dip-0006.md#parametersvariables-o
| LLMQ_400_60 | 2 | 400 | 300 | 240 (60%) | 288 (12 Hours) | 4 | 300 | 4 | |
| LLMQ_400_85 | 3 | 400 | 350 | 340 (85%) | 576 (24 Hours) | 4 | 300 | 4 | |
| LLMQ_100_67 | 4 | 100 | 80 | 67 (67%) | 24 (1 Hour) | 2 | 80 | 24 | |
| LLMQ_60_75 | 5 | 60 | 50 | 45 (75%) | 288 (12 Hours) | 2 | 48 | 32 | |
| LLMQ_TEST | 100 | 3 | 2 | 2 (66%) | 24 (1 Hour) | 2 | 2 | 2 | For testing only (regtest) |
| LLMQ_DEVNET | 101 | 12 | 7 | 6 (50%) | 24 (1 Hour) | 2 | 7 | 4 | For devnets only |
| LLMQ_TEST_V17 | 102 | 3 | 2 | 2 (66%) | 24 (1 Hour) | 2 | 2 | 2 | For testing only (regtest) |
Expand Down
7 changes: 5 additions & 2 deletions dip-0022.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ to that end.
* [DIP-0006: Long-Living Masternode Quorums](https://github.com/dashpay/dips/blob/master/dip-0006.md)
* [DIP-0007: LLMQ Signing Requests / Sessions](https://github.com/dashpay/dips/blob/master/dip-0007.md)
* [DIP-0010: LLMQ InstantSend](https://github.com/dashpay/dips/blob/master/dip-0010.md)
* [DIP-0024: LLMQ Distribution and Rotation](dip-0024.md)

## Versioning of ISLock messages

Expand Down Expand Up @@ -100,6 +101,8 @@ The new message has the following structure (fields in bold are not present in t

### **Choosing the active LLMQ to perform signing**

Choosing the active LLMQ to perform signing should follow the same steps as defined in [DIP-0007 -
Choosing the active LLMQ to perform
This updated implementation uses the `LLMQ_60_75` quorum created via the quorum rotation process
defined in [DIP-0024](dip-0024.md) as opposed to the `LLMQ_50_60` quorum used by the previous
iteration of InstantSend. Other than this change in quorum type, choosing the active LLMQ to perform
signing should follow the same steps as defined in [DIP-0007 - Choosing the active LLMQ to perform
signing](https://github.com/dashpay/dips/blob/master/dip-0007.md#choosing-the-active-llmq-to-perform-signing).
Loading