Use scale instead of bincode throughout processor-messages/processor DB

scale is canonical, bincode is not.
This commit is contained in:
Luke Parker
2023-09-02 07:53:14 -04:00
parent f7e49e1f90
commit 7d8e08d5b4
6 changed files with 39 additions and 43 deletions

View File

@@ -15,6 +15,7 @@ use frost::{
use log::info;
use scale::Encode;
use serai_client::validator_sets::primitives::{ValidatorSet, KeyPair};
use messages::key_gen::*;
@@ -34,7 +35,7 @@ impl<N: Network, D: Db> KeyGenDb<N, D> {
}
fn params_key(set: &ValidatorSet) -> Vec<u8> {
Self::key_gen_key(b"params", bincode::serialize(set).unwrap())
Self::key_gen_key(b"params", set.encode())
}
fn save_params(txn: &mut D::Transaction<'_>, set: &ValidatorSet, params: &ThresholdParams) {
txn.put(Self::params_key(set), bincode::serialize(params).unwrap());
@@ -48,7 +49,7 @@ impl<N: Network, D: Db> KeyGenDb<N, D> {
// A former attempt may become the finalized attempt, even if it doesn't in a timely manner
// Overwriting its commitments would be accordingly poor
fn commitments_key(id: &KeyGenId) -> Vec<u8> {
Self::key_gen_key(b"commitments", bincode::serialize(id).unwrap())
Self::key_gen_key(b"commitments", id.encode())
}
fn save_commitments(
txn: &mut D::Transaction<'_>,
@@ -64,8 +65,8 @@ impl<N: Network, D: Db> KeyGenDb<N, D> {
.unwrap()
}
fn generated_keys_key(set: ValidatorSet, key_pair: (&[u8], &[u8])) -> Vec<u8> {
Self::key_gen_key(b"generated_keys", bincode::serialize(&(set, key_pair)).unwrap())
fn generated_keys_key(set: ValidatorSet, key_pair: (&[u8; 32], &[u8])) -> Vec<u8> {
Self::key_gen_key(b"generated_keys", (set, key_pair).encode())
}
fn save_keys(
txn: &mut D::Transaction<'_>,
@@ -78,10 +79,7 @@ impl<N: Network, D: Db> KeyGenDb<N, D> {
txn.put(
Self::generated_keys_key(
id.set,
(
substrate_keys.group_key().to_bytes().as_ref(),
network_keys.group_key().to_bytes().as_ref(),
),
(&substrate_keys.group_key().to_bytes(), network_keys.group_key().to_bytes().as_ref()),
),
keys,
);
@@ -107,10 +105,8 @@ impl<N: Network, D: Db> KeyGenDb<N, D> {
set: ValidatorSet,
key_pair: KeyPair,
) -> (ThresholdKeys<Ristretto>, ThresholdKeys<N::Curve>) {
let (keys_vec, keys) = Self::read_keys(
txn,
&Self::generated_keys_key(set, (key_pair.0.as_ref(), key_pair.1.as_ref())),
);
let (keys_vec, keys) =
Self::read_keys(txn, &Self::generated_keys_key(set, (&key_pair.0 .0, key_pair.1.as_ref())));
assert_eq!(key_pair.0 .0, keys.0.group_key().to_bytes());
assert_eq!(
{

View File

@@ -11,6 +11,7 @@ use frost::{
use log::{info, debug, warn, error};
use scale::Encode;
use messages::sign::*;
use crate::{
Get, DbTxn, Db,
@@ -74,7 +75,7 @@ impl<N: Network, D: Db> SignerDb<N, D> {
}
fn attempt_key(id: &SignId) -> Vec<u8> {
Self::sign_key(b"attempt", bincode::serialize(id).unwrap())
Self::sign_key(b"attempt", id.encode())
}
fn attempt(txn: &mut D::Transaction<'_>, id: &SignId) {
txn.put(Self::attempt_key(id), []);

View File

@@ -3,9 +3,7 @@ use std::collections::{VecDeque, HashMap};
use rand_core::OsRng;
use scale::Encode;
use transcript::{Transcript, RecommendedTranscript};
use frost::{
curve::Ristretto,
ThresholdKeys,
@@ -18,6 +16,7 @@ use frost_schnorrkel::Schnorrkel;
use log::{info, debug, warn};
use scale::Encode;
use serai_client::{
primitives::NetworkId,
in_instructions::primitives::{Batch, SignedBatch, batch_message},
@@ -63,7 +62,7 @@ impl<D: Db> SubstrateSignerDb<D> {
}
fn attempt_key(id: &SignId) -> Vec<u8> {
Self::sign_key(b"attempt", bincode::serialize(id).unwrap())
Self::sign_key(b"attempt", id.encode())
}
fn attempt(txn: &mut D::Transaction<'_>, id: &SignId) {
txn.put(Self::attempt_key(id), []);