diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5ed6c4798b4..1596c6744c3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- [2135](https://github.com/FuelLabs/fuel-core/pull/2135): Added metrics logging for number of blocks served over the p2p req/res protocol.
- [2155](https://github.com/FuelLabs/fuel-core/pull/2155): Added trait declaration for block committer data
- [2142](https://github.com/FuelLabs/fuel-core/pull/2142): Added benchmarks for varied forms of db lookups to assist in optimizations.
+- [2158](https://github.com/FuelLabs/fuel-core/pull/2158): Log the public address of the signing key, if it is specified
## [Version 0.35.0]
diff --git a/bin/fuel-core/chainspec/local-testnet/state_transition_bytecode.wasm b/bin/fuel-core/chainspec/local-testnet/state_transition_bytecode.wasm
index 0f2ef085553..a2d81c9434c 100755
Binary files a/bin/fuel-core/chainspec/local-testnet/state_transition_bytecode.wasm and b/bin/fuel-core/chainspec/local-testnet/state_transition_bytecode.wasm differ
diff --git a/bin/fuel-core/src/cli/run.rs b/bin/fuel-core/src/cli/run.rs
index 4c32075056d..44be9d57a98 100644
--- a/bin/fuel-core/src/cli/run.rs
+++ b/bin/fuel-core/src/cli/run.rs
@@ -354,7 +354,18 @@ impl Command {
);
consensus_signer = SignMode::Key(Secret::new(key.into()));
}
- }
+ };
+
+ if let Ok(signer_address) = consensus_signer.address() {
+ if let Some(address) = signer_address {
+ info!(
+ "Consensus signer is specified and its address is {}",
+ address
+ );
+ }
+ } else {
+ warn!("Consensus Signer is specified but it was not possible to retrieve its address");
+ };
if consensus_signer.is_available() && trigger == Trigger::Never {
warn!("Consensus key configured but block production is disabled!");
diff --git a/crates/services/consensus_module/poa/src/signer.rs b/crates/services/consensus_module/poa/src/signer.rs
index f9ba98d3599..2712b980c7d 100644
--- a/crates/services/consensus_module/poa/src/signer.rs
+++ b/crates/services/consensus_module/poa/src/signer.rs
@@ -18,6 +18,11 @@ use fuel_core_types::{
},
primitives::SecretKeyWrapper,
},
+ fuel_crypto::PublicKey,
+ fuel_tx::{
+ Address,
+ Input,
+ },
fuel_vm::Signature,
secrecy::{
ExposeSecret,
@@ -68,6 +73,34 @@ impl SignMode {
};
Ok(Consensus::PoA(PoAConsensus::new(poa_signature)))
}
+
+ /// Returns the public key of the block producer, if any
+ pub fn public_key(&self) -> anyhow::Result