Skip to content

Commit d415fc0

Browse files
committed
feature(aggregator, common, openapi): improve protocol-configuration route with Cardano block and transaction signing configuration, put CardanoBlocksTransactions in SignedEntityTypeDiscriminants 'all' function
1 parent 47c6a99 commit d415fc0

File tree

3 files changed

+52
-6
lines changed

3 files changed

+52
-6
lines changed

mithril-aggregator/src/services/message.rs

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,16 @@ impl MessageService for MithrilMessageService {
225225
let cardano_transactions_signing_config = cardano_transactions_discriminant
226226
.and(epoch_settings.cardano_transactions_signing_config);
227227

228+
let cardano_blocks_transactions_discriminant =
229+
enabled_discriminants.get(&SignedEntityTypeDiscriminants::CardanoBlocksTransactions);
230+
231+
let cardano_blocks_transactions_signing_config = cardano_blocks_transactions_discriminant
232+
.and(epoch_settings.cardano_blocks_transactions_signing_config);
233+
228234
let protocol_configuration_message = ProtocolConfigurationMessage {
229235
protocol_parameters: epoch_settings.protocol_parameters,
230236
cardano_transactions_signing_config,
237+
cardano_blocks_transactions_signing_config,
231238
available_signed_entity_types: enabled_discriminants,
232239
};
233240
Ok(Some(protocol_configuration_message))
@@ -696,7 +703,10 @@ mod tests {
696703
mod protocol_configuration {
697704
use super::*;
698705

699-
use mithril_common::entities::{CardanoTransactionsSigningConfig, ProtocolParameters};
706+
use mithril_common::entities::{
707+
CardanoBlocksTransactionsSigningConfig, CardanoTransactionsSigningConfig,
708+
ProtocolParameters,
709+
};
700710

701711
use crate::entities::AggregatorEpochSettings;
702712

@@ -706,9 +716,15 @@ mod tests {
706716
let aggregator_epoch_settings = AggregatorEpochSettings {
707717
protocol_parameters: ProtocolParameters::new(5, 100, 0.65),
708718
cardano_transactions_signing_config: Some(CardanoTransactionsSigningConfig {
709-
security_parameter: BlockNumber(0),
719+
security_parameter: BlockNumber(10),
710720
step: BlockNumber(15),
711721
}),
722+
cardano_blocks_transactions_signing_config: Some(
723+
CardanoBlocksTransactionsSigningConfig {
724+
security_parameter: BlockNumber(20),
725+
step: BlockNumber(30),
726+
},
727+
),
712728
};
713729
let message_service = MessageServiceBuilder::new()
714730
.with_epoch_settings(BTreeMap::from([(epoch, aggregator_epoch_settings)]))
@@ -728,10 +744,17 @@ mod tests {
728744
assert_eq!(
729745
message.cardano_transactions_signing_config,
730746
Some(CardanoTransactionsSigningConfig {
731-
security_parameter: BlockNumber(0),
747+
security_parameter: BlockNumber(10),
732748
step: BlockNumber(15)
733749
})
734750
);
751+
assert_eq!(
752+
message.cardano_blocks_transactions_signing_config,
753+
Some(CardanoBlocksTransactionsSigningConfig {
754+
security_parameter: BlockNumber(20),
755+
step: BlockNumber(30)
756+
})
757+
);
735758
assert_eq!(
736759
message.available_signed_entity_types,
737760
SignedEntityTypeDiscriminants::all()

mithril-common/src/entities/signed_entity_type.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,7 @@ impl SignedEntityTypeDiscriminants {
195195
}
196196

197197
fn iter_all() -> impl Iterator<Item = Self> {
198-
// Temporarily exclude CardanoBlocksTransactions until it can be derived from a TimePoint in SignedEntityConfig
199-
Self::iter().filter(|&d| d != Self::CardanoBlocksTransactions)
198+
Self::iter()
200199
}
201200

202201
/// Get the database value from enum's instance
@@ -570,6 +569,7 @@ mod tests {
570569
SignedEntityTypeDiscriminants::CardanoImmutableFilesFull,
571570
SignedEntityTypeDiscriminants::CardanoDatabase,
572571
SignedEntityTypeDiscriminants::CardanoTransactions,
572+
SignedEntityTypeDiscriminants::CardanoBlocksTransactions,
573573
]
574574
);
575575
}

openapi.yaml

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,7 @@ components:
10351035
- CardanoStakeDistribution
10361036
- CardanoImmutableFilesFull
10371037
- CardanoTransactions
1038+
- CardanoBlocksTransactions
10381039
- CardanoDatabase
10391040

10401041
EpochSettingsMessage:
@@ -1116,6 +1117,8 @@ components:
11161117
$ref: "#/components/schemas/ProtocolParameters"
11171118
cardano_transactions_signing_config:
11181119
$ref: "#/components/schemas/CardanoTransactionsSigningConfig"
1120+
cardano_blocks_transactions_signing_config:
1121+
$ref: "#/components/schemas/CardanoBlocksTransactionsSigningConfig"
11191122
available_signed_entity_types:
11201123
description: Available signed entity types that are signed by the aggregator
11211124
type: array
@@ -1131,7 +1134,8 @@ components:
11311134
[
11321135
"MithrilStakeDistribution",
11331136
"CardanoImmutableFilesFull",
1134-
"CardanoTransactions"
1137+
"CardanoTransactions",
1138+
"CardanoBlocksTransactions"
11351139
]
11361140
}
11371141

@@ -1178,6 +1182,25 @@ components:
11781182
examples:
11791183
- { "security_parameter": 100, "step": 10 }
11801184

1185+
CardanoBlocksTransactionsSigningConfig:
1186+
description: Cardano blocks and transactions signing configuration
1187+
type: object
1188+
additionalProperties: false
1189+
required:
1190+
- security_parameter
1191+
- step
1192+
properties:
1193+
security_parameter:
1194+
description: Number of blocks to discard from the tip of the chain when importing Cardano blocks and transactions
1195+
type: integer
1196+
format: int64
1197+
step:
1198+
description: Number of blocks between signature of Cardano blocks and transactions
1199+
type: integer
1200+
format: int64
1201+
examples:
1202+
- { "security_parameter": 100, "step": 10 }
1203+
11811204
CardanoDbBeacon:
11821205
description: A point in the Cardano chain at which a Mithril certificate of the Cardano Database should be produced
11831206
type: object

0 commit comments

Comments
 (0)