Răsfoiți Sursa

darkfid/task/miner: use le bytes when communicating the target with minerd

skoupidi 8 luni în urmă
părinte
comite
d3fe14204d
2 a modificat fișierele cu 4 adăugiri și 4 ștergeri
  1. 1 1
      bin/darkfid/src/task/miner.rs
  2. 3 3
      bin/minerd/src/rpc.rs

+ 1 - 1
bin/darkfid/src/task/miner.rs

@@ -273,7 +273,7 @@ async fn mine_next_block(
     .await?;
 
     // Execute request to minerd and parse response
-    let target = JsonValue::String(next_target.to_string());
+    let target = JsonValue::String(base64::encode(&next_target.to_bytes_le()));
     // Grab the RandomX key to use.
     // We only use the next key when the next block is the
     // height changing one.

+ 3 - 3
bin/minerd/src/rpc.rs

@@ -33,7 +33,6 @@ use darkfi::{
     util::encoding::base64,
     validator::pow::mine_block,
 };
-use darkfi_sdk::num_traits::Num;
 use darkfi_serial::{async_trait, deserialize_async};
 
 use crate::{
@@ -95,10 +94,11 @@ impl MinerNode {
         }
 
         // Parse parameters
-        let Ok(target) = BigUint::from_str_radix(params[0].get::<String>().unwrap(), 10) else {
-            error!(target: "minerd::rpc", "Failed to parse target");
+        let Some(target_bytes) = base64::decode(params[0].get::<String>().unwrap()) else {
+            error!(target: "minerd::rpc", "Failed to parse target bytes");
             return server_error(RpcError::TargetParseError, id, None)
         };
+        let target = BigUint::from_bytes_le(&target_bytes);
         let Some(randomx_key_bytes) = base64::decode(params[1].get::<String>().unwrap()) else {
             error!(target: "minerd::rpc", "Failed to parse RandomX key bytes");
             return server_error(RpcError::BlockParseError, id, None)