Skip to content

Commit 04905fd

Browse files
authored
Merge pull request #838 from input-output-hk/jpraynaud/828-adapt-signer-regsitration-store
Create/Migrate `signer_registration` store
2 parents fb79b8e + 53b5bea commit 04905fd

File tree

11 files changed

+1002
-62
lines changed

11 files changed

+1002
-62
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mithril-aggregator/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mithril-aggregator"
3-
version = "0.2.43"
3+
version = "0.2.44"
44
description = "A Mithril Aggregator server"
55
authors = { workspace = true }
66
edition = { workspace = true }

mithril-aggregator/src/database/migration.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,47 @@ create table open_message (
146146
foreign key (epoch_setting_id) references epoch_setting (epoch_setting_id),
147147
foreign key (signed_entity_type_id) references signed_entity_type (signed_entity_type_id)
148148
);
149+
"#,
150+
),
151+
// Migration 6
152+
// Add the `signer_registration` table and migration data from the previous
153+
// `verification_key` JSON format.
154+
// TODO: activate FK w/ signer table exists `foreign key (signer_id) references signer(signer_id)`
155+
SqlMigration::new(
156+
6,
157+
r#"
158+
create table signer_registration (
159+
signer_id text not null,
160+
epoch_setting_id integer not null,
161+
verification_key text not null,
162+
verification_key_signature text,
163+
operational_certificate text,
164+
kes_period integer,
165+
stake integer,
166+
created_at text not null default current_timestamp,
167+
primary key (epoch_setting_id, signer_id)
168+
foreign key (epoch_setting_id) references epoch_setting(epoch_setting_id)
169+
);
170+
create table if not exists verification_key (key_hash text primary key, key json not null, value json not null);
171+
insert into signer_registration (signer_id,
172+
epoch_setting_id,
173+
verification_key,
174+
verification_key_signature,
175+
operational_certificate,
176+
kes_period,
177+
stake)
178+
select
179+
verification_key_signer.key as signer_id,
180+
verification_key.key as epoch_setting_id,
181+
json_extract(verification_key_signer.value, '$.verification_key') as verification_key,
182+
json_extract(verification_key_signer.value, '$.verification_key_signature') as verification_key_signature,
183+
json_extract(verification_key_signer.value, '$.operational_certificate') as operational_certificate,
184+
json_extract(verification_key_signer.value, '$.kes_period') as kes_period,
185+
stake_pool.stake as stake
186+
from verification_key, json_each(verification_key.value) as verification_key_signer
187+
left join stake_pool on stake_pool.stake_pool_id = verification_key_signer.key and stake_pool.epoch = verification_key.key
188+
order by verification_key.key, verification_key_signer.key asc;
189+
drop table verification_key;
149190
"#,
150191
),
151192
]

mithril-aggregator/src/database/provider/epoch_setting.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ impl<'conn> Provider<'conn> for UpdateEpochSettingProvider<'conn> {
190190
}
191191
}
192192

193-
/// Provider to remove old data from theepoch_setting table
193+
/// Provider to remove old data from the epoch_setting table
194194
pub struct DeleteEpochSettingProvider<'conn> {
195195
connection: &'conn Connection,
196196
}
@@ -249,6 +249,7 @@ impl<'conn> DeleteEpochSettingProvider<'conn> {
249249
self.find(filters)
250250
}
251251
}
252+
252253
/// Service to deal with epoch settings (read & write).
253254
pub struct EpochSettingStore {
254255
connection: Arc<Mutex<Connection>>,

mithril-aggregator/src/database/provider/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22
mod certificate;
33
mod epoch_setting;
44
mod open_message;
5+
mod signer_registration;
56
mod stake_pool;
67

78
pub use certificate::*;
89
pub use epoch_setting::*;
910
pub use open_message::*;
11+
pub use signer_registration::*;
1012
pub use stake_pool::*;

0 commit comments

Comments
 (0)