mirror of
https://github.com/logos-blockchain/lssa.git
synced 2026-01-07 07:43:11 +00:00
Merge pull request #34 from vacp2p/logging
logging added to UTXO, Account, Transaction
This commit is contained in:
commit
bd092fec81
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -4349,6 +4349,7 @@ dependencies = [
|
|||||||
"anyhow",
|
"anyhow",
|
||||||
"elliptic-curve",
|
"elliptic-curve",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
|
"hex",
|
||||||
"log",
|
"log",
|
||||||
"lru",
|
"lru",
|
||||||
"monotree",
|
"monotree",
|
||||||
@ -4817,6 +4818,7 @@ version = "0.1.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
|
"hex",
|
||||||
"log",
|
"log",
|
||||||
"monotree",
|
"monotree",
|
||||||
"serde",
|
"serde",
|
||||||
|
|||||||
@ -2,6 +2,7 @@ use std::collections::HashMap;
|
|||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use k256::AffinePoint;
|
use k256::AffinePoint;
|
||||||
|
use log::info;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier};
|
use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier};
|
||||||
use utxo::{
|
use utxo::{
|
||||||
@ -115,6 +116,12 @@ impl Account {
|
|||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn log(&self) {
|
||||||
|
self.key_holder.log();
|
||||||
|
info!("Account address is {:?}", hex::encode(self.address));
|
||||||
|
info!("Account balance is {:?}", self.balance);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Account {
|
impl Default for Account {
|
||||||
|
|||||||
@ -3,6 +3,7 @@ use constants_types::{CipherText, Nonce};
|
|||||||
use elliptic_curve::group::GroupEncoding;
|
use elliptic_curve::group::GroupEncoding;
|
||||||
use ephemeral_key_holder::EphemeralKeyHolder;
|
use ephemeral_key_holder::EphemeralKeyHolder;
|
||||||
use k256::AffinePoint;
|
use k256::AffinePoint;
|
||||||
|
use log::info;
|
||||||
use secret_holders::{SeedHolder, TopSecretKeyHolder, UTXOSecretKeyHolder};
|
use secret_holders::{SeedHolder, TopSecretKeyHolder, UTXOSecretKeyHolder};
|
||||||
use storage::merkle_tree_public::TreeHashType;
|
use storage::merkle_tree_public::TreeHashType;
|
||||||
|
|
||||||
@ -74,6 +75,14 @@ impl AddressKeyHolder {
|
|||||||
|
|
||||||
cipher.decrypt(&nonce, ciphertext.as_slice()).unwrap()
|
cipher.decrypt(&nonce, ciphertext.as_slice()).unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn log(&self) {
|
||||||
|
info!("AddressKeyHolder top_secret_key_holder is {:?}", self.top_secret_key_holder);
|
||||||
|
info!("AddressKeyHolder utxo_secret_key_holder is {:?}", self.utxo_secret_key_holder);
|
||||||
|
info!("AddressKeyHolder address is {:?}", self.address);
|
||||||
|
info!("AddressKeyHolder nullifer_public_key is {:?}", self.nullifer_public_key);
|
||||||
|
info!("AddressKeyHolder viewing_public_key is {:?}", self.viewing_public_key);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
|||||||
@ -140,6 +140,7 @@ impl NodeCore {
|
|||||||
|
|
||||||
pub async fn create_new_account(&mut self) -> AccountAddress {
|
pub async fn create_new_account(&mut self) -> AccountAddress {
|
||||||
let account = Account::new();
|
let account = Account::new();
|
||||||
|
account.log();
|
||||||
|
|
||||||
let addr = account.address;
|
let addr = account.address;
|
||||||
|
|
||||||
@ -163,6 +164,7 @@ impl NodeCore {
|
|||||||
let acc_map_read_guard = self.storage.read().await;
|
let acc_map_read_guard = self.storage.read().await;
|
||||||
|
|
||||||
let accout = acc_map_read_guard.acc_map.get(&acc).unwrap();
|
let accout = acc_map_read_guard.acc_map.get(&acc).unwrap();
|
||||||
|
accout.log();
|
||||||
|
|
||||||
let ephm_key_holder = &accout.produce_ephemeral_key_holder();
|
let ephm_key_holder = &accout.produce_ephemeral_key_holder();
|
||||||
|
|
||||||
@ -223,6 +225,7 @@ impl NodeCore {
|
|||||||
let acc_map_read_guard = self.storage.read().await;
|
let acc_map_read_guard = self.storage.read().await;
|
||||||
|
|
||||||
let accout = acc_map_read_guard.acc_map.get(&utxo.owner).unwrap();
|
let accout = acc_map_read_guard.acc_map.get(&utxo.owner).unwrap();
|
||||||
|
accout.log();
|
||||||
|
|
||||||
let nullifier = generate_nullifiers(
|
let nullifier = generate_nullifiers(
|
||||||
&utxo,
|
&utxo,
|
||||||
@ -295,6 +298,7 @@ impl NodeCore {
|
|||||||
let acc_map_read_guard = self.storage.read().await;
|
let acc_map_read_guard = self.storage.read().await;
|
||||||
|
|
||||||
let accout = acc_map_read_guard.acc_map.get(&acc).unwrap();
|
let accout = acc_map_read_guard.acc_map.get(&acc).unwrap();
|
||||||
|
accout.log();
|
||||||
|
|
||||||
let commitment_secrets = CommitmentSecrets {
|
let commitment_secrets = CommitmentSecrets {
|
||||||
value: balance,
|
value: balance,
|
||||||
@ -392,6 +396,7 @@ impl NodeCore {
|
|||||||
let commitment_in = acc_map_read_guard.utxo_commitments_store.get_tx(comm_gen_hash).unwrap().hash;
|
let commitment_in = acc_map_read_guard.utxo_commitments_store.get_tx(comm_gen_hash).unwrap().hash;
|
||||||
|
|
||||||
let accout = acc_map_read_guard.acc_map.get(&utxo.owner).unwrap();
|
let accout = acc_map_read_guard.acc_map.get(&utxo.owner).unwrap();
|
||||||
|
accout.log();
|
||||||
|
|
||||||
let nullifier = generate_nullifiers(
|
let nullifier = generate_nullifiers(
|
||||||
&utxo,
|
&utxo,
|
||||||
@ -431,6 +436,7 @@ impl NodeCore {
|
|||||||
) -> Result<(SendTxResponse, [u8; 32], [u8; 32])> {
|
) -> Result<(SendTxResponse, [u8; 32], [u8; 32])> {
|
||||||
let point_before_prove = std::time::Instant::now();
|
let point_before_prove = std::time::Instant::now();
|
||||||
let (tx, utxo_hash) = self.mint_utxo_private(acc, amount).await;
|
let (tx, utxo_hash) = self.mint_utxo_private(acc, amount).await;
|
||||||
|
tx.log();
|
||||||
let point_after_prove = std::time::Instant::now();
|
let point_after_prove = std::time::Instant::now();
|
||||||
|
|
||||||
let commitment_generated_hash = tx.utxo_commitments_created_hashes[0];
|
let commitment_generated_hash = tx.utxo_commitments_created_hashes[0];
|
||||||
@ -460,6 +466,7 @@ impl NodeCore {
|
|||||||
) -> Result<(SendTxResponse, Vec<([u8; 32], [u8; 32])>)> {
|
) -> Result<(SendTxResponse, Vec<([u8; 32], [u8; 32])>)> {
|
||||||
let point_before_prove = std::time::Instant::now();
|
let point_before_prove = std::time::Instant::now();
|
||||||
let (tx, utxo_hashes) = self.transfer_utxo_private(utxo, comm_hash, receivers).await;
|
let (tx, utxo_hashes) = self.transfer_utxo_private(utxo, comm_hash, receivers).await;
|
||||||
|
tx.log();
|
||||||
let point_after_prove = std::time::Instant::now();
|
let point_after_prove = std::time::Instant::now();
|
||||||
|
|
||||||
let timedelta = (point_after_prove - point_before_prove).as_millis();
|
let timedelta = (point_after_prove - point_before_prove).as_millis();
|
||||||
@ -476,6 +483,7 @@ impl NodeCore {
|
|||||||
) -> Result<(SendTxResponse, Vec<([u8; 32], [u8; 32])>)> {
|
) -> Result<(SendTxResponse, Vec<([u8; 32], [u8; 32])>)> {
|
||||||
let point_before_prove = std::time::Instant::now();
|
let point_before_prove = std::time::Instant::now();
|
||||||
let (tx, utxo_hashes) = self.transfer_balance_shielded(acc, amount, receivers).await;
|
let (tx, utxo_hashes) = self.transfer_balance_shielded(acc, amount, receivers).await;
|
||||||
|
tx.log();
|
||||||
let point_after_prove = std::time::Instant::now();
|
let point_after_prove = std::time::Instant::now();
|
||||||
|
|
||||||
let timedelta = (point_after_prove - point_before_prove).as_millis();
|
let timedelta = (point_after_prove - point_before_prove).as_millis();
|
||||||
@ -492,6 +500,7 @@ impl NodeCore {
|
|||||||
) -> Result<SendTxResponse> {
|
) -> Result<SendTxResponse> {
|
||||||
let point_before_prove = std::time::Instant::now();
|
let point_before_prove = std::time::Instant::now();
|
||||||
let tx = self.transfer_utxo_deshielded(utxo, comm_gen_hash, receivers).await;
|
let tx = self.transfer_utxo_deshielded(utxo, comm_gen_hash, receivers).await;
|
||||||
|
tx.log();
|
||||||
let point_after_prove = std::time::Instant::now();
|
let point_after_prove = std::time::Instant::now();
|
||||||
|
|
||||||
let timedelta = (point_after_prove - point_before_prove).as_millis();
|
let timedelta = (point_after_prove - point_before_prove).as_millis();
|
||||||
@ -515,6 +524,7 @@ impl NodeCore {
|
|||||||
let mut write_guard = self.storage.write().await;
|
let mut write_guard = self.storage.write().await;
|
||||||
|
|
||||||
let acc = write_guard.acc_map.get_mut(&acc_addr).unwrap();
|
let acc = write_guard.acc_map.get_mut(&acc_addr).unwrap();
|
||||||
|
acc.log();
|
||||||
|
|
||||||
acc.utxo_tree
|
acc.utxo_tree
|
||||||
.get_item(new_utxo_hash)
|
.get_item(new_utxo_hash)
|
||||||
@ -522,6 +532,8 @@ impl NodeCore {
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.clone()
|
.clone()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
new_utxo.log();
|
||||||
|
|
||||||
let resp = self
|
let resp = self
|
||||||
.send_deshielded_send_tx(new_utxo, comm_gen_hash, vec![(100, acc_addr)])
|
.send_deshielded_send_tx(new_utxo, comm_gen_hash, vec![(100, acc_addr)])
|
||||||
@ -536,6 +548,7 @@ impl NodeCore {
|
|||||||
let acc_map_read_guard = self.storage.read().await;
|
let acc_map_read_guard = self.storage.read().await;
|
||||||
|
|
||||||
let acc = acc_map_read_guard.acc_map.get(&acc_addr).unwrap();
|
let acc = acc_map_read_guard.acc_map.get(&acc_addr).unwrap();
|
||||||
|
acc.log();
|
||||||
|
|
||||||
acc.balance
|
acc.balance
|
||||||
};
|
};
|
||||||
@ -556,7 +569,8 @@ impl NodeCore {
|
|||||||
{
|
{
|
||||||
let acc_map_read_guard = self.storage.read().await;
|
let acc_map_read_guard = self.storage.read().await;
|
||||||
|
|
||||||
let acc = acc_map_read_guard.acc_map.get(&acc_addr).unwrap();
|
let acc = acc_map_read_guard.acc_map.get(&acc_addr).unwrap();;
|
||||||
|
acc.log();
|
||||||
|
|
||||||
info!("New acconut public balance is {:?}", acc.balance);
|
info!("New acconut public balance is {:?}", acc.balance);
|
||||||
};
|
};
|
||||||
@ -576,6 +590,7 @@ impl NodeCore {
|
|||||||
let mut write_guard = self.storage.write().await;
|
let mut write_guard = self.storage.write().await;
|
||||||
|
|
||||||
let acc = write_guard.acc_map.get_mut(&acc_addr).unwrap();
|
let acc = write_guard.acc_map.get_mut(&acc_addr).unwrap();
|
||||||
|
acc.log();
|
||||||
|
|
||||||
acc.utxo_tree
|
acc.utxo_tree
|
||||||
.get_item(new_utxo_hash)
|
.get_item(new_utxo_hash)
|
||||||
@ -583,6 +598,8 @@ impl NodeCore {
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.clone()
|
.clone()
|
||||||
};
|
};
|
||||||
|
new_utxo.log();
|
||||||
|
|
||||||
info!("User received new utxo {new_utxo:?}");
|
info!("User received new utxo {new_utxo:?}");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -600,6 +617,7 @@ impl NodeCore {
|
|||||||
let mut write_guard = self.storage.write().await;
|
let mut write_guard = self.storage.write().await;
|
||||||
|
|
||||||
let acc = write_guard.acc_map.get_mut(&acc_addr).unwrap();
|
let acc = write_guard.acc_map.get_mut(&acc_addr).unwrap();
|
||||||
|
acc.log();
|
||||||
|
|
||||||
acc.utxo_tree
|
acc.utxo_tree
|
||||||
.get_item(new_utxo_hash)
|
.get_item(new_utxo_hash)
|
||||||
@ -607,6 +625,7 @@ impl NodeCore {
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.clone()
|
.clone()
|
||||||
};
|
};
|
||||||
|
new_utxo.log();
|
||||||
|
|
||||||
let acc_addr_rec = self.create_new_account().await;
|
let acc_addr_rec = self.create_new_account().await;
|
||||||
|
|
||||||
@ -625,6 +644,7 @@ impl NodeCore {
|
|||||||
let mut write_guard = self.storage.write().await;
|
let mut write_guard = self.storage.write().await;
|
||||||
|
|
||||||
let acc = write_guard.acc_map.get_mut(&acc_addr_rec).unwrap();
|
let acc = write_guard.acc_map.get_mut(&acc_addr_rec).unwrap();
|
||||||
|
acc.log();
|
||||||
|
|
||||||
acc.utxo_tree
|
acc.utxo_tree
|
||||||
.get_item(new_utxo_hash)
|
.get_item(new_utxo_hash)
|
||||||
@ -650,7 +670,8 @@ impl NodeCore {
|
|||||||
{
|
{
|
||||||
let acc_map_read_guard = self.storage.read().await;
|
let acc_map_read_guard = self.storage.read().await;
|
||||||
let acc = acc_map_read_guard.acc_map.get(&acc_addr).unwrap();
|
let acc = acc_map_read_guard.acc_map.get(&acc_addr).unwrap();
|
||||||
|
acc.log();
|
||||||
|
|
||||||
info!("New acconut public balance is {:?}", acc.balance);
|
info!("New acconut public balance is {:?}", acc.balance);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -669,6 +690,7 @@ impl NodeCore {
|
|||||||
let mut write_guard = self.storage.write().await;
|
let mut write_guard = self.storage.write().await;
|
||||||
|
|
||||||
let acc = write_guard.acc_map.get_mut(&acc_addr_rec).unwrap();
|
let acc = write_guard.acc_map.get_mut(&acc_addr_rec).unwrap();
|
||||||
|
acc.log();
|
||||||
|
|
||||||
acc.utxo_tree
|
acc.utxo_tree
|
||||||
.get_item(new_utxo_hash)
|
.get_item(new_utxo_hash)
|
||||||
@ -695,6 +717,7 @@ impl NodeCore {
|
|||||||
let mut write_guard = self.storage.write().await;
|
let mut write_guard = self.storage.write().await;
|
||||||
|
|
||||||
let acc = write_guard.acc_map.get_mut(&acc_addr).unwrap();
|
let acc = write_guard.acc_map.get_mut(&acc_addr).unwrap();
|
||||||
|
acc.log();
|
||||||
|
|
||||||
acc.utxo_tree
|
acc.utxo_tree
|
||||||
.get_item(new_utxo_hash)
|
.get_item(new_utxo_hash)
|
||||||
@ -702,6 +725,7 @@ impl NodeCore {
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.clone()
|
.clone()
|
||||||
};
|
};
|
||||||
|
new_utxo.log();
|
||||||
|
|
||||||
let resp = self
|
let resp = self
|
||||||
.send_deshielded_send_tx(new_utxo, comm_gen_hash, vec![(100, acc_addr_rec)])
|
.send_deshielded_send_tx(new_utxo, comm_gen_hash, vec![(100, acc_addr_rec)])
|
||||||
@ -715,7 +739,8 @@ impl NodeCore {
|
|||||||
{
|
{
|
||||||
let read_guard = self.storage.read().await;
|
let read_guard = self.storage.read().await;
|
||||||
let acc_rec = read_guard.acc_map.get(&acc_addr_rec).unwrap();
|
let acc_rec = read_guard.acc_map.get(&acc_addr_rec).unwrap();
|
||||||
|
acc_rec.log();
|
||||||
|
|
||||||
info!("New account public balance is {:?}", acc_rec.balance);
|
info!("New account public balance is {:?}", acc_rec.balance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ serde.workspace = true
|
|||||||
lru.workspace = true
|
lru.workspace = true
|
||||||
thiserror.workspace = true
|
thiserror.workspace = true
|
||||||
elliptic-curve.workspace = true
|
elliptic-curve.workspace = true
|
||||||
|
hex.workspace = true
|
||||||
|
|
||||||
rocksdb.workspace = true
|
rocksdb.workspace = true
|
||||||
rs_merkle.workspace = true
|
rs_merkle.workspace = true
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
use log::info;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use sha2::{digest::FixedOutput, Digest};
|
use sha2::{digest::FixedOutput, Digest};
|
||||||
|
|
||||||
@ -89,3 +90,18 @@ impl From<TransactionPayload> for Transaction {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Transaction {
|
||||||
|
pub fn log(&self) {
|
||||||
|
info!("Transaction hash is {:?}", hex::encode(self.hash));
|
||||||
|
info!("Transaction tx_kind is {:?}", self.tx_kind);
|
||||||
|
info!("Transaction execution_input is {:?}", hex::encode(self.execution_input.clone()));
|
||||||
|
info!("Transaction execution_output is {:?}", hex::encode(self.execution_output.clone()));
|
||||||
|
info!("Transaction utxo_commitments_spent_hashes is {:?}", self.utxo_commitments_spent_hashes.iter().map(|val| hex::encode(val.clone())));
|
||||||
|
info!("Transaction utxo_commitments_created_hashes is {:?}", self.utxo_commitments_created_hashes.iter().map(|val| hex::encode(val.clone())));
|
||||||
|
info!("Transaction nullifier_created_hashes is {:?}", self.nullifier_created_hashes.iter().map(|val| hex::encode(val.clone())));
|
||||||
|
info!("Transaction execution_proof_private is {:?}", self.execution_proof_private);
|
||||||
|
info!("Transaction encoded_data is {:?}", self.encoded_data.iter().map(|val| (hex::encode(val.0.clone()), hex::encode(val.1.clone()))));
|
||||||
|
info!("Transaction ephemeral_pub_key is {:?}", hex::encode(self.ephemeral_pub_key.clone()));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -11,6 +11,7 @@ log.workspace = true
|
|||||||
serde.workspace = true
|
serde.workspace = true
|
||||||
monotree.workspace = true
|
monotree.workspace = true
|
||||||
sha2.workspace = true
|
sha2.workspace = true
|
||||||
|
hex.workspace = true
|
||||||
|
|
||||||
[dependencies.storage]
|
[dependencies.storage]
|
||||||
path = "../storage"
|
path = "../storage"
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
use log::info;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use sha2::{digest::FixedOutput, Digest};
|
use sha2::{digest::FixedOutput, Digest};
|
||||||
use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, AccountId};
|
use storage::{merkle_tree_public::TreeHashType, nullifier::UTXONullifier, AccountId};
|
||||||
@ -69,6 +70,15 @@ impl UTXO {
|
|||||||
privacy_flag: self.privacy_flag,
|
privacy_flag: self.privacy_flag,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn log(&self) {
|
||||||
|
info!("UTXO hash is {:?}", hex::encode(self.hash));
|
||||||
|
info!("UTXO owner is {:?}", self.owner);
|
||||||
|
info!("UTXO nullifier is {:?}", self.nullifier.clone().map(|val| hex::encode(val.utxo_hash)));
|
||||||
|
info!("UTXO asset is {:?}", hex::encode(self.asset.clone()));
|
||||||
|
info!("UTXO amount is {:?}", self.amount);
|
||||||
|
info!("UTXO privacy_flag is {:?}", self.privacy_flag);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user